Криптология подстановочно-перестановочный шифр и его применение

–PAGE_BREAK–Становление науки криптологии
        В ручных шифрах того времени часто используются таблицы, которые дают простые шифрующие процедуры перестановки букв в сообщении. Ключом в них служат размер таблицы, фраза, задающая перестановку или специальная особенность таблиц. Простая перестановка без ключа — один из самых простых методов шифрования, родственный шифру скитала. Например, сообщение НЕЯСНОЕ СТАНОВИТСЯ ЕЩЕ БОЛЕЕ НЕПОНЯТНЫМ записывается в таблицу по столбцам. Для таблицы из 5 строк и 7 столбцов это выглядит так:
Н         О      Н       С        Б        Н       Я

Е         Е       О       Я        О       Е        Т

Я         С       В       Е        Л       П       Н

С         Т       И       Щ       Е       О       Ы

Н        А       Т        Е        Е       Н       М

После того, как открытый текст записан колонками, для образования шифровки он считывается по строкам. Если его записывать группами по 5 букв, то получится: НОНСБ НЯЕЕО ЯОЕТЯ СВЕЛП НСТИЩ ЕОЫНА ТЕЕНМ. Для использования этого шифра отправителю и получателю нужно договориться об общем ключе в виде размера таблицы. Объединение букв в группы не входит в ключ шифра и используется лишь для удобства записи несмыслового текста.

        Более практический метод шифрования, называемый одиночной перестановкой по ключу очень похож на предыдущий. Он отличается лишь тем, что колонки таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы. Использовав в виде ключа слово ЛУНАТИК, получим такую таблицу.

Л        У       Н        А       Т        И       К

4         7        5         1       6         2        3

Н        О       Н        С       Б        Н       Я

Е        Е        О        Я       О        Е       Т

Я        С        В       Е        Л        П       Н

С        Т        И       Щ       Е        О       Ы

Н        А        Т       Е        Е        Н       М
               до перестановки
А       И       К       Л       Н      Т      У

1        2       3        4        5       6       7

С       Н       Я      Н      Н       Б       О

Я       Е       Т       Е      О       О       Е

Е       П       Н      Я      В       Л       С

Щ      О       Ы     С      И       Е       Т

Е       Н       М      Н      Т       Е       А
         после перестановки

В верхней строке ее записан ключ, а номера под ключом определены по естественному порядку соответствующих букв ключа в алфавите. Если в ключе встретились бы одинаковые буквы, они бы нумеровались слева направо. Получается шифровка: СНЯНН БОЯЕТ ЕООЕЕ ПНЯВЛ СЩОЫС ИЕТЕН МНТЕА. Для дополнительной скрытности можно повторно шифровать сообщение, которое уже было зашифровано. Этот способ известен под названием двойная перестановка. Для этого размер второй таблицы подбирают так, чтобы длины ее строк и столбцов были другие, чем в первой таблице. Лучше всего, если они будут взаимно простыми. Кроме того, в первой таблице можно переставлять столбцы, а во второй строки. Наконец, можно заполнять таблицу зигзагом, змейкой, по спирали или каким-то другим способом. Такие способы заполнения таблицы если и не усиливают стойкость шифра, то делают процесс шифрования гораздо более занимательным.

      Кроме одиночных перестановок использовались еще двойные перестановки столбцов и строк таблицы с сообщением. При этом перестановки определялись отдельно для столбцов и отдельно для строк. В таблицу вписывался текст, и переставлялись столбцы, а потом строки. При расшифровке порядок перестановок был обратный. Насколько просто выполнялось это шифрование, показывает следующий пример:
         2        4        1       3

4       П       P        И       Е

1       3       Ж       A       Ю

2                Ш       Е        С

3       Т       О        Г        О
                исходная

                таблица
         1         2        3         4

4       И       П        Е         Р

1       A        3       Ю       Ж

2       Е                  С        Ш

3       Г        Т        О        О
          перестановка

            столбцов
         1        2         3      4

1       A       3        Ю     Ж

2       Е                  С      Ш

3       Г       Т         О      О

4       И       П        Е      Р
           перестановка

              строк

Получается шифровка АЗЮЖЕ СШГТООИПЕР. Ключом к этому шифру служат номера столбцов 2413 и номера строк 4123 исходной таблицы. Число вариантов двойной перестановки тоже велико: для таблицы 3х3 их 36, для 4х 4 их 576, а для 5 х 5 их уже 14400. Однако двойная перестановка очень слабый вид шифра, легко читаемый при любом размере таблицы шифрования.

