Неделя 2. Шифр многоалфавитной замены

 

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

Что такое шифр многоалфавитной замены? Его суть заключается в том, что к открытому тексту применяется процедура шифрования, основанная на циклическом применении заданного ключа. Ключом в этом случае служит какое‑либо кодовое слово. Чем длиннее слово, тем больше используется алфавитов для шифра.

Для шифрования применяется следующая процедура. Пробелу и каждой букве русского алфавита ставится в соответствие число от 0 до 31, причём 0 – это пробел, буква «А» имеет код 1, буква «Б» – код 2 и т. д. Договоримся, что буквы «Е» и «Ё» не различаются, а также не различаются буквы «Ъ» и «Ь» – причина всего этого будет ясна позже, главное, что теперь символов ровно 32 (это 25, поэтому для математика это число «круглое»). Хорошая новость заключается в том, что теперь коды букв можно складывать друг с другом. Сложив коды двух букв (открытого текста и ключа), получаем новую букву. Она‑то и является буквой шифрограммы. Если в результате сложения получается код, больший 31, то от этого кода надо отнять 32 (в математике это представляет собой операцию сложения по модулю 32; да и вообще модульная арифметика, или арифметика остатков, очень часто нужна в деле криптографии).

Допустим, что в качестве ключа выбрано слово «БУКВА», тогда процедура шифрования выглядит следующим образом:

Вот так при применении ключа к открытому тексту получилась шифрограмма: «ЩЖЩВУВЯЩИАЪЭ У». Среди 14 букв этой шифрограммы трижды встречается буква «Щ», и это уже должно вызвать подозрение, что не всё так просто. Этот шифр более стойкий, чем простая одноалфавитная замена, но всё ещё настолько простой для обученного криптоаналитика, что применять его бесполезно – он будет взломан мгновенно.

Для удобства и ускорения работы можно сделать таблицу размером 32 × 32 ячейки:

По такой таблице сразу видно, что сложение букв «Б» и «В» даёт букву «Д» (ищем ячейку на пересечении «Б» и «В», причём неважно, в строке или в столбце стоят буквы, поскольку операция коммутативна) и т. д.

Теперь надо выполнить две несложные задачи:

1. Придумать сообщение, длина которого должна быть не менее 500 символов.

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

3. Зашифровать придуманное сообщение при помощи процедуры сложения с ключом.

Всё ранее описанное можно осуществить при помощи арифметики вычетов по модулю 32. Если каждому символу алфавита от пробела до буквы «Я» поставить в соответствие число от 0 до 31, то в совокупности с арифметическими операциями сложения и вычитания получится кольцо Z32. Тогда шифрование будет представлено в этом кольце как сложение кодов символов открытого текста и ключа, а дешифровка как вычитание кодов символов ключа из символов шифрограммы соответственно.

Давайте попробуем сделать такую шифровку. Здесь не будет открытого текста длиной не менее 500 символов, используем более короткий. Пусть это будет текст: «ХОРОШО ТЕМ КТО НАУЧИЛСЯ ШИФРОВАТЬ СООБЩЕНИЯ ХОРОШО», а ключом пусть будет слово «ШИФР». Как видно, здесь не используются знаки препинания. В принципе, они никогда не используются при шифровании, поскольку избыточны.

Начнём: Х + Ш = О. О + И = Ч. Р + Ф = Е. О + Р = ПРОБЕЛ. Ну и так далее. В итоге получается шифрограмма: «ОЧЕ СЧФГЯХФЫЛЧФЯЩЭМЩДЪУРССЙБЗЛХГФИЖ ЗКОЦЖСУРОЧЕ СЧ». Уже на этом простом примере видно, что такой шифр намного сложнее, чем использованный на прошлой неделе.

Шифрограмму, полученную описанным методом, необходимо вставить во второе письмо для юного криптоаналитика. Соответственно, можно написать что‑то открытым текстом, а в него вставить подготовленную шифрограмму. Письмо отправляется обычным порядком. Скорее всего, ребёнок испытает определённые сложности с расшифровкой послания, поскольку это дело достаточно трудоёмкое, так что рекомендую сразу готовиться к тому, чтобы объяснить ребёнку суть метода, способ шифрования и дешифровки, а также совместными усилиями дешифровать полученную шифрограмму.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: