카이사르 암호

Zhuny (토론 | 기여)님의 2015년 6월 28일 (일) 20:41 판 (→‎예)


개요

암호의 한 종류로, 문자를 순서대로 나열했을 때 여러 단계 다음의 문자로 치환하여 암호화하는 방법이다. 영어 알파벳의 경우, 만약 A를 B로 바꿀 경우, B는 C, ... , Z는 A로 바꾼다.

알파벳의 경우, [math]\displaystyle{ Z_{26} }[/math]의 한 원소라고 생각할 수 있다. 키가 [math]\displaystyle{ k \in Z_{26} }[/math]일 때, 암호화

[math]\displaystyle{ E(x) = x+k }[/math]

이고 복호화

[math]\displaystyle{ D(x) = x-k }[/math]

라고 생각할 수 있다.

해독

암호문이 많다면 어렵지 않게 해독할 수 있다. 각 문자에 따라 빈도수가 다르기 때문이다. 뭔가 백:오리같다. 알파벳의 경우 E가 많이 사용되는 탓에 빈도수가 높은 알파벳이 E일 확률이 높다. 알파벳은 26가지밖에 안되는데 다 해보면 되지

NK MJ MFI FSDYMNSL HTSKNIJSYNFQ YT XFD, MJ BWTYJ NY NS HNUMJW, YMFY NX, GD XT HMFSLNSL YMJ TWIJW TK YMJ QJYYJWX TK YMJ FQUMFGJY, YMFY STY F BTWI HTZQI GJ RFIJ TZY. NK FSDTSJ BNXMJX YT IJHNUMJW YMJXJ, FSI LJY FY YMJNW RJFSNSL, MJ RZXY XZGXYNYZYJ YMJ KTZWYM QJYYJW TK YMJ FQUMFGJY, SFRJQD I, KTW F, FSI XT BNYM YMJ TYMJWX.

라는 암호문이 있다고 하자. 빈도수를 표로 나타내면

B 4 D 5 F 20 G 5 H 5
I 10 J 33 K 8 L 5 M 24
N 16 Q 7 R 4 S 15 T 18
U 4 W 12 X 12 Y 35 Z 6

여기서 빈도수가 높은 알파벳은 JY[1]이다. 알파벳 E가 이 둘 중 하나로 바뀌었다고 추측할 수 있다.

  • 만약 E가 J로 바뀌었다면, Y는 T가 된다.
  • 만약 E가 Y로 바뀌었다면, J는 D가 된다.

그런데, D는 그렇게 많이 사용되는 알파벳이 아니다. 그러니 E는 J로 바뀌었음을 추측할 수 있다. E는 다섯번재 알파벳, J는 열번째 알파벳이다. 키는 5가 된다. 바꿔보면

IF HE HAD ANYTHING CONFIDENTIAL TO SAY, HE WROTE IT IN CIPHER, THAT IS, BY SO CHANGING THE ORDER OF THE LETTERS OF THE ALPHABET, THAT NOT A WORD COULD BE MADE OUT. IF ANYONE WISHES TO DECIPHER THESE, AND GET AT THEIR MEANING, HE MUST SUBSTITUTE THE FOURTH LETTER OF THE ALPHABET, NAMELY D, FOR A, AND SO WITH THE OTHERS.

가 됨을 알 수 있다. [2]