Книга шифров. Тайная история шифров и их расшифровки - Сингх Саймон (читать книги онлайн полностью без сокращений TXT) 📗
Шифр Плейфера
Шифр Плейфера стал известным благодаря Леону Плейферу, первому барону Плейферу из Сент-Эндрюса, однако придумал его сэр Чарльз Уитстон, один из первооткрывателей электрического телеграфа. Оба они жили неподалеку друг от друга, буквально через Хаммерсмитский мост, и нередко встречались, чтобы поделиться своими мыслями о криптографии.
В шифре каждая пара букв открытого текста заменяется другой парой букв. Чтобы зашифровать и передать сообщение, отправитель и получатель должны вначале условиться между собой о ключевом слове. К примеру, в качестве ключевого слова мы можем использовать имя Уитстона — CHARLES. Затем, перед тем как приступить к зашифровыванию, буквы алфавита, начиная с ключевого слова, вписываются в квадрат 5 x 5, при этом буквы I и J объединяются вместе:
Далее сообщение разбивается на пары букв, или диграфы. Во всех диграфах обе буквы должны быть различными. Для этого, как показано в следующем примере, в слове hammersmith между удвоенной буквой m вставляется дополнительная буква х. Кроме того, к концу предложения дописывается еще одна дополнительная буква х, чтобы вместо остающейся одиночной буквы также получался диграф:
Теперь можно приступать к зашифровыванию. Все диграфы относятся к одной из трех категорий: (а) обе буквы находятся в одной строке, (б) обе буквы находятся в одном столбце, (в) обе буквы находятся в разных строках и столбцах. Если обе буквы находятся в одной строке, то каждая из них заменяется соседней, стоящей справа от нее буквой; таким образом mi преобразуется в NK. Если одна из букв находится в конце строки, то она заменяется первой буквой строки; тем самым ni становится GK. Если обе буквы находятся в одном столбце, то каждая из них заменяется буквой, находящейся непосредственно под ней; так что вместо ge получается OG. Если одна из букв является нижней буквой столбца, то она заменяется верхней буквой столбца; таким образом vе заменяется на CG.
Если же буквы диграфа находятся в разных строках и столбцах, шифровальщик поступает по-другому. Чтобы зашифровать первую букву, двигайтесь вдоль строки, в которой находится первая буква, пока не достигнете столбца, в котором находится вторая буква; после чего замените первую букву буквой, находящейся на пересечении этой строки и столбца. Чтобы зашифровать вторую букву, двигайтесь вдоль строки, в которой находится вторая буква, пока не достигнете столбца, в котором находится первая буква; после чего замените вторую букву буквой, находящейся на пересечении этой строки и столбца. Таким образом, mе станет GD, а еt преобразуется в DO. Полностью зашифрованное сообщение примет вид:
Получатель, которому известно ключевое слово, может легко расшифровать шифртекст, просто выполняя ту же операцию в обратном порядке. К примеру, зашифрованные буквы, находящиеся в одной строке, расшифровываются путем замены их буквами, стоящими слева от них.
Плейфер был не только ученым, но и выдающимся общественным деятелем (вице-спикер палаты общин, министр почт и специальный уполномоченный по здравоохранению, который помог заложить современную основу санитарии), и его попросили поддержать идею Уитстона среди политических деятелей самого высокого ранга. Он впервые упомянул об этом на обеде в 1854 году перед принцем Альбертом и будущим премьер-министром лордом Пальмерстоном, а позднее представил Уитстона заместителю министра иностранных дел. К сожалению, заместитель министра посетовал, что эта система слишком сложна для использования в условиях сражения, на что Уитстон заявил, что смог бы научить этому способу мальчиков из ближайшей начальной школы за 15 минут. «Вполне возможно, что это и так, — ответил заместитель министра, — но вы никогда не сумеете научить этому никого из атташе».
Плейфер продолжал настаивать, и в конце концов британское военное министерство втайне приняло эту систему и, по-видимому, впервые использовало ее в англо-бурской войне. Хотя какое-то время она была эффективной, шифр Плейфера оказался далеко не неуязвимым. Его можно было атаковать, отыскивая в шифртексте чаще всего появляющиеся диграфы и предполагая, что они представляют собой чаще всего встречающиеся диграфы в английском языке: th, Ье, аn, in, ег, ге, еs.
Приложение F
Шифр ADFGVX
Особенность шифра ADFGVX состоит в том, что здесь осуществляется и замена, и перестановка. Зашифровывание начинается с того, что рисуется сетка 6 x 6, и 36 квадратов заполняются 26 буквами и 10 цифрами в произвольном порядке. Каждая строка и столбец сетки задается одной из шести букв: А, О, Р, в, V или X. Расположение элементов в сетке служит в качестве части ключа, поэтому получателю, чтобы расшифровать сообщение, необходимо знать, как они в ней располагаются.
На первом этапе зашифровывания следует взять каждый символ сообщения, определить его положение в сетке и заменить его буквами, которые обозначают строку и столбец. Так, 8 будет заменено на АА, а р — на AD. Ниже, в качестве примера, показано зашифрованное этим способом короткое сообщение:
Пока что это — использование простого одноалфавитного шифра замены, и, чтобы взломать сообщение, достаточно воспользоваться частотным анализом. Однако второй этап — применение перестановки, что делает криптоанализ гораздо сложнее. Перестановка зависит от ключевого слова, которым, в нашем случае, будет слово MARK и которое должно быть известно получателю.
Перестановка производится следующим способом. Вначале в верхней строке незаполненной сетки записываются буквы ключевого слова. Далее, как показано ниже, под этим словом построчно записывается зашифрованный текст, полученный на первом шаге зашифровывания. Затем столбцы сетки переставляются местами таким образом, чтобы буквы ключевого слова шли в алфавитном порядке. После этого, двигаясь сверху вниз поочередно по каждому столбцу, выписываются буквы, которые и образуют окончательный вид шифртекста.
В этом виде шифртекст будет затем передан с помощью кода Морзе; получателю, чтобы восстановить первоначальный текст, потребуется выполнить действия, обратные зашифровыванию. Шифртекст состоит всего лишь из шести букв (т. е. А, D, F, G, V, X), так как этими буквами обозначаются строки и столбцы исходной сетки 6 x 6. Люди часто удивляются, почему были выбраны именно эти буквы, а не, скажем, А, В, С, D, Е и F. Все дело в том, что если буквы А, D, F, G, V и X представить в виде точек и тире кода Морзе, то они будут существенно отличаться одна от другой; тем самым выбор этих букв минимизирует опасность появления ошибок во время передачи.
Приложение G
Слабости повторного использования одноразового шифрблокнота
По причинам, изложенным в главе 3, шифртексты, зашифрованные с помощью шифра из одноразового шифрблокнота, являются нераскрываемыми. Однако это относится к одноразовому шифрблокноту, который используется один, и только один раз. Если же мы сумели перехватить два различных шифртекста, которые были зашифрованы с помощью одного и того же одноразового шифрблокнота, мы сможем дешифровать их следующим образом.
Мы, вероятно, будем правы, если предположим, что в первом шифртексте где-то есть слово the, и поэтому криптоанализ начинается с допущения, что все сообщение целиком состоит из последовательности слов the. Далее мы полагаем, что искомый одноразовый шифрблокнот преобразует всю эту последовательность слов the в первый шифртекст. Это станет нашим исходным предположением об одноразовом шифрблокноте. Но как же мы сможем узнать, какие части этого одноразового шифрблокнота правильны?