Rivest-Shamir-Adleman Algorithm. 공개키(Public Key) 암호 방법 중 가장 성공적이고 중요한 알고리즘
RSA는 1977년에 RonRivest, Adi Shamir와 Leonard Adleman에 의해 개발된 Algorithm을 사용하는 인터넷 DataEncryption 및 인증 시스템이다.
가장 보편적으로 사용되는 암호화 및 인증 알고리즘으로서, 넷스케이프와 마이크로소프트 웹브라우저 기능의 일부로 포함된다. 이것은 또한 로터스 노츠, 인튜잇의 Quicken 등 많은 제품에 채용되어 있기도 하다.
RSA 시스템
RSA의 기본적인 네가지 성질
- 암호화된(E) 메세지의 형태를 해독(D)하면 원래의 메세지가 나온다. 개념적으로 등식은 다음과 같이 씌여질 수 있다.
- D(E(M)) = M
- E와 D는 상대적으로 연산하기 쉽다.
- 공개적으로 E를 드러내도 D를 계산하는 쉬운 방법은 나타나지 않는다. 그러므로 D값을 가지고 있는 사용자만이 E로 암호화된 메세지를 해독할 수 있다.
- 메세지 M을 해독하고, 다시 암호화해도 결과는 M이다. 다시 말하면, 이전 함수의 역도 참이 된다는 것이다.
- E(D(M)) = M
동작원리
두 개의 큰 소수 (소수는 그 숫자와 1로만 나누어지는 수이다)들의 곱과, 추가 연산을 통해 하나는 공개키를 구성하고 또하나는 개인키를 구성하는데 사용되는 두 세트의 수 체계를 유도하는 작업이 수반된다. 한번 그 키들이 만들어지면, 원래의 소수는 더 이상 중요하지 않으며, 버릴 수 있다. 공개 및 개인키 둘 모두는 암호화/복호화를 위해 필요하지만, 오직 개인키의 소유자만이 그것을 알 필요가 있다. RSA 시스템을 사용하면, 개인키는 절대로 인터넷을 통해 보내지지 않는다.
개인키는 공개키에 의해 암호화된 텍스트를 복호화하는데 사용된다. 그러므로, 내가 만약 누군가에게 메시지를 보내는 상황을 가정해 보면, 나는 중앙의 관리자로부터 수신자의 공개키를 찾은 다음, 그 공개키를 사용하여 보내는 메시지를 암호화할 수 있다. 수신자는 그것을 받아서, 자신의 개인키로 복호화하면 된다. 프라이버시를 확실하게 하기 위해 메시지를 암호화하는 것 외에도, 자신의 개인키를 사용하여 디지털 서명을 암호화해서 함께 보냄으로써, 그 메시지가 틀림없이 바로 당신에게서 온 것임을 받는 사람에게 확신시켜줄 수 있다.