Добавить в цитаты Настройки чтения

Страница 7 из 9

Итак, мы с помощью математических методов убедились, что это не одноалфавитная замена. Возможно, это многоалфавитный шифр. Попробуем проверить. Как я уже сказал, следует сначала попытаться найти длину ключа. Для этого в шифрограмме надо искать одинаковые последовательности букв. Это сложно, и надо собрать всё своё внимание, чтобы найти их.

Быстрый просмотр шифрограммы показывает, что есть одно семисимвольное сочетание «ЗЗЫХШЮХ», которое встречается в шифрограмме дважды. При этом повторяющихся восьмисимвольных сочетаний нет. (Надо отметить, что чем больше в повторяющихся сочетаниях символов, тем лучше). Проверим, на каких позициях стоят эти буквосочетания. Первое стоит на позиции 49, а второе – на 509. Разница: 509 – 49 = 460. Запомним.

Больше семисимвольных сочетаний нет, поэтому посмотрим на шестисимвольные. Есть четыре таких буквосочетания, но первые два из них – это префикс и суффикс семисимвольного сочетания, рассмотренного ранее, поэтому учитывать их не будем. Другие – это «ЛЕПФВТ» и «ТЩРГГП». Первое из этих двух буквосочетаний встречается на позициях 225 и 421. Их разница: 421–225 = 196. Второе стоит на позициях 294 и 330, и разница составляет 330–294 = 36.

Итак, у нас есть три числа, три разницы: 460, 196 и 36. Рассмотрим наибольший общий делитель этих чисел. Он равен 4. В принципе, на этом можно остановиться, поскольку мы только что нашли длину ключа. Теоретически, ключ может быть длиной в 2 символа (поскольку 4 делится на 2), но можно предположить, что никто не будет кодировать сообщение при помощи такого короткого ключа. Если бы у нас в качестве наибольшего общего делителя получилось число 8, то нам пришлось бы проверить ещё и пятисимвольные сочетания, а потом и все остальные, чтобы убедиться, что длина ключа равна именно 8, а не 4.

Итак, мы определили длину ключа и теперь можем выписать всю шифрограмму в четыре колонки, для каждой из которых применить уже известный нам частотный анализ. Вот как это будет выглядеть:

ТИЪР

УЫМТ

УНРШ

АТПЮ

АКЧЧ

ЙАЙТ

ГЗУШ

МНОЧ

ЖАЧЗ

СЦСЮ

ЙЗЗЫ

ХШЮХ

АФЭБ

ДЦПЯ

Но есть метод быстрее и проще. Он не даёт гарантии мгновенного нахождения ключа, но, по крайней мере, не надо заниматься длительным подсчётом частот. Вернее, подсчитать кое-что надо, но это намного быстрее и менее утомительно. В общем, как обычно это бывает у криптоаналитиков, надо не кидаться с головой в скучные подсчёты (они помогут, но сильно надоедят), а сесть и подумать. Решение придёт.





Итак, мы разобрались с длиной ключа и распределили буквы шифрограммы по столбцам (то есть по алфавитам). Теперь они полностью соответствуют частотам употребления букв (и пробела) в русском языке. Поскольку пробел встречается чуть ли не в два раза чаще, чем самая частая буква русского алфавита «О», то резонно предположить, что самый частый символ в каждом столбце обозначает пробел.

А теперь, если ты внимательно изучишь таблицу, приведённую ранее, то увидишь, что у пробела – код 0. Это значит, что при сложении с ним символ не меняется. Получается, что самая часто встречающаяся буква в каждом столбце и есть буква ключа. Вот это да!

Давай подсчитаем. Вот первый столбец:

«ТУУААЙГМЖСЙХАДХУАЖУЖУШАЗППЕАТПЫБЫГСШГАПУОАХЙДПБАЭЛМОУОРПЛЙРМСШБУАОВПОЙЛЩПБАОЭЕБЯЩПНГОПУАЖИБУЛАЖОЖЕЙАВППФЗЙЭЖЗА ЙЕУБНБПАЖЫПРВХБАВОБВЯАИЭНЕБ».

Можно заметить, что чаще всего здесь встречается буква «А». Итак, первая буква ключа найдена. Я рекомендую тебе тщательно подсчитать в каждом столбце количество букв и определить наиболее часто встречающуюся, после чего понять ключ.

Если у тебя все получилось, то нашелся ключ – «АЗОТ» (это газ). И теперь можно легко расшифровать секретное послание. Как я уже писал, надо из шифрограммы вычесть ключ по модулю 32. Вот так:

