Введение
ГОСТ 28147-89 – советский/российский государственный стандарт симметричного блочного шифрования, разработанный в конце 1970-х – начале 1980-х годов в рамках засекреченной программы и рассекреченный в 1989 году. Полное официальное название: «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».
В 2015 году алгоритм с уточнёнными (фиксированными) таблицами замены был стандартизирован под именем «Магма» в рамках ГОСТ Р 34.12-2015, что позволило закрыть историческую неопределённость с различными таблицами S-box, существовавшими у разных производителей.
История и контекст
Разработка алгоритма велась 8-м отделом КГБ СССР (предшественником ФАПСИ/ФСБ). Структура шифра намеренно скрывалась от публики более 10 лет после рассекречивания – таблицы замены (S-boxes) не включались в открытый текст стандарта, а передавались отдельно. Это порождало множество несовместимых реализаций. RFC 5830 (2010) описал алгоритм для международного сообщества, а RFC 8891 (2020) формально специфицировал «Магму».
Стандарт применялся более 25 лет в государственных ИС и банковском секторе. Сегодня в новых проектах его вытесняет Кузнечик (ГОСТ Р 34.12-2015, блок 128 бит), но для обратной совместимости Магма сохраняется в действующих СКЗИ.
Как работает ГОСТ 28147-89
Алгоритм строится на сети Фейстеля с параметрами:
- Размер блока – 64 бита (разбивается на два 32-битных подблока L и R).
- Длина ключа – 256 бит (восемь 32-битных подключей K₀–K₇).
- Число раундов – 32 (24 раунда в прямом порядке ключей + 8 в обратном).
- S-блоки – восемь таблиц замены 4×8 бит; в Магме фиксированы стандартом (TC26-Z).
Алгоритм поддерживает четыре режима работы: простой замены (ECB), гаммирование (CTR), гаммирование с обратной связью (CFB), выработка имитовставки (MAC). Из-за 64-битного блока необходима частая смена ключей при шифровании больших объёмов данных (атака Sweet32 при объёме >68 ГБ на одном ключе/IV).
Где применяется
- Сертифицированные СКЗИ – КриптоПро CSP, ViPNet, С-Терра включают реализацию Магмы.
- Защита документов с гостайной – требование ФСБ для СКЗИ классов КС, КВ, КА.
- Банковские системы – исторически для шифрования транзакций и хранения данных.
- Телекоммуникации – защита каналов связи в государственных сетях.
Преимущества и ограничения
Преимущества: 256-битный ключ обеспечивает высокую стойкость к атаке полным перебором; эффективен в программных и аппаратных реализациях; обязателен для СКЗИ, сертифицированных ФСБ. Ограничения: малый размер блока (64 бит) – уязвимость Sweet32; S-блоки исторически не были фиксированы; в современных проектах предпочтительнее Кузнечик с блоком 128 бит.
Связь с другими понятиями
ГОСТ 28147-89 – один из алгоритмов, реализуемых в СКЗИ (КриптоПро, ViPNet). В 2015 году модернизирован как шифр «Магма» в ГОСТ Р 34.12-2015. Его преемник – Кузнечик (128 бит). Используется совместно с ГОСТ 34.10 (электронная подпись) и ГОСТ 34.11 (хэш-функция Стрибог) в единой экосистеме российской криптографии.