Математика и криптография. Тайны шифров и логическое мышление - Роман Душкин
Шрифт:
Интервал:
Закладка:
3. А можно поступить ещё более хитро и объединить эти два метода. Самый частый символ в тексте на русском языке — пробел. В шифрограмме самый частый встречающийся символ — Х. Однако Х стоит в конце шифрограммы, так что вряд ли это пробел (какой резон ставить пробел в конец текста?). Второй по частоте символ в шифрограмме — Ц. В таких коротких текстах часто случается, что символы меняются местами по частоте. Так что попробуй применить операцию XOR к шифрограмме с ключом Ц.
Если ты всё правильно сделал, то в результате должен получиться текст «ИЗУЧАЙ МАТЕМАТИКУ ЭТО ПРЕКРАСНАЯ НАУКА». По-моему, это отличное послание для любого человека.
Теперь ты можешь придумать какое-нибудь послание и попробовать зашифровать его подобным образом (лучше в качестве ключа использовать не очень длинное слово). Это будет очень хорошее упражнение как для тренировки описанного метода шифрования, так и для изучения криптографии в целом. Так что рекомендую сделать следующее:
1. Придумай текст, который ты хочешь зашифровать, длиной не менее 50 символов.
2. Придумай секретный ключ, при помощи которого ты будешь шифровать текст.
3. Теперь придумай открытое сообщение длиной не менее 250 символов (помни, что для кодирования одного символа тайного текста требуется 5 символов открытого сообщения).
4. Зашифруй тайное послание при помощи ключа, используя для этого операцию XOR.
5. Теперь закодируй полученную шифрограмму методом Фрэнсиса Бэкона (который мы изучили на прошлой неделе).
Пошли это письмо кому-нибудь (например, мне по адресу [email protected]).
После того как ты выполнишь это непростое упражнение, ты сможешь уверенно пользоваться изученным на этой неделе методом шифрования. И это будет хорошо.
Теперь давай изучим немного иной подход к тайной переписке. Мы будем использовать то, что потенциальный взломщик не знает, как именно зашифрован секретный текст. Это значит, что альтернатив и возможностей для проверки у него слишком много. Всё дело в том, что участники обмена сообщениями должны заранее договориться о том, какой метод шифрования или сокрытия информации они будут использовать. Если сам метод сложно распознать по виду текста, то криптоаналитик может голову сломать, но не разобраться в секрете.
Заметь: всё, что мы изучили до сих пор, не подходит под это понимание. Если мы используем шифр одноалфавитной замены, то это можно понять по самому виду текста. Более того, частотный анализ с построением гистограммы сразу же полностью раскрывает метод шифрования (и мы с тобой уже тоже научились это делать). С многоалфавитной заменой — всё то же самое. Достаточно только предположить, что текст зашифрован при помощи многоалфавитной замены, чтобы применить к нему метод расшифровки, который мы использовали на второй неделе. И если этот метод найдёт длину ключа, то тайна сразу же перестаёт быть тайной.
То же самое подходит и к сокрытию информации при помощи двоичного кодирования через свойства символов. Как только криптоаналитик видит, что символы в тексте отличаются друг от друга как-то регулярно, он сразу же предполагает: в деле замешана двоичная система счисления, после чего начинает искать закономерности. В конце концов, шифр поддаётся, тайна раскрыта.
Другими словами, если криптоаналитик узнаёт метод шифрования, получение открытого текста из шифрограммы становится делом техники и очень внимательных и точных подсчётов. Но на этой неделе мы изучим пару методов, которые в целом лишены такого недостатка.
Если два человека хотят обмениваться секретными сообщениями так, чтобы их никто не понял, у них есть для этого два способа. Первый заключается в том, чтобы воспользоваться широко известными алгоритмами или методами шифрования, более или менее стойкими к взлому. Поскольку описание методов известно, то нет никаких проблем в том, чтобы использовать их.
Второй способ заключается в использовании метода, который не будет известен никому, кроме участников обмена тайной информацией. Само собой разумеется, что договориться о таком методе и обменяться разного рода ключами необходимо заранее — то есть требуется двойной обмен информацией. В первый раз необходимо встретиться лично и тайно, чтобы обменяться ключами и методами шифрования. Потом уже можно пересылать друг другу информацию по открытым каналам, не опасаясь, что тайны будут раскрыты.
На этой неделе мы изучим метод, который получил название «Тарабарская грамота». Слово «тарабарский» обозначает «непонятный», «бессмысленный». Тарабарский язык — это речь, составленная из бессмысленного набора звуков, часто подражающая какому-либо известному языку или даже нескольким языкам. Например, известную фразу «Глокая куздра штеко будланула бокра и курдячит бокрёнка» можно считать фразой на тарабарском языке, при этом построенной по правилам русского.
Или, например, попробуй расшифровать, что написано в этом тексте:
RIП ZWОN ЛУJVU IЧLИSS JЛWОZR СIILЬ QУРWАN
Если у тебя ничего не выходит, и никаких идей в голову не приходит, то попробуй вычеркнуть из этого набора букв те, которые не входят в русский алфавит. Получилось?
Но это очень просто. Есть методы куда более сложные. Их использование требует больших усилий, поскольку надо очень внимательно подбирать слова и фразы так, чтобы у криптоаналитика не было возможности за что-то зацепиться. Например, составить скрытое сообщение так, чтобы читать нужно было только третью букву каждого слова, если в слове три или больше букв. Понятное дело, что тут надо очень тщательно выбирать слова — так, чтобы у текста был смысл, и смысл этот был вполне нормальный, а не абы какой. Если в тексте попадаются какие-то несуразности — это первый признак того, что такое сообщение предназначено для наведения тумана, а истинная информация передаётся внутри этого сообщения тайно.
Для тренировки можно выполнить такие упражнения. Придумай какое-нибудь слово, не короткое и не длинное. Например, это может быть слово «ПЛАМЯ». Теперь тебе надо придумать фразу из пяти слов, которые начинаются на буквы «П», «Л», «А», «М», и «Я». Например: «Подо Льдом Араб Мучил Янычара». Теперь ты понимаешь, что такое неадекватность текста? А теперь придумай фразу из пяти слов, где слово «ПЛАМЯ» будет читаться по вторым буквам. Например: «сПособ пЛавания рАзработан уМным дЯдей». Как видишь, эта задача не так проста, как кажется на первый взгляд, и здесь требуются многочисленные тренировки.
Но это всё ещё не очень хороший метод. Давай замахнёмся на что-нибудь посерьёзней. Представь, что тебе в руки попала следующая шифрограмма:
ARK NANTONG CELL TREC ISOHY KNAV BAR IPS EXES PISIDIE UXQUELS HABEN KANBUN WORLD BE XERM SOME TEXIS YRS BELLIC
На первый взгляд она выглядит как довольно странный набор английских слов, многие из которых — очень редкие и встречаются только в специализированной литературе, а некоторые вообще написаны с ошибками. Сразу же приходит на ум вычленить из этого бессмысленного набора символов только те, которые похожи своим начертанием на буквы русского алфавита (таких букв 12: A, B, C, E, H, K, M, O, P, T, X, Y). Вот что получается: