Лоренц (шифровальная машина)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Машина «Лоренц» без кожуха
музей Блетчли-парк

«Ло́ренц» (нем. Lorenz-Chiffre, Schlüsselzusatz; Lorenz SZ 40 и SZ 42) — немецкая шифровальная машина, использовавшаяся во время Второй мировой войны для передачи информации по телетайпу. Была разработана компанией C. Lorenz AG в Берлине. Принцип работы машины был основан на поточном шифре Вернама.

Из расшифровок сообщений, переданных с помощью «Энигмы», стало известно, что немцы называли одну из своих систем беспроводной передачи информации по телетайпу «Sägefisch» (с нем. — «рыба-пила»). Из-за этого британские аналитики стали называть закодированный немецкий радиотелеграфный трафик «Фиш» (англ. fish «рыба»). Первый канал, не использовавший азбуку Морзе, они назвали «Танни» (англ. tunny «тунец»)[1]. Впоследствии это имя стало использоваться для обозначения машин «Лоренц» и всех сообщений, зашифрованных ими.

В то время как «Энигма» использовалась в основном в полевых условиях, машина «Лоренц» служила для коммуникации высокого уровня, где можно было применять сложное оборудование, обслуживаемое специальным персоналом[2].

Внешне машина «Лоренц» напоминала «Энигму», поскольку в ней использовался ротор, но работала по другому принципу. Размеры машины составляли 45×45×45 см и она была вспомогательным устройством стандартного телетайпа Лоренца (Lorenz Lo133 Automatik)[3].

Шифр Вернама[править | править код]

Гилберт Вернам работал исследователем в AT&T Bell Labs. В 1917 году он изобрел шифровальную систему, которая использовала функцию «исключающего ИЛИ»[4]. Её можно представить как следующую таблицу истинности, где единица представляет «правду», а ноль — «ложь»:

Вход Выход
A B AB
0 0 0
0 1 1
1 0 1
1 1 0

В шифре Вернама:

Открытый текст Ключ = Шифротекст
Шифротекст Ключ = Открытый текст

Это позволяет одной и той же машине производить шифрование и расшифровку.

Идея Вернама состояла в том, чтобы объединить перфоленту с обычным текстом и перфоленту с ключом. Каждая перфолента с ключом должна быть уникальной, что сложнореализуемо: такие ленты довольно сложно создавать и распространять. В 1920 году четыре человека из разных стран изобрели шифровальные машины, которые генерировали поточный шифр[5]. Машина Lorenz SZ40 была одной из них, доработанная версия машины 1942 года называлась SZ42A и SZ42B[3].

Внутреннее устройство[править | править код]

Машина Лоренца SZ имела 12 дисков, на каждом из которых располагалось различное число контактов
Номер диска 1 2 3 4 5 6 7 8 9 10 11 12
Обозначение 1 2 3 4 5 37 61 1 2 3 4 5
Количество контактов 43 47 51 53 59 37 61 41 31 29 26 23

Машина SZ служила дополнением к стандартному телетайпу Лоренца[6]. У неё была металлическая основа 48×39 см и она была 32 см в высоту. Символы телетайпа состояли из пяти бит данных и были закодированы с использованием Международного телеграфного кода № 2 (МТК № 2)[3].

Шифровальная машина осуществляла поточное шифрование, генерируя псевдослучайную ключевую последовательность, накладываемую функцией «исключающее или» на символы открытого текста, чтобы получить на выходе символы шифротекста.

Каждые пять бит ключа генерировались соответствующими дисками в двух частях машины. Криптоаналитики из Блетчли-Парк назвали их - («хи») и - («пси») дисками. На каждом диске располагались контакты. Они могли быть в поднятом (активном) или опущенном (неактивном) положении. В поднятом положении они генерировали '1', в опущенном — '0'. Все хи-диски поворачивались на одну позицию после каждой буквы. Пси-диски также двигались вместе, но не после каждого символа. Их вращение определяется двумя - («мю») дисками[7]. Диск SZ40 61 перемещался на одно положение с каждым символом, а диск 37 двигался, только когда контакт на 61-диске находился в активной позиции. Если контакт на 37-диске был в активном положении, тогда все пять пси-дисков поворачивались[7]. Модели SZ42A и SZ42B имели более сложный механизм, известный в Блетчли-Парк как Limitations[8]. Таким образом, поточный шифр, генерировавшийся SZ-машиной, имел хи- и пси-компоненты, которые объединялись функцией XOR. Ключ, который объединялся для шифрования с открытым текстом или для расшифровывания с зашифрованным, мог быть представлен следующим образом[7]

