암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘
암호화와 복호화에 사용하는 암호키를 분리하여 사용하는 방식
공개키 (Public Key) 로 정보를 암호화하고,
자신이 가지고 있는 비공개키 (비밀키 : Private Key) 로 복호화한다.
1. A가 웹 상에 공개된 'B의 공개키'를 이용해 평문을 암호화하여 B에게 보냄 2. B는 자신의 비밀키로 복호화한 평문을 확인, A의 공개키로 응답을 암호화하여 A에게 보냄 3. A는 자신의 비밀키로 암호화된 응답문을 복호화함
하지만 이 방식은 기밀성만 보장해줄 뿐, 진실성과 확실성은 보장해주지 않는다.
→ 이는 MAC(Message Authentication Code)나 전자 서명(Digital Signature)으로 해결한다. (MAC은 공개키 방식이 아니라 대칭키 방식임을 유의! T=MAC(K,M) 형식)
데이터 보안에 중점을 두는 것이다.
상대방의 공개키로 데이터를 암호화하고 전송하면, 데이터를 수신한 사람은 자신의 비밀키로 데이터를 복호화 한다.
공개키는 널리 배포될 수 있기 때문에 많은 사람들이 비밀키를 소유한 사람에게 데이터를 보낼 수 있다.
인증 과정에 중점을 두는 것이다.
공개키를 소유한 사람이 비밀키로 데이터를 암호화하고 공개키와 함께 전달한다.
이 과정에서 공개키와 데이터를 획득한 사람은 공개키를 이용하여 복호화할 수 있다.
데이터 보호 목적보다는 공개키 데이터 제공자의 신원을 보장해주기 때문이다.
암호화된 데이터가 공개키로 복호화 된다는 것은 공개키와 쌍을 이루는 비밀키에 의해서 암호화 되었다는 것을 의미하며 즉, 데이터 제공자의 신원 확인이 보장된다는 것이다.
이 방법이 공인인증체계의 바탕인 '전자 서명'이다.
SSL 탄생의 시초가 된다.
1. A가 B의 공개키로 암호화 통신에 사용할 대칭키를 암호화하고 B에게 보냄
2. B는 암호문을 받고, 자신의 비밀키로 복호화함
3. B는 A로부터 얻은 대칭키로 A에게 보낼 평문을 암호화하여 A에게 보냄
4. A는 자신의 대칭키로 암호문을 복호화함
5. 앞으로 이 대칭키로 암호화를 통신함
→ 대칭키를 주고받을 때만 공개키 암호화 방식을 사용하고 이후에는 계속 대칭키 암호화 방식으로 통신한다.