Предположим, что нам точно известно, что слово G E N E R A L зашифровано буквами U I L K N T N с помощью машины «Энигма» без коммутационной панели. Это значит, что существует такая позиция ротора, когда буква U трансформируется в букву G, также следующая позиция трансформирует I в Е, следующая — L в N и т. д. В принципе, не существует помех в переборе всех возможных позиций то тех, пока не будет найдена нужная. Самым эффективным способом было бы рассматривать все семь букв
Метод не требовал технических изысков, превосходящих уровень польской «Бомбы». Было достаточно легко прикрепить провода так, чтобы ток по ним шел лишь тогда, когда все семь букв совпадут с G E N E R A L и выключить машину.
Даже в самые первые дни эта идея не казалась особенно надуманной. Современник Алана, физик из Оксфорда Р.В.Джонс, который стал советником секретной службы по науке, был поставлен да довольствие в Блетчли в конце 1939 г. Он обсуждал насущные проблемы криптоанализа с заместителем Деннистона Эдвардом Трэвисом. Последний говорил о более амбициозной проблеме автоматического распознавания не определенного текста, а немецкого языка вообще. Джонс находчиво предложил несколько вариантов решения, одним из которых было «отметить или сделать прокол в бумаге или пленке в любой из 26 позиций в соответствии с буквой, выходящей из машины… и пропустить получившуюся запись мимо блока фотоэлементов, так что каждый из них может сосчитать количество появлений буквы, которую он ищет. После того, как будет достигнуто заданное общее число, распределение частот встречаемости букв можно будет сравнить с числом, соответствующим языку, таким образом, будет создано что-то вроде шаблона».
Трэвис представил Джонса Алану, которому идея «понравилась». Однако в том, что касалось «Энигмы», то основной метод по-прежнему оставался совсем другим. Он основывался на идее анализа известного куска обычного текста. Трудность, конечно, заключалась в том, что у военной «Энигмы» была коммуникационная панель, которая делала такой примитивный процесс невозможным — существовало 150 738 274 937 250 возможных комбинаций десяти пар букв. Проверить их все у машины не было никакой возможности.
Конечно, это устрашающее число не оказывало влияния на серьезного аналитика. Большие числа сами по себе не гарантировали безопасности от взлома. Любой человек, решивший криптограмму-головоломку, сумел устранить все кроме одного из 403 291 461 126 605 635 584 000000 различных буквенных замещений. Это было возможно сделать благодаря тому, что буква Е вполне обычна, сочетание АО — редко и т. д. и т. п. Так что каждый мог устранить большое количество вариантов сразу.
Как видно, большое количество коммутационных панелей само по себе не является проблемой. Можно рассмотреть гипотетическую машину, в которой своппинг коммутационной панели применяется только перед зашифровкой с помощью базовой «Энигмы». Предположим, что для такой машины точно известно, что текст F H O P Q B Z является шифровкой слова G E N E R A L.
И опять-таки, имеется возможность ввести буквы F H O P Q B Z в семь соединенных последовательно «Энигм» и проверить, что получается на выходе. Но в этот раз аналитик не ожидает появления букв G E N E R A L, потому что к ним был применен неизвестный своппинг коммутационной панели. Тем не менее, кое-что еще можно сделать. Предположим, что в некоей точке процесса прохода через все позиции ротора сложился такой набор значений:
(26!/ 10!6!2) На самом деле 11 пар дают немного больше способов — правда, тут совсем небольшая разница; 12 или 13 пар иногда меньше, т. е. 26! Это также число возможных подключений проводов к каждому ротору «Энигмы».
Затем можно задать вопрос: могут ли (или не могут) буквы G F G C O R I быть получены из комбинации G E N E R A L как побочный эффект от своппинга коммутационной панели. В этом примере звучит ответ «нет», потому что при своппинге первая буква G поменяется, а вторая буква G превратится в N, своппинг не может превратить первую букву в слове G E N E R A L в F, а вторую — в C. К этому можно добавить, что своппинг не может превратить букву R в слове G E N E R A L в О, а затем трансформировать А в R. Любого из этих замечаний достаточно, чтобы исключить эту позицию роторов.