Глава 1. Rub berries body

«Из математика легко подготовить программиста, а вот из программиста математика – сложнее» — так любил говорить Б.А., мой научный руководитель. Истинно так! Только каков конкретный алгоритм подготовки программиста из математика-криптографа? С чего, по выражению Великого Вождя, начать?

С компьютерных игр. Пусть наиграется до посинения, до тех пор, пока пар из ушей не повалит, после этого – клиент готов. Дальше до всего остального, если есть голова на плечах, додумается сам. Главное – чтобы компьютер имел, как принято выражаться, дружеский интерфейс, а по-простому, по-советски – не заставлял бы тебя долбать дырки в перфоленте, не стращал бы своими кастрюлями-накопителями, не ломался и был бы доступен без записей и очередей практически в любое время, т.е. был бы на самом деле персональным. Математику, прошедшему через алгебру и ТВИСТ, разобраться в какой-то там DOS или языках программирования совсем нетрудно, а компьютер, после проведенных вместе с ним битв против шамуса или арканоида, — лучший боевой друг.

Несомненно, это была вражеская диверсия: в Теоретический отдел Спецуправления 8 Главного управления КГБ СССР практически одновременно с появлением там первых PC были запущены компьютерные игры. Работа встала, начался первый и самый основной этап освоения компьютерной грамотности – наиграться до посинения. Все теоретики, алгебраисты и вероятностники, молодые и старые, активные и пассивные, обсуждали одну и ту же научную проблему: как в Space Quest–2 пройти болото с кикиморой.

– Палку взять на берегу пробовали?

– Сколько раз, не помогает.

– Нырни поглубже и обойди ее.

– Глубже не ныряется.

– Должна же быть дорога в обход болота.

– Да нет там никакой другой дороги, только через болото!

– Пугнуть ее чем-то надо.

– Пробовали, не помогает.

Это была одна из первых игр-бродилок, в которых команды человечку-путешественнику по неведомой планете надо было набирать по-английски на клавиатуре. Успешно были пройдены все первые уровни, а вот на этом проклятом болоте кикимора всякий раз нагло проглатывала отважного странника. И весь 5 отдел никак не мог ничем ему помочь.

Забыты научные распри и споры, наступило всеобщее единение в борьбе с этой буржуйской вражиной. Научный подход: пронумерованы все предыдущие попытки, идет анализ возможных вариантов, дискуссии и дебаты, рисуются схемы проходимых лабиринтов, криптографы яростно пытаются применить самый известный и самый надежный метод криптографического анализа – метод тотального опробования, не остаются в стороне и другие достижения современной криптографической мысли – методы согласования, гомоморфизмов, статистических аналогов, и все они направлены против одного и того же противника, воспринимаемого уже не как абстрактный «вероятный противник», а как самый ни на есть настоящий – кикимора из болота в Space Quest 2 и те, кто ее придумал. В конце концов человеческий разум победил!

Где-то спустя примерно неделю после первой попытки, когда, казалось, тотально были опробованы все мыслимые криптографами методы, кто-то обратил внимание на кусты, растущие около болота.

– Ягоды с кустов есть пробовали?

– Не помогает.

– А если натереть ими тело?

Rub berries body. Волшебные слова, истина в последней инстанции! Человек, сказавший их первым, заслуженно стал героем дня, его поздравляли, жали руку, желали дальнейших творческих успехов. После этих слов запах ягод отпугнул кикимору и она сочла человечка несъедобным. Всеобщее ликование и радость: победа, добытая в трудной и упорной борьбе!

Это был, пожалуй, пик экстаза компьютерных игр в отделе. Ажиотаж пошел на спад, хотя тетрисоманы еще долго крутили-вертели свои загогулины, пытаясь установить новый абсолютный рекорд. Но в конце концов свершилось то, что и должно было свершиться: игры стали надоедать. Может, запрограммировать что-нибудь? Алгоритм какой или метод? Вот так персональные компьютеры стали лучшими друзьями всего прогрессивного человечества, в том числе и советских криптографов. По крайней мере, в Теоретическом отделе Спецуправления 8 ГУ КГБ СССР.