Ключ= Хи-Ключ Пси-Ключ

Количество контактов на каждом диске равняется количеству переданных диску импульсов, необходимых для совершения им полного оборота. Эти числа были взаимно простыми, что обеспечивало максимальную длину псевдослучайной последовательности до повторения. С общим количеством контактов в 501 оно равнялось 2501 комбинациям, что примерно равно 10151 — астрономически большое число[9]. Однако, анализ шифрования отдельных посылок в коде каждой буквы позволил обнаружить короткопериодические хи-компоненты шифра; так, для пары посылок обнаруживаются повторения шифра с периодом от 41×31=1271 для первых двух посылок каждой буквы до 26×23=598 для последних двух.

Принцип работы[править | править код]

На каждом выводе «Тунни» находилось по четыре SZ-машины с передающим и принимающим телетайпом на каждой. Для того, чтобы шифрование и расшифровка работали, передающая и принимающая машины настраивались идентично. Для начала шифрования они одинаково устанавливали последовательности контактов на дисках и поворачивали диски. Последовательности контактов меняли довольно редко до лета 1944 года. Контакты на пси-дисках изначально меняли только раз в квартал, но потом их стали менять раз в месяц. На хи-дисках контакты меняли также ежемесячно, а на мю — ежедневно. Начиная с 1 августа 1944 года настройки на всех дисках стали менять ежедневно[10].

Изначально настройки диска отправляли с помощью 12-буквенного указателя (индикатора), который посылали нешифрованным и в котором буквы соответствовали позициям колеса. В октябре 1942 это изменили для того, чтобы использовать одноразовые книги настроек (QEP). Две последние записанные цифры в QEP-книге отсылались получающему оператору для того, чтобы он нашел их в своей копии QEP-книги и настроил диски на своей машине. Каждая книга содержала сто или более комбинаций. Как только все комбинации из QEP использовались, книгу заменяли. Настройки для передачи сообщения никогда не должны были повторяться, но иногда это всё же происходило — и этим могли воспользоваться криптоаналитики.

В соответствии с принятой практикой передачи телеграмм сообщение любой длины передавалось на телетайп с бумажной перфоленты. Типичная последовательность действий оператора была следующей: набор сообщения, установление связи с принимающим оператором, использование переключателя EIN / AUS на SZ-машине для соединения машин, и затем отправка сообщения в считывающее устройство. На получающем конце оператор должен установить соединение отправляющей и своей SZ-машины и ждать, когда сообщение будет полностью распечатано на бумажной ленте. Поэтому текст не содержал символов перехода на новую строку, возврата каретки или символа нуля (00000).

Криптоанализ[править | править код]

Британские криптоаналитики из Блетчли-парк смогли взломать код машины Лоренца в январе 1942 года, ни разу не видев саму машину. Это стало возможным из-за ошибки германского оператора[11].

Перехват[править | править код]

Перехват сообщений «Танни» представлял собой значительную проблему. Из-за применения немцами направленных радиопередатчиков уровень сигнала на территории Британии был низким. Более того, для передач использовалось около 25 различных частот и иногда они менялись во время передачи одного сообщения. Специально для перехвата этого трафика была установлена Y-станция в Центре коммуникаций Ivy Farm в Нокхольте, район Севеноукс, графство Кент[12].

Единственный пропущенный или искажённый символ мог сделать расшифровку невозможной, поэтому требовался наивысший уровень точности приёма сигнала[12]. Технология, использовавшаяся для записи импульсов, изначально была разработана для приёма сообщений Морзе на высоких скоростях. Последовательность импульсов записывалась на узкую бумажную ленту. Эта лента потом анализировалась сотрудниками Центра, которые интерпретировали пики и провалы как символы МТК2. Полученные символы наносились на перфорированную бумажную ленту и передавались по телеграфу в Блетчли-Парк[13].

