1 건의
security 검색결과
  1. 2018.09.13 KOREAPAS



가장 오래 되었으며 가장 간단한 암호인 시저 암호(Caesar cipher)

율리우스 시저(Julius Caesar)에 의해 만들어졌다.

군사작전에 쓰였던 시저 암호는 정말로 간단하다.


텍스트를 들키지 않고 아군에게 보내기 위해 각 문자를 다른 문자로 대체하는 방식(substitution)이다.

기존 문자를 자신보다 세칸 뒤에 있는 문자로 대체하는 방식으로 예를 들어보겠다.




위의 사진에서 보이는 Plain이 우리가 보내는 평문이며 Cipher는 암호화된 문자이다.

예를 들어 a는 세칸 뒤의 d에 대응되며 y는 b에 대응되는 방식이다.

이 방식으로 I love you를 암호화하면 L ORYH BRX가 되는 것이다.


알파벳을 숫자로 치환시켜 시저 암호에 간단한 공식을 부여할 수도 있다.




그림에서 보이듯이 알파벳 26개를 0에서 25까지의 숫자에 대응시킨후 아래의 수식과 키(key) 값 k를 적용하면 암호화된 문자 C(ciphertext)와 평문 P(plaintext)를 얻을 수 있다. 

E는 암호화 함수(encryption function)이며 D는 복호화 함수(decryption function)입니다.

문자를 세칸뒤로 옮겼으니 키값인 k에 3을 대입하면 된다. 




a와 d를 예로 들어보자.

a는 0, d는 3에 대응된다.

a를 우리가 보내는 평문 p, d를 암호화된 c라고 가정.


p + k mod 26 = 0 + 3 mod 26 => 3

d = > 3


c - k mod 26 = 3 - 3 mod 26 = > 0

a => 0



시저 암호는 봐서 알겠지만 매우 약하다.

무차별대입(brute force) 방식으로도 빠른 시간에 손쉽게 뚫리고 만다.

brute force방식은 키값의 크기에 비례해 시간이 소모되는데 시저 암호에서는 대입해봐야 할 키값의 크기가 25밖에 되지 않기 때문이다.





위의 그림에서 주어진 암호문은 PHHW PH DIWHU WKH WRJD SDUWB이다.

이 값에 키를 1부터 25까지 모두 대입해 보면 25가지의 문장이 나오는데 이 중에서 말이 되는 문장은 키 값이 3일때의 문장이다.

'meet me after the toga party'