본문 바로가기

Library/Cryptography

키의 분배와 교환

암호 프로토콜과 이것을 이용하는 서명, 인증과 같은 다양한 프로토콜에서 가장 중요한 문제 가운데 하나가 '암호키를 어떻게 만들고 전달하며 서로 교환하는가'이다.

공개키를 사용하는 경우 적절한 크기와 요구하는 특성을 가진 키를 사용자 개인이 만들어 내는 것은 쉽지 않다. 따라서 이러한 키를 전문적으로 만들어서 공급해주는 회사나 기관이 따로 필요하다.

대칭키 암호의 경우 상대방과 같은 키를 어떤 방법으로 교환할 것이며, 상대방이 나와 같은 키를 가지고 있다는 것을 확인 할 수 있는가가 가장 결정적인 문제이다.

키의 분배는 한 쪽이 키를 선택하여 다른 쪽에 어떻게 전달하는가에 관한 것이고, 키 확인은 공개되어 있어 보안성이 전혀 없는 채널을 통해 서로 비밀키를 공유하는 방법에 관한 이야기이다. 지금부터 이러한 키의 분배와 확인 문제를 어떤 방법으로 해결하는지 알아보기로 한다.

공개키 알고리즘은 보안성은 좋지만 실행이 느리다는 단점을 가지고 있다. 반대로 대칭키 알고리즘은 보안성이 다소 약한 반면 사용하기에 좋고 매우 빠르다. 각 시스템의 장점을 살려 두 가지 형태의 알고리즘을 결합해 보는 것은 의미가 있다. 혼합 시스템의 아이디어는, 우선 기본 시스템은 대칭키 알고리즘을 쓰고 대칭 암호에 필요한 키를 공개키 암호로 교환한다는 것이다. 이렇게 하면 공개키 알고리즘이 느려서 시스템 전체에 병목현상을 일으키는 단점이 문제되지 않는다. 키의 교환에는 아주 작은 정보만을(보통 56, 128비트) 주고 받고, 비교적 자주 사용하지 않기 때문이다.

한편 공개키와 대칭키 시스템을 적절히 사용하는 것만으로는 모든 문제를 해결할 수 없다. 대칭키 암호의 또 다른 문제는, 한 개인의 입장에서는 암호 시스템을 사용할 대상마다 그에 해당하는 서로 다른 키를 보관하고 있어야 한다는 점이다. 일정 규모 이상이 되면 상당한 양의 메모리를 점유해야 하고 키 리스트를 안전하게 보관하는 것도 쉽지 않다. 따라서 적절한 계산 능력을 가지고 있으면서 공신력이 있는 기관(Trust Authority, TA)에 키의 생성, 발급, 교환, 확인을 상당 부분 의존해야 한다.


Reference
최병문, 이영환(2007), 암호의 세계, 경문사