У колец было еще одно назначение. На каждом кольце имелся зубчик, который, после того как диск занимал определенное положение, заставлял поворачиваться ровно на одну позицию следующий диск «Энигмы», расположенный левее. Это положение было различным для каждого из трех дисков. Путем несложных вычислений можно убедиться, что исходное угловое положение, в которое были установлены диски «Энигмы», воспроизводилось вновь после примерно 17 тысяч нажатий клавиш на клавиатуре.
Режевский понимал, что для чтения немецких шифровок ему необходимо обзавестись точной копией «Энигмы». А чтобы ее изготовить, он должен выяснить, как контактные иголки и пластины соединены между собой внутри каждого из трех дисков. В декабре 1932 года Режевский, используя данные, полученные от Шмидта, вывел сложную алгебраическую формулу, позволявшую вычислить эти соединения для первого и второго дисков «Энигмы».
Однако при работе над формулой он допустил ошибку. Дело в том, что помимо трех вращающихся дисков в «Энигме» был еще один неподвижный диск. Режевский предположил, что этот четвертый диск устроен точно так же, как и такой же диск в коммерческой модификации «Энигмы». Предположение было неверным. В отличие от коммерческой модификации, в «Энигме», которую использовали немецкие военные, четвертый диск никак не влиял на направление движения электрического тока. И только когда Режевский осознал допущенную им ошибку, он смог совершенно точно определить соединения внутри первого и второго дисков «Энигмы».
Что же касается третьего диска и рефлектора, то их внутренние соединения Режевский сумел вычислить, используя пример, найденный им в руководстве по использованию «Энигмы», которое французам передал Шмидт. В этом примере был приведен текст сообщения на немецком языке и соответствующий ему шифрованный текст, полученный с помощью указанных в примере ключевых установок.
После того как Режевский восстановил внутренние соединения всех дисков и рефлектора, Палльтх и его коллеги в фирме «АВА» приступили к изготовлению точной копии «Энигмы». Из соображений секретности часть этого процесса происходила в здании польского Генерального штаба. Однако наиболее шумные операции все равно пришлось производить в помещениях, принадлежавших фирме «АВА». Работа велась там в неурочные часы и с привлечением только особо доверенных служащих.
Еще в конце 1930 года Палльтх и Данилевич, инженеры из «АВА», которые годом раньше были привлечены к обследованию экземпляра «Энигмы», случайно попавшего в руки поляков, изготовили прототип «Энигмы». Это был именно прототип, поскольку соединения внутри дисков им были неизвестны. Однако прототип содержал все необходимые элементы, чтобы превратить его в полноценную «Энигму», когда эти соединения станут известны. Для изготовления прототипа потребовалось всего полгода.
Как только точная копия «Энигмы» была готова, Режевский, Розицкий и Зыгальский попытались прочесть перехваченные немецкие шифровки. И снова их невольными помощниками в этом трудном деле стали сами немцы. Согласно инструкции, оператор «Энигмы» должен был сначала дважды зашифровать так называемый разовый ключ (угловое положение дисков «Энигмы» в момент шифрования первой буквы сообщения) и поместить полученный результат в начало шифровки. Однако любой, кто хоть сколько-нибудь разбирается в шифрах, знает, что повторы в тексте шифруемого сообщения допускаются только в том случае, если обойтись без них совершенно невозможно. Иначе эти повторы могут быть замечены противником и использованы для чтения шифровок.
При шифровании сообщений немецкий оператор «Энигмы» проделывал следующую процедуру. Предположим, что порядок следования дисков и соединения на коммутационной панели «Энигмы» и у получателя, и у отправителя шифрованного сообщения были одинаковыми. Отправитель шифровки придумывал, в какое угловое положение поставить диски. Допустим, это было BYS. Он устанавливал диски в другое угловое положение (скажем, XYZ), взятое из календарного списка суточных ключей, который заблаговременно рассылался по всем узлам связи, и дважды набирал на клавиатуре BYS. Затем отправитель сообщения считывал со световой панели две шифрованные версии BYS (пусть это будет ABS OVR). Данные шесть букв назывались индикатором, поскольку служили для того, чтобы получатель сообщения мог узнать, какой разовый ключ использовался при шифровании. И наконец отправитель сообщения устанавливал диски в положение BYS, шифровал сообщение и посылал по радио кодом Морзе.
Прежде чем приступить к расшифрованию пришедшего сообщения, его получатель устанавливал диски своего экземпляра «Энигмы» в угловое положение, определяемое календарным списком суточных ключей (XYZ). После этого дважды набирал на клавиатуре индикатор (ABS OVR) и получал два раза повторенный разовый ключ (BYS BYS). Установив диски в угловое положение, задаваемое разовым ключом, получатель шифровки мог приступать к ее расшифрованию.
Требование шифровать разовый ключ дважды оказалось самым уязвимым местом «Энигмы» и позволило читать немецкие шифровки в 30-е годы и в начале 40-х годов. Режевский, Зыгальский и Розицкий разработали так называемый характеристический метод взлома «Энигмы», который основывался на том, что во всех немецких шифровках, перехваченных за сутки, первые шесть букв были зашифрованы с использованием одного и того же суточного ключа.
15 сентября 1938 года немцы внесли существенное изменение в процедуру шифрования сообщений с помощью «Энигмы». Отныне, вместо того чтобы устанавливать диски в соответствии с календарным списком суточных ключей, немецким операторам связи предлагалось самим выбирать исходное угловое положение дисков и в незашифрованном виде доводить до сведения получателя сообщения. В результате характеристический метод оказался неприменим. Однако в ответ поляки придумали два новых метода, которым впоследствии суждено было сыграть весьма существенную роль при взломе «Энигмы». Это были перфокарты и «Бомба».
После войны никто из польских криптоаналитиков так и не смог вспомнить, почему несколько соединенных вместе «Энигм» назвали «Бомбой». По одной из версий, Режевский, Зыгальский и Розицкий, когда их осенила эта идея, сидели в кафе и ели фирменное мороженое под названием «Бомба». По другой версии, в изобретенном ими устройстве весьма своеобразным датчиком служили несколько небольших грузил, которые, подобно бомбе, падали вниз, когда вскрывались искомые ключевые установки для «Энигмы». Первая «Бомба» была изготовлена в ноябре 1938 года и состояла из шести «Энигм» — по одной для каждого варианта расположения дисков в «Энигме». Чтобы определить порядок следования дисков в «Энигме», требовалось не более двух часов работы «Бомбы». К этому времени производительность «Бомбы» стала решающим фактором, который обеспечил полякам успех в работе над взломом «Энигмы». Если в начале 1933 года, когда Режевский сумел восстановить внутренние соединения всех дисков и рефлектора «Энигмы», немцы меняли порядок следования дисков каждые три месяца, то в 1936 году это уже делалось сначала ежемесячно, а потом и ежедневно.
Однако уже тогда было совершенно ясно, что успех Режевского и его коллег весьма скоротечен. «Бомба» срабатывала, только если количество соединенных между собой штекерных разъемов коммутационной панели было относительно невелико. До 1938 года число таких соединений обычно колебалось в пределах от 10 до 16. Тем не менее немецкие операторы связи в любой момент могли получить приказ увеличить это число сверх 16, и тогда «Бомба» перестала бы в приемлемые сроки справляться с определением ключевых установок для «Энигмы».
Перфокарты представляли собой второе хитроумное приспособление, придуманное поляками для ускорения процесса вскрытия ключевых установок для «Энигмы». Автором этого изобретения был Зыгальский, однако понадобилось довольно много времени, чтобы воплотить его идею в жизнь.
Зыгальский первым заметил, что количество различных индикаторов, которые присутствовали в немецких шифровках, перехваченных за сутки, было относительно невелико. Эти индикаторы, как правило, были чем-то схожи: в них совпадали или первая и четвертая буквы, или вторая и пятая, или третья и шестая. Такие индикаторы на жаргоне польских криптоаналитиков назывались «самками». Самая существенная особенность «самок» состояла в том, что немецкие операторы были весьма ограничены в выборе ключевых установок (угловых положений дисков, порядка их следования и расположения на них колец), чтобы в результате шифрования примененного разового ключа получить эти «самки». Поэтому, как только поляки отмечали появление «самки» в перехваченной немецкой шифровке, они могли не рассматривать ключевые установки, с помощью которых невозможно было получить данную «самку». В среднем количество таких отбракованных ключевых установок, приходящихся на одну «самку», составляло порядка 40 процентов. Однако чтобы это правило начало действовать, необходимо было найти по крайней мере две «самки». Соответственно, с ростом числа обнаруженных «самок» уменьшалось число ключевых установок для «Энигмы», которые польским криптоаналитикам приходилось проверять.