Классический шифр - Classical cipher

В криптографии , классический шифр представляет собой тип шифра , который использовался исторически , но по большей части, упал в неиспользование. В отличие от современных криптографических алгоритмов, большинство классических шифров можно практически вычислить и решить вручную. Однако их также обычно очень просто сломать с помощью современных технологий. Этот термин включает простые системы, используемые с греческих и римских времен, сложные шифры эпохи Возрождения, криптографию Второй мировой войны, такую ​​как машина Enigma и другие.

Напротив, современная сильная криптография опирается на новые алгоритмы и компьютеры, разработанные с 1970-х годов.

Типы классических шифров

Классические шифры часто делятся на транспозицию шифры и подстановочные шифры .

Подстановочные шифры

В подстановочном шифре буквы (или группы букв) систематически заменяются по всему сообщению другими буквами (или группами букв).

Хорошо известным примером подстановочного шифра является шифр Цезаря . Чтобы зашифровать сообщение с помощью шифра Цезаря, каждая буква сообщения заменяется буквой на три позиции позже в алфавите. Следовательно, A заменяется на D, B на E, C на F и т. Д. Наконец, X, Y и Z заменяются на A, B и C соответственно. Так, например, «ВИКИПЕДИЯ» шифруется как «ZLNLSHGLD». Цезарь повернул алфавит на три буквы, но работает любое число.

Другой метод подстановки шифра основан на ключевом слове. Все пробелы и повторяющиеся буквы удаляются из слова или фразы, которые затем кодировщик использует в качестве начала шифралфавита. Конец шифралфавита - это оставшаяся часть алфавита по порядку без повторения букв в ключевом слове. Например, если ключевое слово CIPHER, шифралфавит будет выглядеть так:

нормальный алфавит АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ
шифралфавит cipherabdfgjklmnoqstu vwxyz

Все предыдущие примеры были примерами одноалфавитных подстановочных шифров, в которых используется только один шифралфавит. Также возможно иметь полиалфавитный замещающий шифр , в котором используются несколько шифралфавитов. Кодировщик будет составлять два или более шифровальных алфавита, используя любые методы, которые он или она выбирает, а затем кодировать их сообщение, чередуя, какой шифралфавит используется с каждой буквой или словом. Это значительно усложняет декодирование сообщения, потому что взломщик кодов должен определить оба алфавита шифрования.

Другой пример полиалфавитного шифра подстановки, который гораздо сложнее декодировать, - это квадрат Виженера , инновационный метод кодирования. В квадрате есть 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 является ключевым словом, каждая буква повторяющегося ключевого слова будет указывать, какой шифр (какую строку) использовать для каждой буквы кодируемого сообщения. Шифровальный алфавит во второй строке использует B для A и C для B и т. Д. Это шифралфавит «B». Каждый шифралфавит назван по первой в нем букве. Например, если ключевое слово - LEMON, а кодируемое сообщение - ATTACKATDAWN , то кодировка будет следующей:

Простой текст АТАКА
Ключ ЛИМОНЛЕМ
Зашифрованный текст LXFOPVEFRNHR

Некоторые подстановочные шифры предполагают использование цифр вместо букв. Примером этого является Великий шифр , где числа использовались для обозначения слогов. Существует также другой шифр подстановки чисел, который предполагает наличие четырех различных вариантов пары чисел для буквы на основе ключевого слова.

Вместо цифр можно использовать символы для замены букв или слогов. Одним из примеров этого является зодиакальный алфавит, где знаки зодиака использовались для обозначения разных букв, например, символы солнца обозначают A, Юпитер обозначает B, а Сатурн обозначает C. Точки, линии или тире могут также можно использовать, одним из примеров этого является код Морзе , который не является шифром, но, тем не менее, использует точки и тире в качестве букв. Шифр « Свинья» использует сетку или линии и точки, чтобы установить символы для букв. Существуют различные другие методы, с помощью которых буквы алфавита заменяются символами или точками и тире.

Шифры транспонирования

В транспозиционном шифре сами буквы остаются неизменными, но их порядок в сообщении шифруется по некоторой четко определенной схеме. Многие шифры транспонирования выполнены в соответствии с геометрической схемой. Простое (и опять-таки легко взломанное) шифрование - записывать каждое слово задом наперед. Например, «Привет, меня зовут Алиса». теперь будет "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

Затем буквы берутся в числовом порядке, и именно так сообщение транспонируется. Сначала берется столбец под A, затем столбец под C, затем столбец под T, в результате сообщение «Небо голубое» стало: HKSUTSILEYBE

В методе транспонирования китайского шифра буквы сообщения пишутся справа налево, вниз и вверх по столбцам, чтобы зашифровать буквы. Затем, начиная с первой строки, берутся буквы, чтобы получить новый зашифрованный текст . Например, если сообщение, которое нужно зашифровать, было THE DOG RAN FAR, китайский шифр выглядел бы так:

                           R R G T
                           A A O H
                           F N D E

Затем зашифрованный текст читается так: RRGT AAOH FNDE

Многие шифры транспонирования похожи на эти два примера, обычно подразумевая перестановку букв в строки или столбцы с последующим их систематическим переносом для транспонирования букв. Другие примеры включают вертикальный параллелизм и шифр двойной транспозиции.

Более сложные алгоритмы могут быть сформированы путем смешивания подстановки и транспонирования в шифре продукта ; современные блочные шифры, такие как DES, проходят через несколько этапов замены и транспонирования.

Криптоанализ классических шифров

Классические шифры обычно довольно легко взломать. Многие из классических шифров могут быть взломаны, даже если злоумышленник знает только достаточный зашифрованный текст и, следовательно, они уязвимы для атаки только зашифрованного текста . Некоторые классические шифры (например, шифр Цезаря ) имеют небольшое пространство ключей. Эти шифры можно взломать методом грубой силы , то есть просто перепробовав все ключи. Шифры подстановки могут иметь большое пространство ключей, но часто поддаются частотному анализу , потому что, например, частые буквы в языке открытого текста соответствуют частым буквам в шифртекстах. Полиалфавитные шифры, такие как шифр Виженера, препятствуют простому частотному анализу с использованием множественных замен. Однако для взлома этих шифров все еще можно использовать более продвинутые методы, такие как экзамен Касиски .

С другой стороны, современные шифры разработаны, чтобы противостоять гораздо более сильным атакам, чем атаки только зашифрованного текста. Хороший современный шифр должен быть защищен от широкого спектра потенциальных атак, включая атаки с известным открытым текстом и атаки с выбранным открытым текстом, а также атаки с выбранным зашифрованным текстом . Для этих шифров злоумышленник не должен быть в состоянии найти ключ, даже если он знает какое-либо количество открытого текста и соответствующего зашифрованного текста, и даже если он может сам выбрать открытый текст или зашифрованный текст. Классические шифры не удовлетворяют этим гораздо более строгим критериям и, следовательно, больше не представляют интереса для серьезных приложений.

Некоторые методы классических шифров можно использовать для усиления современных шифров. Например, шаг MixColumns в AES - это шифр Хилла .

Смотрите также

использованная литература