Выдающимся английским философом и изобретателем Роджером Бэконом, предвосхитившим многие позднейшие открытия (наиболее значительное из его изобретений — очки, которые он предложил в 1268 году), был найден состав черного пороха. Так почему же традиционно считают его изобретателем Бертольда Шварца, по преданиям казненного императором Венцеславом на пороховой бочке? Карамзин по этому поводу писал: «Нет сомнения, что и монах Рогер Бакон за 100 лет до Бертольда Шварца умел составлять порох: ибо ясно говорит в своем творении de nulitate Magiae о свойстве и силе оного». Дело в том, что средневековые ученые, сделав открытие, отнюдь не всегда спешили его опубликовать в письмах коллегам, как это было тогда принято при отсутствии периодических научных изданий. Нередко ту часть открытия, которую теперь называют know how, они шифровали анаграммой, переставляя буквы сообщения по известному только им ключу. Например, названия древней и современной столиц Японии в русском написании тоже представляют собой анаграмму: КИОТО — ТОКИО.

В упомянутом труде Бэкона состав пороха был приведен в виде зашифрованной анаграммы, которую до появления сверхбыстродействующих ЭВМ не удавалось вскрыть, и слава открытия поэтому приписывалась Шварцу. Гораздо более сложная проблема возникает с приписываемым Галилео Галилею открытием спутников Юпитера. Долгое время приведенная им анаграмма читалась так: «Высочайшую планету двойною наблюдал», но в 1960-х годах с применением компьютеров при расшифровке был получен иной вариант прочтения: «Привет вам, близнецы, Марса порождение!» Конечно, открытие Фобоса и Деймоса на слабеньком телескопе за два с половиной столетия до американца Асафа Холла — событие мало реальное, но кто знает? Описал же Свифт в «Путешествиях Гулливера» спутники Марса за полтораста лет до астрономов с поразительной точностью! Может быть Свифт знал результаты Галилея, которые сейчас неизвестны? Шифры перестановки чрезвычайно коварны в том смысле, что могут дать несколько вариантов осмысленного прочтения, если не знать точного значения ключа.

Какие же шифры применялись еще средневековыми учеными? На известной гравюре Дюрера «Меланхолия» позади грустящего ангела изображен магический квадрат, заполненный цифрами. Магическими квадратами называются квадратные таблицы со вписанными в их клетки последовательными натуральными числами от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Подобные квадраты широко применялись для вписывания шифруемого текста по приведенной в них нумерации. Если потом выписать содержимое таблицы по строкам, то получалась шифровка перестановкой букв. Считалось, что созданные с их помощью шифровки охраняет не только ключ, но и магическая сила. Вот пример магического квадрата и его шифровки:

16      3       2       13

5       10      11      8

9       6        7       12

4       15      14      1
О       И       Р       Т

З       Ш       Е       Ю

         Ж       А       С

Е        Г       О       П

Полученная из ПРИЕЗЖАЮ ШЕСТОГО, шифровка ОИРТЗШЕЮ ЖАСЕГОП представляется довольно основательной. На первый взгляд кажется, будто магических квадратов очень мало. Тем не менее их число очень быстро возрастает с увеличением размера квадрата. Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000. Поэтому магические квадраты больших размеров могли быть хорошей основой для надежной системы шифрования того времени, потому что ручной перебор всех вариантов ключа для этого шифра был немыслим.

Широкое развитие торговли в средние века потребовало специфических шифров, предельно простых и удобных, которыми могли бы пользоваться купцы для передачи, например, даты приезда или цены товара. Это были простые шифры замены цифр на буквы, основанные на ключевом слове. Собственно, это коды, а не шифры — вспомните обозначение месяцев на банках консервов, но код, примененный единожды с неизвестной таблицей кодирования, схож по свойствам с шифром. Торговцы заранее договаривались использовать общее ключевое слово, буквы которого соответствовали бы цифрам. Например, для ключа РЕСПУБЛИКА цифра 0 означает букву Р, цифра 1 означает Е, 2 — С, 3-Н и так далее. Поэтому, получив от корреспондента сообщение, ПРИБЫВАЮ ЕЛРПАС, они его читали, как ПРИБЫВАЮ 16/03/92. Простота и удобство этой системы шифрования позволили ей дожить до начала этого века без всяких изменений.

Другой шифр, обычно называемый шифром Гронсфельда, состоит в модификации шифра Цезаря числовым ключом. Для этого под сообщением пишут ключ. Если ключ короче сообщения, то его повторяют циклически. Шифровку получают будто в шифре Цезаря, но отсчитывая необязательно только третью букву по алфавиту, а ту, которая сдвинута на соответствующую цифру ключа. Так, применяя в качестве ключа группу из трех начальных цифр числа «пи», а именно 314, получаем шифровку:
сообщение       СОВЕРШЕННО СЕКРЕТНО
ключ                 3143143143143143143
шифровка       ФПЖИСЬИОССАХИЛФИУСС

