Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kody_i_shifry_yuliy_Cezar_Enigma_i_Internet_2007.pdf
Скачиваний:
265
Добавлен:
29.03.2016
Размер:
2.04 Mб
Скачать

153

Глава 10. Шифрмашина "Хагелин"

Историческая справка

Вполне разумно предполагать, что любая страна будет стараться сохранить втайне отличительные особенности своих шифрмашин, и как правило, это действительно так. Сохранить втайне отличительные черты и особенности шифрмашин возможно, если они разработаны и созданы в стране использования (как обстояло дело с германской "Энигмой"), но если машина приобретена на стороне, то почти наверное, о ней в конце концов станет известно другим. Учитывая эти обстоятельства, может показаться удивительным, что перед и во время Второй мировой войны существовала шифрмашина, которой пользовался целый ряд стран с обеих противоборствующих сторон, в том числе Германия, Италия, Соединенное Королевство Великобритании, США и Франция. Эта машина была создана в нейтральной стране, в Швеции, фирмой, принадлежащей Борису Хагелину, которая продавала ее любому желающему. Во всех этих странах она проходила под разными наименованиями ("Хагелин", М209, С36, С38, С41, и т.д.), но по сути во всех случаях это была одна и та же машина, хотя и несколько модифицированная.

Основным предназначением машины "Хагелин" было построение длинной последовательности "псевдослучайных" чисел, которая использовалась в качестве последовательности знаков гаммы для зашифрования открытого текста, согласно уравнению:

(буква шифрованного текста) = (знак гаммы) - (буква открытого текста)(mod26)

(10.1)

Так, например, если в открытом тексте стоит буква F (ее числовой эквивалент равен 5), а знак гаммы равен 18, то в шифрованном тексте будет стоять буква N, так как

18-5=13 (числовой эквивалент буквы N).

Заметим, что уравнение (10.1) обратимо, то есть

(буква открытого текста) = (знак гаммы) - (буква шифрованного текста)(mod26), (10.2)

так что буквы открытого и шифрованного текстов будут взаимно-обратными, что означает, что операции зашифрования и расшифрования идентичны, как и в "Энигме". Однако в машине "Хагелин" буква может перейти сама в себя, что в "Энигме" было невозможно.

154

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

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

26 25 23 21 19 17=101405850

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

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

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

155

áá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 представлены фотографии шифрмашины "Хагелин" с закрытой и с открытой крышкой*) .

*)

Иллюстрация 10.1. Шифрмашина "Хагелин" с закрытой верхней крышкой, готовая к

 

использованию. Положения шестерки колес видны оператору. Благодаря линейке, лежащей спереди, видно, что ширина машины всего около семи дюймов.

Иллюстрация 10.1. Шифрмашина "Хагелин" с открытой верхней крышкой. Видны шесть колес со штифтами, часть которых выступает слева, а часть справа, а также часть реек барабана с выступами (одни

156

Шифрование при помощи шифрмашины "Хагелин"

Каждое из колес шифрмашины "Хагелин" имело набор штифтов, часть из которых выступала слева, а оставшиеся - справа. В начале каждого периода действия ключей машины операторам сообщали, с какой стороны следует установить каждый из штифтов. Это была довольно трудоемкая работа, поскольку общее число штифтов было равно

26+25+23+21+19+17=131.

Штифт, выступающий с левой стороны колеса, не влиял на выработку знака гаммы и поэтому назывался неактивным; штифт, выступающий справа, увеличивал (в машине без перекрытий) значение гаммы на число выступов, стоящих в барабане напротив данного колеса, то есть на величину "зацепления" этого колеса. Такой штифт назывался активным. В идеале на каждом колесе должно было быть примерно равное число активных и неактивных штифтов: подходящим было бы соотношение примерно от 40% до 60% активных.

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

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

напротив колес, а другие в нейтральном положении). Слева также видны наборное и печатающее колёса, счетчик букв и лента для печати.

157

Пример 10.1 В таблице 10.1 показана типичная последовательность знаков гаммы,

которую может дать барабан (4, 1, 9, 6, 5, 2) из вышеприведенного примера.

Таблица 10.1

Штифтовое число

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

4

0

4

4

0

0

0

4

0

4

0

4

4

4

0

4

0

0

0

4

25

0

1

1

0

0

0

1

1

0

1

1

1

1

0

0

0

1

0

1

0

23

9

9

9

0

0

9

0

0

0

9

0

9

9

0

9

9

0

0

9

9

21

6

0

6

6

0

0

0

0

6

6

6

0

6

6

0

0

0

6

6

0

19

0

5

5

5

0

5

0

0

5

0

5

5

0

0

0

5

0

5

0

0

17

2

0

2

0

2

2

0

2

2

0

0

0

2

2

0

0

2

2

0

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Гамма

21

15

27

15

2

16

1

7

13

20

12

19

22

12

9

18

3

13

16

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заметим, что за время выработки 20 элементов последовательности знаков гаммы колёса с 19-ю и 17-ю штифтами успели совершить полный оборот, и их вклад в суммарную гамму начал повторяться, на что указывают подчеркнутые числа. Заметим также, что поскольку последовательность знаков гаммы приводится печатающим колесом по модулю 26, то третий элемент последовательности знаков гаммы, равный 27, в результате оказывается равен 1.

Пример 10.2 Используя 20 знаков гаммы из предыдущего примера, зашифруем методом,

реализованным в "Хагелине", следующий текст:

HááAááGááEááLááIááNááXááEááNááCááIááPááHááEááRááMááEááNá

áT

Сначала преобразуем текст в числа:

HááAááGááEááLááIááNááXááEááNááCááIááPááHááEááRááMááEááNá

áT 7áá0áá6áá4á11áá8á13á23áá4á13áá2áá8á15áá7áá4á17á12áá4áá13á19

Затем вычтем эти числа по модулю 26 из соответствующих знаков гаммы:

Гамма

Открытый текст

Шифрованный текст

21

15 27 15 2 16 1

7 13 20 12 19 22 12 9 18 3 13 16 15

7

0 6 411 8 13 23 4 13 2 8 15 7 4 17 12 4 13 19

14

15 21 11 17 8 14

10 9 7 10 11 7 5 5 1 17 9

3 22

После преобразования текста в буквы и разбиения на пятизначные

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]