Книга шифров. Тайная история шифров и их расшифровки - Сингх Саймон. Страница 38
Если необходимость — мать изобретения, то неблагоприятная обстановка и драматические события — это, пожалуй, мать криптоанализа. Успешность работы польского Бюро шифров иллюстрируется его достижениями во время русско-польской войны 1919–1920 гг. В августе 1920 года, когда армия большевиков стояла у ворот Варшавы, Бюро дешифровало 400 сообщений противника. Столь же результативным было и слежение за немецкими линиями связи — вплоть до 1926 года, когда Бюро также столкнулось с сообщениями, зашифрованными с использованием «Энигмы».
За дешифрование немецких сообщений отвечал капитан Максимилиан Чецкий[16], верный патриот, выросший в городе Шамотулы, центре польского национализма. Чецкий имел доступ к коммерческой модели «Энигмы», в которой были заложены все основные принципы изобретения Шербиуса. Но, к сожалению, в том, что касалось распайки проводов внутри шифраторов, коммерческая модель существенно отличалась от модели для вооруженных сил. Не зная, как идут провода в армейской модификации, у Чецкого не было шансов на дешифрование депеш, посылаемых немецкой армией. Совершенно отчаявшись, он, чтобы извлечь хоть какой-то смысл из перехваченных шифровок, как-то даже привлек к работе человека, обладающего даром ясновидения. Ничего удивительного, что и ясновидящий не сумел решить эту задачу, в чем так нуждалось Польское Бюро шифров. Это выпало на долю немцу, Ханс-Тило Шмидту, который сделал первый шаг во взломе шифра «Энигмы».
Ханс-Тило Шмидт родился в 1888 году в Берлине и был вторым сыном знаменитого профессора и его жены из аристократической семьи. Шмидт начинал свою карьеру в немецкой армии и принимал участие в Первой мировой войне, но вследствие резкого сокращения численности вооруженных сил по Версальскому договору его не посчитали нужным оставить на службе. После этого он попытался сделать себе имя в сфере предпринимательства, однако из-за послевоенной депрессии и гиперинфляции принадлежащую ему фабрику по производству мыла пришлось закрыть, а он сам и его семья разорились.
Унижение Шмидта из-за неудач усугубилось успехами его старшего брата Рудольфа, который также воевал, а впоследствии был оставлен в армии. В 20-х годах Рудольф продвигался по службе, достигнув в итоге положения начальника штаба войск связи. Он отвечал за обеспечение защищенности связи, и фактически именно Рудольф официально санкционировал применение в армии «Энигмы».
После краха своего предприятия Ханс-Тило был вынужден просить своего брата о помощи, и Рудольф устроил его на работу в Берлин в Chiffrierstelle, — в ведомство, которое осуществляло контроль и управление зашифрованной связью в Германии. Это был командный пункт шифровальных машин «Энигма», сверхсекретное подразделение, имеющее дело с особо важной и секретной информацией. Когда Ханс-Тило отправился к своему новому месту работы, он оставил свою семью в Баварии, где стоимость жизни была не слишком высока. В Берлине он жил одиноко, замкнуто и практически без средств, завидуя благополучию своего брата и обиженный на государство, которое отвергло его. Результат был предсказуем. Продавая секретную информацию об «Энигме» иностранным государствам, Ханс-Тило Шмидт смог бы заработать денег и отомстить, подорвав безопасность своей страны и нанеся вред организации брата.
Рис 41. Ханс-Тило Шмидт
8 ноября 1931 года Шмидт прибыл в Гравд Отель в бельгийском городке Вервье на связь с французским тайным агентом Рексом. В обмен на 10000 марок (что соответствует нынешним 20 000 фунтов стерлингов) Шмидт позволил Рексу сфотографировать два документа: ‘Gebrauchsanweisung für die Chiffriermaschine Enigma’ и ‘Schlusselanleitung für die Chiffriermaschine Enigma’. Эти документы являлись по сути инструкциями по пользованию «Энигмой», и хотя в них не было точного описания того, как в шифраторах выполнена проводка, однако имелась информация, позволяющая сделать о ней определенные выводы.
Так, вследствие предательства Шмидта, союзники теперь могли создать точную копию армейской «Энигмы». Этого, однако, было недостаточно, чтобы дешифровать зашифрованные «Энигмой» сообщения. Стойкость шифра зависит не от того, чтобы держать машину в секрете, а от того, чтобы хранить в тайне ее начальные установки (ключ). Если криптоаналитик хочет дешифровать перехваченное сообщение, то ему потребуется иметь точную копию «Энигмы», но помимо этого он по-прежнему должен будет отыскать тот ключ из триллионов возможных, который был применен для зашифровывания. В немецком меморандуме по этому поводу было сказано так: «При оценке стойкости криптосистемы предполагается, что противник имеет шифровальную машину в своем распоряжении».
Французская секретная служба, безусловно, оказалась на высоте, найдя такой источник развединформации в лице Шмидта и получив документы, в которых сообщалось о расположении внутренней проводки в армейской «Энигме». Французские же криптоаналитики оказались несостоятельны, и, похоже, не желали и не были способны применить эту полученную информацию. После окончания Первой мировой войны они стали чересчур уж самонадеяны и у них не было стимулирующих факторов. Французское Бюро шифров даже не побеспокоилось изготовить точную копию армейской «Энигмы», поскольку были абсолютно уверены в невозможности отыскания ключа, необходимого для дешифровки зашифрованного с помощью «Энигмы» сообщения.
Между прочим, десятью годами ранее, французы подписали соглашение о военном сотрудничестве с Польшей. Поляки проявили горячий интерес ко всему, что связано с «Энигмой», поэтому в соответствии с этим соглашением десятилетней давности французы просто передали фотографии документов, полученных от Шмидта, своим союзникам, предоставив заниматься безнадежной задачей по взлому «Энигмы» польскому Бюро шифров. В Бюро быстро осознали, что эти документы являются всею лишь отправной точкой, но, в отличие от французов, их еще подгонял страх вторжения. Поляки посчитали, что должен существовать ускоренный способ поиска ключа к зашифрованному «Энигмой» сообщению, и что если они приложат достаточно усилий, изобретательности и ума, то смогут отыскать его.
В документах, полученных от Шмидта, наряду с расположением внутренней проводки в шифраторах, также подробно объяснялась структура шифровальных книг, используемых немцами. Ежемесячно операторы «Энигмы» получали новую шифровальную книгу, где указывалось, какой ключ должен применяться на каждый текущий день. К примеру, для первого дня месяца шифровальная книга могла задавать следующий ключ текущего дня:
Расположение шифраторов и их ориентация называются установками шифраторов. Чтобы использовать заданный ключ текущего дня, оператор «Энигмы» должен был установить свою «Энигму» следующим образом:
(1) Установка штепсельной коммутационной панели: Осуществить коммутацию букв А и L, соединив их проводом на штепсельной коммутационной панели, а затем проделать ту же самую процедуру для букв Р и R, Т и D, В и W, К и F, О и Y.
(2) Расположение шифраторов: Установить 2-ой шифратор в 1-ый паз шифровальной машины, 3-ий шифратор — во 2-ой паз, а 1-ый шифратор — в 3-ий паз.
(3) Ориентация шифраторов: У каждого шифратора на наружной части выгравированы буквы алфавита, с помощью которых оператор устанавливает этот шифратор в определенном положении. В нашем случае оператор должен вначале повернуть первый шифратор так, чтобы сверху оказалась буква О, затем второй шифратор, чтобы сверху оказалась буква С и, наконец, третий шифратор, установив его таким образом, чтобы сверху была буква W.
Один из способов зашифровывания сообщений состоит в том, что отправитель зашифровывает весь дневной поток информации в соответствии с ключом текущего дня. Это означает, что в течение всего дня перед началом зашифровывания каждого сообщения все операторы «Энигмы» должны будут устанавливать свои шифровальные машины по одному и тому же предписанному ключу текущего дня. Затем, всякий раз, как потребуется передать сообщение, его вначале вводят в машину с помощью клавиатуры, записывают результат зашифровывания и отдают радисту для отправки. На другом конце радист принимает радиограмму и передает ее оператору «Энигмы», а тот вводит ее в свою машину, которая к тому времени уже должна быть установлена в соответствии с заданным ключом текущего дня. В результате будет получено исходное сообщение.