Чтобы зашифровать первую букву сообщения С используя первую цифру ключа 3, отсчитывается третья по порядку от С в алфавите буква С-Т-У-Ф и получается буква шифровки Ф. Разновидность этого шифра была применена в резидентном англо-русском словаре, составленном студентами МВТУ, и взломка его доставила слушателям лекций по программированию не меньше удовольствия, чем разгадывание кроссворда. Шифр Гронсфелвда имеет массу модификаций, претендующих на его улучшение, от курьезных, вроде записи текста шифровки буквами другого алфавита, до нешуточных, как двойное шифрование разными ключами. Кроме этих шифров, зачастую использовался шифр простой замены, заключающийся в замене каждой буквы сообщения на соответствующую ей букву шифра. Такой шифр, популярный среди школьников, является простым кодом и вскрытие его возможно при длине шифровки всего в 20-30 букв, а при длинах текста свыше 100 символов представляет собой очень простую, но весьма увлекательную задачу приведенную ниже. А сейчас рассмотрим рождение шифра сложной замены, шифры сложной замены называют многоалфавитными, так как для шифрования каждого символа исходного сообщения применяется свой шифр простой замены. Шифр Гронсфельда тоже многоалфавитный шифр (в нем 10 вариантов замены), который используется по сей день.

Архитекторы и исследователи Италии эпохи Возрождения считают, что один из самых важных этапов ренессансной архитектуры связан с именем Леона Батиста Альберти, написавшем десять книг о зодчестве, построившим палаццо Ручеллаи, церковь Иль Джезу и ряд других замечательных произведений зодчества средневековой Италии. Будучи теоретиком искусства, он обобщил опыт гуманистической науки в изучении античного наследия, написав ряд трактатов: «О статуе», «О живописи», «О зодчестве». С другой стороны, криптологи всего мира почитают его отцом своей науки. Главным достижением Альберти в криптологии было изобретение многоалфавитной замены, сделавших шифровку очень устойчивой к вскрытию. Кроме самого шифра он еще подробно описал устройства из вращающихся колес для его реализации. Этот шифр можно описать таблицей шифрования, иногда называемой таблицей Виженера, по имени Блеза Виженера, дипломата XVI века, который развивал и совершенствовал криптографические системы:

        АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ

А     АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ

Б      _АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ

В     Я_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮ

Г     ЮЯ_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭ

           …….

Я     ВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_АБ

_      БВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_А

Каждая строка в этой таблице соответствует одному шифру замены вроде шифра Юлия Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его циклически повторяют. Шифровку получают, находя символ в колонке таблицы по букве текста и строке, соответствующей букве ключа. Этот очень распространенный вид шифра сохранился до наших дней. Например, используя ключ АГАВА, из сообщения ПРИЕЗЖАЮ ШЕСТОГО получаем следующую шифровку:

сообщение: ПРИЕЗЖАЮ ШЕСТОГО

     ключ:     АГАВААГАВААГАВАА

шифровка: ПНИГЗЖЮЮЮАЕОТМГО

В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять почаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ. Для ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание. Итак, помимо ряда строений в античной манере, являющихся шедеврами архитектуры итальянского Возрождения, Альберти еще ввел в практику криптографии многоалфавитные шифры замены. Его книга «Трактат о шифре», написанная в 1466 году, представляла собой первый в мире научный труд по криптологии, если не считать арабских рукописей, с которыми Европа в это время вряд ли была хорошо знакома.

Многие историки считают Иоганна Трисемуса, аббата из Германии, вторым отцом современной криптологии. В 1508 году Трисемус написал «Полиграфию», первую печатную работу по криптологии. В ней он первым систематически описал применение шифрующих таблиц, заполненных алфавитом в случайном порядке. Для получения такого шифра обычно использовались ключевое слово или фраза и таблица, которая для русского языка может иметь размер 5 х 6. Ключевое слово вписывалось в таблицу по строкам, а повторяющиеся буквы отбрасывались. Таблица дозаполнялась не вошедшими в нее буквами алфавита по порядку. Поскольку ключевое слово легко хранить в памяти, то такой подход упрощал процессы шифрования и дешифрования. Для ключа РЕСПУБЛИКА таблица будет иметь следующий вид:

 Р       Е       С       П       У       Б

Л       И       К       А       В       Г

Д       Ж       3       М       Н       О

Т       Ф       Х       Ц       Ч       Ш