Если всё сделано правильно, то проявится открытое сообщение: «САЛЮТУЮ ТЕБЕ. КАК ВИДИШЬ, В ДЕЛЕ ДЕШИФРОВКИ ШИФРОВ МНОГОАЛФАВИТНОЙ ЗАМЕНЫ ТАКЖЕ НЕТ НИЧЕГО СЛОЖНОГО. НЕОБХОДИМО ПРОСТО ОЧЕНЬ ТЩАТЕЛЬНО ВСЁ РАССЧИТЫВАТЬ, ВЫПОЛНЯТЬ МНОГО АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ И БЫТЬ КРАЙНЕ ВНИМАТЕЛЬНЫМ. ПОЭТОМУ, КАК И В ПРОШЛЫЙ РАЗ, Я ХОЧУ ЗАЯВИТЬ О ПОЛНОЙ БЕСПОЛЕЗНОСТИ ТАКИХ ШИФРОВ. КАКОЙ БЫ НИ БЫЛА ДЛИНА КЛЮЧА, ШИФРОГРАММА В КОНЕЧНОМ ИТОГЕ БУДЕТ ВЗЛОМАНА ТЕМ, КОМУ ИНТЕРЕСНО ЕЁ СОДЕРЖИМОЕ. НО БЛАГОДАРЯ ЭТОМУ УПРАЖНЕНИЮ ТЫ УЖЕ МОЖЕШЬ ПОНЯТЬ И ПОДУМАТЬ НА ТЕМУ, КАК МОЖНО ИЗМЕНИТЬ ЭТОТ СПОСОБ ШИФРОВАНИЯ, ЧТОБЫ ОН СТАЛ АБСОЛЮТНО НЕВЗЛАМЫВАЕМЫМ. ДЕРЗАЙ».

Что ж, ещё пара моментов:

1. Не всегда пробел будет самым частым символом в столбце. Если не удалось обнаружить ключ, то можно попробовать либо вычитать букву «О», либо попытаться использовать в качестве пробела второй по частоте символ. Ключ часто может быть каким-то словом.

2. Но по-настоящему хитрые шифровальщики никогда не делают ключом слово. Если из самых часто встречаемых символов в каждом столбце получилось не слово, а какое-то бессмысленное буквосочетание, то попробуй все же применить его в качестве ключа. Вполне может быть, что это и есть ключ (всё-таки пробел очень часто встречается).

Теперь ты можешь обдумать и такую проблему: как можно модифицировать этот способ шифрования, чтобы его было не так легко взломать (а это тоже был достаточно лёгкий взлом)? Поразмышляй насчёт длины ключа.

Надеюсь, что на этой неделе тебе понравилось разгадывать зашифрованные сообщения, несмотря на множество вычислений. Ведь по сравнению с тем, чем мы занимались на первой неделе, это был настоящий шифр. А уж на следующей неделе тебя ждёт нечто удивительное. Уверен, что такого тебе ещё не попадалось.

Неделя 3. Стеганография и код Фрэнсиса Бэкона

Представь, что ты получаешь вот такое письмо:

Привет тебе, мой дорогой сын. Как поживаешь в деревне? Что нового слышно? Ругаешься ли с дедушкой и бабушкой? У нас с мамой всё как обычно. Ходим на работу. Приедем к тебе на следующих выходных, готовься. Кушай хорошо, не балуйся и слушайся старших. Ешь больше овощей и фруктов, поменьше играй на планшете и побольше гуляй. Катайся на велосипеде и купайся. До скорой встречи, твой отец.

И больше ничего. Никаких шифровок, ничего такого, о чём мы говорили раньше. Это странно.

А теперь посмотри на этот текст внимательнее. Почему в нём использованы обычные и жирные буквы? Обычно так никто не пишет. Нет ли тут какой-то тайны, над которой надо бы поломать голову?

Действительно, ты уже можешь догадаться, что в этой книге ничего не написано просто так. Тут явно что-то закодировано. Но для того чтобы это понять, необходимо немного отвлечься и изучить новую для тебя тему из математики. Тут уж ничего не поделаешь, поскольку криптография – это наука, в которой очень много математики. И даже если тебе математика не очень нравится, то я надеюсь, что ты её полюбишь, прочитав до конца эту книгу и вместе со мной попробовав все способы шифрования и расшифровки. Ведь математика позволяет решать такие интересные загадки! Честно говоря, математика позволяет делать практически всё, что только можно придумать.

Почему мы вообще используем счёт до десяти? Почему у нас десять цифр: 0 1 2 3 4 5 6 7 8 9? Почему, если прибавить к девяти единицу, то произойдёт так называемый перенос разряда и число станет двузначным? Для записи числа «десять» мы не вводим одиннадцатую цифру, а используем те же самые цифры, что и для первых десяти чисел от нуля до девяти. А что вообще обозначает запись «10»? Эта запись обозначает: один десяток и ноль единиц. А, к примеру, запись «156» обозначает: одна сотня, пять десятков и шесть единиц. А вот запись «7325» обозначает: семь тысяч, три сотни, два десятка и пять единиц.