IT 그리고 정보보안/Knowledge base

다중문자 암호 - 비제네르 암호(Vigenere ciphers)

plummmm 2021. 4. 16. 05:54
반응형

이번엔 다중 문자 암호, Polyalphabetic ciphers 에 대해서 알아보자.

문자 하나를 치환하는 것을 monoalphabetic substitutions 단일 문자 치환인데.. 이건 너무 간단해서 딱봐도 잘 풀린다.

좀더 복잡한 암호 치환을 하려면 다중문자 Polyalphabetic substitutions 다중 문자 치환을 쓰는게 좋다.

 

대표적으로 Vigenere ciphers(비제네르 암호) 라는 것이 있다.

쉽게 설명을 하자면, 키 값이 있고 대칭되는 행렬을 구성해서 키값과 평문을 대응시켜 암호문을 만드는 것이다.

일단 비제네르 암호 행렬은 아래와 같다.

 

이렇게 생겨 먹었따. 그냥 뭐없다. 한칸씩 밀어서 구성해놓은 것.

자 이제 예를 들어 보자. 키 값이 deceptive 라고 치고 암호화를 해보자.

 

 

becarefuliamahacker 라는 평문을 deceptive 라는 키값으로 암호화를 시키면

아래와 같이 EIEEG .. .. 라는 암호문이 나온다. 쉽지?

키값은 계속해서 반복적으로 나오게 된다. 

 

비제네르 암호의 장점은 통계적인 글자의 빈도수를 줄일 수 있다는 것임.

이게 무슨말이냐? 언어의 특성상 문장에서 나오는 글자의 빈도수가 통계적으로 나오는데 그걸 가지고 암호화를 풀수가 없다이말.

비제네르는 문자 빈도수가 거의 균등하게 나오기 때문이다.

 

근데 이 비제네르 암호를 또 뚜드러 팰 방법이 있다.

 

Kasiski method 카시스키 방법이다.

만약 암호문에서 똑같은 단어가 두개 이상 발견이 되었다. monkey .. .. .. monkey 요렇게

이놈 둘은 같은 키, 같은 평문으로 암호화 될 가능성이 있는것 이다. 아닐수도 있지만..

그럼 얘네 둘이 떨어진 숫자가 키값의 배수일 가능성이 생기는 것이다.

 

둘 사이의 거리가 20 이면, 키 길이는 1, 2, 4, 5, 10, 20 중에 하나일 가능성이 있다는 말..

사실 비제네르 암호에선 키 값보단 키의 길이가 중요하다. 길이 만큼 잘라서 단일치환암호로 바꿀 수 있기때문에.

 

 

만약 요래 되있으면 주기는 10일 것이다. 10개 넘어가니 같은 패턴이 나오니까. (위에 처럼 3개가 나올 가능성은 거의 없다)

반응형