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

В частности, в США в начале этого века вместо устаревшего и практически взломанного DES принят более современный стандарт AES. Выбор нового стандарта шифрования был полностью открытым и занял не один год. К моменту его завершения уже было готово несколько реализаций алгоритма, которые можно было использовать при разработке средств шифрования. Аналогичные процессы подготовки новых стандартов шифрования происходят и в Евросоюзе.

Российский ГОСТ 28147-89 с изначально более длинными ключами продержался дольше DES, но, естественно, настало время модернизировать и его. Новые версии блочных шифров были опубликованы только в 2015 году. При этом они разрабатывались отнюдь не публично и поэтому оказались неожиданностью для рынка. Тем не менее уже в 2016 году начался перевод продуктов с использованием криптографии на новые стандарты. В этой статье мы попытаемся оценить, какое влияние окажут новые стандарты российского шифрования на рынок средств криптографической защиты информации (СКЗИ).

ИСТОРИЯ С ХЕШ-ФУНКЦИЕЙ

Прежде всего следует отметить, что новых стандартов несколько. Первым был опубликован ГОСТ Р 34.11-2012 на хеш-функцию, который получил неофициальное название «Стрибог». Имя древнерусского божества явно в тексте стандарта не фигурирует, но в примере использования хеш-функции, который входит в состав стандарта, содержится фрагмент из «Слова о полку Игореве». В нем-то и идет речь о данном божестве. Поэтому новую хеш-функцию теперь иначе и не называют, причем на ее основе даже разработан стандарт шифрования «Стрибоб».

Разработкой «Стрибога» занимались сотрудники компании «ИнфоТеКС» совместно со специалистами ФСБ. Ранее хеш-функция, на основе которой создается электронная подпись, базировалась на блочном шифраторе в соответствии с ГОСТ 28147-89. Новый стандарт включает полное описание процедуры хеширования, выполненной в лучших традициях современного шифрования — функция сжатия сообщения предусматривает три процедуры: нелинейное преобразование, перестановку и линейное преобразование. Именно по такой схеме построены современные стандарты шифрования. Сообщение разбивается на блоки по 512 бит, с которыми и выполняются криптографические преобразования. Результатом является хеш-код длиной либо 256, либо 512 бит. Первый вариант может использоваться в системах, где ранее применялся стандарт 1994 года, и в решениях с ограниченными вычислительными ресурсами. Для всех остальных случаев рекомендован более длинный хеш-код.

Новый стандарт на хеш-функцию и соответствующую ей электронную подпись действует с 1 января 2013 года. Переход на него предполагает, что разработчики инструментов, где используется хеш-функция, выпустят версии с ее поддержкой и со временем установят их у клиентов. Переходу на новые стандарты способствует и система сертификации средств защиты. Все новые средства шифрования принимаются на сертификацию только при условии, что в них реализован новый стандарт. При этом старый, как правило, тоже поддерживается, но применять его не рекомендуется. Собственно, уже есть несколько реализаций «Стрибога», в том числе прошедших сертификацию в ФСБ. Стандарт принят и в IETF в виде RFC 6986, что позволяет использовать данную хеш-функцию и в составе протокола SSL (TLS).

ГОСТ С «КУЗНЕЧИКОМ»

Однако ФСБ не ограничилась обновлением хеш-функции и продолжила модернизацию остальных криптографических алгоритмов при посредничестве своего комитета ТК-26 в Росстандарте. В частности, в 2015 году был принят новый стандарт на блочный шифр ГОСТ Р 34.12-2015, в котором старые алгоритмы шифрования получили название «Магма», а новый — «Кузнечик». Этот стандарт тоже разработан совместно со специалистами «ИнфоТеКС» и поэтому частично использует наработки «Стрибога». Он также предполагает три преобразования: нелинейное, перестановки и линейное (см. рис. 1 и 2).

Рис. 1. Алгоритм выработки раундовых ключей для алгоритма «Кузнечик». Открытый текст в алгоритме шифруется в 10 раундов (см. рис. 2), для каждого из которых генерируется собственный ключ шифрования
Рис. 1. Алгоритм выработки раундовых ключей для алгоритма «Кузнечик». Открытый текст в алгоритме шифруется в 10 раундов (см. рис. 2), для каждого из которых генерируется собственный ключ шифрования

 

Рис. 2. Схема алгоритма шифрования «Кузнечик». Преобразование LSX (L — линейное, S — нелинейное, X — перестановки). Ключи шифрования в каждом раунде уникальны — генерируются из основного ключа по схеме на рис. 1
Рис. 2. Схема алгоритма шифрования «Кузнечик». Преобразование LSX (L — линейное, S — нелинейное, X — перестановки). Ключи шифрования в каждом раунде уникальны — генерируются из основного ключа по схеме на рис. 1

 

«Кузнечик» является блочным шифром с длиной блока 128 бит (в «Магме» блок имел размер 64 бита) и ключом в 256 бит. В качестве нелинейного преобразования используется матрица, построенная в поле Галуа по модулю неприводимого многочлена восьмой степени. Каждому блоку входных данных ставится в соответствие элемент поля Галуа, в котором и выполняется нелинейное преобразование (такое же, как в «Стрибоге»). Уже появились работы, где данное нелинейное преобразование исследуется на прочность. В блоке преобразования удалось выявить определенную структуру, но извлечь из этого практическую пользу криптаналитики пока не могут. В качестве линейного преобразования в «Кузнечике» может использоваться не только матрица, но и просто сдвиг разрядов.

