자신만 알고 있는 비밀키와 외부에 노출되어도 되는 공개키 두가지를 이용하는 암호화 구조
- A의 공개키는 누구나 알고 있다.
- 누군가가 A의 공개키로 암호화할 경우 그 암호문은 A의 비밀키로만 복호화할 수 있다.
장단점
- 대칭키 암호화의 키 분배 문제를 해결할 수 있다.
- 대칭키 암호화에 비해 속도가 느리다.
- 중간자 공격(위장 공격 및 재전송 공격)이 가능하다.
절차
- A는 공개 키/개인 키로 이루어진 한 쌍의 키를 만든다.
- A는 자신의 공개 키를 B에게 보낸다.
- B는 A의 공개 키를 써서 메시지를 암호화한다.
- B는 암호문을 A에게 보낸다.
- A은 자신의 개인 키를 써서 암호문을 복호화한다.
역사
- 1976년 휘트필드 디피(Whitfield Diffie)와 마틴헬만(Martin Hellman)이 공개 키 암호의 아이디어를 발표
- 1977년 구체적인 알고리즘으로서 랠프 메르클레(Ralph Merkle)와 마틴 헬만(Martin Hellman)에 의한 Knapsack 암호 개발
- 1978년 MIT 박사 3인에 의해 공개키 암호 알고리즘 RSA 발표
- 론 라이베스트(Ron Rivest)
- 아디 샤미르(Adi Shamir)
- 레너드 애들먼(Leonard Adleman)
- 1985년 밀러와 코블리츠에 의해 ECC 암호 아이디어 발표