비대칭키/공개키 암호화
공개키 암호화 방식은 암호화/복호화에 서로 다른 키를 사용하는 방식이다. 공개키 암호화 방식에서는 암호 키를 페어(pair)로 2개 만들어서 하나는 데이터를 암호화하는 공개키로 사용하고, 다른 하나는 데이터를 복호화하는 비밀키로 사용한다.
- 데이터 수신자가 키 페어를 생성하고 공개키를 공개한다.
- 데이터 송신자는 공개키로 평문을 암호화해서 수신자에게 전송한다.
- 비밀키를 소유한 수신자가 데이터를 복호화한다.
대표적인 비대칭 암호화 알고리즘으로는 RSA가 있으며, RSA는 HTTPS에서 클라이언트와 서버가 서로를 인증할 때 사용한다.
키 페어를 생성한 수신자가 비밀키를 가지고 있다고 해서 수신자 외에 아무도 데이터를 복호화 할 수 없는 것은 아니다. 공개키를 통해서 비밀키를 알아내는 게 이론상으로 가능하기 때문이다. 하지만 공개키를 통해 비밀키를 알아내는 데에는 엄청난 연산을 요구하므로 공개키를 통해 비밀키를 해킹하는 게 결코 쉬운 일은 아니다.
대칭키 암호화
대칭키 암호화 방식은 데이터를 암호화/복호화 하는데 동일한 키를 사용하는 방식이다. 대칭키 암호화 방식은 암/복호화를 하는 데 부하가 적은 대신에 암호 키가 외부에 노출될 경우 제 3자도 데이터 암/복호화가 가능해지므로 암호 키 전달에 유의해야 한다.
대표적인 암호화 알고리즘으로 DES, 3DES, AES가 있다. 대칭 키 암호화 방식은 HTTPS에서 인증된 클라이언트와 서버가 메세지를 암호화할 때 사용한다.