Криптография и шифрование тысячи лет используются людьми для защиты своих секретов. С некоторой долей условности эту историю можно начать с Древнего Египта.
Древний Египет
Самый древний текст с элементами криптографии найден в гробнице древнеегипетского вельможи Хнумхотепа II, наследного князя и номарха города Менат-Хуфу, жившего почти 4000 лет назад. Где-то около 1900 г до н.э. писарь Хнумхотепа описывал жизнь своего господина в его гробнице. Среди иероглифов он использовал несколько необычных символов, которые скрывают прямое значение текста. Такой метод шифрования фактически представляет собой шифр подстановки, когда элементы исходного текста заменяются другими элементами по определённым правилам.
Символы из гробницы Хнумхотепа II и их расшифровка
По мере развития египетской культуры замены иероглифов встречались всё чаще. Есть разные версии, почему египтяне использовали такую систему шифрования. По одной версии, они хотели охранить свои религиозные ритуалы от обычных людей. По другой версии, таким образом писцы придавали тексту некий формальный вид, как в наше время юристы используют специфические выражения для замены обычных слов. Как и сейчас, египетская криптография тоже могла быть способом писца впечатлить других людей — показать, что он может изъясняться на более высоком уровне, чем они.
Древняя Греция
Примерно в 500 г до н.э. спартанцы разработали устройство под названием скитала, созданное для отправки и получения секретных сообщений. Оно представляло собой цилиндр, обёрнутый по спирали узкой полоской пергамента. Послание писалось вдоль скиталы, но если полоску развернуть, оно становилось нечитаемым. Для прочтения текста требовалась скитала такого же диаметра. Только в этом случае буквы становились в ряд, чтобы восстановить оригинальное сообщение.
Пример скиталы
Скитала является примером перестановочного шифра, в котором элементы исходного текста меняют местами, а не заменяют другими символами. По современным стандартам скиталу было бы очень просто взломать, но 2500 лет назад очень мало людей умели читать и писать. Скитала обеспечила спартанцам защищённую связь.
Древний Рим
Самый ранний известный способ военного применения криптографии принадлежит Юлию Цезарю. Около 2000 лет назад Цезарь, будучи полководцем римской армии, решил проблему безопасных коммуникаций со своими полками. Проблема была в том, что гонцы с секретными военными сообщениями часто перехватывались неприятелем. Цезарь разработал шифр подстановки, в котором заменял одни буквы другими. Только тот, кто знал таблицу подстановки, мог расшифровать секретное сообщение. Теперь, даже если гонец попадёт в руки врага, шифровки не будут рассекречены. Это дало римлянам огромное преимущество в войне.
Пример шифра подстановки
В отличие от примера на этой иллюстрации, Цезарь обычно просто сдвигал буквы на некое определённое число. Это число было шифровальным ключом для его алгоритма. Случайный порядок замены символов обеспечивает гораздо лучшую безопасность благодаря большему количеству возможных таблиц замены.
Шифр Альберти-Виженера
В середине 15 века итальянский учёный, архитектор, скульптор, художник и математик Леон Батиста Альберти изобрёл систему шифрования на основе шифровального диска. Это было механическое устройство со скользящими дисками, которые допускали много разных методов подстановки символов. Это базовая концепция многоалфавитного шифра, в котором метод шифрования меняется непосредственно в процессе шифрования. В своей книге «Взломщики кодов» Дэвид Кан называет Альберти «отцом западной криптографии». Альберти никогда не реализовал свою концепцию шифровального диска, она осталась только на бумаге.
Шифровальный диск
В 16 веке французский дипломат Блез Виженер на основе концепции многоалфавитного шифра Альберти создал шифр, который получил название шифра Виженера. Он работает точно как система Цезаря за исключением того, что ключ меняется в процессе шифрования. В шифре Виженера применяется решётка из букв, которая задаёт метод подстановки. Её называют квадратом Виженера или таблицей Виженера. Решётка состоит из 26 строк алфавита со смещением на один символ друг относительно друга.
Метод смены одного ключа на другой следует простому шаблону. В качестве ключа шифрования выбирается специальное секретное слово. Каждый символ в исходном тексте заменяется с использованием таблицы. Чтобы определить, на какую букву нужно заменить первый символ, мы совмещаем первый символ исходного текста (по одной оси) с первым символом секретного слова (по другой оси). Метод повторяется для второй и каждой последующей букв, секретное слово используется многократно, пока не закончатся символы в исходном тексте.
Предположим, что нужно зашифровать такую фразу:
ATTACKATDAWN («Нападение на закате»)
Отправитель послания выбирает секретное слово и повторяет его до окончания исходного текста. Например, LEMON.
LEMONLEMONLE
Для зашифровки первого символа нужно совместить строку A со столбцом L (в результате получается L), для шифрования второго символа — строку T со столбцом E (в результате получается X) и так далее. Вот как выглядит результат:
Исходный текст: ATTACKATDAWN
Ключевое слово: LEMONLEMONLE
Шифротекст: LXFOPVEFRNHR
Расшифровка выполняется таким же способом: буква в тексте послания (диагональные строки таблицы) совмещается с буквой секретного слова в столбцах или строках таблицы.
Дисковый шифр Джефферсона
В конце 18 века Томас Джефферсон придумал шифровальную систему, очень похожую на шифр Виженера, но с лучшей защитой. Его шифратор состоял из 26 дисков с буквами алфавита, случайно размещёнными на каждом. Диски были пронумерованы и установлены на цилиндр в определённом порядке. Ключом является порядок дисков на оси.
Дисковый шифр Джефферсона
Чтобы зашифровать сообщение, нужно составить исходный текст в одной из строк цилиндра. Зашифрованным текстом будет любая другая строка. Получатель сообщения должен расположить диски в правильном порядке, после чего составить строку зашифрованного текста на цилиндре. Затем быстрый визуальный осмотр цилиндра сразу выявит текст исходного сообщения. Практически нулевая вероятность, что в строках цилиндра появится два не лишённых смысла сообщения.
Как и Альберти, Джефферсон никогда не использовал свою систему шифрования. В начале 20 века шифровальщики американской армии придумали заново цилиндр Джефферсона, ничего не зная об этом изобретении. Джефферсон опередил своё время более чем на сто лет. Армия США использовала такую систему шифрования с 1923 по 1942 годы.
Автор: JETSvyaz