고전 암호

Classical cipher

암호학에서 고전 암호는 역사적으로 사용되었지만 대부분 사용되지 않은 암호의 일종이다. 현대의 암호 알고리즘과는 대조적으로, 대부분의 고전 암호는 손으로 계산하고 해결할 수 있다. 하지만, 그것들은 또한 현대 기술로 끊기 위해 보통 매우 간단하다. 이 용어는 그리스 로마 시대부터 사용된 간단한 시스템, 정교한 르네상스 시대의 암호, 에니그마 기계와 같은 제2차 세계 대전 암호 등을 포함한다.

대조적으로, 현대의 강력한 암호법은 1970년대 이후 개발된 새로운 알고리즘과 컴퓨터에 의존한다.

고전 암호의 종류

고전 암호는 흔히 전이 암호대체 암호로 나뉜다.

대체 암호

대체 암호에서는 문자(또는 문자 그룹)가 메시지 전체에 걸쳐 다른 문자(또는 문자 그룹)에 대해 체계적으로 대체된다.

대체 암호의 잘 알려진 예는 카이사르 암호다. 카이사르 암호로 메시지를 암호화하기 위해, 각각의 메시지 문자는 알파벳 뒷부분의 세 가지 위치로 대체된다. 따라서 A는 D, B는 E, C는 F 등으로 대체된다. 마지막으로 X, Y, Z는 각각 A, B, C로 대체된다. 그래서 예를 들어 "WIKipedia"는 "ZLNLSHGLD"로 암호화된다. 카이사르는 알파벳을 세 글자씩 돌렸지만, 어떤 숫자도 통한다.

대체 암호의 또 다른 방법은 키워드를 기반으로 한다. 모든 공백과 반복된 문자는 단어나 구에서 제거되며, 인코더는 이를 암호문자의 시작으로 사용한다. 암호문자의 끝은 키워드에 있는 글자를 반복하지 않고 순서대로 배열한 나머지 알파벳이다. 예를 들어, 키워드가 CHIPER인 경우 암호 문자는 다음과 같이 보일 것이다.

정상 문자 a b c d e g h i j k l n o p q t t u v x y z
암호문자 c i p h e r a b d f j k k l n q s t u v x y z

앞의 예들은 모두 단 하나의 암호문자가 사용되는 단일한 알파벳 대체 암호의 예였다. 다중 암호 알파벳이 사용되는 폴리 알파벳 대체 암호도 가능하다. 인코더는 자신이 선택한 어떤 기법을 사용하여 두 개 이상의 암호 알파벳을 구성하고, 어떤 암호 알파벳이 모든 문자나 단어와 함께 사용되는지 교대로 그들의 메시지를 암호화한다. 이것은 코드브레이커가 두 개의 암호 알파벳을 모두 알아내야 하기 때문에 메시지를 해독하기가 훨씬 더 어렵게 만든다.

디코딩이 훨씬 더 어려운 폴리 알파벳 대체 암호의 또 다른 예는 혁신적인 인코딩 방식인 Vigenere square이다. 사각형에는 텍스트 암호화에 사용되는 26개의 다른 암호문자가 있다. 각각의 암호문자는 원래 알파벳의 또 다른 우측 시저 이동에 불과하다. 비게네르 광장은 다음과 같이 보인다.

                A B C D E F G H I J K L M N O P Q R S T U V W X Y Z                 B C D E F G H I J K L M N O P Q R S T U V W X Y Z A                 C D E F G H I J K L M N O P Q R S T U V W X Y Z A B                 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C                 E F G H I J K L M N O P Q R S T U V W X Y Z A B C D                 F G H I J K L M N O P Q R S T U V W X Y Z A B C D E                 G H I J K L M N O P Q R S T U V W X Y Z A B C D E F                 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G                 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H                 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I                 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J                 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K                 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L                 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M                 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N                 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O                 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P                 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q                 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R                 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S                 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T                 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U                 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V                 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W                 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X                 Z A B C D E F G H I J K L M N O P Q R S T U V W X Y 

비게네르 사각형을 사용하여 메시지를 암호화하려면 코더는 먼저 사용할 키워드를 선택한 다음 인코딩할 메시지와 길이가 같을 때까지 반복한다. LEMON이 키워드일 경우, 반복된 키워드의 각 문자는 코딩할 메시지의 각 문자에 사용할 암호(어떤 행)를 알려준다. 두 번째 행의 암호문자는 A는 B, B 등은 C를 사용한다. 그것은 암호 문자 'B'이다. 각각의 암호문자는 그 안에 있는 첫 글자에 의해 이름 지어진다. 예를 들어 키워드가 LEMON이고 인코딩할 메시지가 ARCHITATDAWN인 경우 인코딩은 다음과 같다.

일반 텍스트 아쿠아타다WN
레몬레몬레
암호문 LXFOPVEFRNHR

일부 대체 암호는 문자 대신 숫자를 사용하는 것을 포함한다. 이것의 예는 대암호인데, 여기서 숫자들은 음절을 나타내기 위해 사용되었다. 또한 키워드에 기초한 문자에 대해 네 가지 다른 숫자 쌍 옵션을 포함하는 다른 숫자 대체 암호도 있다.

