Например, сообщение «ВСТРЕТИМСЯ В ШЕСТЬ» записывалось в таблицу размером 4х4 по столбцам (см. таблицу).
После того, как открытый текст был записан по столбцам, для образования шифровки он считывался по строкам. В результате получался шифротекст: «ВЕСЕСТЯСТИВТРМШЬ». Для использования этого шифра отправителю и получателю нужно было договориться об общем ключе в виде размера таблицы. Объединение букв в группы не входило в ключ шифра и использовалось лишь для удобства записи текста.
Более практичным был метод шифрования, названный одиночной перестановкой по ключу. Он отличался от предыдущего лишь тем, что столбцы таблицы переставлялись по ключевому слову, фразе или набору чисел длиной в строку таблицы. Ключевое слово (например, «ШИФР») вписывалось в первую строку таблицы, после чего осуществлялась перестановка столбцов в соответствии с порядковыми номерами букв ключа (см. 2 квадрата).
В результате считывания по строкам сообщение «ВСТРЕТИМСЯ В ШЕСТЬ» преобразовывалось в шифротекст «ЕЕСВТСЯСИТВТМЬШР».
Кроме одиночных перестановок использовались еще двойные перестановки столбцов и строк таблицы с сообщением в соответствии с заранее определённым порядком нумерации строк и столбцов таблицы, что и было ключом шифра. При этом перестановки определялись отдельно для столбцов и отдельно для строк. В таблицу вписывался текст по столбцам, после чего осуществлялись перестановки столбцов и строк (см. 3 квадрата).
В результате конечного считывания по строкам сообщение «ВСТРЕТИМСЯ В ШЕСТЬ» превращалось в такой шифротекст: СТСЯЕЕВСЬМРШТИТВ. При расшифровывании порядок перестановок был обратным. Однако даже шифры двойной перестановки были слабым видом шифра, потому что легко читались при любом размере таблицы шифрования.
Новый этап развития криптологии начался во второй половине XV века с введением в практику многоалфавитных шифров замены. Отцом этого шифра оказался теоретик искусства Леон Баттиста Альберти (Leone Battista Alberti) (1404-72), который обобщил опыт гуманистической науки в изучении античного наследия, написал трактаты «О статуе», «О живописи», «О зодчестве», 10 книг о зодчестве, построил палаццо Ручеллаи, церковь Иль Джезу и ряд других замечательных достижений зодчества средневековой Италии.
В 1466 году Альберти предоставил папской канцелярии также и трактат о шифрах, где осуществил анализ частоты букв, исследовал шифры замены и перестановки, коснулся вопросов стойкости шифров. Подмеченная Альберти разная частота появления букв в осмысленных текстах дала толчок к изучению синтаксических свойств письменных сообщений. При этом основное внимание уделялось буквам, которые чаще всего встречались в тексте.
Альберти впервые выдвинул идею «двойного» шифрования – текст, полученный в результате первого шифрования, поддавался повторному шифрованию. Он предложил использовать два или больше шифралфавитов, переходя от одного к другому в процессе шифрования и запутывая этим возможных криптоаналитиков (см. таблицу).
Здесь, например, есть два возможных шифралфавита, и мы можем зашифровать сообщение, используя по очереди то один, то другой. Таким образом, чтобы зашифровать слово «UKRAINE», зашифруем первую букву с помощью первого шифралфавита, так что «U» превратится в «Z», вторую же букву зашифруем, используя второй шифралфавит, при этом «K» станет «E». Для шифрования третьей буквы вернёмся опять к первому шифралфавиту (R – U), а, чтобы зашифровать четвёртую букву, опять обратимся ко второму шифралфавиту (A – U) и так далее: I – M, N – H, E – H. В результате получим такой шифротекст: ZEUUMHH.
Основное преимущество системы Альберти заключалась в том, что одинаковые буквы открытого текста не обязательно оставались одинаковыми в шифротексте. То есть повторяющиеся буквы шифротекста становились разными буквами открытого текста.
В своей книге Альберти предложил также свой собственный шифр с нескромным названием «шифр, достойный королей», который сделал шифровку очень стойкой к «взлому». Реализация шифра обеспечивалась с помощью механического шифровального диска, что было также одним из важнейших изобретений Альберти.
Шифровальный диск состоял из большого внешнего диска и подвижного внутреннего диска. Окружность внешнего диска была разделена на 24 ровных сектора, в которые были вписаны 20 букв латинского алфавита в их естественном порядке и 4 цифры. При этом из алфавита были изъято 6 букв, без которых можно было обойтись, – H, J, K, U, Y, W. Окружность внутреннего диска была разделена также на 24 сектора, в которые были вписаны буквы смешанного латинского алфавита.
Имея два таких прибора, корреспонденты договаривались о первой индексной букве на подвижном диске. При шифровании сообщения отправитель ставил индексную букву напротив любой буквы большого диска. Он информировал корреспондента о таком положении диска, записывая эту букву внешнего диска как первую букву шифротекста.
Очередная буква открытого текста отыскивалась на неподвижном диске, и буква меньшего диска, которая стояла напротив нее, была результатом ее шифрования. После того, как были зашифрованы несколько букв текста, положения индексной буквы менялось, о чем также сообщалось корреспонденту.
A B C D E F G I L M N O P Q R S T V X Z 1 2 3 4
L G A Z E N B O S F C H T Y Q I X K V P ET M R D
Так, например, для индексной буквы «L» одним из многих вариантов шифрования слова «PRESIDENT» может быть «ATQEIOZECX», а другим – «BHYZQBAZFI» и т.д.
B C D E F G I L M N O P Q R S T V X Z 1 2 3 4 A
L G A Z E N B O S F C H T Y Q I X K V P ET M R D
Такой шифр имел две особенности, которые делали изобретение Альберти важным событием в истории криптологии. Во-первых, в отличие от шифров простой замены шифродиск использовал не один, а несколько алфавитов для шифрования. Такие шифры получили название многоалфавитных. Во-вторых, шифродиск позволял использовать так называемые коды с перешифрованием, которые получили широкое распространение лишь в конце XIX века, то есть через четыре века после изобретения Альберти.
Для этой цели на внешнем диске имелись цифры. Альберти составил код, который состоял из 336 кодовых групп, пронумерованных от 11 до 4444. Каждому кодовому обозначению соответствовала определённая фраза. Когда такая фраза встречалась в открытом сообщении, она заменялась соответствующим кодобозначением, а с помощью диска цифры шифровались как обычные знаки открытого текста, превращаясь в буквы.
В 1474 году был написан первый в мире трактат, посвящённый исключительно криптоанализу. Это сделал Чикко Симонетта (Cicco Simonetta), один из секретарей правителей Милана – герцогов Сфорца. В нём он изложил усовершенствованные шифры замены, в том числе шифр многозначной замены, в котором одной букве (гласной) соответствовало несколько шифробозначений. Он разработал 13 правил раскрытия шифров простой замены, в которых сохранены разделители слов.
Рукопись, написанная на трех кусках пергамента, начиналась со слов: «Первое необходимое условие заключается в выяснении того, написан ли документ латинским или местным языком, а это можно установить таким способом: выясните, имеют ли слова в данном документе только пять разных окончаний, меньше или больше. Если их только пять или меньше, вы правы, считая, что документ написан местным языком…».
Ч.Симонетта в своём трактате подробно описал шифры замены, в которых для выравнивания частоты появления букв в шифротексте гласной букве соответствовал не один знак, а несколько. Здесь же впервые было приведено описание так называемого «лозунгового» шифра, который в разных модификациях будет применяться и несколько веков позже. Правило замены букв в нём определялось так: под алфавитом писалась ключевая фраза – лозунг (например, «Ukraine») без повторяемых букв, а затем буквы, которые в лозунге не встречались, в естественном порядке.
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
U K R A I N E B C D F G H J L M O P Q S T V X Y Z
В результате слово «UZHGOROD» превращается в шифротекст: «TZBELPLA».
3. Многоалфавитные шифры
В 1518 году появился первый печатный труд по криптологии «Полиграфия» (лат. Polygraphia). Она была написана Йоганном Гейденбергом (1462-1516), или Тритемием (Трисемусом), аббатом бенедиктинского монастыря Святого Мартина (г. Вюрцбург, Германия), которого многие историки считают отцом европейской криптологии. «Полиграфия» представляла собой сборник из 6 книг и содержала столбцы латинских терминов и слов, соответствующих буквам открытого текста, и первую квадратную таблицу, основу многоалфавитной замены.
Хотя в труде Тритемия были описаны много шифров – как существующих в то время, так и изобретённых самим автором, она была пронизана каббалистическими и оккультными аллюзиями.
В результате книга вызывала гнев многих монарших дворов Европы, которые думали, что Тритемий выдал в ней слишком много тайн. Кроме того, Римская католическая церковь считала труды Тритемия еретическими и в 1609 году внесла его книги в список запрещенных. Это запрещение длилось 250 лет.
В 1541 году книга была переиздана на французским языке, а вскоре был сделан её перевод на немецкий язык. В этой книге Тритемий сделал два новаторских предложения в криптологии: шифр «Аве Мария» и шифр, построенный на основе периодически сдвигаемого ключа.
Шифр «Аве Мария» основывался на принципе замены заранее оговоренных слов на буквы шифротекста. С таких слов складывалось внешне «невинное» сообщение. Например, заменим буквы «А», «К», «Т» на такие слова: «А» – ожидаю, мой; «К» – дома, ключ; «Т» – я, здесь. В таком случае позитивный тайный ответ на заданный вопрос может иметь несколько вариантов: «Я ожидаю дома» или «Здесь мой ключ».
Вторым более серьезным шифром была «таблица Тритемия» – квадратная таблица размером 24х24 со многими алфавитами, названная «tabula recta». Алфавиты были записаны в строки таблицы один под другим, причем каждый из них был сдвинут на одну позицию влево по сравнению с предыдущим.
Тритемий предлагал использовать эту таблицу для многоалфавитного шифрования самым простым из возможных способов: первая буква текста шифровалась первым алфавитом, вторая буква – вторым и т.д. В этой таблице не было отдельного алфавита открытого текста, для этой цели служил алфавит первой строки. Таким образом, слово «UKRAINE» превращалось в шифротекст «ULTDNSL».
Преимущество этого метода шифрования по сравнению с методом Альберти заключалась в том, что каждая очередная буква текста шифровалась новым алфавитом. Альберти изменял алфавиты лишь после трёх или четырёх слов. Поэтому его шифротекст состоял из отрезков, каждый из которых имел закономерности открытого текста, которые помогали расшифровать криптограмму. Побуквенное шифрование не давало такого преимущества (см. таблицу).
Кроме того, Тритемий предлагал также использовать одноалфавитное шифрование с помощью квадрата Полибия и ключевого слова – пароля. Выбиралось какое-либо слово, из него убирались повторяемые буквы, а оставшиеся записывались в первые клетки квадрата. Пустые клетки заполнялись оставшимися буквами алфавита по порядку.
Рассмотрим эту систему шифрования, таблица которой будет иметь размер не 5х5, а 5х6. Буква шифрования берётся из клетки, находившейся под клеткой буквы сообщения. Поскольку ключевое слово легко было запомнить, то такой подход упрощал процессы шифрования и дешифрования. Для ключа «ШИФРОВКА» таблица будет иметь такой вид (см. таблицу).
Для вышеописанного шифра по данной таблице сообщение «УЖГОРОД» даёт шифровку «ЫСМДГДН». Такие табличные шифры были названы монограммами, потому что шифрование велось по одной букве.
Тритемий также первым заметил, что можно шифровать одновременно по две буквы, которые стояли рядом и были названы «биграммой». Такой шифр был назван «биграммным». Опишем его на примере той же таблицы. Открытый текст разбивался на биграммы, а текст шифровки выходил из него в соответствии с такими правилами:
1. Если обе буквы биграммы исходного текста принадлежали одному столбцу таблицы, то буквами шифра считались буквы, которые были под ними. Так, биграмма «БУ» давала текст шифровки «ЛЫ». Если буква открытого текста находилась в нижней строке, то для шифра бралась соответствующая буква из верхней строки: биграмма «ЯЩ» давала шифр «ВШ» (биграмма из одной буквы или пары одинаковых букв тоже подчинялась этому правилу).
2. Если обе буквы биграммы исходного текста принадлежали одной строке таблицы, то буквами шифра считались буквы, которые лежали справа от них. Так, биграмма «КА» давала текст шифровки «АБ». Если буква открытого текста была в правом столбце, то для шифра бралась соответствующая буква из левого столбца: биграмма «ВЕ» давала шифр «ШК».
3. Если обе буквы биграммы открытого текста лежали в разных строках и столбцах, то вместо них брались две буквы таким образом, чтобы вся их четверка составляла прямоугольник. При этом последовательность букв в шифре была отражением исходной пары. Например, «АЛ» шифровалось как «БЗ», а «ДУ» – как «БЦ».
При шифровании фразы «ОБЪЯВЛЕН СБОР» по биграммам получается шифровка «ФДИВФПДПУКВО»:
ОБ ЪЯ ВЛ ЕН СБ ОР
ФД ИВ ФП ДП УК ВО
Шифрование биграммами резко усилила стойкость шифров к раскрытию.
Несмотря на то, что «Полиграфия» была достаточно доступной печатной книгой, описанные в ней идеи получили признание лишь тремя веками позже. Скорее всего это было вызвано непопулярностью Тритемия среди профессиональных криптологов, который был не криптологом, а богословом, библиофилом и основателем архивного дела.
Следующий шаг в развитии предложенного Тритемием способа шифрования был сделан итальянцем Джованни Баттиста Беллазо (Giovan Battista Bellaso). В 1553 году он опубликовал брошюру «Шифр сеньора Джованни Баттиста Беллазо» (итал. La cifra del. Sig. Giovan Battista Bellaso), где предложил использовать для многоалфавитного шифра буквенный ключ, который был назван им «паролем» и должен был легко запоминаться. Пароль выписывался под или над строкой сообщения. Буква пароля, что находились над (под) буквой сообщения, определяла номер строки таблицы Тритемия, то есть алфавит замены, в соответствии с которым и осуществлялась шифрование. Буква сообщения определяла номер столбца таблицы, а буква шифротекста находилась на пересечении строки и столбца таблицы.