Высшей Школы КГБ СССР, где готовили советских криптографов, был недалекий генерал, который
публично высказывался, что «в первую очередь нам нужны хорошие офицеры, а потом уже
хорошие специалисты». Тогда, в середине 70-х годов прошлого века, большинство из нас, слушателей 4 факультета, обучавшихся по специальности инженер-математик (слово
«криптограф» в открытую произносить было нельзя), относились к этим высказыванием с
иронией, мол, чего еще взять с такого генерала. Всем было очевидно, что подготовить хорошего
специалиста гораздо сложнее, чем хорошего офицера. И это относилось не только к
криптографии. Все мы, родившиеся в середине 50-х, хорошо помнили, с каким энтузиазмом
встречали тогда простые люди советские успехи в космосе, атомной энергетике, спорте и во
многих других областях, где требовались ум, талантливость, трудолюбие, умение принимать
правильные решения. Не было изобилия нефтедолларов и благодаря этому ценились хорошие
специалисты.
Никто тогда и представить себе не мог, что произойдет лет так через 40. А произошло вот
что: в высказываниях того генерала слово «офицер» как-то само собой заменилось на слово
«чиновник» и генеральский бред стал лозунгом, типа «Коммунизм победит!», который звучал
тогда, в 60-х, из каждого утюга и был основой тогдашней политики. «Чиновник важнее
специалиста!» - вот основа нынешней политики России.
Шесть с лишним лет, находясь в Южной Корее, я отдыхал от этого абсурда. Есть знания и
опыт – работай по специальности и не думай ни о каких разрешениях и лицензиях. Доказывай на
деле свою компетентность, выбирай оптимальные криптографические решения, руководствуясь, в
первую очередь, их удобством для конечного пользователя, ну и, само собой, требованиями
безопасности. Причем требования безопасности – абстрактные, а удобство конечных
потребителей в создаваемой тобою продукции – это вполне реальная вещь.
Где-то в начале нулевых годов, после того, как американцы сняли свои запреты на
использование стойких криптографических схем в коммерческих и гражданских целях, в самой
криптографии, как науке, произошел сдвиг: вместо математических методов анализа
опубликованных и общедоступных криптосхем на первый план стали выходить уже
программистские задачи их грамотной реализации, недопущение компрометации ключей, а
также удобство использования криптографической продукции. По крайней мере, я это сразу же
почувствовал в Корее.
Там никого не интересовало, что я работал в КГБ. Умеешь разбираться в
криптографических программах, их отладке и доведении до работоспособного состояния –
милости просим. Работают твои программы, выполняют требования конечного потребителя – не
нужны больше никакие разрешения и лицензии, хотя в Корее есть некий аналог чиновничьего
криптографического органа. Он мило называется KISA – Korean Information Security Agency. Я
первый раз о нем услышал года через 4 после появления в Корее, когда KISA организовало
открытый конкурс на использование интерфейса PKCS#11 в корейской банковской системе. Для
справки: в современной России при обучении основам криптографии (есть такие курсы уже во
многих институтах) криптографические динозавры сравнивают разработку криптографических
программ без лицензии ФСБ с производством наркотиков.
И вот я опять в Москве, ищу работу по специальности. Меня тут помнят, многие прочли
мою первую книжку «Криптография и Свобода», отношение нормальное. Но! «Мы дружим со
Стекляшкой» - вот основная заповедь практически всех компаний, связанных с разработкой
криптографической продукции. Тут поясню: «Стекляшка» - простонародное название здания
бывшего Спецуправления 8 ГУ КГБ СССР, получившего такое прозвище из-за своей конструкции в
форме стеклянной раскрытой книги. Там теперь главная чиновничья обитель российской
криптографии.
А что на практике означает «дружить со Стекляшкой»? Тут сразу же встает в свой огромный
чиновничий рост такое понятие, как «российские криптографические алгоритмы», ибо «дружить
со Стекляшкой» можно тогда и только тогда, когда ты используешь их и только их. А что такое
российские криптографические алгоритмы?
Глава 1.1. Российские криптографические алгоритмы
Неискушенный в криптографии читатель наверняка подумал, что российские
криптографические алгоритмы - это такие алгоритмы, которые придумали в России. Не совсем так.
Российские криптографические алгоритмы – это такие алгоритмы, которые оформлены в качестве
национальных российских стандартов. А что и почему оформлено в качестве национальных
стандартов: алгоритм, который придумали в России или зарубежный алгоритм – в этом мы сейчас
попытаемся разобраться. Придумать криптографический алгоритм – это задача специалиста-
криптографа, а оформить какой-то алгоритм в качестве национального стандарта – это по части
чиновника. И с некоторых пор я стал сомневаться, что в России создание каких-то новых
оригинальных криптографических алгоритмов, принимаемых затем в качестве национальных
стандартов, вообще возможно.
Итак, попробуем разобраться с российскими криптографическими стандартами и с таким
почти мистическим вопросом: почему тот или иной алгоритм стал национальным стандартом?
Начнем с самого болезненного вопроса: почему общепризнанный мировой криптографический
стандарт RSA не стал национальным стандартом в России?
Анти RSA
Криптография, как один из специфических разделов математики, - наука точная, за это я ее
и люблю. В отличии от политики, которая часто колеблется как синусоида в зависимости от чьей-
то генеральной линии. Но чиновники от криптографии в России умудрились создать свою
собственную «криптографическую политику». И одним из основных постулатов этой политики стал
принцип «анти RSA». Не признаем алгоритм RSA и все тут!
Тут я должен извиниться перед неискушенным в криптографии читателем: сейчас
придется залезть в дебри. Появятся специфические термины: асимметричный алгоритм, открытые
и секретные ключи, простое число, эллиптическая кривая и т.п. Чтобы не превращать книжку в
учебное пособие, я предполагаю, что тот, кому надо, уже хорошо знаком с этими понятиями. Не
возражаю, если обычный читатель просто пропустит эти дебри или прочтет их «по диагонали». Ну
а если заинтересуетесь – то полагаю что Вы, уважаемый читатель, знакомы с Википедией и легко
сможете найти в ней объяснения разным непонятным терминам.
Пара общих слов про асимметричные алгоритмы. На мой взгляд, это – основа
современной криптографии. Асимметричные алгоритмы – это криптографическая система с
открытым распределением ключей, их можно использовать как для шифрования, так и для
цифровой подписи.
В настоящее время есть два основных и общепризнанных принципа построения системы с
открытым распределением ключей: Диффи-Хеллмана и RSA. Все попытки придумать что-то еще
уже лет 40 не приводят к успеху. Обе эти системы придумали американцы, оригинальных
российских принципов построения систем с открытым распределением ключей нет.
Система RSA (аббревиатура по фамилиям ее создателей: Rivest, Shamir, Adleman) основана
на сложности решения задачи разложения большого числа на простые множители. Для
зашифрования с помощью RSA достаточно знать только открытый ключ получателя, для