Справедливости ради отметим, что все же как минимум один «провал» Лаврентий Берия допустил. «Венона» – это имя закрепилось за операцией по сбору и расшифровке сообщений, которыми обменивались советские дипломатические учреждения в США с Москвой с 1943 по 1946 год. На самом деле американские криптоаналитики называли эту процедуру «советская дипломатическая головоломка», затем «Нефрит», потом «Невеста», какой-то период она именовалась «Снадобье» и только в 1961 году стала «Веноной».
Об этом «шпионском деле» написано достаточно много, поэтому мы не будем останавливаться подробно на этом вопросе. А расскажем о том, что обычно не попадает на страницы статей и книг, – о системе организации шифровальной связи с заграничными учреждениями и почему американцы смогли ее «вскрыть».
Советская шифровальная служба, как и аналогичные подразделения других стран, не имела изъянов с позиции безопасности. При условии, что обслуживающий ее шифровальщик не попытается сбежать на Запад (вариант его вербовки иностранными спецслужбами был маловероятен, так как за ним постоянно присматривали сотрудники резидентуры); посторонний не проникнет в помещение, где хранятся шифроматериалы; будут соблюдены все требования шифровальной работы и т. п.
Постоянно выполнять все условия было крайне сложно. Отечественные разведчики иногда вербовали иностранных шифровальщиков и негласно проникали в различные помещения дипломатических миссий. В то же время из-за специфики военного времени сотрудники отечественной Специальной службы несколько раз грубо нарушили требования шифровальной работы, что привело к частичному «вскрытию» системы шифровальной связи, используемой советской внешней разведкой в США.
Основу используемой криптосистемы составлял алгоритм «одноразового блокнота». В классическом виде это последовательность групп пяти– или шестизначных случайных чисел, записанных на листах бумаги, которые скреплены между собой в блокнот. В советских блокнотах таких листков обычно было 35 или 50.
Технология шифрования происходит так. Отправитель преобразует «открытый» текст в набор цифр. Это можно сделать разными способами. Например, присвоить каждой букве ее порядковый номер алфавита, А можно использовать код, когда каждому символу или группе символов (слогу, слову и т. п.) присваивается определенное число.
После того как текст преобразован в последовательность цифр, отправитель складывает их с числами из блокнота. При этом он руководствуется правилом «китайской арифметики» – если сумма превысила 10, то стоящая слева единица отбрасывается. В результате получается зашифрованное сообщение. После этой процедуры лист «одноразового блокнота» уничтожается.
Получатель, используя копию уничтоженного листа «одноразового блокнота», складывает цифры из него с цифрами из сообщения, руководствуясь все тем же правилом «китайской арифметики». В результате он получает последовательность цифр, которую зашифровал отправитель. Затем получатель преобразует цифры в буквы, слоги или слова, и вот текст расшифрован.
Утверждать, что данный алгоритм абсолютно стоек, можно при выполнении двух условий:
– Последовательность цифр, которая содержатся в одноразовом блокноте, должна быть по-настоящему случайной, а не просто псевдослучайной. Говоря другими словами, криптоаналитик не должен выявить закономерности появления той или иной цифры.
– Пользователь не должен дважды использовать шифроблокнот. Дело в том, что криптоаналитик может отыскать участки сообщения, для зашифровки которых применялся один и тот же шифроблокнот.
А теперь немого о том, как он был реализован на практике. Агент советской разведки или шифровальщик посольства с помощью специальной кодовой книги (в ней определенной фразе, слову или букве соответствовала случайная комбинация из пяти цифр) преобразовывал открытый текст в закодированное сообщение (набор пятизначных групп цифр). Это процедура не защищала от профессионального криптоаналитика (вскрыть такой шифр не составит большого труда), но преобразовала текст в набор цифр, что позволяло использовать одноразовый шифроблокнот и затрудняло работу криптоаналитку. Даже узнав «псевдоним» агента, контрразведка не всегда могла его идентифицировать.
Затем агент или шифровальщик к каждой группе цифр прибавлял пятизначное число (гамму), которое он брал из одноразового шифроблокнота («одноразовой тетради»), по правилу «китайской арифметики». Занятие трудоемкое и кропотливое. Поэтому на некоторых второстепенных линиях связи, например дипломатической, часть текста секретных телеграмм передавалась в открытом виде или использовался простейший шифр.
Обычно зашифровывались по кодовой книге различные имена, названия (организаций, городов, стран), часто встречающиеся слова и отдельные действия. Например, так выглядел текст сообщения, полученного из Москвы 25 ноября 1952 года по дипломатической почте:
«Просим вас в следующий раз сообщить всю информацию относительно № 42, который фигурирует в папках департамента в связи с № 43. А также ее № 44 в Спарте.
В зависимости от сообщенных вами подробностей о № 42 и ее № 44 в Спарте мы будем рассматривать вопрос о № 45 в Суданию одного из наших планировщиков № 46 новатора по визам № 44 к № 42».
Спарта, Судания, планировщик, новатор и т. п. – кодовые обозначения распространенных слов. Они были одинаковыми для всех резидентур. А вот места, обозначенные номерами, шифровались каждый раз по-новому.
После выполнения всех процедур текст телеграммы выглядел следующим образом:
«Просим вас в следующий раз сообщить всю известную вам информацию о Казановой, которая фигурирует в папках консульства в связи с ее завещаниями и родственниками в СССР.
В зависимости от полученных всех подробностей о Казановой и ее родственниках в СССР мы будем рассматривать вопрос о засылке в Австралию одного из наших кадровых работников в качестве секретного агента под видом родственника Казановой».
Реализованная в СССР в середине прошлого века технология изготовления «одноразовых тетрадей» имела множество недостатков, которые существенно повлияли на уровень криптостойкости систем, используемых на линиях связи советской внешней разведки и МИДа.
Размножение шифроблокнотов производилось простым фотографированием, которое считалось наилучшим способом скопировать «гамму» для шифровальщика или агента. При этом исключалась любая ошибка. Бумага, из которой изготовлялись «одноразовые тетради», изготовлялась из нитроклетчатки – материала, который применялся для производства пленки на заре кинематографа. Этот материал очень легко воспламенялся, а с помощью марганцовокислого калия процесс горения можно было превратить почти во взрыв, который быстро и полностью уничтожал шифроблокнот, не оставляя даже скрытого изображения на пепле.
Интересно, что оригиналы одноразовых шифроблокнотов готовились не с помощью высококачественных и производительных печатных механизмов, а на простой пишущей машинке. Это видно из-за наличия в них подтирок и повторных ударов, чего не может быть при полиграфическом способе изготовления.
При этом участие машинистки не ограничивалось просто воспроизведением набора пятизначных цифр. Ей их приходилось самой генерировать. К такому выводу можно прийти при статистическом анализе цифр, содержащихся в шифроблокноте. В одной из таких «одноразовых тетрадей», например, количество групп, в которых цифры от 1 до 5 чередуются с группами цифр от 6 до 0, было в семь раз больше по сравнению со случайным распределением. Это наводит на предположение, что машинистка поочередно работала левой рукой (печатая цифры от 1 до 5) и правой (печатая цифры от 6 до 0). Кроме того, вместо половинчатого количества групп, начинающихся с цифр от 1 до 5, таких групп наблюдается ¾. Это, вероятно, произошло из-за того, что пробел машинистка делала правой рукой, а новую группу печатала левой. Удвоений и утроений наблюдается меньше, чем этого следовало бы ожидать согласно случайному распределению. Возможно, машинистки, которым было приказано печатать цифры наугад, понимали, что повторы неизбежны, но в целях конспирации сводили их число к минимуму. Мы уже говорили выше о том, к чему приводит генерация псевдослучайной последовательности.
Хотя предпринимались попытки механизировать этот процесс и избежать влияния «человеческого фактора» при генерировании псевдослучайной последовательности. В частности, пробовали использовать устройство, основанное на принципе лототрона – в барабане вращалось множество шаров с цифрами, которые периодически выкатывались в желоб. Понятно, что производительность у такого устройства была крайне низка. Также использовали некое электроламповое устройство, которое генерировало электрические импульсы. А их затем преобразовывали в последовательность случайных чисел.
Несмотря на все усилия сотрудников 10-го отделения 5-го спецотдела НКВД СССР, решить проблему изготовления массового количество «одноразовых блокнотов» не удалось. Если до начала Великой Отечественной войны они как-то справлялись с возложенной на них задачей «составления и издания блокнотов для НКО, НКВМФ, НКВД, НКИД, НКВТ», то после начала боевых действий объем шифропереписки возрос как минимум в два раза.
Сейчас мы уже не узнаем, кто именно в начале 1942 года принял решение о вторичном использовании отдельных страниц «одноразовых блокнотов». Да и знать имя этого «рационализатора» не обязательно. В отдельных публикациях зарубежных историков можно прочесть о том, что его или их расстреляли за это. Важно другое: в 1942 году как минимум 70 тысяч страниц из «одноразовых блокнотов» Лубянка использовала два раза. На самом деле их было значительно больше.
Если бы все ограничилось бы только этим фактом, то последствия для советской системы шифрования были бы не столь катастрофичными. Нужно вспомнить и о других важных с позиции криптографии событиях периода Великой Отечественной войны.
Служба разведки каналов связи (СРКС) армии США предприняла первые попытки вскрыть советские криптографические системы, которые использовались на линиях связи между Америкой и Советской Россией, еще в 1939 году. Через три года специалисты СРКС установили, что СССР использует как минимум пять систем. Одна – для переписки по дипломатическим вопросам, вторая – для нужд внешней торговли и поставок в рамках программы «ленд-лиз», а остальные три – для нужд разведок: НКВД, ГРУ и Коминтерна.
Справедливости ради стоит отметить определенную заслугу финских и японских криптоаналитиков, которые сумели уяснить характеристики советских шифросистем. Например, финнам удалось научиться сортировать советские шифровки согласно типам используемых ими шифровальных систем. Своими достижениями в этой сфере Хельсинки поделился с Токио. Американцы смогли дешифровать большинство сообщений этой переписки.
Этим «помощь» Финляндии не ограничилась. В распоряжение американцев, по одной версии в ноябре 1944 года, а по другой – в мае 1945 года, попали полторы тысячи полуобгоревших страниц советских «кодовых книг» (поясним, что речь идет об используемым внешней разведкой так называемом коде «Победа», дипломатическом коде – так называемом «коде 26», а также о кодах военной и военно-морской разведок). Трофей финнов содержал 999 5-цифровых кодовых групп, каждая из которых в шифротелеграммах заменяла отдельную букву, слово или фразу. Поясним, что финны захватили их 22 июня 1941 года в советском консульстве в городе Петсамо. Возможно, этот эпизод не попал бы на страницы данной книги, если бы… с января 1942 по октябрь 1943 года кодовая книга «Победа» не использовалась для связи «легальной» резидентуры США с Центром.
Хотя справедливости ради стоит отметить, что из-за сильных повреждений пламенем ее удалось использовать лишь частично. В результате американцам удалось прочесть гораздо меньше шифровок в период с января 1942 по октябрь 1943 года, чем за последующие три года. Поясним, что американскому криптоаналитику Мередиту Гарднеру удалось почти полностью реконструировать кодовую книгу (так называемый код 075-Б), который использовался с ноября 1943 года по февраль 1946 года.