logo
Коды и шифры

Глава 2. От Юлия Цезаря до простой замены Шифры Юлия Цезаря и их вскрытие

В шифре, которым пользовался Юлий Цезарь, каждая буква алфавита сдвигается на три позиции по циклу, так что A заменяется на D, B - на E,..., W - на Z, X - на A, Y - на B, и Z - на C. И хотя Юлий Цезарь сдвигал буквы только на три позиции, он вполне мог бы (по своему желанию) сдвигать их на любое число позиций от 1 до 25. Поэтому шифр Юлия Цезаря имеет 25 вариантов. Отсюда вытекает, как такой шифр можно вскрыть: запишем шифрованное сообщение, а под ним на 25 строчках выписываем 25 вариантов, которые получаются сдвигом каждой буквы на 1, 2, 3, ... ,25 позиций соответственно. Одна из этих 25 строк будет содержать исходное сообщение.

Пример 2.1

Текст сообщения, зашифрованного по системе Юлия Цезаря, имеет вид

VHFX TM HGVX

Требуется дешифровать сообщение.

Решение

Запишем шифрованное сообщение и 25 его сдвигов в столбик, проставив значения сдвигов слева от каждой строчки (см. таблицу 2.1).

Таблица 2.1

Сдвиг

Сообщение

0

VHFX TM HGVX

1

WIGY UN IHWY

2

XJHZ VO JIXZ

3

YKIA WP KJYA

4

ZLJB XQ LKZB

5

AMKC YR MLAC

6

BNLD ZS NMBD

7

COME AT ONCE

Мы видим, что в шифре использован сдвиг на 19 позиций, поскольку шифрованный текст, будучи сдвинутым на 7 позиций вперед, дает открытый текст. Это означает, что для получения шифрованного текста открытый текст нужно сдвинуть на (26-7)=19 позиций. Весьма вероятно (если предполагать, что ни при каком другом сдвиге не получается осмысленного сообщения), что мы правильно дешифровали это сообщение, и поэтому нет необходимости выписывать оставшиеся варианты. Такое допущение о единственности решения вполне обоснованно, когда шифрованное сообщение содержит более пяти-шести знаков; но если сообщение очень короткое, возможных решений может быть несколько. Так, например, если получено шифрованное сообщение вида

DSP

то возможны три решения, как показано в таблице 2.2.

Таблица 2.2

Сдвиг

Сообщение

2

FUR

8

LAX

15

SHE

Они не имеют особого смысла как сообщения, хотя можно вообразить ситуации, в которых они могут содержать важную информацию. Например, это могут быть имена лошадей, которым предстоит победить на скачках. Этот пример приведен главным образом для иллюстрации важного и часто возникающего вопроса: какой длины должно быть шифрованное сообщение, чтобы решение было единственным? Ответ на этот вопрос зависит от системы шифрования и может быть практически любым числом от "примерно четырех-пяти букв" (для шифра Юлия Цезаря) до "бесконечности" (для системы с одноразовым блокнотом, как мы увидим в главе 7).

Заканчивая рассказ о шифре Юлия Цезаря, приведем довольно забавный пример неоднозначного решения. Пусть шифрованный текст выглядит так:

MSG

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

Таблица 2.3

Сдвиг

Сообщение

2

OUI

12

YES