2. Поскольку мы столкнулись с двоичным кодированием символов, спрятанных потом в тексте-обманке, то резонно предположить, что для шифрования воспользовались операцией XOR. Так что можно последовательно проверить каждый код из тридцати одного (первый код проверять смысла нет, это код 00000, соответствующий пробелу, он не меняет текста). В итоге ты найдёшь тот код, которым зашифровано послание. Попробуй.
3. А можно поступить ещё более хитро и объединить эти два метода. Самый частый символ в тексте на русском языке — пробел. В шифрограмме самый частый встречающийся символ — Х. Однако Х стоит в конце шифрограммы, так что вряд ли это пробел (какой резон ставить пробел в конец текста?). Второй по частоте символ в шифрограмме — Ц. В таких коротких текстах часто случается, что символы меняются местами по частоте. Так что попробуй применить операцию XOR к шифрограмме с ключом Ц.
Если ты всё правильно сделал, то в результате должен получиться текст «ИЗУЧАЙ МАТЕМАТИКУ ЭТО ПРЕКРАСНАЯ НАУКА». По-моему, это отличное послание для любого человека.
Теперь ты можешь придумать какое-нибудь послание и попробовать зашифровать его подобным образом (лучше в качестве ключа использовать не очень длинное слово). Это будет очень хорошее упражнение как для тренировки описанного метода шифрования, так и для изучения криптографии в целом. Так что рекомендую сделать следующее:
1. Придумай текст, который ты хочешь зашифровать, длиной не менее 50 символов.
2. Придумай секретный ключ, при помощи которого ты будешь шифровать текст.
3. Теперь придумай открытое сообщение длиной не менее 250 символов (помни, что для кодирования одного символа тайного текста требуется 5 символов открытого сообщения).
4. Зашифруй тайное послание при помощи ключа, используя для этого операцию XOR.
5. Теперь закодируй полученную шифрограмму методом Фрэнсиса Бэкона (который мы изучили на прошлой неделе).
Пошли это письмо кому-нибудь (например, мне по адресу
После того как ты выполнишь это непростое упражнение, ты сможешь уверенно пользоваться изученным на этой неделе методом шифрования. И это будет хорошо.
Неделя 5. Тарабарская грамота
Теперь давай изучим немного иной подход к тайной переписке. Мы будем использовать то, что потенциальный взломщик не знает, как именно зашифрован секретный текст. Это значит, что альтернатив и возможностей для проверки у него слишком много. Всё дело в том, что участники обмена сообщениями должны заранее договориться о том, какой метод шифрования или сокрытия информации они будут использовать. Если сам метод сложно распознать по виду текста, то криптоаналитик может голову сломать, но не разобраться в секрете.
Заметь: всё, что мы изучили до сих пор, не подходит под это понимание. Если мы используем шифр одноалфавитной замены, то это можно понять по самому виду текста. Более того, частотный анализ с построением гистограммы сразу же полностью раскрывает метод шифрования (и мы с тобой уже тоже научились это делать). С многоалфавитной заменой — всё то же самое. Достаточно только предположить, что текст зашифрован при помощи многоалфавитной замены, чтобы применить к нему метод расшифровки, который мы использовали на второй неделе. И если этот метод найдёт длину ключа, то тайна сразу же перестаёт быть тайной.
То же самое подходит и к сокрытию информации при помощи двоичного кодирования через свойства символов. Как только криптоаналитик видит, что символы в тексте отличаются друг от друга как-то регулярно, он сразу же предполагает: в деле замешана двоичная система счисления, после чего начинает искать закономерности. В конце концов, шифр поддаётся, тайна раскрыта.
Другими словами, если криптоаналитик узнаёт метод шифрования, получение открытого текста из шифрограммы становится делом техники и очень внимательных и точных подсчётов. Но на этой неделе мы изучим пару методов, которые в целом лишены такого недостатка.
Если два человека хотят обмениваться секретными сообщениями так, чтобы их никто не понял, у них есть для этого два способа. Первый заключается в том, чтобы воспользоваться широко известными алгоритмами или методами шифрования, более или менее стойкими к взлому. Поскольку описание методов известно, то нет никаких проблем в том, чтобы использовать их.
Второй способ заключается в использовании метода, который не будет известен никому, кроме участников обмена тайной информацией. Само собой разумеется, что договориться о таком методе и обменяться разного рода ключами необходимо заранее — то есть требуется двойной обмен информацией. В первый раз необходимо встретиться лично и тайно, чтобы обменяться ключами и методами шифрования. Потом уже можно пересылать друг другу информацию по открытым каналам, не опасаясь, что тайны будут раскрыты.