Shine's dev log

치환암호와 전치암호 본문

보안

치환암호와 전치암호

dong1 2020. 5. 5. 14:44

1. 치환암호(Substitution Cipher)

 

치환암호는 하나의 단위가 다른문자로 치환되는 암호이다.

 

여기서 단위란 하나의 문자일수도있고, 한쌍의 문자일수도있고, 세개의 문자일수도 있다.

 

수신자는 송신자가 수행한 치환의 역과정을 통해 복호화한다.

 

대표적으로 Caesar 암호, One time pad 등이 있다. One time pad는 보내려는 메시지에 랜덤한 숫자를 XOR연산하는 방식으로, 수신자는 송신자가 쓴 랜덤한 숫자로 XOR연산을 다시 해주면 복호화가 된다. 이론상 완벽한 암호시스템이지만, 송수신자 사이에 synchronization이 필요하고 메시지길이만큼의 키가 필요하다는 단점이 있다. 

 

치환암호는 frequency analysis에 약한데, frequency analysis란 주로 쓰이는 문자(a, e, i, r, t 등)의 특징을 이용하여 치환된 문자를 유추하는 것이다.

 

 

 

2. 전치암호(Transposition Cipher)

 

전치암호는 문자들의 순서를 재배치하는 암호로, Permutation이라고도 불린다.

 

전치암호도 frequency analysis에 약한데, 자주 나오는 패턴(Digram, Trigram)을 분석하는 방법으로 공격이 가능하다.

 

만약 frequency analysis의 결과가 실제 알파벳의 frequency와 비슷하다면, 전치암호일 확률이 높다.

 

그리고 잘 생각해보면 알 수 있는 사실이 하나 있는데, 바로 모든 전치암호는 치환암호의 부분집합이라는 것이다.

 

 

 

3. 치환암호와 전치암호의 결합

 

치환암호와 전치암호를 짬뽕해서 쓰면 각 암호의 단점을 보완하여 강력한 암호시스템을 만들 수 있다.

 

 

 

오늘 내용을 정리해보면,

 

1. 특정 문자를 다른문자로 바꾸는 치환암호, 문자의 자리를 재배치하는 전치암호가 있다.

 

2. 두 암호시스템을 섞으면 강력하게 만들 수 있다.

 

 

본 내용은 공부하며 정리한 것으로, 치명적인 오류가 있을 수 있습니다.

'보안' 카테고리의 다른 글

RC4 암호 알고리즘  (0) 2020.05.14
AES 암호화  (0) 2020.05.08
DES 암호화  (0) 2020.05.07
블록암호(Block cipher)와 스트림암호(Stream cipher)  (0) 2020.05.06
암호란 무엇인가? (암호의 원리와 공격유형)  (0) 2020.05.04