Введение
Американская шифровальная машина
В истории криптографии ECM Mark II была шифровальной машиной, использовавшейся Соединенными Штатами для шифрования сообщений со времен Второй мировой войны до 1950-х годов. Машина также была известна как SIGABA или Converter M 134 в армии, или CSP 888/889 в военно-морском флоте, а модифицированная версия для ВМС называлась CSP 2900. Подобно многим машинам той эпохи, она использовала электромеханическую систему роторов для шифрования сообщений, но с рядом улучшений безопасности по сравнению с предыдущими моделями. Ни одного публично известного успешного криптоанализа этой машины за время её эксплуатации не зафиксировано.
История
Американским криптографам было ясно задолго до Второй мировой войны, что одноступенчатое механическое движение роторных машин (например, машины Хеберна) может быть использовано злоумышленниками. В случае с знаменитой машиной «Энигма» эти атаки должны были быть предотвращены перемещением роторов в случайные позиции в начале каждого нового сообщения. Однако это оказалось недостаточно безопасным, и немецкие сообщения, зашифрованные «Энигмой», часто поддавались криптоанализу во время Второй мировой войны. Уильям Фридман, директор Службы радиоразведки армии США, разработал систему для противодействия этой атаке, действительно рандомизируя движение роторов. Его модификация заключалась в использовании считывателя перфоленты от телетайпного аппарата, подключенного к небольшому устройству с металлическими «щупами», расположенными таким образом, чтобы пропускать электричество через отверстия в ленте. Когда на клавиатуре нажималась буква, сигнал передавался через роторы, как в «Энигме», создавая зашифрованное сообщение. Кроме того, ток протекал и через устройство для чтения перфоленты, и любое отверстие в ленте в текущей позиции вызывало поворот соответствующего ротора, а затем – продвижение перфоленты на одну позицию. Для сравнения, «Энигма» поворачивала свои роторы на одну позицию с каждым нажатием клавиши, что было гораздо менее случайным движением. Полученная конструкция была выпущена в ограниченном количестве под названием M 134, а её настройки сообщения включали положение ленты и конфигурацию коммутационной панели, определявшей, какая линия отверстий на ленте контролировала какие роторы. Однако использование хрупких перфолент в полевых условиях оказалось проблематичным. Коллега Фридмана, Фрэнк Роулетт, предложил другой способ продвижения роторов, используя дополнительный набор роторов. В конструкции Роулетта каждый ротор должен был генерировать от одного до четырех выходных сигналов, приводя в движение один или несколько роторов (обычно роторы имеют один выход на каждый вход). До войны в США было мало средств на разработку шифровальных устройств, поэтому Фридман и Роулетт создали серию дополнительных устройств под названием SIGGOO (или M 229), которые использовались с существующими M 134 вместо считывателя перфоленты. Это были внешние блоки, содержащие трехроторную систему, в которой пять входов были активны, как будто одновременно нажаты пять клавиш на «Энигме», а выходы «собирались» в пять групп – например, все буквы от A до E были соединены вместе. Таким образом, пять сигналов на входной стороне рандомизировались роторами и выходили с другой стороны по одной из пяти линий. Теперь движение роторов можно было контролировать с помощью дневного кода, а перфолента была исключена. Они называли эту комбинацию машин M 134 C. В 1935 году они продемонстрировали свою разработку Джозефу Венгеру, криптографу из секции OP 20 G военно-морского флота США. Он не увидел в ней особого интереса для флота до начала 1937 года, когда он показал её командующему Лоренсу Саффорду, коллеге Фридмана из Управления военно-морской разведки. Саффорд сразу же оценил потенциал машины, и он вместе с командиром Зейлером добавили ряд функций, упрощающих её производство, в результате чего появилась Электрическая шифровальная машина Mark II (или ECM Mark II), которую флот начал производить под обозначением CSP 889 (или 888). Любопытно, что армия не знала ни об изменениях, ни о массовом производстве системы, но была посвящена в секрет в начале 1940 года. В 1941 году армия и флот объединили усилия для создания единой криптографической системы, основанной на этой машине. Армия начала использовать её под названием SIGABA. Было построено чуть более 10 000 машин. 26 июня 1942 года армия и флот договорились не допускать размещения машин SIGABA на территории иностранных государств, за исключением случаев, когда вооруженные американские военнослужащие могли обеспечить их защиту. Машина SIGABA могла быть предоставлена другой стране-союзнику только в том случае, если сотрудникам этой страны был бы запрещен прямой доступ к машине или её работе американским офицером связи, который осуществлял бы её эксплуатацию.
In 1935 they showed their work to Joseph Wenger, a cryptographer in the OP 20 G section of the U. S. Navy. He found little interest for it in the Navy until early 1937, when he showed it to Commander Laurance Safford, Friedman's counterpart in the Office of Naval Intelligence. He immediately saw the potential of the machine, and he and Commander Seiler then added a number of features to make the machine easier to build, resulting in the Electric Code Machine Mark II (or ECM Mark II), which the navy then produced as the CSP 889 (or 888). Oddly, the Army was unaware of either the changes or the mass production of the system, but were "let in" on the secret in early 1940. In 1941 the Army and Navy joined in a joint cryptographic system, based on the machine. The Army then started using it as the SIGABA. Just over 10,000 machines were built. On 26 June 1942, the Army and Navy agreed not to allow SIGABA machines to be placed in foreign territory except where armed American personnel were able to protect the machine. The SIGABA would be made available to another Allied country only if personnel of that country were denied direct access to the machine or its operation by an American liaison officer who would operate it.
Операция
Поскольку у SIGABA не было рефлектора, для изменения траекторий сигнала через алфавитный лабиринт между режимами шифрования и дешифрования требовался переключатель с 26 и более полюсами. Длинный переключатель “контроллер” был установлен вертикально, с ручкой на верхней части корпуса. Смотрите изображение. Он имел пять позиций: O, P, R, E и D. Помимо шифрования (E) и дешифрования (D), он имел позицию открытого текста (P), которая печатала все, что было введено на выходной ленте, и позицию сброса (R), которая использовалась для установки роторов и обнуления машины. Положение “O” выключало машину. Настройка P использовалась для печати индикаторов и групп даты/времени на выходной ленте. Это был единственный режим, который печатал цифры. В настройке R печать не производилась, но цифровые клавиши оставались активными для перемещения роторов. Во время шифрования клавиша Z соединялась с клавишей X, а нажатие пробела генерировало вход Z в алфавитный лабиринт. При дешифровании Z печаталась как пробел. От читателя ожидалось понимание того, что слово вроде “xebra” в расшифрованном сообщении на самом деле означает “zebra”. Принтер автоматически добавлял пробел между каждой группой из пяти символов во время шифрования. SIGABA обнулялась, когда все индексные роторы показывали ноль в младшем разряде, а все алфавитные и кодовые роторы были установлены на букву O. Каждый ротор имел кулачок, который заставлял ротор останавливаться в правильном положении во время процесса обнуления. Роторы SIGABA размещались в съемной раме, удерживаемой четырьмя винтами с накатанной головкой. Это позволяло хранить наиболее чувствительные элементы машины в более надежных сейфах и быстро выбрасывать их за борт или иным образом уничтожать в случае угрозы захвата. Это также позволяло машине быстро переключаться между сетями, использующими различные порядки роторов. Сообщения содержали два 5-символьных индикатора: внешний индикатор, указывающий используемую систему и уровень секретности, и внутренний индикатор, определяющий начальные установки кодовых и алфавитных роторов. Список ключей включал отдельные установки индексных роторов для каждого уровня секретности. Это предотвращало использование сообщений с более низким уровнем секретности в качестве опор для атаки на сообщения с более высоким уровнем секретности. ВМС и армия использовали разные процедуры для внутреннего индикатора. Обе начинали с обнуления машины и выбора оператором случайной 5-символьной строки для каждого нового сообщения. Затем эта строка шифровалась для получения внутреннего индикатора. В армейских списках ключей содержалась начальная установка роторов, которая использовалась для шифрования случайной строки. Операторы ВМС использовали клавиатуру для перемещения кодовых роторов до тех пор, пока они не совпадали со случайной строкой символов. Алфавитный ротор перемещался в процессе этого, и его конечное положение являлось внутренним индикатором. В случае совместных операций применялись армейские процедуры. В списках ключей содержалась контрольная строка “26 30”. После перестановки роторов в соответствии с текущим ключом оператор обнулял машину, шифровал 25 символов, а затем шифровал “AAAAA”. Шифротекст, полученный из пяти букв A, должен был соответствовать контрольной строке. В руководстве предупреждалось о возможности опечаток в списках ключей и о том, что следует принимать совпадение четырех символов. В руководстве также давались рекомендации о том, как генерировать случайные строки для создания индикаторов. Среди них – использование игральных карт и фишек для покера, выбор символов из шифротекстов и использование самой SIGABA в качестве генератора случайных символов.
Безопасность
[[Файл:Генератор ключей SIGABA.png|thumb|Генератор ключей для шифровальных машин SIGABA. В центральном учреждении в Вашингтоне роторная машина справа генерировала случайные ежедневные настройки для SIGABA, которые записывались на перфокарты с помощью репродуктивного перфоратора IBM 513 слева. Ключи на месяц печатались на одном листе. Системы SIGABA всегда находились под строгой охраной, с отдельными сейфами для базового блока системы и сборки кодового колеса, но был один случай временной потери устройства. 3 февраля 1945 года грузовик, перевозивший систему SIGABA в трех сейфах, был украден, пока его охрана посещала бордель в недавно освобожденном Кольмаре, Франция. Генерал Эйзенхауэр приказал провести масштабные поиски, в результате которых сейфы были обнаружены через шесть недель в близлежащей реке.]
Совместимость с союзными партнерами
Необходимость сотрудничества между американскими, британскими и канадскими силами при проведении совместных военных операций против сил Оси вызвала потребность в шифровальной системе, которую могли бы использовать все союзные войска. Эта функциональность была реализована тремя различными способами. Во-первых, адаптер ECM (CSP 1000), который можно было установить на существующие шифровальные машины союзников, был произведен в ремонтной мастерской ECM Вашингтонской военно-морской верфи. Всего было произведено 3500 таких адаптеров. Второй способ заключался в адаптации SIGABA для взаимодействия с модифицированной британской машиной Typex. Эта общая машина получила название Комбинированная шифровальная машина (CCM) и использовалась с ноября 1943 года. Из-за высокой стоимости производства было изготовлено всего 631 CCM. Третий способ был наиболее распространенным и экономически эффективным. Это был адаптер "X", произведенный корпорацией Teletype в Чикаго. Всего 4500 таких адаптеров были установлены на пунктах технического обслуживания.