Большое значение в военное время приобрела математическая теория криптографии — наука о конструировании и «взламывании» кодов. Во время второй мировой войны союзники поняли, что математическая логика может оказаться полезной для дешифровки немецких радиограмм, если только вычисления проводить достаточно быстро. Требовалось автоматизировать математические вычисления, чтобы их могла производить машина, и более других способствовал раскрытию немецких кодов английский математик Алан Тьюринг.
В 1938 году Тьюринг вернулся в Кембридж после стажировки в Принстонском университете. Он стал свидетелем того переполоха, который вызвали теоремы Гёделя о неразрешимости, и принял участие в попытках спасти осколки мечты Гильберта.
В частности, Тьюринг захотел выяснить, существует ли способ, позволяющий определить, какие проблемы разрешимы и какие неразрешимы, и попытался разработать метод, дающий ответ на этот вопрос. В те времена вычислительные устройства были весьма примитивными и, по существу, бесполезными, когда дело касалось серьезных задач. Поэтому Тьюринг основывал свои идеи не на реальных компьютерах, а на представлении о некоторой воображаемой машине, способной неограниченно производить вычисления.
Все, что требовалось Тьюрингу для исследования абстрактных логических проблем, — гипотетическая машина, снабженная бесконечной воображаемой лентой, разделенной на клетки, и способная неограниченно производить вычисления. Тьюринг и не подозревал, что предложенная им воображаемая автоматизация решения гипотетических проблем в конечном счете приведет к перевороту в выполнении реальных вычислений на реальных машинах.
Несмотря на начавшуюся войну, Тьюринг продолжал свои исследования в Кингс Колледже до 4 сентября 1940 года, когда размеренной жизни его кембриджского дома внезапно пришел конец. Тьюринг был командирован в Правительственную школу кодов и шифров, в задачу которой входила расшифровка данных вражеских радиоперехватов. Еще в довоенные годы немцы предприняли значительные усилия для разработки великолепной системы шифрования, и достигнутые ими успехи в этой области стали предметом особых забот британской разведки, которая до того с легкостью расшифровывала вражеские радиограммы. В официальной истории войны, выпущенной издательством Ее Величества под названием «Британская разведка во второй мировой войне», состояние дел в 30-х годах описывается следующим образом:
«В 1937 году было установлено, что в отличие от своих японских и итальянских аналогов, германская армия, германский военно-морской флот, возможно, германские военно-воздушные силы вместе с другими государственными организациями, вроде железных дорог и СС, использовали для всех нужд, кроме тактических коммуникаций, различные версии одной и той же шифровальной системы — шифровальной машины «Энигма», выпущенной на рынок в 20-е годы. Надежность ее немцы повышали, внося различные усовершенствования. В 1937 году Правительственной школе кодов и шифров удалось раскрыть устройство менее модифицированной и менее надежной модели машины «Энигма», используемой германскими, итальянскими и испанскими вооруженными силами. Не считая этого случая, «Энигма» до сих пор выдерживала все попытки раскрыть ее устройство. Весьма вероятно, что эти попытки будут продолжены».
Шифровальная машина «Энигма» состояла из клавиатуры, соединенной с шифровальным узлом. Шифровальный узел содержал три отдельных ротора. Положения роторов определяли, как шифруется каждая литера на клавиатуре. Раскрыть код «Энигма» было так трудно потому, что число внутренних состояний, в которых могла находиться машина, было необычайно велико. Во-первых, три ротора в машине можно было выбирать из пяти, заменять и переставлять, чтобы сбить с толку тех, кто попытается раскрыть код. Во-вторых, каждый ротор мог находиться в одном из двадцати шести. различных положений. Все это означало, что машина может находиться более чем в миллионе различных состояний. Кроме перестановок букв, производимых роторами, соединения на плате в тыльной стороне машины можно было менять вручную, что позволяло устанавливать машину более чем в 1,5·1020 возможных состояний. Чтобы еще больше увеличить надежность, три ротора постоянно изменяли ориентацию так, что после кодирования и передачи одной буквы при кодировании следующей буквы машина устанавливалась в новое состояние. Например, набрав на клавиатуре «DODO», мы получим кодированное сообщение «FGTB», так как хотя буквы «D» и «O» встречаются в сообщении дважды, кодируются они всякий раз по-другому.
Машины «Энигма» были взяты на вооружение германской армией, военно-морским флотом и военно-воздушными силами, а также использовались на железных дорогах и в других правительственных учреждениях. Подобно всем системам кодов того времени, «Энигма» имела слабое место: получатель должен был знать, как установлена машина отправителя. Для обеспечения безопасности установку «Энигмы» требовалось менять ежедневно. Один из способов, позволявших отправителю ежедневно менять код и сообщать его получателю, заключался в публикации установок машины на каждый день в секретной кодовой книге. Риск при такой системе состоял в том, что англичане могут захватить какую-нибудь немецкую подводную лодку и захватить кодовую книгу с ежедневными установками машины на следующий месяц. Альтернативный подход, который использовался на протяжении большей части войны, состоял в том, чтобы установка машины на текущий день сообщалась в преамбуле к сообщению и декодировалась с помощью кода на предыдущий день.
Когда разразилась вторая мировая война, штат Правительственной школы кодов и шифров в основном состоял из специалистов по древним языкам и лингвистов. Но вскоре британское министерство иностранных дел осознало, что специалисты по теории чисел имеют более высокие шансы подобрать ключ к немецким кодам, и тогда самые лучшие английские специалисты по теории чисел были собраны в новом здании Правительственной школы кодов и шифров в Бличли парке — викторианском здании в Бличли, в графстве Бакингхэмпшир. Тьюрингу пришлось оставить свои воображаемые машины с бесконечной лентой, разделенной на клетки, и бесконечным временем на обработку информации и заняться практической проблемой с конечными ресурсами и весьма сжатыми сроками.
Криптография представляет собой борьбу умов между составителем кода и тем, кто пытается этот код разгадать. Составитель кода видит свою задачу в том, чтобы каждое исходящее от отправителя сообщение было закодировано настолько надежно, чтобы раскодировать его было невозможно даже в том случае, если оно будет перехвачено противником. Однако существует верхний предел для количества возможных математических манипуляций, поскольку сообщения должны доходить до получателя быстро и эффективно. Сила германского кода «Энигма» заключалась в том, что кодируемое сообщение подвергалось кодировке на нескольких уровнях с очень высокой скоростью. Тот, кто стремился раскрыть, или «взломать», код, видел свою задачу, в том, чтобы взять перехваченное сообщение и разгадать код, причем скорость расшифровки была весьма существенна: германское сообщение, содержащее приказ потопить британский корабль, должно было быть декодировано до того, как корабль потонет.
Тьюринг возглавил группу математиков, в задачу которых входило воссоздать точную копию машины «Энигма». Все свои абстрактные идеи предвоенной поры Тьюринг воплотил в устройстве, которое теоретически могло методично, одну за другой, перебирать все возможные установки машины «Энигма» до тех пор, пока код не окажется раскрытым. Для проверки всех потенциально возможных состояний машины «Энигма» математики из Бличли парка использовали британские машины около двух метров в высоту и примерно столько же в ширину, работавшие на электромеханических реле. Непрестанное тиканье реле стало причиной, по которой эти машины получили свое прозвище — их стали называть бомбами. Несмотря на максимальное по тем временам быстродействие, «бомбы» не могли перебрать за разумное время все гигантское количество возможных вариантов установки «Энигма», поэтому группе Тьюринга предстояло найти способы, позволяющие существенно сократить число перестановок, по крохам собирая любую информацию, которую можно было извлечь из перехваченных сообщений.