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

ISO/IEC 10118-3

ISO/IEC 10118-3 — это часть международного стандарта ISO/IEC 10118, определяющая алгоритмы хеширования, предназначенные для обеспечения целостности данных и аутентификации сообщений. Стандарт разработан Объединённым техническим комитетом 1 (JTC 1) Международной организации по стандартизации (ISO) и Международной электротехнической комиссии (IEC). В нём специфицированы конкретные хеш-функции, которые используются в криптографических системах, включая подписи, проверку паролей и протоколы безопасности.

История разработки

Первая редакция ISO/IEC 10118-3 была опубликована в 1998 году. Она включила в себя ряд хеш-функций, разработанных в 1990-х годах, в том числе MD2, MD5 и SHA-1. В последующие годы стандарт неоднократно пересматривался: в 2004 году вышла вторая редакция, в 2011 — третья, а в 2023 году — четвёртая. Каждая новая редакция добавляла или заменяла алгоритмы, устаревшие с точки зрения криптостойкости. Например, в редакции 2011 года были добавлены функции семейства SHA-2, а в 2023 году — SHA-3 и другие современные алгоритмы.

Общая структура стандарта

ISO/IEC 10118 состоит из четырёх частей:

  • Часть 1: Общие положения (определяет базовые понятия и требования к хеш-функциям).
  • Часть 2: Хеш-функции с использованием блочных шифров.
  • Часть 3: Десять конкретных хеш-функций (собственно ISO/IEC 10118-3).
  • Часть 4: Хеш-функции на основе модульной арифметики.

Таким образом, ISO/IEC 10118-3 является наиболее практической частью стандарта, так как содержит готовые к реализации алгоритмы.

Алгоритмы, включённые в стандарт

В четвёртой редакции (2023 года) ISO/IEC 10118-3 включает следующие хеш-функции:

MD2 (алгоритм 1)

Разработана Роном Ривестом в 1989 году. Выдаёт 128-битный хеш. Основана на перестановках байтов и не использует операции с большими числами. В настоящее время считается криптографически слабой (уязвима к коллизиям) и не рекомендуется к применению, но сохранена в стандарте для обратной совместимости.

MD5 (алгоритм 2)

Создана в 1991 году тем же Роном Ривестом. Выдаёт 128-битный хеш. Широко использовалась в интернете, но с 2004 года обнаружены серьёзные уязвимости (возможность создания коллизий). В стандарте помечена как устаревшая, но включена для совместимости с существующими системами.

SHA-1 (алгоритм 3)

Разработана Агентством национальной безопасности США (NSA) в 1995 году. Выдаёт 160-битный хеш. С 2017 года считается небезопасной из-за возможности практической атаки на коллизию. В стандарте 2023 года сохранена, но с пометкой о нерекомендации.

SHA-224 (алгоритм 4)

Вариант SHA-256 с усечённым выходом до 224 бит. Введена в 2004 году. Используется в некоторых протоколах, где требуется меньшая длина хеша.

SHA-256 (алгоритм 5)

Одна из наиболее распространённых современных хеш-функций. Выдаёт 256-битный хеш. Входит в семейство SHA-2, разработанное NSA в 2001 году. Считается криптостойкой на 2024 год.

SHA-384 (алгоритм 6)

Вариант SHA-512 с усечением до 384 бит. Используется в системах, требующих высокой стойкости, но с ограничениями на размер хеша.

SHA-512 (алгоритм 7)

Выдаёт 512-битный хеш. Входит в семейство SHA-2. Обеспечивает высокий уровень безопасности, но требует больше вычислительных ресурсов.

SHA-512/224 (алгоритм 8)

Вариант SHA-512 с усечением до 224 бит. Введена в 2012 году. Используется в некоторых криптографических протоколах.

SHA-512/256 (алгоритм 9)

Вариант SHA-512 с усечением до 256 бит. Также введена в 2012 году. Позволяет получить 256-битный хеш с производительностью, близкой к SHA-512.

SHA-3 (алгоритм 10)

Семейство хеш-функций, разработанное в 2015 году по результатам конкурса NIST. Включает SHA3-224, SHA3-256, SHA3-384, SHA3-512. Основано на конструкции «Кеккак» (Keccak). В стандарте ISO/IEC 10118-3:2023 представлено как единый алгоритм с возможностью выбора длины выхода.

Технические характеристики

Все алгоритмы в ISO/IEC 10118-3 являются итеративными хеш-функциями, работающими по принципу Меркла — Дамгора (за исключением SHA-3, использующего конструкцию «губка»). Они принимают на вход сообщение произвольной длины и выдают хеш-значение фиксированной длины (от 128 до 512 бит). Внутренняя обработка делится на блоки фиксированного размера (обычно 512 или 1024 бита). Для обеспечения уникальности хеша применяются операции сдвига, XOR, сложения по модулю и нелинейные функции.

Применение

Стандарт ISO/IEC 10118-3 широко используется в различных областях информационной безопасности:

  • Цифровые подписихеширование сообщения перед подписанием (например, в стандартах RSA, DSA, ECDSA).
  • Аутентификация сообщений — в сочетании с секретным ключом (HMAC).
  • Проверка целостности — контрольные суммы для файлов, протоколы передачи данных (TLS, IPsec).
  • Хранение паролей — одностороннее хеширование для защиты учётных записей.
  • Блокчейн и криптовалюты — SHA-256 используется в биткойне, SHA-3 — в некоторых альткойнах.

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

Основная критика стандарта связана с включением устаревших алгоритмов (MD2, MD5, SHA-1), которые могут быть ошибочно восприняты как безопасные. Специалисты рекомендуют использовать только SHA-2 (SHA-256, SHA-512) и SHA-3. Кроме того, стандарт не регламентирует скорость работы алгоритмов, что может приводить к неоптимальным реализациям. Некоторые эксперты отмечают, что процесс обновления стандарта (раз в 10–12 лет) отстаёт от развития криптоанализа.

Связь с другими стандартами

ISO/IEC 10118-3 тесно связан с национальными и отраслевыми стандартами:

  • В России аналогом является ГОСТ Р 34.11-2012 (Стрибог), который не входит в ISO/IEC 10118-3, но может использоваться в рамках российских криптографических систем.
  • В США стандарт FIPS 180-4 (Secure Hash Standard) определяет те же алгоритмы SHA-1 и SHA-2, но SHA-3 описан в FIPS 202.
  • В Европейском союзе стандарт ETSI TS 102 176-1 рекомендует использование алгоритмов из ISO/IEC 10118-3 для цифровых подписей.

Источники

  1. ISO/IEC 10118-3:2023 — Information technology — Security techniques — Hash-functions — Part 3: Dedicated hash-functions.
  2. ISO/IEC 10118-1:2016 — Information technology — Security techniques — Hash-functions — Part 1: General.
  3. NIST FIPS 180-4 — Secure Hash Standard (SHS).
  4. NIST FIPS 202 — SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions.
  5. RFC 1321 — The MD5 Message-Digest Algorithm.
  6. RFC 4634 — US Secure Hash Algorithms (SHA and HMAC-SHA).
  7. «Handbook of Applied Cryptography» by A. Menezes, P. van Oorschot, S. Vanstone (1996).

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

На главную BFOmetr →