단자 치환 암호

Monoalphabetic substitution cipher. 고전암호 기법, 더 나아가서는 치환암호의 한 종류로 평문에 쓰인 글자와 암호문에 쓰인 글자의 대응이 바뀌지 않는 암호이다. 반대로 대응이 평문이나 키에 따라 바뀔 수 있으면 복자치환암호라 한다.

단자 치환 암호는 대응이 어떻게 생겼는가에 따라 다시 두 종류로 나눌 수 있다. 단순 치환 암호(simple substitution cipher)는 평문에 쓰인 글자와 암호문에 쓰인 글자가 일대일대응이 되는 구조로, 평문의 글자 분포가 암호문에도 그대로 반영되기 때문에 빈도분석에 매우 취약하다. 이를 보완하기 위해 동음 치환 암호(homophonic substitution cipher)가 등장했는데, 이는 평문의 글자 분포를 가리기 위해 평문에서 많이 나오는 글자를 암호문에서 여러 개의 글자로 대응시킨 것이다. 동음 치환 암호는 사용이 매우 불편한 대신에 제대로 사용할 경우 복호화가 상당히 어려우며, 실제로 현재까지 풀리지 않은 많은 고전 암호들이 동음 치환 암호 내지는 복자치환암호에 기반한 것이다.

단자 치환 암호는 평문의 글자 분포와 암호문의 글자 분포를 쉽게 따로 떨어뜨리기 힘들기 때문에 제대로 사용하지 않을 경우 공격에 매우 취약하다. 심지어 동음 치환 암호의 경우에도, 사람이 손으로 암호화를 할 경우 대응을 예측할 수 있는 경우가 있기 때문에 주의 깊게 만들지 않으면 공격을 피하기가 힘들다. (대신 대응 자체가 무지막지하게 커지면—특히 코드북을 사용할 경우—공격 자체가 불가능해질 수도 있다.) 현대의 블록암호모드로 치자면 ECB에 대응한다고 말할 수 있겠다.


도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-09-22 00:39 | 작성자 lifthrasiir