Ещё один значительный шаг вперёд криптография сделала благодаря труду Леона Альберти. Известный философ, живописец, архитектор, в 1466 году написал труд о шифрах. В этой работе был предложен шифр, основанный на использовании шифровального диска. Сам Альберти называл его шифром, «достойным королей».
Шифровальный диск представлял собой пару соосных дисков разного диаметра. Больший из них – неподвижный, его окружность разделена на 24 равных сектора, в которые вписаны 20 букв латинского алфавита в их естественном порядке и 4 цифры (от 1 до 4()4 цифрыственном порядке которые вписаны 20 букв латинского алфавитара. о диска. и. __________________________________________). При этом из 24-х буквенного алфавита были удалены 4 буквы, без которых можно обойтись, подобно тому, как в русском языке обходятся без Ъ, Ё, Й. Меньший диск – подвижный, по его окружности, разбитой также на 24 сектора, были вписаны все буквы смешанного латинского алфавита.
Диск Альберти.
Имея два таких прибора, корреспонденты догадывались о первой индексной букве на подвижном диске. При шифровании сообщения отправитель ставил индексную букву против любой буквы большого диска. Он информировал корреспондента о таком положении диска, записывая эту букву внешнего диска в качестве первой буквы шифртекста. Очередная буква открытого текста отыскивалась на неподвижном диске и стоящая против неё буква меньшего диска являлась результатом её зашифрования. После того как были зашифрованы несколько букв текста, положение индексной буквы изменялось, о чём также сообщалось корреспонденту.
Такой шифр имел две особенности, которые делают изобретение Альберти событием в истории криптографии. Во-первых, в отличие от шифров простой замены шифровальный диск использовал не один, а несколько алфавитов для зашифрования. Такие шифры получили название многоалфавитных. Во-вторых, шифровальный диск позволял использовать так называемые коды с перешифрованием, которые получили широкое распространение лишь в конце XIX в., то есть спустя четыре столетия после изобретения Альберти. Для этой цели на внешнем диске имелись цифры. Альберти составил код, состоящий из 336 кодовых групп, занумерованных от 11 до 4444. Каждому кодовому обозначению соответствовала некоторая законченная фраза. Когда такая фраза встречалась в открытом сообщении, она заменялась соответствующим кодовым обозначением, а с помощью диска цифры зашифровывались как обычные знаки открытого текста, превращаясь в буквы.
Богатым на новые идеи в криптографии оказался XVI в. Многоалфавитные шифры получили развитие в вышедшей в 1518 г. первой печатной книге по криптографии под названием "Полиграфия". Автором книги был один из самых знаменитых ученых того времени аббат Иоганнес Тритемий. В этой книге впервые в криптографии появляется квадратная таблица. Шифралфавиты записаны в строки таблицы один под другим, причем каждый из них сдвинут на одну позицию влево по сравнению с предыдущим (см. табл. 2).
Тритемий предлагал использовать эту таблицу для многоалфавитного зашифрования самым простым из возможных способов: первая буква текста шифруется первым алфавитом, вторая буква — вторым и т. д. В этой таблице не было отдельного алфавита открытого текста, для этой цели служил алфавит первой строки. Таким образом, открытый текст, начинающийся со слов HUNCCAVETOVIRUM ..., приобретал вид HXPFGFBMCZFUEIB ... .
Преимущество этого метода шифрования по сравнению с методом Альберти состоит в том, что с каждой буквой задействуется новый алфавит. Альберти менял алфавиты лишь после трех или четырех слов. Поэтому его шифртекст состоял из отрезков, каждый из которых обладал закономерностями открытого текста, которые помогали вскрыть криптограмму. Побуквенное зашифрование не дает такого преимущества. Шифр Тритемия является также первым нетривиальным примером периодического шифра. Так называется многоалфавитный шифр, правило зашифрования которого состоит в использовании периодически повторяющейся последовательности простых замен.
В 1553 г. Джованни Баттиста Белазо предложил использовать для многоалфавитного шифра буквенный, легко запоминаемый ключ, который он назвал паролем. Паролем могло служить слово или фраза. Пароль периодически записывался над открытым текстом. Буква пароля, расположенная над буквой текста, указывала на алфавит таблицы, который использовался для зашифрования этой буквы. Например, это мог быть алфавит из таблицы Тритемия, первой буквой которого являлась буква пароля. Однако Белазо, как и Тритемий, использовал в качестве шифралфавитов обычные алфавиты.
Воскресить смешанные алфавиты, которые применял Альберти, и объединить идеи Альберти с идеями Тритемия и Белазо в современную концепцию многоалфавитной замены выпало на долю итальянца Джованни де ла Порта. Ему было 28 лет, когда он в 1563 г. опубликовал книгу "О тайной переписке". По сути, эта книга являлась учебником по криптографии, содержащим криптографические познания того времени. Порта предложил использовать квадратную таблицу с периодически сдвигаемым смешанным алфавитом и паролем. Он советовал выбирать длинный ключ. Впервые им был предложен шифр простой биграммной замены, в котором пары букв представлялись одним специальным графическим символом. Они заполняли квадратную таблицу размером
, строки и столбцы которой занумерованы буквами алфавитаABCDEFGHILMNOPQRSTUZ
Например, биграмма ЕА заменялась символом
биграммаLF — символом
и т. д. В своей книге Порта ввел многоалфавитный шифр, определяемый табл. 3.Таблица 3. Таблица Порта
A | А | B | С | D | E | F | G | H | I | К | L | M |
B | N | O | P | Q | R | S | T | U | X | У | Z | W |
C | А | B | С | D | E | F | G | H | I | К | L | M |
D | O | Р | Q | R | S | T | U | X | У | Z | W | N |
Е | А | B | С | D | E | F | G | H | I | К | L | M |
F | Р | Q | R | S | T | U | X | У | Z | W | N | O |
G | А | B | С | D | E | F | G | H | I | К | L | M |
Н | Q | R | S | T | U | X | У | Z | W | N | O | P |
I | А | B | С | D | E | F | G | H | I | К | L | M |
К | R | S | T | U | X | У | Z | W | N | O | Р | Q |
L | А | B | С | D | E | F | G | H | I | К | L | M |
М | S | T | U | X | У | Z | W | N | O | Р | Q | R |
N | А | B | С | D | E | F | G | H | I | К | L | M |
O | T | U | X | У | Z | W | N | O | P | Q | R | S |
Р | А | B | С | D | E | F | G | H | I | К | L | M |
Q | U | X | У | Z | W | N | O | P | Q | R | S | T |
R | А | B | С | D | E | F | G | H | I | К | L | M |
S | X | У | Z | W | N | O | P | Q | R | S | T | U |
Т | А | B | С | D | E | F | G | H | I | K | L | M |
U | У | Z | W | N | O | P | Q | R | S | T | U | X |
Х | А | B | С | D | E | F | G | H | I | K | L | M |
Y | Z | W | N | O | P | Q | R | S | T | U | X | У |
Z | А | B | С | D | E | F | G | H | I | K | L | M |
W | W | N | O | P | Q | R | S | T | U | X | y | Z |
Шифрование осуществляется при помощи лозунга, который пишется над открытым текстом. Буква лозунга определяет алфавит (заглавные буквы первого столбца), расположенная под ней буква открытого текста ищется в верхнем или нижнем полуалфавите и заменяется соответствующей ей буквой второго полуалфавита. Например, фраза, начинающаяся словами HUNC СAVETOVIRUM..., будет зашифрована при помощи лозунга DELAPORTA в XFHPYTMOGAFQEAS.
Еще одно важное усовершенствование многоалфавитных систем, состоящее в идее использования в качестве ключа текста самого сообщения или же шифрованного текста, принадлежит Джероламо Кардано и Блезу де Виженеру. Такой шифр был назван самоключом. В книге Виженера 'Трактат о шифрах" самоключ представлен следующим образом. В простейшем случае за основу бралась таблица Тритемия с добавленными к ней в качестве первой строки и первого столбца алфавитами в их естественном порядке. Позже такая таблица стала называться таблицей Виженера. Подчеркнем, что в общем случае таблица Виженера состоит из циклически сдвигаемых алфавитов, причем первая строка может быть произвольным смешанным алфавитом (см. табл. 4).
Первая строка служит алфавитом открытого текста, а первый столбец — алфавитом ключа. Для зашифрования открытого сообщения
Виженер предлагал в качестве ключевой последовательности (Г) использовать само сообщение (Т0) с добавленной к нему в качестве первой буквы( ), известной отправителю и получателю (этим идея Виженера отличалась от идеи Кардано, у которого не было начальной буквы и система которого не обеспечивала однозначности расшифрования). Последовательности букв подписывались друг под другом: