Михаил Масленников - Криптография и свобода
Ничего этого Центральному Банку не требовалось. Им не требовалось шифровать платежное поручение, лишний раз усложнять и без того непростую работу операционисток из РКЦ. Количество авизовок, обрабатываемых каждой из них, доходило до нескольких сотен за день, это не экзотические шифровки Юстас – Алексу, отсылаемые раз в месяц. Требовалось добавить к авизовкам какой-то короткий КПД, который бы зависел как от содержания платежного поручения (от кого, кому, какая сумма, дата и т.п.), так и от ключа, известного только в РКЦ. Нет ключа – вычислить КПД нельзя. И более того, нет ключа – нельзя в уже готовом платежном поручении изменить хоть какие-то данные (например, сумму перевода), ибо тогда КПД должен быть совсем другим, никак не связанным с первоначальным.
Самое печальное заключалось в том, что естественные методы защиты, например, зашифровать в цифровом режиме сумму перевода, были абсолютно неприемлемы. Во-первых, при шифровании в шифрованный текст автоматически добавлялся десятизначный маркант, а одним из требований ЦБ было то, что длина КПД не должна превосходить 10 цифр. Этот маркант являлся простым набором случайных чисел и гарантировал отсутствие повторов гаммы наложения, которое могло бы привести к повторениям в шифровках а-ля 17 мгновений весны. Но с точки зрения выработки КПД для ЦБ он был абсолютно бесполезным, не нес в себе никакой информации о платежном поручении и съедал отпущенный лимит по длине КПД. Во-вторых, и это самое главное, шифрование не давало гарантированной защиты от подделки. Шифрование – это простое гаммирование, сложение цифр открытого текста со знаками зависящей от ключа гаммы наложения. И если вычислить КПД было нельзя, то изменить в готовом платежном поручении сумму перевода можно было очень просто: сумма известна, зашифрованная сумма тоже известна из КПД, вычитаем одно из другого, получаем гамму наложения, складываем ее с измененной суммой, получается новый КПД, который будет принят получателем как истинный. В криптографии это было давно известно, еще со времен войны во Вьетнаме, когда зашифрованные шифром гаммирования команды управления советскими ракетами изменялись американскими системами перехвата. Советские ракеты стали летать не в те вьетнамские джунгли, а криптографы схватились за голову. В 70-е годы появилась теория шифрующих автоматов, одним из разделов которой стала имитостойкость, т.е. способность шифра противостоять целенаправленному навязыванию ложной информации. И первым постулатом, первой аксиомой стало: шифры гаммирования не являются имитостойкими. Калькулятор «Электроника МК – 85 С» был простейшим устройством шифрования именно по принципу гаммирования, никакие имитоприставки в нем не предполагались, ресурсов было по минимуму, да и для низовых звеньев Советской Армии они не требовались. Ведь там в цифровом режиме перешифровывались кодовые переговорные таблицы, их содержание потенциальному противнику предполагалось неизвестным, требовалось всего лишь гарантировать отсутствие повторений.
Попечалившись над этими проблемами пару дней, я стал искать нетривиальное решение. И оно в конце концов нашлось, простое и понятное, которое, с одной стороны, полностью устроило Центральный Банк, поскольку КПД получился коротким, не более 10 цифр, как того и требовал заказчик, а с другой – полностью исключило всякие возможности подделок. Только «покупай» ключи, как нас и учили в Высшей Школе КГБ, рассказывая о дисковых шифраторах.
Суть в следующем: шифровать ничего не будем. Займемся маркантом. Если поглядеть на снимок калькулятора, то среди его черных кнопок в верхнем ряду вторая справа – генератор случайного марканта. Он необходим в шифрах гаммирования для обеспечения уникальности вырабатываемой при каждом шифровании гаммы. С помощью марканта обеспечивается отсутствие повторений в шифртексте, даже если какие-то повторения встречались в открытом тексте. В «Электронике МК – 85 С» маркант многократно шифровался с помощью долговременного секретного ключа, но уже в режиме блочного шифра, и полученный таким образом результат становился разовым криптографическим ключом шифратора «Ангстрем-3», действительным только для данного сообщения. Своеобразный аналог session key в современных компьютерных системах, использующих протокол SSL. И вот тут то уже вовсю использовался «лавинный эффект» размножения различий, которым обладали блочные шифры. Измени хоть один символ в марканте – разовый ключ будет уже абсолютно другим, и каким конкретно – невозможно вычислить без знания долговременного ключа.
Но на приемном конце для расшифрования сообщения должны были ввести сначала маркант и затем вычислить с его помощью разовый ключ данного сообщения. Так и было, первые 10 знаков в любой шифровке, полученной с помощью калькулятора, всегда были маркантом. Пользователи этого практически не замечали, они вводили все подряд: маркант и шифртекст, а калькулятор сам отбирал первые 10 знаков, вычислял по ним разовый ключ и с его помощью расшифровывал остальной текст. Но эта была та зацепка, то нетривиальное решение, которое в конечном итоге и позволило спасти Центральный Банк от фальшивых авизо. Ничего не шифруем, а в цифровом режиме расшифрования в качестве марканта (первые 10 знаков) вводим банковскую информацию, которую необходимо защитить от подделок. Из этой информации калькулятор автоматически вычисляет разовый ключ для расшифрования непонятно чего, но нам расшифровывать ничего и не надо: вводим, например, в качестве шифртекста одни нули, тогда получаем чистую гамму наложения, кусочек нужной длины используем в качестве КПД. Хоть 5, хоть 7, хоть 10 знаков, это безразлично, всю имитозащиту выполнил маркант, точнее – алгоритм его преобразования в разовый ключ.
Эта неожиданная идея сразу перевернула все пессимистические взгляды на возможность использования калькулятора в ЦБ. КПД вырабатывать на калькуляторе можно, и способ выработки удовлетворяет всем банковским требованиям. Банк реально получал надежнейшую криптографическую защиту, для реализации которой не требовалось разрабатывать заново какие-то шифровальные средства, все уже готово и серийно выпускается в Зеленограде. Следовательно, в кратчайшие сроки можно решить проблему защиты от фальшивых авизо.
Решение есть, запатентовать бы. И выставить бы «эксперту, боровшемуся с фальшивыми авизо», как это и принято во всем цивилизованном мире, условия: решение – есть, хочешь – покупай. И потребовать оформить юридически Договор на передачу интеллектуальной собственности с указанием в нем своих роялти. Печально сейчас, 15 лет спустя, вспоминать об этом. Нет, не было тогда никаких реальных возможностей запатентовать это решение. Я был в то время действующим офицером ФАПСИ, т.е. юридически совершенно бесправным лицом, для любого патентования нужно было разрешение руководства. Один патент у меня к тому времени уже был – на алгоритм шифрования типа «Ангстрем-3», в нем – все по честному, только реальные разработчики из НИИ Автоматики и Спецуправления. Оформляли этот патент около двух лет. Проку с него, как показала практика, – ноль, все вопросы передачи прав на продажу «Электроники МК – 85 С» решались начальниками-генералами, про этот патент никто и не вспомнил. Криптографический ГУЛАГ оставался неизменным со сталинских времен.
Вот так «Анкорт» и получил «уникальную криптографическую систему защиты», у которой «некоторые элементы не имеют аналогов в мире», практически даром, как впоследствии практически даром были приватизированы многие природные ресурсы России. Но современные олигархи хотя бы не выступают публично с заявлениями типа: «Мы создали нефть и газ».
Итак, в середине сентября 1992 года стало окончательно ясно, что калькулятор можно использовать в ЦБ. Там сразу же за нее ухватились, как за соломинку, первоначально планируя использовать в течение полугода, до появления чего-то более серьезного, чем казавшийся примитивным калькулятор. «Анкорт» где-то в конце сентября заключил официальный контракт с Центральным Банком на поставку большой партии калькуляторов «Электроника МК – 85 С».
Но в ЦБ еще нужно с нуля создавать криптографическую инфраструктуру: систему выработки ключей к калькулятору, нормативные документы для банковского персонала, никогда до этого ни с какими шифровальными устройствами не работавшего, программную реализацию алгоритма выработки КПД на компьютере для больших РКЦ и многое другое. Про это в контракте не было речи по понятным соображениям: не хотели лишний раз дразнить ФАПСИ. И без этого реакция криптографических генералов, считавших себя единственными монополистами на все, что связано с криптографией, была однозначной: запретить! Во-первых, никто не хотел брать на себя никакой ответственности, а во-вторых, фактически уплывал богатый клиент. Но как запретить? Это был октябрь 1992 года, никаких официальных поводов для запрета еще нет, Указ Ельцина № 334 «О лицензировании и сертификации в области защиты информации» будет принят гораздо позже, в 1995 году. И вот тогда вспомнили «криптографический базар» в Теоретическом отделе о том, стойкий или нестойкий калькулятор «Электроника МК – 85 С», и запустили в ЦБ «пену»: сомневаемся в его криптографической надежности. Доллар растет, как на дрожжах из-за фальшивых авизо, а ФАПСИ в это время пускает в Центральный Банк, предпринявший реальные шаги для защиты своих платежей, криптографические «пенные волны». И самое интересное в том, что эти волны совершенно беспочвенны. Ведь для выработки КПД в калькуляторе, во-первых, ничего не шифруется, а во-вторых информация, обрабатываемая с помощью «Ангстрема-3» на одном разовом ключе, крайне мала, несколько знаков, тогда как все сомнения в криптографических качествах возникали при миллионе знаков.