logo
Коды и шифры

Цилиндр Джефферсона

В конце восемнадцатого столетия было изобретено несложное устройство, вырабатывающее последовательность алфавитов простой замены. Авторство приписывают Томасу Джефферсону, но впоследствии его еще не раз снова изобретали другие. Это устройство состоит из набора одинаковых пронумерованных дисков, смонтированных на одной оси, причем каждый диск можно вращать независимо. По кромке дисков в некотором случайном порядке (вообще говоря, разном для каждого диска), нанесены буквы алфавита.

Теоретически такое устройство может иметь любое число дисков, но обычно их бывает от 20 до 40. Если, например, используются 30 дисков, то сообщение при шифровании сначала разбивается на блоки по 30 знаков. Шифровальщик, вращая каждый из 30 дисков вокруг оси цилиндра, набирает первые 30 знаков сообщения в строчку, и затем в качестве шифрованного текста выбирается любая из оставшихся 25 горизонтальных строк. Далее он вращает диски так, чтобы набрать в строчку следующий блок из 30 знаков открытого текста, и снова выбирает в качестве шифрованного текста любую из оставшихся 25 горизонтальных строк. Получатель расшифровывает текст следующим образом: для каждого блока из 30 знаков шифрованного текста он, вращая диски, набирает эти знаки в строчку, а затем, просматривая 25 оставшихся горизонтальных строчек, находит среди них ту, в которой содержится осмысленный текст. Возникает вопрос: "Возможно ли появление осмысленного текста более, чем в одной строке?" Такая ситуация не может возникнуть в большинстве систем шифрования, поскольку между открытым текстом и шифрованным существует взаимно-однозначное соответствие*). Однако цилиндр Джефферсона является исключением. Если сообщение составлено на естественном языке, то вероятность найти среди 25 строк несколько осмысленных пренебрежимо мала. С другой стороны, если текст сообщения состоит из кодовых групп (таких, которые описаны в главе 6), то вполне вероятно, что найдется несколько допустимых вариантов расшифрования. Все зависит от того, сколько из теоретически возможных кодовых групп фактически используются в коде. Если в нем использованы все возможные кодовые группы, то допустимыми вариантами будет любая из 25 строк, хотя маловероятно, что при обратном преобразовании в обычные слова более чем одна из этих строк даст осмысленный текст.

Стойкость цилиндра Джефферсона можно существенно повысить, если регулярно (например, ежедневно) изменять порядок дисков на общей оси. Однако для этого требуется, чтобы отправитель(-тели) и получатель(-тели) заранее договорились о порядке внесения изменений. В этом случае порядок дисков будет служить для сообщений "индикатором". Но вместо того, чтобы помещать индикатор в преамбулу или прятать внутри сообщения, можно напечатать и разослать его заранее, до начала периода использования.

Без знания перетасованных алфавитов на дисках и порядка расположения дисков на общей оси криптоаналитик при дешифровании сообщений столкнется со значительными трудностями. Для достижения успеха ему, вероятно, потребуется много сообщений, посланных в один и тот же "период шифрования" (то есть, с использованием одного и того же порядка расположения дисков). Если же порядок расположения дисков изменить невозможно, то такой "период шифрования" становится бесконечным, и все сообщения, зашифрованные по этой системе, можно анализировать вместе. Но даже и в этом случае дешифрование не становится легким делом, так как, несмотря на то, что все сообщения можно выписать в столбик блоками по 30 букв, они, строго говоря, не являются одноключевыми, поскольку одна и та же буква на одних и тех же местах в блоке может при шифровании перейти в любую из 25 оставшихся букв. Однако, как только перетасованные алфавиты восстановлены (возможно, благодаря ошибкам отправителей или получению доступа к открытым текстам некоторых сообщений), дешифрование становится тривиальным.

Цилиндр Джефферсона был, по сути, простым устройством. Тем не менее в нем реализована истинно многоалфавитная система шифрования; это был оригинальный и эффективный тип шифрмашины. Как мы увидим далее, он явился предтечей некоторых весьма широко распространенных шифрмашин двадцатого столетия.