2012년 9월 23일 일요일

비제네르 암호 공략에 대한 결론.


방법1의 약점은 완성된 영어 문장을 사용하므로, 암호문 작성에 이용되는 키 단어가 문자의 통계적인 정보로 공격 당할 수 있는 취약성을 가지고 있다는 것이다. 그러므로 무작위로 선택한 문자들로 만든 무한 수열을 키 단어로 사용하면, 키 단어에서의 통계적인 데이터는 아무 의미가 없게 된다. 예를 들어 확률적으로 고르게 나오는 26면(영어 문자가 26자이므로)을 가진 상상의 주사위를 사용한다. 이 무작위 문자열로 만든 수열을 문자벌레(worm of letters)라고 한다.

이러한 문자벌레는, 암호문으로부터 평문의 어떤 단일문자도 예측할 수 없게 하는 임의의 부분 수열을 가지고 있다. 만약 이 문자벌레를 사용해 평문을 암호화한다면, 암호문은 단순히 문자들의 무작위 배열에 불과하다. 비록 Mr. X가 충분히 많은 양의 평문과, 방법2를 이용하여 암호화한 암호문을 가지고 있다하더라도 그 것들로부터 암호공격에 필요한 아무런 정보도 얻지 못할 것이다. 다시 말하면 이 방법은 완벽한 안전성, 즉 이론적으로 완벽한 안전성을 가지고 있다. 이러한 완전 시스템에 대해서는 다음 번에 다룰 것이다.

 알았다. 그러면 모든 비제네르 암호가 깨지는 것은 아닐까?  앞 절에서 소개한 비제네르 암호 공격법은 비교적 짧은 키 단어를 사용한 경우에만 효율적이다. 결론적으로 말해서 긴 키 단어를 사용한 비제네르 암호는 비교적 안전한 암호화 방법이 된다. 즉 키 단어의 길이가 길면 깨기가 어려워진다.

그러면 어느 정도 긴 키 단어가 안전할까? 극단적으로 말하자면 암호화할 때, 평문의 문자수와 같은 정도로 긴 키 단어를 사용하면, 앞 절에서 이용한 방법으로는 키 단어를 알아 낼 수 없다.

다음 두 가지 방법을 사용하여 키 단어를 만들면, 암호공격자들이 암호를 공격하는데 아주 어려울 것이다.

  방법1.
어떤 책에 있는 문장을 키 단어로 사용한다. 그러한 키는 관리하기가 쉬워 평문을 암호로 바꾸는데 아주 유용하다. 다음 문장은  에드가 알렌 포우(Edgar Allen Poe)의 ``황금벌레" 에 나오는 것이다. 수신자는 암호를 복호화하기 위해, 키 단어로 사용된 이 긴 문장을 따로 보관할 필요가 없고, 단지 저자와 책이름만을 기억하면  된다.

Many years ago, I contracted an intimacy with a Mr. William Legand. He was of an ancient Huguenot family, and had once been wealthy;  but a series of misfourtunes had reduced him to want. To avoid the morfication censequent upon his disaster, he left New Orleans, the city of his forefathers, and took up his residence at Sullivan's Island, near Chalston, South Carolina ...

몇년 전 나는 윌리엄 리젼드라고 하는 한 남자와 교분을 가진 적이 있습니다. 그는  위그노 교도였으며 한 때는 아주 부자였습니다. 그러나 계속된 불행은 그를 아주 궁핍하게 만들었습니다. 꼬리를 물고 일어나는 재앙을 피할 생각으로 그는 조상대대로 살아 왔던 뉴올리언즈를 떠나 사우스캐롤라이나의 샬럿 근처에 있는 설리번 섬에 정착하였습니다.

 이렇게 긴 키 단어를 사용하면  어떠한 방법을 써도 키 단어의 길이를  구할 수가 없다. 하지만 이 키 단어도 역시 영어 문장이므로, 암호문을 공격하는데 중요한 통계적 데이터(예를 들어 문자의 출현빈도)를 완전히 없앨 수는 없다. 그러므로 매우 영리한 암호공격자는 그러한 암호도 깰 수 있다. 이 방법을 이용한 암호문은 1920년에 프리드만에 의해 처음으로 깨졌다.

 방법2.
방법1의 약점은 완성된 영어 문장을 사용하므로, 암호문 작성에 이용되는 키 단어가 문자의 통계적인 정보로 공격 당할 수 있는 취약성을 가지고 있다는 것이다. 그러므로 무작위로 선택한 문자들로 만든 무한 수열을 키 단어로 사용하면, 키 단어에서의 통계적인 데이터는 아무 의미가 없게 된다. 예를 들어 확률적으로 고르게 나오는 26면(영어 문자가 26자이므로)을 가진 상상의 주사위를 사용한다. 이 무작위 문자열로 만든 수열을 문자벌레(worm of letters)라고 한다.

이러한 문자벌레는, 암호문으로부터 평문의 어떤 단일문자도 예측할 수 없게 하는 임의의 부분 수열을 가지고 있다. 만약 이 문자벌레를 사용해 평문을 암호화한다면, 암호문은 단순히 문자들의 무작위 배열에 불과하다. 비록 Mr. X가 충분히 많은 양의 평문과, 방법2를 이용하여 암호화한 암호문을 가지고 있다하더라도 그 것들로부터 암호공격에 필요한 아무런 정보도 얻지 못할 것이다. 다시 말하면 이 방법은 완벽한 안전성, 즉 이론적으로 완벽한 안전성을 가지고 있다. 이러한 완전 시스템에 대해서는 다음 번에 다시 다루기로 한다.


블로그 보관함