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

GOST 28147-89

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

История

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

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

Описание алгоритма

ГОСТ 28147-89 является блочным шифром с длиной блока 64 бита и длиной ключа 256 бит. Алгоритм основан на сети Фейстеля, что обеспечивает обратимость преобразования при шифровании и дешифровании с использованием одной и той же процедуры, но с обратным порядком раундовых ключей.

Основные параметры

  • Длина блока: 64 бита (8 байт).
  • Длина ключа: 256 бит (32 байта).
  • Число раундов: 32.
  • Размер раундового ключа: 32 бита (4 байта).
  • Узлы замены (S-блоки): 8 таблиц по 4-битному входу и 4-битному выходу (каждая таблица содержит 16 значений).

Структура

Шифрование выполняется за 32 раунда. Каждый раунд включает в себя:

  1. Сложение с раундовым ключом: Младшая (правая) половина блока складывается по модулю 2³² с 32-битным раундовым ключом.
  2. Замена (S-блоки): Результат разбивается на 8 групп по 4 бита. Каждая группа заменяется по соответствующей таблице замен (узлу замены). Узлы замены являются секретным элементом алгоритма и могут быть различными для разных систем или организаций.
  3. Циклический сдвиг: Результат замены сдвигается влево на 11 бит.
  4. XOR с левой половиной: Результат сдвига складывается по модулю 2 (XOR) со старшей (левой) половиной блока.
  5. Перестановка половин: Левая и правая половины меняются местами (кроме последнего раунда).

После 32-го раунда выполняется финальная перестановка половин (отсутствует в последнем раунде, что обеспечивает симметричность алгоритма).

Режимы работы

ГОСТ 28147-89 определяет четыре режима шифрования и один режим выработки имитовставки:

  • Режим простой замены: Базовый режим. Каждый блок шифруется независимо. Недостаток — одинаковые блоки открытого текста дают одинаковые блоки шифротекста, что делает режим уязвимым для статистического анализа.
  • Режим гаммирования: К открытому тексту поразрядно (XOR) добавляется гамма — псевдослучайная последовательность, вырабатываемая шифром. Обеспечивает диффузию ошибок и скрытие статистических закономерностей.
  • Режим гаммирования с обратной связью: Аналогичен гаммированию, но гамма зависит от предыдущего блока шифротекста. Повышает стойкость к атакам на основе известного открытого текста.
  • Режим выработки имитовставки: Специальный режим для контроля целостности. Вырабатывает код аутентичности сообщения (имитовставку) фиксированной длины (обычно 32 бита). При любом изменении шифротекста или ключа имитовставка с высокой вероятностью изменится.

Имитовставка

Имитовставка — это дополнительный блок данных, вырабатываемый из открытого текста с использованием ключа. Она позволяет обнаружить случайные или преднамеренные искажения зашифрованной информации. Длина имитовставки может быть от 16 до 32 бит. Для её вычисления используется режим простой замены, но с особым порядком обработки блоков.

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

На момент разработки ГОСТ 28147-89 считался криптостойким для государственных нужд. Длина ключа 256 бит обеспечивала высокий уровень защиты от атак полным перебором. Однако со временем были выявлены некоторые уязвимости:

  • Слабая замена (S-блоки): Секретность узлов замены является слабым местом. Если злоумышленник узнает таблицы, стойкость алгоритма снижается. Существуют известные «слабые» S-блоки, которые делают шифр уязвимым для дифференциального криптоанализа.
  • Размер блока 64 бита: Для современных объёмов данных (гигабайты и терабайты) 64-битный блок становится уязвимым к атакам на основе парадокса дней рождения. При шифровании более 2³² блоков (около 32 ГБ данных) вероятность коллизии блоков становится значительной, что может раскрыть информацию.
  • Атака на основе связанных ключей: В некоторых режимах (например, при использовании одного ключа для шифрования и имитовставки) возможна атака, использующая связь между ключами.
  • Дифференциальный криптоанализ: Современные исследования показали, что при определённых S-блоках алгоритм может быть взломан с помощью дифференциального криптоанализа за меньшее число операций, чем полный перебор.

Тем не менее, при правильном выборе S-блоков и использовании в режимах гаммирования или гаммирования с обратной связью, ГОСТ 28147-89 остаётся достаточно стойким для большинства практических применений, не связанных с защитой государственной тайны.

Применение

ГОСТ 28147-89 широко применялся в России и странах СНГ для защиты конфиденциальной информации:

  • Государственные информационные системы: Обработка персональных данных, документооборот, системы управления.
  • Финансовый сектор: Банковские системы, электронные платежи, системы дистанционного банковского обслуживания (ДБО).
  • Корпоративные системы: Защита корпоративной почты, файловых хранилищ, баз данных.
  • Программные и аппаратные средства: Реализован во многих криптографических библиотеках (OpenSSL, Crypto++), аппаратных модулях безопасности (HSM), смарт-картах, USB-токенах.

С 2019 года для новых разработок рекомендуется использовать ГОСТ Р 34.12-2015, однако существующие системы, работающие по старому стандарту, могут продолжать эксплуатироваться до завершения их жизненного цикла.

Критика

Основная критика в адрес ГОСТ 28147-89 связана с его секретностью и устаревшими параметрами:

  • Закрытость узлов замены: Отсутствие открытых спецификаций S-блоков затрудняло независимый криптоанализ и создавало риск внедрения «чёрных ходов» (backdoors).
  • Недостаточная длина блока: 64 бита считаются недостаточными для современных требований к объёму шифруемых данных.
  • Отсутствие строгих доказательств стойкости: В отличие от современных алгоритмов (AES, ChaCha20), для ГОСТ 28147-89 не было опубликовано формальных доказательств устойчивости к известным атакам.
  • Сложность реализации: Алгоритм требовал аккуратной реализации S-блоков и циклических сдвигов, что могло приводить к ошибкам в программных реализациях.

Источники

  1. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. — М.: Издательство стандартов, 1989.
  2. ГОСТ Р 34.12-2015. Информационная технология. Криптографическая защита информации. Блочные шифры. — М.: Стандартинформ, 2015.
  3. Шнайер Б. Прикладная криптография. — 2-е изд. — М.: Триумф, 2002. — Глава 14.4.
  4. Мао В. Современная криптография: теория и практика. — М.: Вильямс, 2005. — Глава 7.
  5. Платонов В. В. Криптография: от основ к практике. — СПб.: БХВ-Петербург, 2014. — Глава 6.
  6. Федеральный закон от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации».
  7. Приказ ФСБ России от 10.07.2014 № 378 «Об утверждении Состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных».

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

На главную BFOmetr →