숫자 대신에, 기호들은 문자나 음절을 대체하는데도 사용될 수 있다. 이것의 한 예로 조디악 알파벳이 있는데, 여기서 12궁도의 기호는 다른 문자를 나타내기 위해 사용되었는데, 예를 들어, 태양의 기호는 A를, 목성은 B를, 토성은 C를 나타낸다. 점, 선 또는 대시를 사용할 수도 있는데, 이것은 암호는 아니지만 그럼에도 불구하고 점이나 대시를 문자로 사용하는 모스 부호의 한 예다. 돼지펜 암호는 격자 체계나 선과 점을 사용하여 문자에 대한 기호를 설정한다. 알파벳의 문자를 기호나 점, 대시로 대체하는 다양한 방법들이 있다.

전환 암호

전치 암호에서는 문자 자체는 변하지 않고 그대로 유지되지만, 메시지 내의 순서는 어떤 잘 정의된 계략에 따라 뒤틀린다. 많은 전이 암호는 기하학적 설계에 따라 이루어진다. 간단한 암호화는 모든 단어를 거꾸로 쓰는 것이다. 예를 들어, "Hello my name is Alice"는 이제 "olleH ym eman si ecilA"가 될 것이다. 스키타이틀은 방법의 전치를 돕는 기계다.

칼럼 암호에서 원본 메시지는 왼쪽에서 오른쪽으로 그리고 위에서 아래로 직사각형으로 배열된다. 다음으로 키를 선택하여 직사각형의 각 열에 번호를 할당하여 재배열 순서를 결정한다. 키의 글자에 해당하는 숫자는 알파벳의 위치에 따라 결정된다. A는 1, B는 2, C는 3 등 예를 들어, 핵심 단어가 CAT이고 메시지가 THE SKY IS BLUE이면 메시지는 다음과 같이 배열된다.

                         C A T 3 1 20 T H E S K Y I S B L U E 

다음, 글자들은 숫자 순서대로 찍히고 그것이 메시지를 전치시키는 방법이다. 그 결과 "하늘은 파랗다"는 메시지는 다음과 같이 되었다. HKSOUTSLYBE

중국 암호의 전치법에서는 문자의 글자가 오른쪽에서 왼쪽으로, 아래로, 위로 쓰여 글자를 스크램블한다. 그런 다음 첫 번째 행부터 새로운 암호문을 얻기 위해 글자를 취한다. 예를 들어, 암호화가 필요한 메시지가 THE DOG RAN FAR이었다면, 중국어 암호는 다음과 같이 보일 것이다.

                           R R G T A O H F N D E 

암호 텍스트는 RRGT AAOH FNDE라고 읽는다.

많은 전치 암호는 이 두 가지 예시와 유사하며, 보통 글자를 행이나 열로 재배열한 다음 문자를 전치하는 체계적인 방법으로 취한다. 다른 예로는 수직 평행과 이중 전이 암호 등이 있다.

제품 암호에서 대체와 전위치를 혼합하여 더 복잡한 알고리즘을 구성할 수 있다; DES와 같은 현대 블록 암호는 대체와 전위의 여러 단계를 통해 반복된다.

고전 암호의 암호해석

고전적인 암호는 보통 깨지기 꽤 쉽다. 공격자가 충분한 암호문만 알고 있기 때문에 암호문 전용 공격에 취약하더라도 많은 고전 암호문이 깨질 수 있다. 일부 고전 암호(예: 카이사르 암호)는 작은 키 공간을 가지고 있다. 이 암호는 단순히 모든 키를 시험해 보는 것만으로 맹렬한 공격력으로 깨질 수 있다. 대체 암호는 큰 키 공간을 가질 수 있지만, 예를 들어 일반 텍스트 언어의 빈번한 문자는 암호 텍스트의 빈번한 문자에 해당하기 때문에 빈도 분석에 취약한 경우가 많다. 비게네르 암호와 같은 폴리 알파벳 암호는 다중 대체물을 사용하여 단순한 주파수 분석을 방지한다. 그러나, 카시스키 검사와 같은 더 발전된 기술들은 여전히 이러한 암호들을 깨기 위해 사용될 수 있다.

반면에, 현대의 암호는 암호문 전용 공격보다 훨씬 더 강한 공격을 견딜 수 있도록 설계되었다. 좋은 현대 암호는 알려진 문자 공격과 선택된 문자 공격 및 선택문자 공격을 포함한 광범위한 잠재적 공격에 대해 안전해야 한다. 이러한 암호에 대해 공격자는 일반 텍스트와 해당 암호 텍스트를 어느 정도 알고 있더라도, 그리고 자신이 직접 일반 텍스트나 암호 텍스트를 선택할 수 있더라도 키를 찾을 수 없어야 한다. 고전적인 암호는 이러한 훨씬 더 강력한 기준을 충족하지 못하므로 더 이상 심각한 응용에 관심이 없다.

고전 암호의 일부 기법은 현대 암호의 강화에 사용될 수 있다. 예를 들어 AESMixColumns 단계는 힐 암호다.[1]

참고 항목

참조

  1. ^ Xintong, Kit Choy. "Understanding AES Mix-Columns Transformation Calculation" (PDF). Retrieved 2016-10-26.