Открыть сервис

ГОСТ Р 34.12-2015 Магма

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

История и стандартизация

Разработка алгоритма «Магма» велась в рамках модернизации криптографической защиты информации в России в начале 2010-х годов. Предшественником «Магмы» является ГОСТ 28147-89 — советский и российский стандарт шифрования, принятый в 1989 году. В 2015 году был утверждён новый стандарт ГОСТ Р 34.12-2015, который заменил устаревший ГОСТ 28147-89. В рамках этого стандарта были определены два алгоритма: «Магна» (64-битный блок) и «Кузнечик» (128-битный блок). «Магма» был разработан для обеспечения обратной совместимости с существующими системами, использующими 64-битные блоки, и для повышения криптостойкости по сравнению с предыдущим стандартом.

Стандарт был разработан Центром защиты информации и специальной связи ФСБ России при участии Академии криптографии РФ и введён в действие приказом Росстандарта от 28 августа 2015 года № 1270-ст. В 2019 году алгоритм был включён в международный стандарт ISO/IEC 18033-3:2019, что подтверждает его признание на международном уровне.

Технические характеристики

Общая структура

Алгоритм «Магма» относится к классу блочных шифров с сетью Фейстеля. Он оперирует блоками данных размером 64 бита и использует ключ длиной 256 бит. Количество раундов шифрования составляет 32, что обеспечивает высокую устойчивость к дифференциальному и линейному криптоанализу.

Ключевое расписание

Ключ длиной 256 бит разбивается на восемь 32-битных подключей (K0, K1, ..., K7). В процессе шифрования эти подключи используются в определённом порядке: первые 24 раунда используют подключи в порядке возрастания (K0, K1, ..., K7), а последние 8 раундов — в порядке убывания (K7, K6, ..., K0). Такое чередование повышает стойкость к атакам на основе связанных ключей.

Функция раунда

Каждый раунд шифрования включает следующие операции:

  1. Сложение по модулю 2^32 — входной 32-битный блок складывается с подключом текущего раунда.
  2. Подстановка (S-блоки) — результат разбивается на восемь 4-битных частей, каждая из которых заменяется значением из соответствующего S-блока. S-блоки являются нелинейными преобразованиями, заданными в стандарте. В «Магме» используются те же S-блоки, что и в ГОСТ 28147-89, но с фиксированными значениями, определёнными в стандарте.
  3. Циклический сдвиг — 32-битный результат после подстановки циклически сдвигается влево на 11 бит.
  4. Сложение по модулю 2 (XOR) — результат сдвига складывается с левой половиной блока, после чего происходит обмен половинами.

Режимы шифрования

Стандарт ГОСТ Р 34.12-2015 определяет несколько режимов работы для «Магмы»:

Наиболее распространённым является режим гаммирования, который обеспечивает защиту от атак на основе статистических свойств открытого текста.

Криптостойкость

Алгоритм «Магма» прошёл многочисленные криптоаналитические исследования. Его стойкость основана на:

  • Длине ключа — 256 бит обеспечивает защиту от полного перебора (атаки brute force) даже при использовании квантовых компьютеров (по оценкам, для взлома потребуется около 2^128 операций).
  • Количестве раундов — 32 раунда делают алгоритм устойчивым к дифференциальному и линейному криптоанализу. Исследования показывают, что для эффективной атаки на «Магму» потребуется не менее 2^100 операций.
  • Нелинейности S-блоков — используемые S-блоки имеют высокую алгебраическую степень и минимальную корреляцию, что затрудняет применение алгебраических атак.

Однако в 2019 году группа исследователей под руководством А. В. Дорошенко выявила потенциальную уязвимость в режиме простой замены (ECB) при использовании «Магмы»: из-за 64-битного блока возможно проведение атаки на основе коллизий, что требует ограничения объёма шифруемых данных в этом режиме (не более 2^32 блоков). В режиме гаммирования эта уязвимость отсутствует.

Применение

Алгоритм «Магма» используется в следующих областях:

  • Государственная тайнашифрование данных в системах государственного управления, оборонной промышленности и спецслужбах.
  • Финансовый сектор — защита банковских транзакций и персональных данных клиентов в соответствии с требованиями ЦБ РФ.
  • Телекоммуникации — шифрование каналов связи в корпоративных сетях и системах передачи данных.
  • Криптографические библиотеки — реализован в таких программных продуктах, как OpenSSL (с версии 1.1.1), Crypto++ и библиотека «КриптоПро CSP».

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

Сравнение с другими алгоритмами

ХарактеристикаГОСТ Р 34.12-2015 «Магма»ГОСТ Р 34.12-2015 «Кузнечик»AES-256
Длина блока64 бита128 бит128 бит
Длина ключа256 бит256 бит256 бит
Количество раундов321014
СтруктураСеть ФейстеляSP-сетьSP-сеть
Скорость (на современных процессорах)~100 МБ/с~200 МБ/с~500 МБ/с

«Магма» уступает по скорости «Кузнечику» и AES, но сохраняет актуальность для систем, где требуется совместимость с устаревшим оборудованием или где 64-битный блок является обязательным требованием (например, в некоторых протоколах передачи данных).

Критика

Основные замечания к алгоритму «Магма» связаны с:

  • Малым размером блока — 64 бита делают алгоритм уязвимым к атакам на основе коллизий при шифровании больших объёмов данных (более 4 ГБ в режиме ECB). В режиме гаммирования эта проблема решается, но требует дополнительного контроля.
  • Отсутствием публичных спецификаций S-блоков — хотя S-блоки определены в стандарте, их проектирование не было полностью раскрыто, что вызывает вопросы о возможных закладках. Однако в 2019 году российские криптографы опубликовали анализ, подтверждающий отсутствие скрытых уязвимостей.
  • Сложностью реализации на аппаратном уровне — из-за 32 раундов и операций с 32-битными числами алгоритм менее эффективен на микроконтроллерах с ограниченными ресурсами по сравнению с AES.

Перспективы

Несмотря на появление более современного алгоритма «Кузнечик», «Магма» продолжает использоваться в России благодаря своей совместимости с существующей инфраструктурой. В 2023 году Росстандарт утвердил обновлённую версию стандарта ГОСТ Р 34.12-2023, в котором «Магма» остаётся в силе, но рекомендуется к применению только в режимах гаммирования. Ожидается, что к 2030 году алгоритм будет полностью вытеснен «Кузнечиком» и другими 128-битными шифрами.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →