1. 대칭키(Symmetric Key)
암호화, 복호화 시에 같은 암호키를 사용한다.
동일한 키를 주고받기 때문에 매우 빠르다는 장점이 있지만 대칭키 전달 과정에서 해킹 위험에 노출된다.
키 하나만 알면 해커가 암호화, 복호화 모두 가능하다.
2. 공개키(Public Key)
암호화, 복호화 시에 사용하는 키가 다르다.
B의 공개키로 A가 자신의 데이터를 암호화하여 B에게 전송한다.
B는 자신의 개인키로 A의 데이터를 복호화한다. 이에 따른 응답을 A의 공개키로 암호화하여 A에게 전송한다.
A는 자신의 개인키로 B의 데이터를 복호화한다.
하지만 속도가 느릴 수 있고 암호화/복호화가 매우 복잡하다.
3. 공개키+대칭키
SSL 탄생의 시초
1. A가 B의 공개키로 암호화 통신에 사용할 대칭키를 암호화하여 B에게 보낸다.
2. B는 암호문을 받고 자신의 개인키로 복호화한다.
3. B는 A로부터 얻은 대칭키로 A에게 보낼 평문을 암호화하여 A에게 보낸다.
4. A는 자신의 개인키로 암호문을 복호화한다.
5. 앞으로 이 대칭키로 통신한다.
→ 즉, 대칭키를 주고받을 때에만 공개키 암호화 방식을 사용하고 이후에는 대칭키 암호화 방식으로 통신하는 것이다.