Взлом шифра[править | править код]

Ещё до того, как немцы отказались от использования 12-буквенного указателя, опытный криптоаналитик Джон Тилтман изучил шифротексты «Танни» и пришел к выводу, что для их создания использовался шифр Вернама[14].

Если две передачи (a и b) используют один и тот же ключ, то при их сложении эффект от ключа полностью исчезает[15]. Назовем условно два зашифрованных текста Za и Zb, ключ - K и два открытых текста - Pa и Pb. Тогда мы получим:

Za ⊕ Zb = Pa ⊕ Pb

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

Za ⊕ Pa = K или
Zb ⊕ Pb = K

30 августа 1941 года из Афин в Вену было передано сообщение длиной в 4500 знаков[11]. Первая попытка передачи оказалась неудачной и принимающий оператор отправил незашифрованный запрос на повторную передачу. При повторной отправке сообщения передающий оператор совершил ошибку: он послал второе сообщение, использовав тот же самый указатель, что и в первый раз, что было строго запрещено. Более того, при повторном наборе текста сообщения он допустил в нём несколько ошибок и сделал ряд небольших изменений, например, заменив некоторые слова на аббревиатуры. Сотрудники Центра коммуникаций в Нокхольте, перехватившие оба сообщения и незашифрованный запрос на повторную отправку, осознали их возможную важность и передали их в Блетчли-парк[11].

В Блетчли-парк Джон Тилтман и его команда приступили к расшифровке двух шифротекстов и поиску ключа. Первые 15 символов двух сообщений были следующими:

Za JSH5N ZYZY5 GLFRG
Zb JSH5N ZYMFS /885I
Za ⊕ Zb ///// //FOU GFL4M

Тилтман подставлял различные куски текста в сумму Za ⊕ Zb и выяснил, что открытый текст первого сообщения начинался с немецкого слова SPRUCHNUMMER (номер сообщения). Во втором открытом тексте оператор использовал распространенную аббревиатуру NR для NUMMER. Второе сообщение содержало и другие сокращения, и пунктуация кое-где различалась. Это позволило Тилтману за десять дней получить открытые тексты обоих сообщений, так как последовательность символов открытого текста, найденных в Pa позволяла, при известной сумме Pa ⊕ Pb , найти символы открытого текста на тех же местах в Pb, и наоборот[16]. Получив оба исходных текста, Тилтман затем смог найти более 4000 символов ключа[17].

После этого в Исследовательском отделе Блетчли-парк начался процесс построения математической модели шифровальной машины на основе найденного ключа. На протяжении трех месяцев все их попытки были безуспешны. В октябре 1941 года к Исследовательскому отделу присоединился Уильям Татт, который до этого преподавал химию и математику в Тринити-колледж. Для решения поставленной задачи он применил метод Касиски, которому он научился на курсах криптографии. Суть метода была в следующем: на лист бумаги вручную записывались символы ключа, длины всех строк были одинаковы и были равны предполагаемому периоду повторения ключа. Если длина строк была выбрана правильно, то столбцы получившейся матрицы будут содержать больше повторяющихся символов, чем обычно.[18]

Татт посчитал, что применять данный метод лучше не на целых символах ключа, которые могли иметь очень большой период повторения, а на отдельном импульсе, аргументировав это тем, что «часть может быть криптографически более простой, чем целое»[19]. Заметив, что индикаторы «Танни» использовали 25 букв (все буквы латинского алфавита, кроме J) для 11-й позиции, но только 23 буквы для 12-й позиции, он использовал метод Касиски на первом импульсе (бите) символов ключа с периодом 25*23=575. Это не привело к появлению большого числа повторов в столбцах, но Татт заметил много повторов на диагоналях. Он выписал значения первого импульса ещё раз, но уже с периодом 574. В этот раз столбцы получившейся матрицы содержали повторы. Осознав, что простыми множителями данного числа являются числа 2, 7 и 41, он повторил процедуру с периодом в 41 символ и «получил прямоугольник из точек и крестов, который был полон повторов»[20].

