Рис. 5.5 Один из вариантов трафарета для шифрования сообщений
На представленном рисунке черным цветом закрашены ячейки, которые следует вырезать.
В качестве примера зашифруем с помощью данного трафарета открытый текст СЕКРЕТНОЕ ПИСЬМО. Для этого сначала необходимо наложить трафарет на чистый лист бумаги и в вырезанных прямоугольниках вписать буквы открытого текста.
В результате на листе получится следующая надпись:
Теперь для создания криптограммы достаточно убрать трафарет и между буквами открытого текста вписать любые другие буквы в произвольном порядке. В этом случае криптограмма может принять следующий вид:
Для того чтобы запутать незаконного пользователя, буквы можно вписать так, чтобы получился какой-либо вполне обычный текст.
При расшифровке такой криптограммы получателю сообщения достаточно наложить аналогичный трафарет на лист с текстом и в вырезанных ячейках прочитать открытый текст.
Необходимо отметить, что при использовании данного шифра для шифровки сравнительно коротких сообщений при создании трафарета необходимо обратить внимание на то, чтобы количество вырезанных клеточек было не меньше, чем количество букв в открытом тексте. Для шифровки длинных сообщений можно сделать трафарет с большим количеством вырезанных ячеек или же один и тот же трафарет использовать несколько раз.
Более сложной системой шифрования, в которой также используется трафарет определенной формы, является шифр, называемый решеткой Кардано. Название этого шифра произошло от имени его автора, итальянского математика и философа Джероламо Кардано. Именно он в далеком 1566 году водной из своих работ опубликовал описание рассматриваемого шифра.
Основу простейшей решетки Кардано составляет трафарет, выполненный в форме квадратной таблицы. При этом ячейки в данном трафарете вырезаются так, чтобы после поворота трафарета вокруг центральной оси буквы, записанные в ячейках на подложенном листе бумага, не перекрывались. Другими словами, при четырех поворотах трафарета на 90º ячейки, перекрыв все клетки таблицы, ни разу не должны оказаться в одном и том же месте.
Рис. 5.8 Решетка Кардано размером 4x4
Так, например, вариант такого трафарета размером 4x4 имеет вид, изображенный на рис. 5.6.
На представленном рисунке черным цветом закрашены ячейки, которые следует вырезать.
В качестве примера зашифруем с помощью решетки Кардано открытый текст СЕКРЕТНАЯ ВСТРЕЧА Шифрование данного сообщения необходимо начать с заполнения ячеек таблицы буквами открытого текста Для этого наложим трафарет на лист с таблицей и в вырезанные ячейки впишем первые буквы открытого текста. В рассматриваемом примере это первые четыре буквы, а именно буквы С, Е, К и Р.
В результате надпись на листе будет выглядеть так:
После этого повернем трафарет по часовой стрелке на 90º и в свободные ячейки вновь запишем следующие четыре буквы открытого текста В рассматриваемом примере это буквы Е, Т, Н и А
Теперь повернем трафарет по часовой стрелке еще на 90º и в свободные ячейки вновь запишем следующие четыре буквы открытого текста а именно буквы Е, П, И и С.
Следующий поворот трафарета также следует провести по часовой стрелке еще на 90º, а свободные ячейки заполнить оставшимися четырьмя буквами открытого текста
После заполнения всех свободных ячеек и снятия трафарета на листе бумаги останется шифровальная таблица которая имеет следующий вид:
Теперь для создания криптограммы достаточно последовательно выписать буквы из ячеек первой строки, затем из ячеек второй строки и так далее. В окончательном виде криптограмма для открытого текста СЕКРЕТНАЯ ВСТРЕЧА будет выглядеть так:
ЯСЕР ЕВЕТ ЧНКС ААТР
Для того чтобы расшифровать эту шифрограмму, получатель сообщения должен сначала заполнить таблицу известных ему размеров буквами криптограммы. Затем необходимо наложить на заполненную таблицу трафарет и, поворачивая его по часовой стрелке на 90º, последовательно выписать из открывающихся ячеек буквы открытого текста.
Рис. 5.7 Решетка Кардано размером 6x6
Если пользователю потребуется зашифровать открытый текст, содержащий большое количество знаков, то решетку Кардано размером 4x4 можно использовать неоднократно.
В то же время для шифрования длинных сообщений любой желающий может составить и использовать решетку Кардано практически любых размеров.
Один из вариантов решетки Кардано размером 6x6 имеет вид, изображенный на рис. 5.7.
На представленном рисунке черным цветом закрашены ячейки, которые следует вырезать. Порядок пользования этим трафаретом аналогичен ранее рассмотренному.
Остается добавить, что применение решеток Кардано обеспечивает сравнительно высокую степень защиты и уменьшает вероятность того, что сообщение будет прочитано неподготовленным незаконным пользователем. Однако для специалиста взлом такого шифра не представляет особых трудностей.
Одной из особенностей рассмотренных ранее систем шифрования является то, что в них каждая буква открытого текста шифруется отдельно. Однако еще в Средние века некоторые ученые предложили шифры с использованием алгоритмов, обеспечивающих одновременное шифрование сразу двух букв сообщения. Такие шифры стали называться биграммными.
Одно из первых описаний биграммного шифра было опубликовано немецким ученым И. Тритемиусом в начале XVI века Однако некоторые специалисты считают, что первое заслуживающее внимания описание биграммного шифра привел итальянец Д. Порта в 1563 году в книге «О тайной переписке».
Необходимо отметить, что биграммные шифры, несмотря на более высокую степень защищенности, по сравнению с другими использовавшимися в то время системами шифрования, в течение примерно 300 лет почти не применялись. И лишь в XIX веке одновременно в нескольких европейских странах началась активная работа над созданием оригинальных биграммных шифров. Так, например, в России над своим вариантом биграммного шифра работал талантливый криптограф и изобретатель П. Ф. Шиллинг, а в Британии — Ч. Ветстоун.
Название одного из биграммных шифров, придуманного в XIX веке, связано с именем министра почт Британской империи барона Л. Плейфера (L Playfair). Шифр «Playfair» был настолько удачным, что в различных версиях применялся англичанами и во время Первой мировой войны уже в XX столетии.
При использовании шифра «Playfair» алгоритм шифрования заключается в том, что открытый текст разделяется на пары букв, после чего каждая пара по определенному правилу заменяется на пару букв криптограммы. При этом в процессе шифрования необходимо использовать таблицу, заполненную буквами соответствующего алфавита.
В оригинальном шифре «Playfair» для английского алфавита применяется таблица размером 5x5 с паролем Playfair. Для русского алфавита можно использовать, например, уже рассмотренную ранее таблицу с паролем ПАРОДИЯ:
В качестве примера зашифруем с помощью шифра «Playfair» открытый текст СЕКРЕТНОЕ СООБЩЕНИЕ.
Как уже отмечалось, сначала шифруемое сообщение необходимо разбить на пары букв, которые часто называются группами. В рассматриваемом примере после выполнения данного преобразования открытый текст СЕКРЕТНОЕ СООБЩЕНИЕ примет следующ ий вид;
СЕ КР ЕТ НО ЕС ОО БЩ ЕН ИЕ
Необходимо отметить, что в соответствии с алгоритмом шифрования пара или группа букв, состоящая из одной и той же буквы, должна быть разделена буквой X или буквой У.
В то же время одной из указанных букв следует дополнить открытый текст в том случае, если последняя группа букв будет неполной.
С учетом данных требований в рассматриваемом примере открытый текст СЕКРЕТНОЕ СООБЩЕНИЕ, разделенный на пары букв, будет выглядеть вот так:
СЕ КР ЕТ НО ЕС ОХ ОБ ЩЕ НИ ЕХ
Теперь каждую пару букв следует зашифровать отдельно с помощью составленной ранее шифровальной таблицы, ячейки которой должны быть заполнены буквами алфавита по определенному правилу. В нашем примере это приведенная выше таблица с паролем ПАРОДИЯ.
Сначала в таблице надо найти каждую из двух букв, входящих в состав подлежащей шифрованию группы. Затем следует мысленно построить четырехугольник, в двух противоположных вершинах которого находятся две шифруемые буквы открытого текста Две буквы, оказавшиеся в двух других вершинах этого прямоугольника, являются составной частью криптограммы. При этом каждая буква пары открытого текста заменяется буквой криптограммы, лежащей с ней в одной строке.
Так, например, в рассматриваемом примере при шифровании первой пары букв, а именно букв СЕ, в криптограмму следует записать буквы НЖ, вместо букв КР — буквы ЛА, вместо букв ЕТ — буквы ЯЦ и так далее.
В случае если обе буквы какой-либо группы открытого текста находятся в одном столбце таблицы, то в криптограмму записываются буквы, находящиеся под ними, то есть в соответствующих ячейках следующей строки.
Так, в рассматриваемом примере при шифровании группы ОХ открытого текста в криптограмму записывается пара ГЫ Если же при этом одна из пары букв открытого текста окажется в нижней строке столбца, то в шифрограмме эта буква должна быть заменена на букву, находящуюся в верхней строке этого столбца.
В случае, если обе буквы какой-либо группы открытого текста находятся в одной строке таблицы, то в криптограмму записываются буквы, находящиеся справа от них, то есть в соответствующих ячейках следующего столбца.
Так, например, при шифровании группы ТХ открытого текста в криптограмму записывается пара УЦ. Если же при этом одна из пары букв открытого текста окажется в крайнем правом столбце строки, то в шифрограмме эта буква должна быть заменена на букву, находящуюся в первом столбце этой строки.
По окончании шифрования криптограмма открытого текста СЕКРЕТНОЕ СООБЩЕНИЕ примет следующий вид:
НЖ ЛА ЯЦ МД ЖН ГЫ АГ ЭБ СД ГЦ
Для дешифрования такого сообщения получатель сначала должен с помощью известного ему правила или пароля составить таблицу, а затем, используя указанные выше правила, заменить пары или группы букв криптограммы на соответствующие им пары или группы букв открытого текста.