logo
Коды и шифры

Глава 9 м14. Распайка колёс шифрмашины "Энигма"

Алфавиты простой замены, которые контактное колесо "Энигмы" образует в каждом из 26 своих положений, можно представить в виде матрицы размера 2626. В первом столбце этой матрицы стоят знаки, в которые перейдут 26 букв алфавита при зашифровании в 1-м угловом положении колеса, во втором столбце - во 2-м угловом положении, и т.д. В силу "диагонального свойства" вся матрица оказывается полностью определена, как только выписан ее первый столбец.

Кроме того, в первой строке матрицы содержатся знаки, в которые перейдет буква A при зашифровании в каждом из 26 угловых положений колеса. И снова, благодаря "диагональному свойству", матрица оказывается полностью определенной, как только выписана ее первая строка.

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

Чтобы сделать рассуждения более наглядными, мы вместо букв будем использовать числа. В первом столбце матрицы 2626 должна содержаться некоторая перестановка чисел (0, 1, 2, ... , 25); обозначим ее через

(a1, a2, ..., a25, a26).

Поскольку это перестановка чисел (0, 1, 2, ... , 25), то отсюда следует, что сумма

a1+a2+...+a25+a26 = 0+1+2+...+24+25 = 325  13(mod 26).

С другой стороны, числа, стоящие в верхней строке данной матрицы, равны (по модулю 26)

(a1, a26+1, a25+2,..., a3+24, a2+25),

и если среди этих 26 чисел не содержится одинаковых, то их сумма также должна при делении на 25 давать в остатке 13. Однако эта сумма равна

(a1+a2+...+a25+a26)+(1+2+...+24+25),

и поскольку (1+2+...+24+25) = 325  13(mod 26), то по модулю 26 получаем:

13+13=260(mod 26).

Таким образом, получаем противоречие. Отсюда следует, что в каждой строке матрицы должно содержаться хотя бы одно повторяющееся число.

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

Пример (отсутствие повторений в строках матрицы зашифрования)

Рассмотрим 7-контактное колесо, для которого матрица зашифрования имеет 1-й столбец, равный (1, 3, 6, 2, 0, 5, 4). Тогда первая строка будет равна

(1, 4+1, 5+2, 0+3, 2+4, 6+5, 3+6),

то есть, приводя по модулю 7,

(1, 5, 0, 3, 6, 4, 2).

Данное множество не содержит повторений. Поскольку матрица полностью определяется по любой своей строке или столбцу, то ни одна ее строка не содержит повторений.