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

ГОСТ (криптографические алгоритмы)

ГОСТ (криптографические алгоритмы) — это совокупность стандартов шифрования, хеширования, формирования и проверки электронной подписи, а также выработки ключей, утверждённых Федеральным агентством по техническому регулированию и метрологии (Росстандарт) и действующих на территории Российской Федерации. Криптографические алгоритмы ГОСТ являются обязательными для использования в государственных информационных системах, при защите сведений, составляющих государственную тайну, и в системах, обрабатывающих персональные данные, если иное не установлено законодательством.

История

Разработка отечественных криптографических стандартов началась в 1970-х годах в рамках работ 8-го Главного управления КГБ СССР. Первым открытым стандартом стал ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования», введённый в действие 1 июля 1990 года. Этот алгоритм симметричного шифрования долгое время оставался единственным официальным стандартом в России.

В 1994 году был принят ГОСТ Р 34.10-94 «Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма», который определял алгоритм электронной подписи (ЭП) на основе эллиптических кривых. Позднее, в 2001 году, его заменил ГОСТ Р 34.10-2001, а в 2012 году — ГОСТ Р 34.10-2012, который действует по настоящее время.

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

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

В 2018 году принят ГОСТ Р 34.13-2015 «Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров», который определяет режимы шифрования (ECB, CBC, CTR, OFB, CFB, XTS) для алгоритмов «Магма» и «Кузнечик».

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

Классификация криптографических алгоритмов ГОСТ

Все криптографические алгоритмы ГОСТ делятся на три основные группы: симметричное шифрование, асимметричное шифрование и электронная подпись, а также хеширование. Кроме того, существуют стандарты на режимы работы и выработку ключей.

Симметричное шифрование

Симметричные алгоритмы ГОСТ используются для шифрования данных с одним и тем же ключом. Основные стандарты:

  • ГОСТ Р 34.12-2015:
  • «Магна»блочный шифр с длиной блока 64 бита и длиной ключа 256 бит. Алгоритм основан на сети Фейстеля с 32 раундами. Является модернизацией ГОСТ 28147-89, но с фиксированными S-блоками (таблицами замены).
  • «Кузнечик» — блочный шифр с длиной блока 128 бит и длиной ключа 256 бит. Использует SP-сеть (подстановочно-перестановочную сеть) с 10 раундами. Считается более стойким, чем «Магна».
  • ГОСТ Р 34.13-2015 — определяет режимы работы блочных шифров: ECB (электронная кодовая книга), CBC (цепочка блоков), CTR (счётчик), OFB (обратная связь по выходу), CFB (обратная связь по шифротексту), XTS (криптографическая защита дисковых накопителей).

Асимметричное шифрование и электронная подпись

Асимметричные алгоритмы ГОСТ используются для шифрования с открытым ключом и для создания/проверки электронной подписи. Основные стандарты:

  • ГОСТ Р 34.10-2012 (действует) и ГОСТ Р 34.10-2021 (новый) — алгоритмы электронной подписи на основе эллиптических кривых (ECDSA-подобный). Используют кривые, определённые в стандарте, с длиной ключа 256 или 512 бит.
  • ГОСТ Р 34.10-94 (устарел) — первый стандарт на ЭП, также на эллиптических кривых, но с меньшей длиной ключа.

Хеширование

Хеш-функции ГОСТ используются для сжатия данных произвольной длины в фиксированное значение (хеш-код). Основной стандарт:

  • ГОСТ Р 34.11-2012 — алгоритм хеширования «Стрибог». Выдаёт хеш длиной 256 или 512 бит. Является SPN-структурой с 12 раундами. Пришёл на смену ГОСТ Р 34.11-94 (алгоритм «Стрибог» был разработан как более стойкий).

Выработка ключей

  • ГОСТ Р 34.10-2012 (приложение) — определяет процедуры выработки ключей для асимметричных алгоритмов.
  • ГОСТ Р 34.11-2012 (приложение) — может использоваться для выработки ключей на основе хеширования (KDF).

Устройство и характеристики

Алгоритм «Кузнечик» (ГОСТ Р 34.12-2015)

