Приблизительно в то же время итальянский математик и философ Джероламо Кардано (Gerolamo Cardano) (1501-76) предложил использовать в качестве ключа сам текст сообщения, то есть «самоключ» или «автоключ» (англ. autokey). Например, во фразе «СБОР СЕГОДНЯ» ключом было слово «СБОР» (см. таблицу). Шифрование осуществлялась с помощью таблицы Тритемия.
Кроме того, в 1556 году увлечение теорией магических квадратов привело Кардано к открытию нового класса шифра перестановок, названного решёткой или трафаретом. Он представлял собой квадратную таблицу, в которой четверть ячеек прорезана так, что при четырёх поворотах они покрывали весь квадрат. Вписывание в прорезанные ячейки текста и повороты решётки длились до тех пор, пока весь квадрат не был заполнен. Например, на рисунке ниже показан процесс шифрования решёткой 4х4. Трафарет имел 4 прорезанные клетки, а повороты осуществлялись по часовой стрелке на указанный ниже угол (см. таблицу).
В результате считывания по строкам сообщения «ВСТРЕТИТЬ В ДЕСЯТЬ» превращается в шифротекст: ЕСВЬЯТВСДТТИРЕТЬ.
Главное требование к трафарету – при всех поворотах «окна» не должны попадать на одно и то же место в квадрате, в котором образуется шифротекст. Если в квадрате после снятия трафарета образовывались пустые места, то в них вписывались любые буквы.
Количество подобных решёток быстро растет с их размером. Так, решётка 2х2 единственная, решёток 4х4 уже 256, а решёток 6х6 свыше 100 тысяч. Несмотря на определенную сложность, шифры типа решёток достаточно просто раскрывались, поэтому не могли использоваться в качестве самостоятельного шифра. Тем не менее они были очень удобными и ещё долго использовались в практике для усиления шифров замены.
Воскрешение смешанных алфавитов, применявшихся Альберти, и объединение идей Альберти с идеями Тритемия и Беллазо в современную концепцию многоалфавитной замены выпало на долю итальянца Джованни Баттиста Делла Порта (Giovanni Battista Della Porta) (1535-1615). Ему было 28 лет, когда он в 1563 году опубликовал книгу «О скрытой значимости отдельных букв» (лат. De Furtivis Literarum Notis). Её первые два раздела были посвящены криптографии, а в двух других излагались основы криптоанализа и рассматривались лингвистические особенности, которые помогали раскрытию шифров.
Книга Порты содержала первое в Европе описание того, как стоит раскрывать шифр простой замены, когда шифротекст не был разделён на слова или был разделён неправильно. Порта также описал то, что считалось вторым по значимости приёмом в современном криптоанализе:
«…Когда тема переписки известна, исследователь может сделать проницательные предположения относительно слов, которые обычно употребляются в таком контексте. Эти слова можно без большого труда обнаружить, подмечая в текстах количество знаков, а также сходство и различие букв… Каждой теме характерны некоторые общие слова, которые сопутствуют ей, будучи необходимы. Например, в любви – это страсть, сердце, огонь, пламя, сгорать, жизнь, смерть, жалость, жестокость; на войне – это солдат, командир, генерал, лагерь, оружие, бороться и т.д. Таким образом, этот прием вскрытия, который не основан на анализе самих документов или на попытке разбить текст на гласные или согласные, может облегчить задачу».
В своей книге Порта также дал один мудрый совет, который и сегодня полезен криптоаналитику в той же степени, в какой он был уместен в Италии эпохи Возрождения:
«Необходимы самая полная сосредоточенность и усердие, чтобы свободная от посторонних мыслей голова, когда все остальное отложено в сторону, была всецело занята единственной задачей доведения начатого дела до успешного завершения.
И все-таки, когда такая задача требует чрезмерного напряжения и необычных затрат времени, напряжение не должно быть непрерывным, не следует изнурять мозг сверх меры, ибо слишком большие усилия и продолжительная умственная нагрузка приводят к нервному истощению, после которого голова уже менее пригодна для подобных вещей и из нее уже не выжмешь ничего…»
А далее Порта поделился с читателем своим собственным практическим опытом работы: «Кроме того, далеко немаловажно, чтобы сообщение было написано рукой автора или искусного писца, ибо если перехваченное сообщение будет скопировано неправильно или если оно выйдет из-под руки человека незнакомого с искусством шифра, то в результате, поскольку правописание нарушено, любая интерпретация сообщения будет блокирована».
Подобный опыт приходил только к криптоаналитику, который имел дело с сообщениями, в которых буквы часто были пропущены, переставлены или заменены на другие. Это случалось лишь при обработке настоящих криптограмм. Задачи, которые встречались в книгах по криптоанализу того времени, всегда были безукоризненно составлены с точки зрения правописания и поэтому легко решались. Скорее всего, Порта регулярно занимался криптоанализом, выполняя поручение папской курии.
В полной мере замечательные способности Порты проявились при решении наиболее тяжелой проблемы криптоанализа эпохи Возрождения – раскрытии многоалфавитных шифров. Невзирая на высокую оценку этих шифров криптоаналитиками того времени, Порта отказался признать их неуязвимость и разработал для них методы раскрытия. Хотя эти методы не были универсальными, их основная ценность состояла в примененном Портой смелом подходе, который и привёл его к успеху.
Для начала Порта попробовал прочитать шифротекст, который его современниками был зашифрован с помощью специального устройства. Это устройство состояло из двух дисков: внутреннего неподвижного диска, на который по часовой стрелке был нанесен алфавит открытого текста, и внешнего подвижного диска с рядом причудливых шифрознаков.
Внешний диск после шифрования очередной буквы поворачивался по часовой стрелке на один шаг. Порта заметил, что если в каком-либо слове открытого текста три буквы подряд стояли в алфавитной последовательности, тот же шифрознак троекратно повторялся в получаемом шифротексте. Это помогло ему прочитать криптограмму.
Потом Порта модифицировал разработанный им метод, чтобы дешифровать другую многоалфавитную криптограмму, которая была составлена по принципу Джованни Беллазо. По мнению Порты, в криптограмме троекратное повторение буквы шифротекста сигнализировало о том, что ключом из трёх букв, расположенных в обычном алфавитном порядке, был зашифрован открытый текст, в котором были три буквы в порядке, противоположном алфавитному.
Рассуждая по этому поводу, Порта вплотную подошёл к универсальному методу раскрытия многоалфавитных шифров, найти который он так стремился:
«Поскольку… между первыми тремя „М“ и этими же тремя буквами, повторенными в 13-м слове, находится 51 буква, я прихожу к выводу, что ключ повторен три раза, и правильно считаю, что он содержит 17 букв».
Однако Порта так и не воспользовался своим наблюдением. В итоге многоалфавитный шифр продолжал считаться надёжным в течение трёх следующих веков.
В своей книге Порта ввел свою таблицу многоалфавитного шифрования (см. таблицу).
Шифрование сообщения осуществлялась с помощью секретного лозунга-пароля, который периодически выписывался над открытым текстом. Буква лозунга определяла алфавит (заглавные буквы первого столбца), расположенная под ключом буква открытого текста искалась в верхнем или нижнем полуалфавите и заменялась соответствующей ей буквой второго полуалфавита.
Например, если в качестве лозунга использовать слово «UKRAINE», то шифрование слова «UZHGOROD» приведет к шифровке «LHQTKLMN» (см. таблицу).
За этот шифр Порта позже назвали отцом современной криптографии, но в то время этот шифр не нашёл широкого приложения. Причиной этого была необходимость постоянно иметь при себе указанную таблицу и сложность процесса шифрования. Вместе с тем, был дан импульс для появления других шифровальных систем (например, Виженера).
Также Порта предложил шифр простой биграммной замены с использованием квадратной таблицы со смешанным алфавитом и паролем. В нём пары букв (биграммы) обозначались одним специальным графическим символом. Например, биграмма «ЕА» заменялась греческим символом «?», биграмма «LF» – символом «?» и т.д.
Они заполняли квадратную таблицу размером 20х20, строки и столбцы которой были пронумерованы буквами латинского алфавита. По сути дела это был тот же шифр простой замены, но на уровне двухбуквенных соединений. Криптостойкость при такой замене по сравнению с побуквенным шифрованием значительно повышалась.
Французский посол в Риме Блез де Виженер (Blaise de Vigenere) (1523-96), ознакомившись с криптологическими трудами и идеями Цезаря, Альберти, Тритемия, Беллазо и Порта, увлёкся криптологией. В 1585 году он написал книгу «Трактат о шифрах» (фр. Traite des chiffres), где изложил основы криптологии. В ней он выразил мнение о том, что «все вещи в мире представляют собой шифр. Вся природа является просто шифром и секретным письмом». Позже эту мысль повторили и Блез Паскаль (Blaise Pascal), и отец кибернетики Норберт Винер (Norbert Wiener).
В своем трактате Виженер опять повторил идею Кардано по использованию «самоключа». Заранее оговаривалась одна ключевая буква алфавита, и первая буква сообщения шифровалась по строке таблицы Тритемия, соответствующей этой букве. Вторая буква сообщения шифровалась по строке, соответствующей первой букве шифротекста и т.д.
Второй вариант использования таблицы Тритемия, предложенный Виженером, заключался в применении ключа-лозунга. По сути Виженер, объединив подходы Тритемия, Беллазо и Порта к шифрованию открытых текстов, не внёс в них ничего оригинального.
Шифр Виженера содержал в себе алфавитную квадратную таблицу Тритемия, состоявшую из 24 пошаговых ротаций влево линии стандартного латинского алфавита. В этой таблице первая горизонтальная строка называлась «линией языка», а первый вертикальный столбец – «секретной линией». Ключом могло быть любое слово, буквы которого выписывались подряд над или под буквами открытого письма. Причем, когда оно заканчивалось, то записывалось опять, циклически повторяясь, пока не заканчивался текст.
Этот ключ и был «секретом», который Беллазо называл «паролем», а Виженер назвал «лозунгом». В наше время ключевая последовательность букв или цифр получила название «гамма» по аналогии с известным музыкальным термином. Таблица Виженера легко восстанавливалась перед самим процессом шифрования, после чего могла быть уничтожена.
Предложенная Виженером шифросистема стала первым большим открытием в криптологии со времён Юлия Цезаря, которая в течение 350 лет считалась одной из самых надёжных систем. Главным её преимуществом была простота (см. таблицу).
Сообщение шифровалось буква за буквой, для чего в таблице нужно было найти столбец, обозначенный той же буквой, что и соответствующая буква ключа, и строка, обозначенная той же буквой, что и буква открытого текста, которая находилась под данной буквой ключа. Буква, которая находилась в таблице на пересечении выбранных столбца и строки, и была нужным шифросимволом.
Например, если в качестве ключа использовать слово «UKRAINE», то шифрование слова «UZHGOROD» приведет к шифровке «PHWGYESZ» (см. таблицу).
Шифр Виженера имел также некоторые из преимуществ более раннего номенклаторного типа шифра. Каждая буква открытого текста могла обозначаться в шифротексте таким числом разных шифросимволов, сколько разных букв содержалось в ключе.
Кроме того, многоалфавитная замена позволяла скрыть повторяющиеся буквы и другие внутрисловные сочетания, характерные для данного открытого текста. При этом в окончательном шифротексте использовались только 24 обычных буквы алфавита, а какие-либо специальные символы или цифры были не нужны.
Астрологические увлечения Виженера привели его к шифру, в котором шифрознаками были положения небесных тел в момент шифрования. Тем самым он попробовал перевести свои послания на «язык неба».
В ХІХ веке британский адмирал сэр Френсис Бофорт (Francis Beaufort) (1774-1857) предложил свою разновидность шифра Виженера – квадрат Бофорта (Бьюфорта). Его строками были строки квадрата Виженера, но записанные в обратном (зеркальном) порядке (см. таблицу).
Эта таблица имела одно преимущество – правила зашифрования и расшифрования были одинаковы: и в том, и в другом случае буквы выбирались из верхней алфавитной строки.
Ради исторической справедливости необходимо отметить, что таблица Бофорта была предложена ещё в ХVІІІ веке итальянцем Дж.Сестри. Однако его имя в истории оказалось забытым.
Человеком, который сумел сделать криптологию отдельной научной дисциплиной, стал английский философ и государственный деятель Френсис Бэкон (1561-1626), который был одним из умнейших людей в свое время и автором больше, чем два десятка работ, опубликованных и признанных современниками ещё при его жизни. Будучи лордом-канцлером при короле Якове I, он хорошо знал потребности государства в надёжных шифрах, поэтому его первая талантливая работа, относившаяся к 1580 году, в дальнейшем получила блестящее практическое развитие.
Посвятив криптологии специальные работы «Успех познания» и «О достоинстве и приумножении наук», он был не только теоретиком, но и талантливо применял на практике свои знания, благодаря чему занял почётное место среди выдающихся европейских криптологов. В частности, именно он в первый раз предложил свою систему тайнописи, назвав её «двухбуквенным» шифром. Практически это была «двоичная кодировка» букв латинского алфавита – то же, что используется в настоящий момент в компьютерах.
По сути, это была бинарная система стеганографии, поскольку с помощью шрифтов двух видов (например, «А» и «В») в буквы произвольного (нетайного) текста тайком вносилась дополнительная (тайная) информация. Каждой букве тайного послания соответствовало пять букв обычного открытого текста.
В начале XVII века Матео Ардженти (Mateo Argenti), криптолог папской канцелярии, составил пособие по криптологии на 135 листах, которое было издано в плетении из телячьей кожи. В этой книге он повторил идею Чикко Симонетти по использованию слова как ключа для получения смешанного алфавита. Например, ключевое слово «UKRAINE» даёт такой смешанный латинский алфавит: UKRAINEBCDFGHJLMOPSTVWXYZ.
Такие смешанные алфавиты часто использовались в качестве алфавита шифротекста в шифрах простой замены. С целью усложнения шифра простой замены Ардженти рекомендовал не разделять слова, использовать «омофонные» замены, вставлять в шифротекст большое количество «пустышек» (0), устранять пунктуацию, не вставлять в шифротекст открытые слова («клер») и т.д. Для букв, которые часто встречались в словах, он ввёл несколько обозначений, а для соединений букв, которые часто встречались в текстах, – отдельные обозначения. Позже подобные идеи получили широкое распространение.
Слово «UZHGOROD» может быть зашифровано многими способами, например: 754078856070692859205577 или 0488600659289720.
Наибольшим достижением Ардженти считается разработанный им буквенный код (номенклатор), в котором 1200 букв, слогов, слов и целых фраз замещались группами букв.
В XVII веке наиболее ценным историческим трудом в сфере криптологии были произведения Густава Селена (псевдоним Августа II герцога Брауншвейг-Люнебурга, князя Брауншвейг-Вольфенбюттеля) (1579-1666) «Криптописьмо и криптография» (лат. Cryptomenytices et cryptographie): «Девять книг Густава Селена, в которых изъясняется учение о скрытии смысла и тайнописи, некогда написанное Иоганном Тритемием, настоятелем в Спенхейме и Хербиполене, мужа чудесного ума и скрытых магических способностей. Здесь же изложены важные способы и других авторов в 1624 г.». Эти книги, кстати, были учебными пособиями российского криптолога XVIIІ века Эпинуса.
Криптология уже была известна многим и применялась во многих слоях общества. Так, англичанин Самюэль Пепис (1633-1703) стал всемирно известен своим зашифрованным дневником, согласно которому историки пишут труды о переходе от Пуританства к Реставрации. Искусствоведы включили это произведение в мировую сокровищницу литературы.
Пепис закончил Кембридж благодаря кузену отца – адмиралу Монтегю и имел много друзей: ученого Исаака Ньютона, архитектора Кристофера Рена, поэта и драматурга Джона Драйдена. Пепис был лично свидетелем таких незабываемых для Англии событий, как возвращение короля Чарльза II в Англию, большая чума 1664 года, пожар Лондона 1666 года, революция 1688 года.