ГОСТ (криптографические алгоритмы)
ГОСТ (криптографические алгоритмы) — это совокупность стандартов шифрования, хеширования, формирования и проверки электронной подписи, а также выработки ключей, утверждённых Федеральным агентством по техническому регулированию и метрологии (Росстандарт) и действующих на территории Российской Федерации. Криптографические алгоритмы ГОСТ являются обязательными для использования в государственных информационных системах, при защите сведений, составляющих государственную тайну, и в системах, обрабатывающих персональные данные, если иное не установлено законодательством.
История
Разработка отечественных криптографических стандартов началась в 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 раундов. Каждый раунд включает следующие операции:
- X — сложение с раундовым ключом (XOR).
- S — нелинейная замена (подстановка) с использованием 16 S-блоков (каждый размером 8×8 бит).
- L — линейное преобразование (умножение на матрицу в поле Галуа GF(2^8)).
- R — перестановка байтов.
Расширение ключа выполняется с помощью самого шифра (режим Feistel). Криптостойкость «Кузнечика» оценивается как 256 бит, что соответствует современным требованиям к симметричным шифрам.
Алгоритм «Магна» (ГОСТ Р 34.12-2015)
«Магна» — это 64-битный блочный шифр с ключом 256 бит. Он является модернизацией ГОСТ 28147-89, но с фиксированными S-блоками (в отличие от старого стандарта, где S-блоки могли различаться). Алгоритм использует сеть Фейстеля с 32 раундами. В каждом раунде:
- Правая половина блока складывается с раундовым ключом (по модулю 2^32).
- Результат проходит через S-блоки (8 блоков по 4 бита).
- Выполняется циклический сдвиг влево на 11 бит.
- Результат складывается с левой половиной (XOR).
Криптостойкость «Магны» оценивается как 256 бит, хотя из-за меньшего размера блока (64 бита) он менее эффективен для шифрования больших объёмов данных, чем «Кузнечик».
Хеш-функция «Стрибог» (ГОСТ Р 34.11-2012)
«Стрибог» — это хеш-функция, выдающая хеш длиной 256 или 512 бит. Алгоритм основан на SP-сети и состоит из 12 раундов. В каждом раунде выполняются операции:
- S — нелинейная замена (S-блоки).
- P — перестановка байтов.
- 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 →