Было ясно, однако, что первый импульс ключа был более сложным, чем импульс, создаваемый только одним диском с 41 позицией[21]. Компонент импульса, создаваемый таким диском, Татт назвал хи»). Он выяснил, что существовал и второй компонент, с которым он складывался по модулю 2. Второй компонент не всегда менялся при переходе к следующему символу и создавался диском, который Татт назвал пси»). То же самое происходило с каждым из пяти импульсов символов ключа. Для одного символа ключ K состоял из двух компонент:

K = .

Фактическая последовательность символов, добавлявшаяся дисками пси, включая те символы, при которых диски не меняли позицию, была названа расширенная пси[22], и обозначалась как '

K = ' .

Выведение Татом компонента пси стало возможным из-за того, что за точками с большей вероятностью следовали точки, а за крестами с наибольшей вероятностью следовали кресты. Это получалось из-за недостатка в процедуре настройки ключа, от которой немцы впоследствии отказались. Как только Татт сделал этот прорыв, остальная часть Отдела исследований присоединилась к нему для изучения остальных импульсов[23]. За последующие два месяца, до января 1942 года, сотрудники Отдела исследований смогли воспроизвести полную логическую структуру шифровальной машины[24].

Анализ структуры «Танни», проведенный Таттом, являлся удивительным достижением криптоаналитики и, при получении Татом Ордена Канады был описан как «одно из величайший интеллектуальных достижений Второй мировой войны»[25].

После взлома «Танни» была организована специальная команда криптоаналитиков под руководством Ральфа Тестера, ставшая известной как Testery. Задачей этой команды являлась непосредственно расшифровка перехваченных сообщений. В этом им помогали машины, созданные в отделе под руководством Макса Ньюмана, известном как Newmanry[26].

Машины для расшифрования[править | править код]

В декабре 1942 года под руководством Макса Ньюмана был создан новый отдел, задачей которого являлось изучение возможности автоматизации процесса расшифровки сообщений «Танни». До этого Ньюман работал вместе с Гэрри Морганом, главой Исследовательского отдела, над взломом «Танни». В ноябре 1942 года Уильям Татт представил им идею метода, который впоследствии стал известен как «1+2 break in»[27]. Метод был признан эффективным, но только при использовании автоматизации.

Хит Робинсон[править | править код]

Для автоматизации метода «1+2 break in» Ньюман написал функциональную спецификацию, на основе которой была создана машина «Хит Робинсон». Машина была построена инженерами Фрэнком Мореллом[28], Томми Флауэрсом и С. Е. Уинн-Уильямсоном[29]. Процесс создания начался в январе 1943, в июне того же года прототип машины уже применялся в Блетчли-Парк для расшифровки сообщений «Танни»[30].

Основными частями «Хит Робинсон» являлись:

  • Считывающий механизм, через который прогоняли закольцованные ленты с ключом и сообщением на скоростях 1000 и 2000 символов в секунду, соответственно.
  • Блок, реализовывавший логику метода Уильяма Тата.
  • Счетчик обработанных символов.

Прототип машины оказался эффективным, несмотря на серьёзные недостатки, большая часть которых была устранена в последующих версиях.[31]

Colossus[править | править код]

Компьютер Colossus Mark 2. Наклонная панель слева использовалась для ввода параметров дисков машины Лоренц. Транспортер бумажной перфоленты представлен справа

Используя опыт, полученный при строительстве «Хит Робинсон», и прошлый опыт работы с электронными лампами, Томми Флауэрс пришел к выводу, что можно построить более эффективную машину на основе электроники. Для ввода символов ключа вместо перфорированной бумажной ленты можно было бы использовать электрический сигнал, что было гораздо быстрее и позволяло сделать процесс обработки гораздо более гибким. Предложение Флауэрса о создании подобной машины изначально не было поддержано в Блетчли-Парк, где считали, что она будет «слишком ненадежной для полезной работы». Но он получил поддержку главы исследований в Исследовательской станции Дорис Хилл Гордона Рэдли[32] и смог реализовать свою идею. Результатом его работы стал первый в мире компьютер Colossus. Весь процесс создания занял рекордно короткое время — всего десять месяцев[33].

