Плейфер был не только ученым, но и выдающимся общественным деятелем (вице-спикер палаты общин, министр почт и специальный уполномоченный по здравоохранению, который помог заложить современную основу санитарии), и его попросили поддержать идею Уитстона среди политических деятелей самого высокого ранга. Он впервые упомянул об этом на обеде в 1854 году перед принцем Альбертом и будущим премьер-министром лордом Пальмерстоном, а позднее представил Уитстона заместителю министра иностранных дел. К сожалению, заместитель министра посетовал, что эта система слишком сложна для использования в условиях сражения, на что Уитстон заявил, что смог бы научить этому способу мальчиков из ближайшей начальной школы за 15 минут. «Вполне возможно, что это и так, — ответил заместитель министра, — но вы никогда не сумеете научить этому никого из атташе».
Плейфер продолжал настаивать, и в конце концов британское военное министерство втайне приняло эту систему и, по-видимому, впервые использовало ее в англо-бурской войне. Хотя какое-то время она была эффективной, шифр Плейфера оказался далеко не неуязвимым. Его можно было атаковать, отыскивая в шифртексте чаще всего появляющиеся диграфы и предполагая, что они представляют собой чаще всего встречающиеся диграфы в английском языке: th, be, an, in, re, re, es.
Приложение F
Шифр ADFGVX
Особенность шифра ADFGVX состоит в том, что здесь осуществляется и замена, и перестановка. Зашифровывание начинается с того, что рисуется сетка 6 x 6, и 36 квадратов заполняются 26 буквами и 10 цифрами в произвольном порядке. Каждая строка и столбец сетки задается одной из шести букв: A, D, P, F, V или X. Расположение элементов в сетке служит в качестве части ключа, поэтому получателю, чтобы расшифровать сообщение, необходимо знать, как они в ней располагаются.
На первом этапе зашифровывания следует взять каждый символ сообщения, определить его положение в сетке и заменить его буквами, которые обозначают строку и столбец. Так, 8 будет заменено на AA, а p — на AD. Ниже, в качестве примера, показано зашифрованное этим способом короткое сообщение:
Пока что это — использование простого одноалфавитного шифра замены, и, чтобы взломать сообщение, достаточно воспользоваться частотным анализом. Однако второй этап — применение перестановки, что делает криптоанализ гораздо сложнее. Перестановка зависит от ключевого слова, которым, в нашем случае, будет слово MARK и которое должно быть известно получателю.
Перестановка производится следующим способом. Вначале в верхней строке незаполненной сетки записываются буквы ключевого слова. Далее, как показано ниже, под этим словом построчно записывается зашифрованный текст, полученный на первом шаге зашифровывания. Затем столбцы сетки переставляются местами таким образом, чтобы буквы ключевого слова шли в алфавитном порядке. После этого, двигаясь сверху вниз поочередно по каждому столбцу, выписываются буквы, которые и образуют окончательный вид шифртекста.
В этом виде шифртекст будет затем передан с помощью кода Морзе; получателю, чтобы восстановить первоначальный текст, потребуется выполнить действия, обратные зашифровыванию. Шифртекст состоит всего лишь из шести букв (т. е. А, D, F, G, V, X), так как этими буквами обозначаются строки и столбцы исходной сетки 6 x 6. Люди часто удивляются, почему были выбраны именно эти буквы, а не, скажем, A, B, C, D, E и F. Все дело в том, что если буквы A, D, F, G, V и X представить в виде точек и тире кода Морзе, то они будут существенно отличаться одна от другой; тем самым выбор этих букв минимизирует опасность появления ошибок во время передачи.
Приложение G
Слабости повторного использования одноразового шифрблокнота
По причинам, изложенным в главе 3, шифртексты, зашифрованные с помощью шифра из одноразового шифрблокнота, являются нераскрываемыми. Однако это относится к одноразовому шифрблокноту, который используется один, и только один раз. Если же мы сумели перехватить два различных шифртекста, которые были зашифрованы с помощью одного и того же одноразового шифрблокнота, мы сможем дешифровать их следующим образом.
Мы, вероятно, будем правы, если предположим, что в первом шифртексте где-то есть слово the, и поэтому криптоанализ начинается с допущения, что все сообщение целиком состоит из последовательности слов the. Далее мы полагаем, что искомый одноразовый шифрблокнот преобразует всю эту последовательность слов the в первый шифртекст. Это станет нашим исходным предположением об одноразовом шифрблокноте. Но как же мы сможем узнать, какие части этого одноразового шифрблокнота правильны?