• Он предложил несколько алгоритмов замены букв (или целых групп) другими буквами, символами, рассмотрел различные способы использования дополнительных символов и видоизменения принятых правил орфографии для усложнения шифра.
Рис. 3.1. Леон Баттиста Альберти. Гравюра XVIII в.
Вы можете спросить: но ведь никто не доказал причастность Альберти к созданию «манускрипта Войнича», так при чем же тут его система?
Дело в том, что заслуги этого человека перед криптографией в целом весьма велики и уже в ХХ столетии многочисленные исследователи манускрипта активно применяли в своей деятельности все то, что несколькими столетиями ранее разработал и сформулировал итальянский ученый… Да, криптография как таковая и разнообразные способы защиты информации от непосвященных существовали еще в Древнем мире. Но во времена Возрождения появилось множество новых способов.
К числу основных достижений Леона Альберти в области криптографии относят изобретение интересного приспособления, ставшего известным как диск Альберти и использовавшегося для составления шифрованных текстов (рис. 3.2).
Принцип действия таков. Альберти предлагает изготовить два диска (в своем трактате он пишет о медных дисках). Тот, который имеет больший размер, — неподвижен. Второй — маленький — накладывается поверх первого и может свободно вращаться вокруг своей оси. Каждый диск разделен на 24 сектора вдоль края. В секторах большого диска написаны прописные буквы латинского алфавита, начиная с А. Буквы K и H на диске Альберти отсутствовали, причина была чисто практическая: отсутствие Н не мешало восприятию текста, а буква К вполне заменялась буквой С — в латинском языке их звучание практически идентично. Таким образом, вдоль края большего круга располагалось 20 букв и цифры 1, 2, 3, 4.
В 24 секторах малого диска располагаются строчные буквы того же самого алфавита, но уже в произвольном порядке, при этом можно дополнить ряд еще какими-либо символами.
Рис. 3.2. Диск Альберти
Каким образом идет процесс шифрования? Зафиксируем и выровняем маленький диск так, чтобы каждому его сектору соответствовал конкретный сектор большего круга. Например, нам нужно зашифровать букву «b». На большем диске ей соответствует буква I. Следовательно, именно она будет заменять букву «b» в нашем тексте. Соответственно, через некоторое время можно поменять расположение дисков, и тогда «соотношение» букв будет уже совершенно иным.
Ключом к шифру в данном случае выступает «композиция» внутреннего маленького диска. «Переключаться» с одного алфавита на другой Альберти предлагал через каждые несколько слов. Более того, с течением времени он предложил использовать несколько алфавитов, защищая текст с помощью «двойного» шифрования — сначала он шифруется одним шифром (с периодическими сдвигами дисков), потом — еще одним. Методику Альберти стали называть «двойным шифрованием» или «полиалфавитным шифром». Напомним, что в эпоху Древнего мира и Средневековья обычно использовались моноалфавитные шифры (они же шифры простой замены), где на основе таблицы-ключа каждой букве соответствовала какая-то другая буква. В качестве наиболее популярного примера можно привести так называемый «шифр Цезаря»: каждый символ заменяется на тот, который в алфавите находится левее или правее его на определенное число позиций. Например, если мы используем шифр со сдвигом в пределах алфавита на три позиции, то в зашифрованном тексте букве А будет соответствовать D (рис. 3.3).
Рис. 3.3. «Шифр Цезаря» со сдвигом на 3 позиции: букве А соответствует D, букве B соответствует Е и так далее
К числу моноалфавитных шифров можно отнести, например, азбуку Морзе — слово «алфавитный» здесь означает не исключительно использование букв и алфавитов, а лишь принцип: один знак — одна замена по определенному правилу.
Популярность с течением времени приобретали разнообразные шифры, где каждой букве или символу соответствовало некое изображение. Вспомните рассказ Артура Конан Дойля «Пляшущие человечки», где буквы были заменены разнообразными изображениями танцующих фигурок, а окончания слов обозначали флажки в их руках…
Многие начинания и идеи Альберти дополнил и развил вюрцбургский аббат Иоганн Тритемий (Тритемиус, 1462–1516), автор трудов «Стеганография» и «Полиграфия».
К числу вариантов «полиалфавитного шифрования» относится также известный «шифр Виженера», который носит имя французского дипломата, криптографа и алхимика Блеза де Виженера (1523–1596), хотя авторство его спорно. Впервые этот шифр был описан итальянцем Джованни Баттиста Беллазо в 1553 году. Виженер в своей книге «Трактат о шифрах», скорее всего, просто объединил достижения Альберти, Тритемия, Беллазо и многих других, систематизировал их, но сам ничего особенно нового в криптографию не внес.
В «шифре Виженера» используется особая алфавитная таблица, которую еще называют квадратом (или таблицей) Виженера. Подобную можно составить для любого алфавита (рис. 3.4).
Как мы видим, в этом случае каждая сторона квадрата представляет собой последовательность из 26 букв, причем каждая последующая строка сдвинута относительно предыдущей на одну позицию.
Каким образом при помощи этой таблицы можно зашифровать текст?
Предположим, у нас есть некий текст. Пусть это будет, к примеру, следующая фраза:
Masha is a good girl.
Запишем ее без пробелов:
Mashaisagoodgirl
А теперь выберем некое ключевое слово. Например, «lamp». Его смысл и длина в данном случае значения не имеют.
Идем дальше. Длина нашего «исходного текста» — 16 символов. Запишем ключевое слово циклически, то есть будем повторять его до тех пор, пока оно не будет соответствовать длине исходного текста, то есть 16 символам:
Lamplamplamplamp
Первый символ исходного текста — «m». Первый символ «ключа» — «l». Находим первый символ ключа в строке, начинающейся с «l», в таблице Виженера. Ничего сложного нет — там он тоже стоит первым. А теперь движемся по этой строке вправо, пока не дойдем до пересечения со столбцом, начинающимся с «m». На этом пересечении находится буква «x». Следовательно, наша шифровка будет начинаться с буквы «х». Второй символ «ключа» — «а». Второй символ исходного текста — также «а». Аналогично находим «точку пересечения» — находящаяся там буква будет второй в нашей шифровке…
Рис. 3.4. Квадрат Виженера