«Кузнечик» является блочным шифром с длиной блока 128 бит и ключом 256 бит. Алгоритм основан на SP-сети (подстановочно-перестановочная сеть) и состоит из 10 раундов. Каждый раунд включает следующие операции:

  1. X — сложение с раундовым ключом (XOR).
  2. S — нелинейная замена (подстановка) с использованием 16 S-блоков (каждый размером 8×8 бит).
  3. L — линейное преобразование (умножение на матрицу в поле Галуа GF(2^8)).
  4. R — перестановка байтов.

Расширение ключа выполняется с помощью самого шифра (режим Feistel). Криптостойкость «Кузнечика» оценивается как 256 бит, что соответствует современным требованиям к симметричным шифрам.

Алгоритм «Магна» (ГОСТ Р 34.12-2015)

«Магна» — это 64-битный блочный шифр с ключом 256 бит. Он является модернизацией ГОСТ 28147-89, но с фиксированными S-блоками (в отличие от старого стандарта, где S-блоки могли различаться). Алгоритм использует сеть Фейстеля с 32 раундами. В каждом раунде:

  1. Правая половина блока складывается с раундовым ключом (по модулю 2^32).
  2. Результат проходит через S-блоки (8 блоков по 4 бита).
  3. Выполняется циклический сдвиг влево на 11 бит.
  4. Результат складывается с левой половиной (XOR).

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

Хеш-функция «Стрибог» (ГОСТ Р 34.11-2012)

«Стрибог» — это хеш-функция, выдающая хеш длиной 256 или 512 бит. Алгоритм основан на SP-сети и состоит из 12 раундов. В каждом раунде выполняются операции:

  1. S — нелинейная замена (S-блоки).
  2. P — перестановка байтов.
  3. L — линейное преобразование (умножение на матрицу).

Хеш-функция использует итеративную схему Меркла-Дамгора с модификациями (добавление длины сообщения). Криптостойкость «Стрибога» оценивается как 256/512 бит соответственно (устойчивость к коллизиям — 128/256 бит).

Применение

Криптографические алгоритмы ГОСТ широко применяются в следующих областях:

  • Государственные информационные системы — защита данных в системах электронного документооборота, порталах госуслуг, системах межведомственного взаимодействия.
  • Банковская сфера — шифрование финансовых транзакций, электронная подпись для банковских документов, защита каналов связи (например, в системах «Банк-Клиент»).
  • Инфраструктура открытых ключей (PKI) — сертификаты электронной подписи, выпускаемые удостоверяющими центрами, аккредитованными Минцифры России.
  • Защита персональных данных — шифрование баз данных, файлов, каналов связи в соответствии с требованиями 152-ФЗ «О персональных данных».
  • Системы электронного документооборота (СЭД) — подписание и шифрование документов, обмен юридически значимыми электронными документами.
  • Криптопровайдеры — программные и аппаратные реализации алгоритмов ГОСТ (например, КриптоПро CSP, ViPNet CSP, Signal-COM CSP) используются в операционных системах, браузерах, почтовых клиентах.

Критика и ограничения

Основные критикуемые аспекты криптографических алгоритмов ГОСТ:

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

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

  • Алгоритм «Кузнечик» был включён в международный стандарт ISO/IEC 18033-3:2010 (дополнение) как один из блочных шифров.
  • Хеш-функция «Стрибог» названа в честь древнеславянского бога ветра Стрибога.
  • Алгоритм «Магна» является единственным в мире 64-битным блочным шифром, который до сих пор официально используется в государственных стандартах (все остальные страны перешли на 128-битные шифры).
  • В 2019 году алгоритмы ГОСТ были включены в состав ядра Linux (криптографический модуль CryptoAPI), что упростило их использование в российских дистрибутивах.

Источники

  • ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры»
  • ГОСТ Р 34.11-2012 «Информационная технология. Криптографическая защита информации. Функция хеширования»
  • ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной подписи»
  • ГОСТ Р 34.13-2015 «Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров»
  • Федеральный закон от 6 апреля 2011 г. № 63-ФЗ «Об электронной подписи»
  • Федеральный закон от 27 июля 2006 г. № 152-ФЗ «О персональных данных»
  • Методические рекомендации ФСБ России по использованию криптографических средств защиты информации (2018 г.)

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

На главную BFOmetr →