Кроме собственно алгоритма, в 2015 году был выпущен также стандарт ГОСТ Р 34.13-2015, в котором определены режимы использования блочных шифров. Этот стандарт предусматривает следующие режимы: простой замены (ECB) и с зацеплением (CBC) (см. рис. 3), гаммирования (STR), с обратной связью по выходу (OFB) и по шифротексту (CFB), а также режим имитовставки. Все эти режимы предполагают использование блочного шифратора для кодирования непрерывного текста. При этом указанные режимы согласованы со стандартом ISO/IEC 10116:2006, что позволяет гармонизировать российские стандарты шифрования с международным. В частности, уже подготовлены RFC, в которых определена реализация «Кузнечика». Приведенные в стандарте режимы допускают распараллеливание процесса шифрования и дешифрования, поэтому вполне возможно реализовать быстрые процедуры кодирования на современных многоядерных процессорах и графических сопроцессорах.

 

Рис. 3. Схема шифрования блочным шифром в режиме простой замены с зацеплением CBC
Рис. 3. Схема шифрования блочным шифром в режиме простой замены с зацеплением CBC

 

ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ

Прежде чем применять новые стандарты шифрования, необходимо понять, как с минимальными затратами осуществить переход на них со старых стандартов, в частности при замене программного обеспечения. Дмитрий Задорожный, руководитель службы по сертификации, информационной безопасности и криптографии компании «Код безопасности», отмечает: «В 2015 году в России был принят новый стандарт шифрования — ГОСТ Р 34.12-2015 (блочные алгоритмы шифрования), но это не значит, что старый отменен, то есть пока внедрение будет носить «эволюционный» характер». Впрочем, представители ФСБ уже заявили, что с лета текущего года они перестанут принимать на сертификацию средства шифрования, в которых «Кузнечик» не реализован. Это должно стимулировать эволюцию и замещение прежних наборов алгоритмов.

«Изменения затронули прежде всего алгоритмы шифрования, — отмечает Денис Суховей, директор по развитию бизнеса направления баз данных компании «Аладдин Р.Д.». — Таким образом, все производители, решившие поддерживать новые стандарты, будут вынуждены изменить криптографический слой своих программных продуктов. То есть необходимо реализовать алгоритмы стандарта ГОСТ 34.12-2015 с длиной ключа 256 бит («Кузнечик»), поскольку остальные алгоритмы, называемые «Магма», не изменились. Заказчикам же потребуется лишь обновить уже существующие средства и системы шифрования до актуальных версий». Впрочем, нужно еще стимулировать клиентов на приоритетное использование «Кузнечика». Пока на этом не акцентируют внимания, но очевидно, что изменение документов по использованию СКЗИ будет следующим шагом в их утверждении.

Чтобы новые алгоритмы получили признание, они должны быть не только более устойчивыми ко взлому, но и более производительными и хорошо распараллеливаться. «Алгоритм шифрования «Кузнечик», — отмечает Дмитрий Задорожный, — осуществляет шифрование за меньшее число итераций при длине входного блока в два раза больше, чем у «Магмы», но на данный момент быстрые реализации алгоритма еще только разрабатываются». Денис Суховей более оптимистичен в своих оценках: «В «Аладдин Р.Д.» проводятся тесты на оценку производительности новых продуктов, но до полностью однозначного ответа еще далеко. Обычно жизнеспособность, производительность и качество новых алгоритмов оцениваются всеми участниками рынка коллективно, исходя из опыта применения в различных информационных системах. Мой прогноз позитивный: конечная оценка производительности будет высокой».

Следует отметить, что для «Стрибога» уже имеются некоторые оценки производительности, позволяющие выявить особенности алгоритма. В частности, в системах с достаточным ресурсом памяти «Стрибог» работает примерно в два раза быстрее по сравнению с реализацией на «Магме», но при ограничении по памяти (например, при выполнении кода в графических ускорителях) старая реализации хеш-функции выигрывает. Вполне возможно, что аналогичные результаты будут получены и для блочных шифров: для ограниченных по ресурсам применений будут оптимальны старые алгоритмы «Магмы», а для полноценных вычислительных систем — новый «Кузнечик».

Следующим логичным шагом стала бы отмена действия старого ГОСТ 28147-89. Однако пока регулирующие органы не торопятся идти на жесткие меры. «Вновь разрабатываемые СКЗИ, скорее всего, будут поддерживать ГОСТ Р 34.12-2015, а для действующих СКЗИ пока нет смысла переходить на новый ГОСТ, — полагает Дмитрий Задорожный. — Срок отмены старого ГОСТа еще обсуждается в техническом комитете ТК-26. Полагаю, будет установлен длительный переходный период». Но если вспомнить, что «Магма» входит в состав нового ГОСТа, а по сути представляет собой переопределение прежнего алгоритма шифрования, то формально перестанет действовать только старый ГОСТ, а алгоритмы из него будут легитимизированы ГОСТ Р 34.12-2015. Однако их применение, скорее всего, будет ограничено определенными классами СКЗИ.

Оскар Краснов — независимый эксперт. С ним можно связаться по адресу: oskar@osp.ru.