Щ       Ь       Ы       Э       Ю       Я

Для описанного выше шифра Полибия с данной таблицей сообщение ОТПЛЫВАЕМ давало шифровку ШЩАДСНМИЦ. Такие табличные шифры называются монограммными, так как шифрование ведется по одной букве. Трисемус первым заметил, что можно шифровать по две буквы за раз. Такие шифры были названы биграммными. Наиболее известный шифр биграммами называется Playfair. Он применялся Великобританией в Первую мировую войну. Опишем его на примере той же самой таблицы. Открытый текст разбивался на пары букв (биграммы) и текст шифровки строился из него по следующим двум очень простым правилам.

1.                      Если обе буквы биграммы исходного текста принадлежали одной колонке таблицы, то буквами шифра считались буквы, которые лежали под ними. Так биграмма УН давала текст шифровки ВЧ. Если буква открытого текста находилась в нижнем ряду, то для шифра бралась соответствующая буква из верхнего ряда и биграмма ОЯ давала шифр ШБ. (Биграмма из одной буквы или пары одинаковых букв тоже подчинялась этому правилу и текст ЕЕ давал шифр ИИ).

2.                      Если обе буквы биграммы исходного текста принадлежали одной строке таблицы, то буквами шифра считались буквы, которые лежали справа от них. Так биграмма ИВ давала текст шифровки КГ. Если буква открытого текста находилась в правой колонке, то для шифра бралась соответствующая буква из левой колонки и биграмма ОМ давала шифр ДН.

Если обе буквы биграммы открытого текста лежали в разных рядах и колонках, то вместо них брались такие две буквы, чтобы вся четверка их представляла прямоугольник. При этом последовательность букв в шифре была зеркальной исходной паре. Например, СТ шифровалось как РХ, а ТБ шифровалось как ШР. При шифровании фразы ПУСТЬ КОНСУЛЫ БУДУТ БДИТЕЛЬНЫ по биграммам получается такая шифровка:
ПУ СТ ЬК ОН СУ ЛЫ БУ ДУ ТБ ДИ ТЕ ЛЬ НЫ

УБ РХ ЫИ ДО ПБ КЩ РБ HP ШР ЖЛ ФР ИЩ ЗЮ

Шифрование биграммами резко усилило стойкость шифров к вскрытию. При всем при том, что «Полиграфия» была довольно доступной печатной книгой, описанные в ней идеи получили признание лишь тремя веками позже. Скорее всего, это вызвано плохой известностью среди криптографов Трисемуса, который слыл богословом, библиофилом и основателем архивного дела. Среди шифров средневековья встречается много курьезов. Леонардо да Винчи шифровал большинство своих личных записей. Самый простой вид шифра, которым он пользовался, это обратное написание текста так, что прочесть его можно лишь в отражении зеркала. Однако Леонардо иногда использовал шифры и посерьезнее, поэтому далеко не все его заметки и записи расшифрованы и изучены. Люди, умеющие писать левой рукой справа налево зеркальный текст, нередки. Изумительно, но встречаются люди, которые умеют даже произносить фразы «наоборот» и понимать их на слух. Поистине, человеческим способностям нет и не будет предела. В средние века появляются профессиональные и даже потомственные криптографы, вроде семейства Ардженти, служившего у папы Римского.

Тем не менее папы Римские сами не чуждались услуг криптографов и выдающийся итальянский математик Джироламо Кардано, имя которого дошло до нас благодаря изобретенному им шарнирному механизму и первой публикации о методе решения уравнений третьей степени, состоял у них на службе. Его перу принадлежит несколько книг по криптографии и описание метода трафаретов, который будет рассмотрен ниже. Если учесть род занятий Кардано, становится понятным, почему, выведя гороскоп Христа, он остался недоступным инквизиции, сжегшей Бруно и судившей Галилея за куда меньшую ересь: эка, невидаль, что Земля вертится! Жизнь и смерть Джироламо полны легенд. Больше всего современников в Кардано поражал дар предвидения, благодаря которому он безмятежно перенес казнь своего сына и потерю крупного состояния. Вероятно, хотя бы отчасти его мистический талант знать будущее объясняется принадлежностью к криптографической службе, знающей все, что можно узнать. Но вот, предсказав продолжительность своей жизни в 75 лет, он в назначенный год покончил самоубийством, оставив записку: «Если и неверно, то неплохо придумано». Увлечение теорией магических квадратов привело Кардано к открытию нового класса шифров перестановок, названных решетками или трафаретами. Они представляют собой квадратные таблицы, где четверть ячеек прорезана так, что при четырех поворотах они покрывают весь квадрат. Вписывание в прорезанные ячейки текста и повороты решетки продолжаются до тех пор, пока весь квадрат не будет заполнен. Например, на рисунке ниже показан процесс шифровки решеткой 4 х 4. Черными квадратами обозначены непрорезанные ячейки, а повороты осуществляются по часовой стрелке на указанный ниже угол:

 

