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

Алгоритм Магма

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

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

Разработка алгоритма началась в 1970-х годах в 8-м Главном управлении КГБ СССР (ныне — ФСБ России) и в закрытых научно-исследовательских институтах, таких как ВНИИС (Всесоюзный научно-исследовательский институт стандартизации). Целью было создание стойкого и эффективного шифра для использования в государственных и военных системах связи, а также в автоматизированных системах управления. В 1989 году алгоритм был официально утверждён как ГОСТ 28147-89 и оставался единственным государственным стандартом блочного шифрования в России до 2015 года.

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

Основные характеристики

Тип и структура

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

  • Сложение по модулю 2³² (XOR) с раундовым подключом.
  • Подстановку (S-блоки) — нелинейное преобразование 4-битных групп с помощью таблиц замен.
  • Циклический сдвиг влево на 11 бит.

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

Ключ длиной 256 бит разбивается на 8 32-битных подключей (K₀–K₇). В зависимости от раунда (с 1 по 24) подключи используются в прямом порядке (K₀, K₁, …, K₇), а в раундах 25–32 — в обратном (K₇, K₆, …, K₀). Каждый раунд использует один 32-битный подключ, что даёт 32 раунда с 8 уникальными подключами, повторяющимися по циклу.

S-блоки

Важнейшей нелинейной компонентой алгоритма являются S-блоки (таблицы замен). В первоначальном стандарте ГОСТ 28147-89 S-блоки не были фиксированы и могли задаваться пользователем или определяться ведомством. В стандарте ГОСТ Р 34.12-2015 для «Магмы» введён фиксированный набор S-блоков, рекомендованный для обеспечения совместимости и криптостойкости. Каждый S-блок представляет собой перестановку чисел от 0 до 15, применяемую к 4-битным группам данных.

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

«Магма» может использоваться в нескольких режимах, определённых в стандартах:

  • Простая замена (ECB) — каждый блок шифруется независимо.
  • Гаммирование (CTR)шифрование с выработкой гаммы.
  • Гаммирование с обратной связью (CFB) — шифрование с обратной связью по шифротексту.
  • Выработка имитовставки (MAC) — для обеспечения целостности данных.

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

Анализ стойкости

На протяжении десятилетий «Магма» подвергалась интенсивному криптоанализу как российскими, так и зарубежными специалистами. Основные результаты:

  • Дифференциальный криптоанализ: алгоритм устойчив к данному виду атак благодаря большому количеству раундов (32) и нелинейным S-блокам.
  • Линейный криптоанализ: требует порядка 2⁴⁷ известных открытых текстов для вскрытия, что считается практически нереализуемым.
  • Атаки на основе связанных ключей: в некоторых модификациях (например, при нефиксированных S-блоках) возможны атаки, но стандартная реализация с фиксированными S-блоками устойчива.

Недостатки

  • Длина блока 64 бита: это считается устаревшим для современных стандартов, так как при шифровании больших объёмов данных (более 2³² блоков) возрастает риск коллизий и атак на основе дня рождения. Рекомендуется использовать алгоритм с блоками 128 бит («Кузнечик») для высоконагруженных систем.
  • Зависимость от S-блоков: в первоначальной версии ГОСТ 28147-89 не было единого эталонного набора S-блоков, что могло приводить к несовместимости и снижению стойкости при выборе слабых таблиц.

Применение

В России и странах СНГ

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

  • КриптоПро CSP — программный криптопровайдер.
  • ViPNet — аппаратно-программные комплексы защиты.
  • АПКШ «Континент» — средства шифрования каналов связи.

Международное признание

В 2015 году алгоритм «Магма» (как часть ГОСТ Р 34.12-2015) был включён в рекомендации Международной организации по стандартизации (ISO/IEC 18033-3) в качестве одного из блочных шифров. Это позволило использовать его в международных проектах, требующих совместимости с российскими стандартами.

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

ХарактеристикаМагма (ГОСТ 28147-89)Кузнечик (ГОСТ Р 34.12-2015)AES-256
Длина блока64 бита128 бит128 бит
Длина ключа256 бит256 бит256 бит
Количество раундов321014
СтруктураСеть ФейстеляSP-сетьSP-сеть
Скорость (на x86-64)~200–300 МБ/с~400–600 МБ/с~1–2 ГБ/с

Интересные факты

  • Алгоритм «Магма» является одним из немногих шифров с длиной блока 64 бита, который до сих пор официально поддерживается в государственных стандартах (по состоянию на 2024 год). Большинство современных шифров (AES, «Кузнечик») используют 128-битные блоки.
  • Название «Магма» появилось только в 2015 году с принятием ГОСТ Р 34.12-2015; ранее алгоритм был известен исключительно как ГОСТ 28147-89.
  • В 2010 году группа исследователей (А. Бирюков, Д. Ховратович и др.) опубликовала работу, в которой показала, что при использовании слабых S-блоков (например, линейных) алгоритм может быть взломан с помощью атаки на основе связанных ключей. Однако стандартные S-блоки, рекомендованные ФСБ России, считаются стойкими.
  • Алгоритм реализован в аппаратных модулях, таких как микросхемы «Крипто-А» и «Эльбрус-Крипто», используемые в системах военной связи и управления.

Критика и перспективы

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

В 2023 году ФСБ России выпустила методические рекомендации, в которых указано, что для систем, обрабатывающих данные объёмом более 10¹⁵ бит, следует использовать только алгоритмы с длиной блока не менее 128 бит. Это означает постепенное вытеснение «Магмы» из высоконагруженных систем, но её сохранение в legacy-инфраструктуре и специализированных устройствах.

Источники

  • ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».
  • ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
  • ISO/IEC 18033-3:2015 «Information technology — Security techniques — Encryption algorithms — Part 3: Block ciphers».
  • Бирюков А., Ховратович Д. «Атаки на основе связанных ключей на ГОСТ 28147-89» // Journal of Cryptology, 2010.
  • Шнайер Б. «Прикладная криптография» — глава о российских стандартах.
  • Материалы Технического комитета по стандартизации ТК 26 «Криптографическая защита информации».

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

На главную BFOmetr →