Основными частями компьютера Colossus были[34]:

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

Пять параллельных вычислительных блоков позволяли выполнять «1+2 break in» и другие функции на фактической скорости 25 тысяч символов в секунду. Как и компьютер ЭНИАК, созданный в 1946 году, Colossus не имел памяти для хранения программ и программировался через панель управления.[35] Он был быстрее и надежнее, чем предшествовавшие ему машины семейства «Робинсон», позволяя сильно ускорить процесс нахождения настроек «хи» диска. Администрация Блетчли-парк, которая изначально скептически относилась к идее Флауэрса, сразу после тестирования первой машины начала убеждать его построить ещё один экземпляр.

Всего к концу войны было создано 10 компьютеров Colossus.[36] После окончания войны большая часть была разобрана по приказу Уинстона Черчилля, но Центру правительственной связи удалось сохранить у себя два экземпляра.

Специальные машины[править | править код]

Кроме коммерчески производившихся телетайпов и аппаратов для копирования перфолент, в Блетчли-Парк был построен целый ряд машин для облегчения процесса подготовки и проверки перфолент в отделах Ньюмана и Тестера[37][38].

См. также[править | править код]

Примечания[править | править код]

  1. Hinsley, 1993, p. 141
  2. Hinsley, 1993, p. 142
  3. 1 2 3 Good, Michie & Timms, 1945, p. 10 German Tunny
  4. Klein,, p. 2
  5. Klein,, p. 3
  6. Sale,
  7. 1 2 3 Good, Michie & Timms, 1945, p. 7 German Tunny
  8. Good, Michie & Timms, 1945, p. 8 German Tunny
  9. Churchhouse, 2002, p. 158
  10. Good, Michie & Timms, 1945, p. 14 German Tunny
  11. 1 2 3 Sale,, The German Mistake
  12. 1 2 Good, Michie & Timms, 1945, p. 281 Knockholt
  13. Gannon, 2007, p. 333.
  14. Sale,, The first intercepts
  15. Tutte, 2006, p. 353.
  16. Copeland, 2010.
  17. Tutte, 1998, p. 4.
  18. Tutte, 2006, p. 348.
  19. Tutte, 2006, p. 356.
  20. Tutte, 2006, p. 357.
  21. Tutte, 2006, p. 358.
  22. Good, Michie & Timms, 1945, p. 7 Introduction: 11 German Tunny, 11B The Tunny Cipher Machine, (e) Psi-key
  23. Tutte, 2006, p. 361.
  24. Sale,, The dénouement
  25. O'Connor, J J; Robertson, E F (2003), MacTutor Biography: William Thomas Tutte, University of St Andrews, Дата обращения: 28 апреля 2013 Источник. Дата обращения: 11 декабря 2016. Архивировано 17 июня 2016 года.
  26. Roberts, 2009
  27. Good, Michie & Timms, 1945, p. 33 SomeHistorical Notes: 15A. First Stages in Machine Development
  28. Bletchley Park National Code Centre: November 1943, Дата обращения: 21 ноября 2012 Источник. Дата обращения: 11 декабря 2016. Архивировано из оригинала 23 октября 2017 года.
  29. Good, Michie & Timms, 1945, p. 33 Some Historical Notes: 15A. First Stages in Machine Development, (c) Heath Robinson
  30. Good, Michie & Timms, 1945, p. 290 Machine Setting Organisation: (b) Robinsons and Colossi
  31. Good, Michie & Timms, 1945, p. 328 Development of Robinson and Colossus: (b) Heath Robinson
  32. Fensom, 2006, pp. 300–301.
  33. Flowers, 2006, p. 80.
  34. Flowers, 1983, pp. 245—252.
  35. Good & Michie, 1992
  36. Flowers, 1983, p. 247.
  37. Good, Michie & Timms, 1945, p. 25 Machines: 13A Explanation of the Categories
  38. Good, Michie & Timms, 1945, p. 367 56 Copying Machines

Ссылки[править | править код]