Глава 2. Бормотуха

Предсказателей и гадалок в 5 отделе хватало, особенно среди «криптографических законодателей». Прогнозные исследования – очень модная тема: как будет развиваться вычислительная техника? Как это отразится на криптографии? На оценках стойкости? Как будут развиваться методы криптографического анализа? И много иных подобных «как». В основном все сводилось к угадыванию желаний криптографического начальства. А оно пожелало, в частности, новые требования к шифраппаратуре.

Тут надо немного посвятить читателя в основы криптографического анализа. С чего он начинается? С предъявляемых к этой аппаратуре криптографических и инженерно-криптографических требований, т.е. нормативного документа, определяющего, в каких случаях результаты проведенного криптографического и инженерно-криптографического анализа считать опасными для дальнейшей эксплуатации аппаратуры, а в каких – нет. Например, когда удалось построить наглядный пример вскрытия шифра, подобный тому, который описывался для шифра типа «Ангстрем–3» при Т=16 – это заведомо опасный результат. Но такие ситуации встречаются на практике очень редко, а в большинстве случаев результаты криптографического анализа носят абстрактный характер: трудоемкость Q метода определения секретного ключа составляет столько-то двоичных операций, при этом надежность P (вероятность правильного определения ключа) – такая-то. Минимальное отношение Q/P по всем рассмотренным методам криптоанализа является оценкой стойкости шифровальной аппаратуры.

С незапамятных времен (с начала 60–х годов) действовали единые криптографические и инженерно-криптографические требования, по которым опасной считалась оценка стойкости ниже, чем 1025. По тем временам, да и по этим тоже, этого вполне хватало, чтобы говорить о гарантированной стойкости: опробование такого количества вариантов не по силам даже современным компьютерам. Но криптографическое начальство, напуганное страшилками про нейрокомпьютеры и эффект сверхпроводимости, а также бурным научно-техническим прогрессом на Западе, решило подстраховаться: создать новые требования к перспективной шифраппаратуре, в которых не было бы никаких четких оценок и в любом случае можно было бы сказать, что мы все знали и предвидели.

По новым требованиям оценка стойкости измерялась почти по Эйнштейну: не в Q/P, а во времени. Во времени максимальной эксплуатации. Ну, да это бог с ним, со временем, хоть в погонных метрах мерить эту стойкость, главное нововведение было в двух коэффициентах: Альфа и Бета. Бета – ежегодные темпы роста производительности вычислительной техники, тут еще с натяжкой можно было как-то предположить конкретные цифры — 1–2 порядка в год, хотя, очевидно, не каждый год сохраняются подобные темпы. Вся хитрая чиновничья казуистика заключалась в коэффициенте Альфа – ожидаемый ежегодный прогресс криптографических методов анализа. Это примерно то же, что и количество чертей на конце булавочной иголки, сколько это будет – одному Богу известно.

Одну старую «балалайку» в НИИ автоматики проанализировали по новым требованиям. Как там считали коэффициент Альфа – не знаю, скорее всего откопали все старые отчеты и разделили общее количество сброшенных порядков на время, которое эта «балалайка» эксплуатировалась. В итоге общая оценка стойкости получилась 100 лет, эту цифру официально записали в отчете. На следующий год в 5 отдел пришел молодой парень, свежим взглядом нашел статаналог и по старым, добрым требованиям «уронил» оценку стойкости до 1021. Больше старых «балалаек» по новым требованиям не анализировали, так спокойнее будет жить.

Но любимой темой для гаданий был прогноз развития ЭВМ. Под это дело была даже открыта специальная НИР «Экстракт», злыми языками, ничего не понимавшими в техническом прогрессе, окрещенная бормотухой. Как скажется на криптографии развитие ЭВМ – вот главный вопрос, на который должна была дать ответ эта НИР в середине 80–х годов теперь уже прошлого века. Источником разведданных для НИР «Экстракт» служили, в основном, публикации в газете «За рубежом» про различные технические сенсации на Западе, которые аккуратно переписывались и, естественно, засекречивались.