Введение

Основной инструмент в криптографии

В криптографии tabula recta (от латинского tabula rēcta) — это квадратная таблица алфавитов, каждая строка которой получается сдвигом предыдущей на одну позицию влево. Термин был изобретён немецким автором и монахом Иоганном Тритемием в 1508 году и использовался в его шифре Тритемия.

Шифр Тритемиуса

Шифр Тритемия был опубликован Иоганном Тритемием в его книге «Полиграфия», которая считается первой опубликованной печатной работой по криптологии. Тритемий использовал tabula recta для определения полиалфавитного шифра, который был эквивалентен шифровому диску Леона Баттисты Альберти, за исключением того, что порядок букв в целевом алфавите не перемешан. Tabula recta часто упоминается при обсуждении шифров, существовавших до появления компьютеров, включая шифр Виженера и менее известный шифр автоключа Блеза де Виженера. Все полиалфавитные шифры, основанные на шифре Цезаря, можно описать с использованием tabula recta. Tabula recta представляет собой квадрат, содержащий 26 букв алфавита, за которым следуют 26 рядов дополнительных букв, каждая из которых сдвинута на одну позицию влево по сравнению с предыдущей. По сути, это создает 26 различных шифров Цезаря. Беллазо добавил ключ, который определяет, какой шифроалфавит использовать для каждой буквы. Этот метод ошибочно приписывался Блезу де Виженеру, который опубликовал аналогичный шифр автоключа в 1586 году. Классический шифр Тритемия (использующий сдвиг на единицу) эквивалентен шифру Виженера с ключом ABCDEFGHIJKLMNOPQRSTUVWXYZ. Он также эквивалентен шифру Цезаря, в котором сдвиг увеличивается на 1 с каждой буквой, начиная с 0.

Использование

Внутри тела прямой таблицы каждое из алфавитов смещается на одну букву влево от расположенного выше. Это формирует 26 рядов сдвинутых алфавитов, заканчивающихся алфавитом, начинающимся с Z (как показано на изображении). От этих 26 алфавитов отделены заголовочный ряд сверху и заголовочный столбец слева, каждый из которых содержит буквы алфавита в порядке от А до Я. Tabula recta может использоваться несколькими эквивалентными способами для шифрования и дешифрования текста. Чаще всего для шифрования и дешифрования используется левый заголовочный столбец для букв открытого текста. Данное использование будет описано далее. Для дешифровки шифра Тритемия необходимо сначала найти в tabula recta буквы, подлежащие дешифровке: первую букву – в первом внутреннем столбце, вторую – во втором и так далее; буква, расположенная непосредственно слева в заголовочном столбце, является соответствующей расшифрованной буквой открытого текста. Предполагая стандартный сдвиг 1 без использования ключа, зашифрованный текст HFNOS будет расшифрован в HELLO (H > H, F > E, N > L, O > L, S > O). Например, чтобы расшифровать вторую букву этого текста, сначала найдите F во втором внутреннем столбце, затем переместитесь непосредственно влево, до крайнего левого заголовочного столбца, чтобы найти соответствующую букву открытого текста: E.

Шифрование выполняется в обратном порядке: сначала каждая буква открытого текста сообщения находится в крайнем левом заголовочном столбце tabula recta и сопоставляется с соответствующей буквой во внутренних столбцах. Например, первая буква сообщения находится в левом заголовочном столбце, а затем сопоставляется с буквой, расположенной напротив в столбце с заголовком "A". Следующая буква сопоставляется с соответствующей буквой в столбце с заголовком "B", и так продолжается, пока все сообщение не будет зашифровано. Если рассматривать шифр Тритемия как имеющий ключ ABCDEFGHIJKLMNOPQRSTUVWXYZ, процесс шифрования также можно представить как поиск для каждой буквы пересечения строки, содержащей букву, подлежащую шифрованию, со столбцом, соответствующим текущей букве ключа. Буква в точке пересечения этой строки и столбца является буквой шифротекста. Программно шифр вычислим, присвоение, затем процесс шифрования. Дешифрование следует тому же процессу, меняя местами шифротекст и открытый текст. Ключ может быть определен как значение буквы из сопутствующего шифротекста в шифре с бегущим ключом, как константа для шифра Цезаря или как счетчик, начинающийся с нуля, с определенным периодом в использовании Тритемия.