본문 바로가기

Knowledge

[Knowledge] RSA 암호화 알고리즘

반응형

들어가기 전

AES에 이어 RSA 암호화 알고리즘에 대해 이해하기 위해 글을 작성한다.


본문

1. RSA 암호화 알고리즘

RSA는 공개키 암호화 알고리즘이며, 대칭키 암호화 알고리즘보다 리소스를 많이 사용하고 효율성이 떨어지기 때문에 메시지나 전체 파일을 암호화하는 데에는 적합하지 않다. 그러므로 RSA 암호화는 주로 키를 암호화하는데 쓰이거나, 디지털 서명을 암호화하여 메시지의 무결성과 신뢰성을 증명하는 것이 관행이다.

 

여기서 RSA는 기밀성 용도와 서명 용도 2가지 방법으로 사용될 수 있다. 기밀성 용도로 사용될 때에는 데이터를 상대방의 공개키로 암호화하여 전달하고, 상대방의 개인키로 복호화하여 기밀성을 보장할 수 있으며, 서명 용도로 사용할 때에는 본인의 개인키로 암호화하여 전달하고 본인의 공개키로 복호화하여 데이터를 보낸자의 서명 인증을 수행한다. 자세한 설명은 2.RSA 암호화 과정에서 더 설명하도록 하겠다.

 

공개키: 모두에게 공개할 수 있는 키

개인키(비밀키): 비밀로 유지되어야 하는 키

 

내가 생각하기에 RSA를 이해하는데 핵심은 다음과 같다. 공개키와 개인키가 한 쌍을 이루며, 공개키로 암호화한 내용은 개인키로만, 개인키로 암호화한 내용은 공개키로만 해독할 수 있다. 이게 무슨 의미냐 하면 공개키든 개인키든 나의 키로 암호화된 내용은 나의 키로 복호화할 수 있지 상대방의 키로 복호화할 수 없다. 

 


2. RSA 암호화 과정

2.1 암/복호화 과정(기밀성 용도)

1) A가 B에게 메시지를 보낸다. 이 메시지를 A는 B 외에 누구도 이 메시지를 읽을 수 없게 하고 싶다.

2) 이때, 먼저 B가 A에게 자신(B)의 공개키를 전달해준다. B의 개인키는 B만 알고 있다.

3) A는 B한테 받은 B의 공개키로 해당 메시지를 암호화한 후 B에게 전달한다.

4) B가 자신(B)의 개인키를 사용해 암호화된 메시지를 복호화 한다.

 

2.2 디지털 서명 과정(서명 용도)

1) B는 A에게 문서를 보낸다. A는 이 문서가 B가 작성한 것이 맞는지 확인하고 싶다.

2) B가 자신(B)의 개인키로 문서 서명을 진행한다.

3) B가 서명된 문서와 원본 문서를 A에게 전달한다.

4) A가 B의 공개키를 이용해 서명을 검증한다. A는 서명된 메시지를 B의 공개키로 풀어 원본 문서와 비교한다.

5) 해당 문서와 원본 문서가 일치한다면 이 문서가 B가 서명했음을 알 수 있다.

반응형