Машина Лоренца (Lorenz-Chiffre, Schlüsselzusatz; Lorenz SZ 40 и SZ 42) — немецкая шифровальная машина, использовавшаяся во время Второй мировой войны для передачи информации по телетайпу. Британские аналитики, которые закодированный немецкий телетайпный трафик называли «Фиш» (рыба), шифры машины Лоренца и её саму называли «Туни» (тунец).
В то время как Энигма использовалась в основном в полевых условиях, машина Лоренца служила для коммуникации высокого уровня, где можно было применять тяжёлое оборудование, обслуживаемое специальным персоналом.
Машина Лоренца напоминала Энигму, поскольку в ней использовался ротор, но работала по другому принципу. Размеры машины составляли 51 см × 46 см × 46 см и была вспомогательным устройством стандартного телетайпа Лоренца. С точки зрения криптографии, машина передавала поточный шифр.
Гильберт Вернам работал исследователем в AT&T Bell Labs. В 1917 году он изобрел шифровальную систему, которая использовала функцию «исключающего ИЛИ»[1]. Её можно представить как следующую таблицу истинности, где единица представляет «правду», а ноль — «ложь».
ВХОД | ВЫХОД | |
A | B | A⊕B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
В шифре Вернама:
Что позволяет одной и той же машине производить шифрование и расшифровку.
Идея Вернама состояла в том, чтобы объединить перфоленту с обычным текстом и перфоленту с ключом. Каждая перфолента с ключом должна быть уникальной, что сложно реализуемо: такие ленты довольно сложно создавать и распространять. В 1920 году четыре человека из разных стран изобрели шифровальные машины которые генерировали поточный шифр.[2] Машина Lorenz SZ40 была одной из них, доработанная версия машины 1942 года называлась SZ42A и SZ42B.[3]
Использование системы «Тунни» было актуальным вплоть до того момента как экземпляр машины исследовали криптоаналитики из Блетчли-Парк — что случилось в 1945 году, незадолго до победы союзников в Европе.[4]
Машина SZ служила дополнением к стандартному телетайпу Лоренца. У нее была металлическая основа 48 см × 39 см и она была 32 см в высоту. Символы телетайпа состояли из пяти бит данных, закодированные с использованием Международного телеграфного кода № 2(МТК № 2).[3]
Шифровальная машина генерировала псевдослучайный поточный шифр, который объединялся с помощью функции XOR с исходными символами, что формировало выходные символы.
Каждые пять бит символа генерировались соответствующими дисками в двух частях машины. Криптоаналитики из Блетчли-Парк назвали их («хи») и («пси») дисками. На каждом диске располагались контакты. Они могли быть в поднятом (активном) или опущенном(неактивном) положении. В поднятом положении они генерировали '1', в опущенном — '0'. Все хи диски поворачивались на одну позицию после каждой буквы. Пси диски также двигались вместе, но не после каждого символа. Их вращение определяется двумя («мю») дисками.[5] Диск SZ40 61 перемещался на одно положение с каждым символом, а диск 37 двигался только когда контакт на 61 диске находился в активной позиции. Если контакт на 37 диске был в активном положении, тогда все пять пси диска поворачивались.[5] Модели SZ42A и SZ42B имели более сложный механизм, известный в Блетчли-Парк как Limitations.[6] Таким образом поточный шифр, генерируемый SZ машиной имел хи и пси компоненты, которые объединялись XOR функцией. Символично, что шифр, который объединялся для шифрования с открытым текстом — или для расшифрования с зашифрованным — мог быть представлен следующим образом[5]
Количество контактов на каждом диске равняется количеству переданных диску импульсов необходимых для совершения полного оборота. Стоит отметить, что эти числа были связанны друг с другом таким образом, что образовывали максимально возможное время до того как полный период повторится. С общим количеством контактов в 501 оно равнялось 2501 комбинациям, что примерно 10151 — астрономически большое число.[7] Однако, если пять импульсов рассматривать независимо, эти числа становятся намного меньше. В результате одного периода обращения какой-нибудь пары хи дисков получается число между 41×31=1271 и 26×23=598.
На каждом выводе «Тунни» находилось по четыре SZ машины с передающим и принимающим телетайпом на каждой. Для того, чтобы шифрование и расшифровка работали, передающая и принимающая машины настраивались идентично. Для начала шифрования они одинаково устанавливали последовательности контактов на дисках и поворачивали диски. Последовательности контактов меняли довольно редко до лета 1944 года. Контакты на пси дисках изначально меняли только раз в квартал, но потом их стали менять раз в месяц. На хи дисках контакты меняли также ежемесячно, а на мю— ежедневно. Начиная с 1 Августа 1944 года, настройки на всех дисках стали менять ежедневно.[8]
Изначально настройки диска отправляли с помощью 12-буквенного указателя(индикатора), который посылали не шифрованным, и в котором буквы соответствовали позициям колеса. В октябре 1942 это изменили для того чтобы использовать одноразовые книги настроек(QEP). Две последние записанные цифры в QEP книге отсылались получающему оператору, для того чтобы он нашел их в своей копии QEP книги и настроил диски на своей машине. Каждая книга содержала сто или более комбинаций. Как только все комбинации из QEP использовались, книгу заменяли. Настройки для передачи сообщения никогда не должны были повторяться, но иногда это всё же происходило — и этим могли воспользоваться криптоаналитики.
В соответствии с принятой практикой передачи телеграмм, сообщение любой длины передавалось на телетайп с бумажной перфоленты. Типичная последовательность действий оператора была следующей: набор сообщения, установление связи с принимающим оператором, использование EIN / AUS переключателя на SZ машине для соединения машин, и затем отправка сообщения в считывающее устройство. На получающем конце, оператор должен установить соединение отправляющей и своей SZ машины и ждать когда сообщение будет полностью распечатано на бумажной ленте. Поэтому, текст не содержал символов перехода на новую строку, возврата каретки или символа нуля(00000).
Британские криптографы из Блетчли-парк смогли взломать код машины Лоренца в январе 1942 года. Это стало возможным из-за ошибки германского оператора. 30 августа 1941 года передали сообщение длиной в 4500 знаков. Однако оно было получено с ошибками (получатель отправил не шифрованный запрос на повторную передачу, что позволило криптоаналитикам узнать, что произошло), после чего сообщение было передано с тем же самым ключом; это делать запрещалось. Более того, во второй раз оператор немного изменил сообщение (он поменял некоторые названия на аббревиатуры). Используя эти два зашифрованных текста, Джон Тильтман и его команда смогли восстановить два текста и поточный шифр. На основе поточного шифра, В. Т. Тьют воссоздал полную структуру машины.
Первоначально шифр «Тунни» был перехвачен в Foreign Office Y Station, которым управляла Metropolitan Police в Денмарк Хил в Кэмбервелле(Лондон) но в связи с недостатком ресурсов в то время (~1941), ему был присвоен низкий приоритет. Новый офис Кнокхольт в Кенте был создан специально для обработки трафика от «Тунни», чтобы все сообщения могли эффективно регистрироваться и передаваться в Блетчли-Парк. Глава Y station, Гарольд Кентвоси, возглавял офис в Кнокхольте. Он позже был выдвинут для руководства Foreign Office Research and Development Establishment.
Было создано несколько машин для криптоатаки на «Тунни». Первые машины из семейства «Хис Робинсон» использовали высокоскоростные перфоленты вместе с электронными логическими схемами, чтобы найти параметры дисков машины Лоренца. Следующее поколение, «Колосс», состояло из первых в мире электронных цифровых компьютеров. Оно было разработано британским инженером Томми Фловером из Доллис Хилла, Лондон. Также как и в ЭНИАК, компьютеры «Колосс» не имели записанных программ, а программировались посредством перестановки штекеров и соединительных кабелей. Они были одновременно более быстрые и надежные, чем «Хис Робинсон». Используя их, Англия была способна вычислить настройки дисков машины Лоренца. Третья машина, «Тунни Эмулятор», была созданна в Блетчли-Парк для эмулирования работы машины Лоренца. Она была построена на основе исследований команды Тильтмана касающихся обратной разработки(reverse engineering). Когда «Колосс» смог вычислить настройки дисков, была собрана и настроена машина Тунни. После этого появилась возможность расшифровывать сообщения.
Лоренц (шифровальная машина).