logo
Коды и шифры

Конструкция шифрмашины «Хагелин»

В "Хагелине" последовательность знаков гаммы вырабатывалась с помощью шести штифтовых колес и барабана с выступами. Эти шесть штифтовых колес были собраны параллельно на общей оси и могли вращаться как независимо (что было необходимо в процессе выполнения начальных установок), так и вместе (что происходило каждый раз при зашифровании или расшифровании очередной буквы). Каждое колесо имело по окружности набор штифтов. Любой штифт можно было сдвинуть так, чтобы он выступал либо с левой, либо с правой стороны колеса. Число штифтов у каждого колеса было разным: если смотреть спереди, то количество штифтов на этих шести колесах, слева направо, равнялось соответственно 26, 25, 23, 21, 19 и 17. При шифровании очередной буквы каждое колесо сдвигалось на один шаг. Поскольку "длины" этих шести колес не имели общих делителей, то все вместе они возвращались в исходное положение только после зашифрования

262523211917=101405850

знаков. По ободу каждого из колес были нанесены буквы алфавита, чтобы оператор мог выставить колеса в исходные положения. На колесе с 26 штифтами был нанесен весь латинский алфавит, но для других колес, очевидно, требовалось меньше букв. Так, для колеса с 17 штифтами хватало букв от А до Q.

Барабан с выступами состоял из 27 горизонтальных реек, собранных в виде цилиндра. Концы всех реек удерживались двумя круглыми дисками. Барабан мог вращаться вокруг оси, которая была параллельна общей оси штифтовых колес. Барабан располагался непосредственно позади них. На каждой рейке барабана было по 2 "выступа" - небольших кусочка металла, которые могли сдвигаться вдоль рейки и фиксироваться в любом из восьми возможных положений. Шесть из этих восьми положений располагались прямо напротив шести колес, а оставшиеся два "нейтральных" положения помещались не напротив конкретного колеса, а между первым и вторым, а также между пятым и шестым колесами. Если на каждой из реек напротив колес находилось не более одного выступа, то говорили, что машина находится в режиме "без перекрытий"; если же на какой-нибудь рейке оба выступа стояли напротив колес, то говорили, что машина находится в режиме "с перекрытиями". Значение этих терминов станет ясно позже.

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

áá26 25 23 21 19 17

ááá4 á1 á9 á6 á5 á2

Число выступов напротив конкретного колеса иногда называли "зацеплением" этого колеса. Так, в приведенном выше примере для 26‑штифтового колеса "зацепление равно 4", и т.д. Порядок здесь имеет значение: барабан из данного примера с набором зацеплений (4,1,9,6,5,2) даст другую последовательность знаков гаммы, чем, скажем, (9,1,4,2,6,5), хотя эти последовательности будут в некотором роде статистически похожи.

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

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

Чтобы зашифровать букву, оператор вращал наборное колесо до тех пор, пока нужная буква не совмещалась со стрелкой, а затем вращал ручку. При этом часть выступов на барабане смещалась, заставляя и наборное, и печатающее колеса провернуться на некоторое число шагов, которое могло быть любым - от 0 до 27. Буква шифрованного текста отпечатывалась, и все шесть колес сдвигались на одну позицию. Зашифрование следующей буквы происходило только в том случае, если оператор проворачивал наборное колесо. Если случалось так, что оно уже стояло в таком положении, когда нужная буква располагалась напротив стрелки, то необходимо было провернуть его на несколько позиций вперед, а затем на такое же число позиций назад. Например, если последняя буква шифрованного текста была равна T, а следующая буква открытого текста тоже была T, то шифровальщик сдвигал наборное колесо на несколько шагов вперед, а затем возвращал его назад к букве T, и только потом можно было вращать барабан с помощью ручки. На иллюстрациях 10.1 и 10.2 представлены фотографии шифрмашины "Хагелин" с закрытой и с открытой крышкой*) .