5. Ты знаешь о практически невзламываемом методе шифрования на основе редкой книги.
6. Наконец, на прошлой неделе мы изучили симпатические чернила, которые используются в качестве метода стеганографии для физического сокрытия секретного текста.
Всё это просто прекрасно. И перед тем как перейти к абсолютно невзламываемому шифру, я научу тебя ещё одному методу, который называется «каскадное шифрование». Его суть очень проста — просто-напросто используется несколько методов сокрытия информации, причём это могут быть и методы криптографии, и методы стеганографии.
Итак, мы берём текст, который необходимо скрыть, и применяем к нему какой-нибудь метод шифрования. Пусть, например, это будет шифр многоалфавитной замены с достаточно длинным ключом (не менее 10 символов, а лучше больше). Затем полученная шифрограмма скрывается ещё раз (только бессмысленно снова применять одноалфавитную или многоалфавитную замену — это не повысит уровень защиты). Например, шифрограмму можно перемешать при помощи дырявой матрицы. На третьем шаге мы можем закодировать полученную перестановку стеганографичным кодом Бэкона. И наконец, результат можно записать симпатическими чернилами, поверх которых написать какую-нибудь банальную и никому не интересную ерунду.
Представь себе работу криптоаналитика, который будет пытаться это расшифровать…
Давай рассмотрим пример. Скажем, какой-то хитрец перехватил послание, зашифрованное именно таким способом, как описано выше. Этот некто внимательно изучил лист с ничего не значащим текстом и обнаружил изменение структуры бумажных волокон. Он догадался, что на этом листе есть запись симпатическими чернилами. Он попробовал сначала ультрафиолетовое излучение, а потом нагрев бумаги, и на листе проявились буквы. Написан какой-то текст, но буквы — то заглавные, то строчные вразнобой, и это дает намёк на то, что использован код Ф. Бэкона, то есть написанное симпатическими чернилами сообщение — тоже «обманка». Тогда этот проницательный человек декодирует код и получает последовательность букв. Построив гистограмму частотности разных букв, он понимает, что использован шифр многоалфавитной замены, поскольку гистограмма не соответствует русскому языку (также он проверил английский, немецкий и ещё несколько широко используемых языков; это не помогло). Тогда этот криптоаналитик пытается подобрать длину ключа, но не может найти в тексте повторов, потому что все буквы перемешаны. Много дней он ломает голову и приходит к выводу, что послание взломать невозможно. Впрочем, ему может улыбнуться удача, и он взломает шифр. Но это произойдёт, например, через год… А через год полученная из шифрограммы информация будет уже давно неактуальна.
Словом, суть каскадного шифрования заключается в том, чтобы при помощи достаточно простых способов настолько запутать и усложнить шифровку, что криптоаналитику, пусть даже он и знает об использованных методах, придется разгадывать все ключи и пароли очень долго. Так что к моменту, когда он закончит, информация безвозвратно устареет.
Понятно, что расшифровка послания, которое скрыто при помощи каскадного шифра, представляет собой обратный процесс. То есть если применялось три способа шифрования один за другим, то, расшифровывая, нужно будет применить эти же три способа, но в обратном порядке. Это важно, поскольку результат шифрования не сохраняется при перемене мест. Порядок всегда важен в шифровании.
Это можно пояснить при помощи такой диаграммы:
Для правильного использования каскадного шифрования нужно знать несколько базовых правил:
1. Одноалфавитный и многоалфавитный шифры замены — это один и тот же способ шифрования, поэтому их совместное использование бесполезно. Сколько бы разных ключей разной длины мы ни использовали для шифрования, всё это в итоге становится многоалфавитным шифром, который легко взламывается.
2. То же самое относится к перестановочным шифрам. Нет никакого резона использовать несколько разных ключей для перестановки букв в сообщении, потому что в итоге это будет выглядеть как одна перестановка.
3. Использование практически невзламываемых шифров для каскадного шифрования нецелесообразно, поскольку такие шифры очень долго разгадываются, даже если есть ключ. А смысл каскадного шифрования — в быстроте использования одновременно с катастрофическим увеличением времени взлома. Практически невзламываемые шифры, типа шифра на основе редкой книги, сами по себе практически бесконечно затрудняют работу криптоаналитика.
4. Лучше всего сначала применить несколько методов криптографии, а потом скрыть послание при помощи одного или нескольких методов стеганографии.
Теперь ты знаешь об этой теме всё, что требуется для успешного использования каскадного шифрования и, главное, для расшифровки. На этой неделе ты получишь письмо, в котором шифровка составлена с использованием каскада шифров и методов стеганографии. Так что у тебя есть все возможности для того, чтобы продемонстрировать в деле полученные за лето умения.
Неделя 12. Одноразовый блокнот
Наконец, мы приступаем к изучению системы шифрования, которая не может быть взломана, если ею правильно пользоваться. Это вершина криптографической мысли. При этом сам шифр настолько прост, что можно только удивляться тому, почему эта система не используется везде и всеми. Впрочем, далее я разъясню тебе, почему её сложно использовать, и она не нашла широкого применения. Получается, что сам шифр простой, а вот использовать его сложно. Парадокс.
Но начнём. Вспомни, пожалуйста, тему четвёртой недели, когда мы изучали новую математическую операцию XOR. Сейчас это тебе пригодится. Если требуется, перечитай соответствующую главу и выполни несколько упражнений, применяя операцию XOR к двоичным числам. А теперь продолжай чтение.
Представь, что тебе необходимо зашифровать какую-либо фразу. Пусть это будет простое слово «КАТАПУЛЬТА». В качестве ключа для применения операции XOR пусть используется последовательность символов «ВОАЫДЛАОВЬ». Что получится в результате? Правильно: последовательность «ЗНСЭФЧМУПЩ», которая и будет нашей шифрограммой.
Если криптоаналитик перехватит шифрограмму, у него окажется этот странный текст: «ЗНСЭФЧМУПЩ». Как подойти к расшифровке? Он может последовательно перебирать все возможные ключи, в какой-то момент наткнётся на ключ «АЕРЪГЯКЩШЫ» и при расшифровке получит слово «ИЗВЕРЖЕНИЕ». Дальше он встретит ключ «АКУСРИЛШЭЪ», которому при расшифровке будет соответствовать слово «ИДЕОГРАММА». И так далее.
Очевидно, что так криптоаналитик переберёт все возможные ключи и получит все возможные слова длиной в 10 букв (даже больше, он получит и обрывки фраз длиной в 10 букв). Но какое из них верное? Нет никакой возможности выбрать правильный вариант, поскольку ни один ключ не будет правильным словом — все ключи окажутся случайными наборами символов.