이것은 문서의 이전 버전입니다!


암호 알고리즘

Cipher. 평문으로부터 암호문을 만들어 내는 모든 종류의 알고리즘. 그냥 암호라고 부를 때도 있으나 이럴 때는 암호문과 구분하기 어려우니 여기서는 용어를 분명히 한다.

수학적으로 얘기하자면, 암호문 c은 평문 m을 적절한 함수 E로 암호화한 결과이다(c = E(m)). 암호화 함수 E는 복호화 함수 D = E^{-1}를 가져야 하므로 전단사함수여야 하고, 암호학적으로 쓸모가 있으려면 c로부터 ED를 추측해내는 것 역시 어려워야 한다. 현대의 암호에서 ED는 실제로는 적절한 알고리즘을 k로 매개변수화하여 만드는데(즉 E = E(k), D = D(k)) 마찬가지로 알고리즘을 알고 있어도 c로부터 k를 추측해내는 것이 어려워야 한다.1)

고전 암호

고전암호는 일반적으로 수학적으로 그 강도를 증명하지 않은 채 설계한 알고리즘들을 의미한다. 따라서 고전 암호는 대부분 충분한 평문과 암호문 쌍이 주어지면 공통된 키를 찾아낼 수 있으며, 일부 간단한 고전 암호는 평문과 암호문 쌍이 적거나 아예 평문이 알려져 있지 않더라도 빈도분석과 같은 방법으로 풀 수 있다. 사실 고전 암호로 암호화된 암호문 중 지금까지도 풀리지 않은 것은 순전히 한 키를 한 암호문에만 사용했기 때문이다.

대부분의 고전 암호는 치환암호, 복자치환암호, 전치암호의 조합으로 이루어져 있다. 사실 어떻게 보면 이들이 현대 암호의 혼돈과확산(confusion and diffusion) 개념에 영향을 끼쳤다고 할 수는 있겠으나, 고전 암호는 그 암호가 "어떻게" 정보를 혼돈시키고 확산시키는지에 대한 이해가 없이 만들어졌기 때문에 한계가 명확하다. 게다가 대부분의 경우 키도 충분히 크지 않기 때문에 그냥 단순히 전수 검색만으로도 풀리는 경우가 많다(…).

현대 암호

현대암호는 수학적인 방법으로 그 강도를 증명하거나 적어도 추정하여 설계된 알고리즘들을 의미하며, 그 시초는 보통 1940년대 후반 Claude Shannon의 연구로 친다.2) 고전 암호와는 달리 현대 암호는 평문과 암호문 쌍이 아무리 주어져도 그 키를 찾기 어렵도록 설계되어 있으며, 근래 들어 다양한 암호공격(cryptanalysis) 방법이 알려짐에 따라 이들에 대한 대비도 함께 고려하여 만들어진다. 현대 암호는 컴퓨터의 발달로 인해 일반적인 목적으로 매우 널리 쓰이게 되었으며, 전자상거래와 같이 한 산업 분야를 완전히 떠받치고 있기까지 하다.

현대 암호는 암호화에 사용되는 키 k_1와 복호화에 사용되는 키 k_2가 같은가 다른가에 따라 대칭암호비대칭암호로 크게 나눌 수 있다. 좀 더 수학적으로 말하면, 비대칭 암호는 키 k = (k_1, k_2)이어서 E_k에서는 k_1만 사용하고 D_k에서는 k_2만 사용하는 구조라 말할 수 있다.

1) 아예 알고리즘도 알 수 없도록 하는 것이 도움이 될 수도 있는데, 대부분의 경우 쓸만한 암호 알고리즘의 갯수는 한계가 있어서 큰 도움이 되지는 않는다.
2) 사실 앞에서 말한 혼돈과 확산이라는 개념 자체가 Shannon이 처음 기초를 닦은 것이다.

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-05-30 18:25 | 외부 편집기