Шрифт:
Интервал:
Закладка:
Внезапно оказалось кстати, что 32 = 4 × 8, а 12 = 4 + 8, и среди этих двенадцати символов 4 гласных и 8 согласных. Поэтому код получился очень забавным — это двухбуквенный код, где на первом месте стоит гласная, а на втором согласная буква. Гласная буква определяет номер четвёрки (то есть столбец, в котором записана шифруемая буква), а согласная — позицию внутри четвёрки. Всё очень логично. Кстати, хоть это и красиво, но сразу же снижает ценность кода, поскольку любая регулярность даёт криптоаналитику подсказки для взлома. Но сейчас мы воспользуемся именно таким методом.
Итак, наше послание
«ЗАВТРА НАЧНУ»
перекодируется при помощи созданного кода в такую последовательность:
«EBACAKOKOCACABETACYBETOM».
Здесь 24 символа латинского алфавита, из которых надо составить список английский слов. Например, вот так:
ZEBRA CAN KOFF KLON CAR UCLA BETA CYBER TIRO MUZZ
Опять же, не очень-то складно (вообще нескладно), но это свойство всех подобных способов сокрытия информации.
Итак, на текущей неделе необходимо сделать следующее:
1. Придумать короткое сообщение, которое будет скрыто в тарабарской грамоте.
2. Закодировать его при помощи приведённой выше таблицы.
3. Придумать англоязычный текст, в котором будет скрыто сообщение.
4. Написать обычное письмо своему ребёнку, а в качестве одного из абзацев привести сгенерированный на предыдущем шаге текст на английском языке. Хорошо, если само письмо будет как-то обыгрывать эту вставку английского текста.
5. Далее, надо быть готовым помочь ребёнку с расшифровкой, поскольку у него могут возникнуть затруднения, особенно если ещё не совсем хорошо знает латинский алфавит.
Кстати, задачка для вдумчивого читателя и неназойливых размышлений на досуге. Конечно же, для английского языка тоже есть таблица частоты проявления символов. Можно составить новую таблицу двухбуквенной кодировки при помощи двенадцати символов, в которой будут учтены частоты встречаемости букв как в русском, так и в английском языке. Например, буква «E» встречается в английском языке чаще всего, за ней на втором месте стоит буква «T», так что резонно код «ET» отдать пробелу. А вот буква «X» встречается очень редко, равно как и буква «Y», так что код «YX» отдаётся букве «Ъ». И так далее.
На шестой неделе мы научим ребёнка использовать так называемую «дырявую матрицу», чтобы шифровать свои тексты. Этот метод относится к перестановочным шифрам, то есть он не заменяет символы, а перемешивает их. Это, в свою очередь, значит, что частоты символов не меняются, а секретность основана на отсутствии у третьих лиц информации о точном способе перемешивания символов. И чем больше символов перемешивается, тем труднее разгадать тайну.
Для такого шифрования необходимо подготовить набор ключей. Каждый ключ представляет собой квадратную матрицу, в которой прорезаны отверстия. Другими словами, ключ — это квадратный лист картона, разделённый на знакоместа. В нем продырявлена ровно четверть знакомест. При этом отверстия сделаны таким образом, что при повороте квадрата на 90, 180 и 270 градусов их наложения друг на друга не происходит. Например, вот изображение ключа для перемешивания сообщения из 100 символов:
Как видно, это квадратный ключ. Цифрами в уголках обозначена последовательность, в которой углы ключа занимают верхний левый угол.
В прорезях пишется текст, который надо перемешать. Как только первые 25 символов текста записаны, ключ поворачивается на 90 градусов так, чтобы в верхнем левом углу теперь стояла цифра 2, и в прорези записываются следующие 25 символов перемешиваемого текста — и так далее до окончательного заполнения матрицы. Если в перемешиваемом тексте менее 100 символов, то остаток заполняется какой-нибудь буквой (например, наиболее часто используемой; но лучше подобрать сообщение так, чтобы в конце оставалось как можно меньше неиспользованных знакомест: заполнение их символами-пустышками повышает риск раскрытия — поразмыслите, почему так).
Самое важное в квадратном ключе заключается в том, чтобы при его повороте на 90, 180 и 270 градусов отверстия ни разу не совпадали. Вам необходимо будет потренироваться в создании таких ключей (кто-нибудь из читателей, умудрённых в математике, может составить систему уравнений и решить её; иной читатель, умудрённый в программировании, разработает программу для генерации подобных матриц). При этом желательно, чтобы отверстия были равномерно распределены по площади ключа, поскольку слишком отчётливые группировки опять снижают криптостойкость. Лучше всего сделать ключ, похожий на изображенный выше — отверстия не должны соприкасаться сторонами друг с другом. Понятно, что длина стороны такого ключа должна быть чётным числом.
Вот, что необходимо сделать на этой неделе:
1. Разработать свой вариант ключа размером не менее 10 × 10 для перемешивания сообщения из 100 символов.
2. Нарисовать разработанный ключ в каком-либо графическом редакторе (что-то типа MS Visio).
3. Распечатать ключ в двух экземплярах, заламинировать их оба при помощи скотча, а затем в скотче прорезать отверстия. Всё это надо сделать очень аккуратно.
4. Подготовить шифрограмму длиной не более 100 символов (лучше ровно 100, но точно не менее 90).
5. Как обычно, написать письмо юному криптоаналитику, в котором привести подготовленную шифрограмму. В письме не должно быть инструкций о том, как использовать ключ.
6. Отправить письмо, вложив в него один экземпляр ключа.
Ребёнок должен будет самостоятельно догадаться, как использовать ключ. Это упражнение призвано пробудить в нём желание сделать собственный ключ (или даже несколько ключей).
На этой неделе мы немного отвлечёмся от основной темы и познакомимся с системами письменности, которые придумало человечество за свою историю. Во-первых, это поможет ребёнку изучить что-то новое и иногда блистать знаниями в подходящих случаях. А во-вторых, тема этой недели позволит ребёнку немного передохнуть. Мы как раз прошли половину пути, и, действительно, надо сделать небольшую передышку.
Изучение древних и экзотических алфавитов интересно ещё и потому, что некоторые не очень опытные шифровальщики могут использовать такие алфавиты для засекречивания своих посланий. Если вы видите письмо, отправленное русским другому русскому, но написанное, например, при помощи деванагари, то первое, что можно сделать, это попытаться прочитать эти буквы письменности так, как это сделал бы индус. Возможно, что в результате такого прочтения проявятся именно русские слова, а не хинди или санскрит. В истории такое происходило не раз, в этом нет ничего удивительного.