В результате получается шифровкаЗТП ОЖШРЕИГАЕСЮО. Число подобныхрешеток быстро растет с их размером. Так, решетка 2 х 2 единственна, решеток 4 х 4 уже 256, а решеток размером 6 х 6 свыше ста тысяч. Несмотря на кажущуюся сложность, шифры типа решеток довольно просто вскрываются и не могут использоваться в виде самостоятельного шифра. Однако они очень удобны и еще долго использовались в практике для усиления шифров замены. Один мой знакомый, остановившись при чтении рукописи книги на этом месте, попытался высказать сомнение в том, что шифры подобного рода легко вскрываются. Поскольку это глубоко ошибочное и обидное для криптологов мнение широко распространилось из популярных математических книг или иных источников дезинформации, то в следующей главе специально приведен пример вскрытия шифровки, сделанной этой решеткой.

В Англии XVII века возглавлял криптографическую службу математик Джон Валлис, основавший исчисление бесконечно малых, но получивший научное признание и профессуру в Оксфорде не за химерические бесконечно малые, а за редкостные успехи в расшифровке. В Германии же лучшим криптографом тогда был Лейбниц, основатель Берлинской академии наук, языковед и математик, один из создателей дифференциального исчисления, к имени которого мы еще вернемся позже в связи с развитием криптографии в России. Одно время его высокий покровитель, ганноверский курфюрст Георг1, став королем Англии, хотел пригласить Лейбница на британскую криптографическую службу, но Валлис был там незаменим и утечка континентальных «мозгов» на запад не состоялась. Лейбницу не подфартило стать главным криптографом Англии может быть и потому, что Ньютон, оспаривающий его авторство в дифференциальном исчислении, единолично заправлял в Королевском научном обществе и изо всех сил преследовал менее именитого иностранного конкурента. Другой раз Лейбницу не повезло с приглашением в Петербург для организации русской криптографической службы. Неожиданная его болезнь и смерть расстроили планы Петра 1, активно вербовавшего нужных России ученых. Человеком, сумевшим завершить развитие криптографии в отдельную научную дисциплину, стал, по-видимому, однофамилец Роджера Бэкона — Френсис Бэкон. Будучи лорд-канцлером, при короле Якове 1, он хорошо знал потребности государства в надежных шифрах, и его первая талантливая работа, относящаяся к 1580 году, в дальнейшем получила блестящее практическое развитие. В частности, именно он впервые предложил двоичное кодирование букв латинского алфавита — то же самое, которое используется сейчас в компьютерах.

Такой заботливый уход за пустившей первые ростки криптографией привел к тому, что она скоро стала давать плоды. Разгром Великой Армады в 1588 году в значительной степени был обусловлен мощью английской криптографической школы, легко ломавшей испанские шифры и сообщавшей о всех передвижениях неприятельских судов. Криптография была известна и применялась во многих слоях общества Британии. Лондонец Самуэль Пепис (1633-1703) всемирно известен своим дневником, по которому историки пишут труды о переходе от Пуританства к Реставрации. Искусствоведы включили это произведение в мировую сокровищницу литературы. Пепис окончил Кембридж благодаря кузену отца — адмиралу Монтегю и имел много друзей: ученого Исаака Ньютона, архитектора Кристофера Рена, поэта и драматурга Джона Драйдена. Пепис был лично свидетелем таких незабываемых для Англии событий, как возвращение короля Чарльза II в Англию, большая чума 1664 года, пожар Лондона 1666 года, революция 1688 года. Интересно, что его мемуары были зашифрованы по системе криптолога Томаса Шелтона и дополнительно собственным шифром Пеписа, поскольку содержали много скандальных фактов о великих современниках. Вместе с его личными книгами и бумагами дневник после смерти писателя попал в Кембридж, где сразу же привлек внимание исследователей. Первый успех в его расшифровке был получен лишь в 1822 году, а полностью она завершена в 1899 году. Таким образом, к XVIII веку криптография окончательно сложилась в виде самостоятельной науки. Однако, несмотря на наличие профессиональных криптологов, находящихся на государственной службе, и постоянного использования шифров в дипломатии и военном деле, криптология еще не вышла из младенческого возраста и ею могли заниматься лишь избранные, одаренные одиночки.

    продолжение
–PAGE_BREAK–