공통키 암호 방식 : 암호화와 복호화에 같은 키를 사용
공개키 암호 방식 : 암호화와 복호화에 다른 키를 사용
공통키 암호 방식은 암호화와 복호화에 같은 키를 사용한다.
공통키 암호 방식은 '대칭형 암호 방식', '비밀키 암호 방식', '공유키 암호 방식' 등으로 불리기도 한다.
등이 있으며, 현재는 AES가 주로 사용되고 있다.
A가 B에게 인터넷을 경유해서 데이터를 전송하려 한다.
데이터가 노출될 위험이 있으므로 암호화해서 전송해야 한다.
공통키 암호 방식의 큰 문제점은 X도 키를 훔쳐볼 가능성이 있고,
X도 키를 사용해서 암호문을 복호화할 할 수 있다.
키를 도난당할 위험으로 다시 키를 암호화해서 보낸다고 문제가 해결되지 않는다.
키를 암호화하기 위해 사용할 키도 X가 훔쳐볼 가능성이 있으므로 문제가 반복되게 된다.
공통키 암호 방식에서는 키를 안전하게 전달할 방법이 필요하다.
해결 방법으로는 '키 교환 프로토콜을 사용하는 방법'과 '공개키 암호 방식을 사용하는 방법' 두 가지가 있다.
공개키 암호 방식은 암호화와 복호화에 서로 다른 키를 사용하는 방식이다.
다른 키를 사용한다는 의미에서 '비대칭 암호'라고 부르는 경우도 있다.
공개키 암호 방식을 구현하는 알고리즘을 찾는 것은 쉽지 않다.
암호의 계산 프로세스로부터 필요한 조건을 정리해보면, 아래와 같다.
등이 있고, 현재는 RSA가 주로 사용되고 있다.
여기서도 악의를 가진 제3자 X가 훔쳐볼 가능성이 있다.
하지만 공개키로는 암호문을 복호화할 수 없으므로 X는 원 데이터를 얻을 수 없고,
공통키 암호 방식과 달리 '키 분배 문제'가 발생하지 않는다.
이외에도 불특정다수 간 데이터 교환이 쉽다는 장점이 있다.
공개키는 다른 사람들에게 노출돼도 문제가 없지만 비밀키는 노출되지 않도록 엄중히 관리해야 한다.
위와 같은 방법으로 B는 원 데이터를 얻을 수 있고,
데이터를 전송하는 상대방 모두가 키를 가지고 있을 필요가 없다.
데이터를 받는 쪽만 노출되지 않는 키(비밀키)를 소유하면 되므로 안정성도 높다.
공통키 암호 방식은 사람이 늘어나면 필요한 키의 수가 급격하게 증가한다.
5명이면 100개, 100명이면 4,950개가 필요하다.
그러므로 암호화 및 복호화에 시간이 많이 소요된다는 문제가 있다.
상세한 데이터를 연속적으로 교환하는 구조에는 적합하지 않다.
문제해결 : 하이브리드 암호 방식
B가 공개키와 비밀키를 만드는 시점에 신뢰도에 대한 문제가 있다.
이 과정에서 A는 공개키가 바뀐 것을 모르고, B는 도중에 데이터가 노출된 것을 모른다.
이러한 공개키 바꿔치기로 데이터를 가로채는 기법을 'man-in-the-middle 공격'이라고 한다.
문제의 원인은 A가 받은 공개키의 작성자가 B인지 판단할 수 없다는 점이다.
문제해결 : 전자 인증서
공통키 암호 방식에는 키를 안전하게 교환해야 하는 '키 분배 문제'가 있었고,
공개키 암호 방식에는 암호화와 복호화의 처리 속도가 느리다는 문제가 있었다.
하이브리드 방식은 이 두 가지 방식을 결합해서 약점을 보완한 방식이다.
암호화에는 처리 속도가 빠른 공통키 암호 방식을 사용하고,
키는 키 분배가 불필요한 공개키 암호 방식을 사용한다.
A는 B에게 공통키를 안전하게 전달해야 한다.
공통키는 공개키 암호 방식으로 암호화하여 안전하게 전달할 수 있다.
하이브리드 암호 방식은 안정성과 속도를 모두 만족한다.
이 암호 방식은 인터넷상에서 정보를 안전하게 교환하기 위한 프로토콜인 'SSL(Secure Scokets Layer)'에서 사용 된다.
현재는 버전이 업그레이드되면서 'TLS(Transport Layer Security)'라는 명칭을 가지고 있다.
Reference
- 『알고리즘 도감』, 이시다 모리테루, 미야자키 쇼이치 - 제이펍
- 사진 출처 : 알고리즘 도감 어플