Шифровальный механизм машины был весьма сложен. Основная его задача состояла в том, чтобы направлять электрические импульсы с клавиатуры на световую панель наиболее запутанным и замысловатым путём. Основными элементами механизма являлись три вращающихся барабана или ротора, каждый около трёх дюймов в диаметре. На обоих торцах каждого ротора располагались двадцать шесть контактных точек, которые соединялись с контактными точками других роторов с помощью подпружиненных и скользящих контактов. Когда оператор нажимал какую-нибудь клавишу, то первый (правый) ротор поворачивался на 1/26 часть полного оборота, щёлкая, как автомобильный спидометр. После такого поворота взаимное расположение контактных точек роторов кардинально менялось, и электрический импульс направлялся по новому маршруту. Удар по второй клавише поворачивал первый ротор ещё на 1/26 часть оборота, прокладывая входным и выходным импульсам новый путь следования. После двадцати шести ударов по клавишам в работу включался второй (средний) ротор, который обеспечивал расширение процесса с помощью своих двадцати шести контактов. Затем вступал в действие третий (левый) ротор. Все три ротора вместе взятые обеспечивали получение 17.576 положений контактов (26x26x26). Кроме роторов в машине имелся «рефлектор», с помощью которого все электрические импульсы направлялись обратно через весь лабиринт контактных точек, что создавало виртуальную схему из шести роторов и обеспечивало дополнительное кодирование. На этом возможности «Энигмы» не заканчивались. Роторы машины были съёмными. Их можно было устанавливать на валу в шести сочетаниях (1-2-3, 1-3-2, 2-3-1 и т.д.). Использование этих сочетаний увеличивало число возможных положений ротора относительно друг друга до 105.456 (17.576х6). Однако и это ещё было не всё. В машине на наружных зубчатых венцах роторов были установлены храповые механизмы, что позволяло устанавливать начало поворота каждого ротора с любого из двадцати шести положений. Такое число положений каждого ротора, умноженное на 105.456, доводило число возможных электрических контактных соединений до астрономической величины[110].
Процессы шифровки и расшифровки не представляли для операторов особой сложности. От них требовалось одно: соблюдать особую точность в работе, руководствуясь предварительно подготовленным и разосланным меню. Порядок работы на «Энигме» был таков. Оба оператора (передававший сообщение и его принимавший) устанавливали роторы «Энигмы» в одинаковое положение (к примеру, в положение 1-2-3), затем поворачивали их на одно и то же число щелчков храпового механизма, после чего снова поворачивали роторы до появления в расположенных над ними окошках указанных в меню трёх букв из числа выгравированных на внешней стороне каждого ротора. При условии, что все три операции были выполнены в соответствии с полученным меню, машины обоих операторов были готовы к работе.
Оператор передающей стороны начинал автоматизированный процесс кодирования, пользуясь клавиатурой. Набирая одну за другой буквы текста, он направлял электрические импульсы по лабиринту электрических цепей, осуществляя автоматизированный процесс шифрования букв и вызывая загорание сигнальных лампочек на панели машины (буква «А» могла высвечиваться, к примеру, как «R»). Помощник оператора переписывал все появлявшиеся на панели буквы. После того как сообщение было набрано, его текст (высвеченный на панели) передавали радиотелеграфисту, который передавал сообщение адресату в телеграфном режиме посылками по пять букв каждая.
Получив зашифрованный текст сообщения, получатель набирал этот текст на клавиатуре своей машины, печатая букву за буквой. Машина автоматически расшифровывала эти буквы одну за другой, высвечивая их на панели (если следовать приведённому примеру, буква «R» на панели превращались в исходную букву «А»).
Поначалу криптологи были уверены в том, что расшифровать сообщение, закодированное с помощью «Энигмы», невозможно. Действительно, общее количество перестановок, получаемых в результате использования большого числа переменных, невообразимо. По одному из расчётов это число оказалось равным шести тысячам триллионов. Таким образом, здесь не могли помочь никакие известные способы дешифровки. Для этих целей не годились ни статистический анализ (учитывающий частоту повторения букв в тексте), ни математические методы расшифровки. Даже обладание «Энигмой», скоммутированной по образцу машины отправителя сообщения, не решало дела. Для того чтобы расшифровать сообщение, необходимо было безошибочно знать порядок расположения роторов, установки наружных зубчатых венчиков и смотровых окошечек, т.е. иметь меню, которое могло быть изменено передающей стороной в любую минуту.
Немецкие военные круги были в восторге от «Энигмы». Это был дешёвый, компактный, простой в эксплуатации аппарат, позволявший исключить расшифровывание набранных с его помощью текстов. Даже захват противником такого аппарата военные не считали большой бедой. На их взгляд, стоило поменять «ключи», и можно было работать дальше.
Первым, в 1926 году, «Энигмой» стал пользоваться немецкий военно-морской флот, а в 1929 году его примеру последовал рейхсвер. Для того чтобы повысить защищённость машины по сравнению с «коммерческим» образцом, немцы модифицировали коммутацию «Энигмы», установив под клавиатурой коммутационную панель телефонного типа, имевшую двадцать шесть штепсельных контактов (от «А» до «Z»). Когда какие-то из этих контактов шунтировались шнурами (совсем как на старинных телефонных коммутаторах), электрические импульсы проходили ещё через один лабиринт, что выводило число возможных контактных соединений за пределы математических представлений. Таким образом, для расшифровки текста, набранного «Энигмой» «военного образца», требовалось знать не только три «роторных ключа», но также и компоновку соединений коммутационной панели.
«Энигма» оказалась на удивление «гибкой» машиной, что позволило различным организациям Третьего рейха применять на практике свои системы кодирования. Каждая организация действовала по-своему: одна меняла в машине внутренние монтажные схемы, другая — предписывала операторам менять роторы, третья — вводила иные, известные только ей изменения. В итоге получилось так, что у армии, флота и авиации оказалось по своей «Энигме».
И всё же, как ни сложна была система кодирования, использовавшаяся в машине, нашлись умельцы, взявшиеся за разгадывание этой загадки[111]. В 1932 году за дело взялись польские дешифровщики Мариан Реджевский, Ержи Розицкий и Хенрик Зюгальский. Они начали свои исследования не с пустыми руками. Дешифровщики обладали не только «Энигмой» в «коммерческом» исполнении, но и шпионскими сведениями технического характера, полученными от немца Ганса-Тило Шмидта (по кличке «Аше»), тайно состоявшего на службе у шефа французских дешифровщиков Густава Бертрана. Кроме того, дешифровщики располагали большим количеством сообщений, набранных с помощью «Энигмы», а затем переданных в эфир и перехваченных польскими радиостанциями.
Поляки вскоре обстоятельно познакомились с немецкой системой шифрования текста с помощью «Энигмы». С особым интересом дешифровщики подметили одну из особенностей набора текста: в начале сообщения всякий раз повторялся блок из трёх произвольных букв. Выяснилось, что немцы вводят повтор для обеспечения надёжного приёма при неблагоприятных условиях передачи. Вот этот повтор и подвёл немцев. Многие немецкие операторы не утруждали себя и дважды набирали блок «ААА» или «АВС», а то и формировали его из букв, расположенных на клавиатуре по диагонали, получая таким образом блок «QSC» или «ESY». Поляки быстро сообразили: первая и четвёртая, вторая и пятая, а также третья и шестая буквы в начале любого текста всегда одинаковы. Кроме того, дешифровщики подметили, что радиообмен между немецкими радиостанциями имеет свой стиль, а передаваемые отдельными словами или даже фразами сообщения повторяют друг друга. Вскоре поляки научились расшифровывать некоторые слова, к примеру: «дивизия», «полк», «операция». Такие расшифрованные слова, а также обрывки болтовни между операторами во время проверки линии связи дешифровщики называли «кормушками». Вот эти «кормушки» и, конечно, сложный математический аппарат и помогли полякам «взломать» немецкую систему кодирования радиосообщений[112]. Однако самым удивительным было то, что поляки справились со своей задачей всего лишь за несколько недель. На протяжении последующих шести лет они постоянно расшифровывали немецкие сообщения, набранные на «Энигме». Для ускорения процесса расшифровки поляки сконструировали «циклометр», состоявший из двух комплектов роторов «Энигмы», определённым образом соединённых между собой. Кроме того, они составили обширную картотеку, содержавшую расшифрованные сообщения и другую информацию. Во время проведения двухнедельного «теста» в январе 1938 года польской команде из десяти человек удалось расшифровать 75% всех сообщений, набранных «Энигмой».