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

NIST FIPS 186-2

FIPS 186-2 — это федеральный стандарт обработки информации США (Federal Information Processing Standard), опубликованный Национальным институтом стандартов и технологий (NIST) 27 января 2000 года. Он определял алгоритмы цифровой подписи, включая алгоритм цифровой подписи (DSA) на основе эллиптических кривых (ECDSA) и сам алгоритм DSA (Digital Signature Algorithm). Стандарт заменил предыдущую версию FIPS 186-1 (1998 год) и был заменён версией FIPS 186-3 в 2009 году. FIPS 186-2 являлся обязательным для использования в государственных учреждениях США и широко применялся в коммерческом и открытом программном обеспечении, включая криптографические библиотеки.

История и контекст

Разработка стандартов цифровой подписи в США началась в 1991 году, когда NIST впервые опубликовал проект FIPS 186, основанный на алгоритме DSA. Первая версия была утверждена в 1994 году. Версия FIPS 186-1, выпущенная в 1998 году, впервые включила алгоритм RSA (Rivest–Shamir–Adleman) в качестве дополнительного варианта. FIPS 186-2 стал важным этапом, поскольку в него был добавлен алгоритм ECDSA (Elliptic Curve Digital Signature Algorithm), основанный на криптографии на эллиптических кривых. Это расширение было вызвано необходимостью более эффективных алгоритмов для устройств с ограниченными вычислительными ресурсами (например, смарт-карт) и повышенными требованиями к безопасности.

Стандарт FIPS 186-2 был разработан в рамках программы NIST по стандартизации криптографических алгоритмов для защиты информации в государственных информационных системах. Он основывался на математических принципах, изложенных в трудах Уитфилда Диффи, Мартина Хеллмана, Ральфа Меркла, а также на работах по эллиптической криптографии, предложенных Нилом Коблицем и Виктором Миллером.

Содержание стандарта

Алгоритмы цифровой подписи

FIPS 186-2 определял три основных алгоритма цифровой подписи:

  1. DSA (Digital Signature Algorithm) — алгоритм, основанный на задаче дискретного логарифмирования в конечных полях. Использует простые числа и генераторы для создания и проверки подписей. DSA был разработан NIST и стал первым алгоритмом, утверждённым в рамках FIPS 186.
  2. RSA (Rivest–Shamir–Adleman) — алгоритм, основанный на сложности факторизации больших целых чисел. Включён в стандарт в качестве дополнительной опции для обеспечения совместимости с существующими системами.
  3. ECDSA (Elliptic Curve Digital Signature Algorithm) — вариант DSA, использующий эллиптические кривые. Позволяет достичь того же уровня безопасности, что и DSA, при значительно меньших размерах ключей (например, кривая 256 бит обеспечивает уровень безопасности, сравнимый с 3072-битным ключом RSA). ECDSA был включён в FIPS 186-2 как ответ на растущую потребность в производительных и компактных криптографических решениях.

Параметры и требования

Стандарт устанавливал строгие требования к параметрам алгоритмов:

  • Длина ключей: для DSA — от 512 до 1024 бит (с шагом 64 бита); для RSA — от 1024 до 2048 бит; для ECDSA — ключи на основе эллиптических кривых, определённых в стандарте (например, P-256, P-384, P-521).
  • Хэш-функции: для всех алгоритмов требовалось использование хэш-функции SHA-1 (Secure Hash Algorithm 1), хотя допускалось применение SHA-256 при соответствующей настройке.
  • Кривые: для ECDSA были определены пять стандартных эллиптических кривых (P-192, P-224, P-256, P-384, P-521), каждая из которых соответствовала определённому уровню безопасности.

Процедуры подписи и проверки

FIPS 186-2 подробно описывал математические процедуры генерации подписи и её проверки для каждого алгоритма. Для DSA и ECDSA процесс включал:

  1. Генерацию случайного числа (k).
  2. Вычисление точки на кривой (для ECDSA) или возведение в степень (для DSA).
  3. Вычисление значения подписи (r, s).
  4. Проверка подписи путём вычисления обратных значений и сравнения результатов.

Для RSA процедура была основана на возведении в степень и использовании открытого и закрытого ключей.

Применение и значение

FIPS 186-2 стал основой для реализации цифровых подписей во многих государственных и коммерческих системах США и других стран. Он использовался в:

  • Электронном документообороте: для подписания официальных документов, контрактов, отчётов.
  • Безопасности сетей: в протоколах SSL/TLS, IPSec, SSH для аутентификации сторон.
  • Программном обеспечении: в криптографических библиотеках OpenSSL, Bouncy Castle, Microsoft CryptoAPI.
  • Смарт-картах и аппаратных токенах: для хранения и использования закрытых ключей.

Стандарт сыграл ключевую роль в популяризации эллиптической криптографии, поскольку именно FIPS 186-2 впервые официально утвердил ECDSA для использования в государственных учреждениях. Это стимулировало разработку аппаратных и программных реализаций, а также способствовало принятию ECDSA в международных стандартах (например, ISO/IEC 14888-3).

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

Несмотря на широкое распространение, FIPS 186-2 подвергался критике по нескольким причинам:

  1. Уязвимости SHA-1: стандарт требовал использования хэш-функции SHA-1, которая к середине 2000-х годов была признана уязвимой к коллизиям. Это ставило под угрозу безопасность подписей, особенно при долгосрочном хранении документов.
  2. Ограниченная длина ключей DSA: максимальная длина ключа DSA (1024 бита) считалась недостаточной для защиты от атак с использованием современных вычислительных мощностей, включая возможное появление квантовых компьютеров.
  3. Отсутствие гибкости: стандарт не предусматривал использования других хэш-функций (например, SHA-256) в качестве обязательных, что ограничивало адаптацию к новым угрозам.
  4. Проблемы с реализацией ECDSA: реализация ECDSA требовала тщательной обработки случайных чисел, и уязвимости в генераторах случайных чисел приводили к утечке закрытых ключей (например, атака на Sony PlayStation 3 в 2010 году).

Замена и наследие

В 2009 году NIST опубликовал FIPS 186-3, который устранил многие недостатки предыдущей версии. Новая версия:

  • Увеличила минимальную длину ключей для DSA и RSA до 2048 бит.
  • Добавила поддержку хэш-функций семейства SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512).
  • Включила дополнительные эллиптические кривые и уточнила процедуры.

Последняя версия стандарта, FIPS 186-5 (2023 год), полностью исключила DSA и RSA, оставив только ECDSA и алгоритм EdDSA (Edwards-curve Digital Signature Algorithm). Тем не менее, FIPS 186-2 остаётся важной вехой в истории криптографии, поскольку он закрепил использование эллиптических кривых в государственных стандартах и заложил основы для современных систем цифровой подписи.

Источники

  • NIST. FIPS PUB 186-2: Digital Signature Standard (DSS). — National Institute of Standards and Technology, 2000.
  • NIST. FIPS PUB 186-3: Digital Signature Standard (DSS). — National Institute of Standards and Technology, 2009.
  • Menezes A., van Oorschot P., Vanstone S. Handbook of Applied Cryptography. — CRC Press, 1996. — Глава 11.
  • Koblitz N. Elliptic Curve Cryptosystems // Mathematics of Computation. — 1987. — Т. 48, № 177. — С. 203–209.
  • Diffie W., Hellman M. New Directions in Cryptography // IEEE Transactions on Information Theory. — 1976. — Т. 22, № 6. — С. 644–654.
  • Rivest R., Shamir A., Adleman L. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems // Communications of the ACM. — 1978. — Т. 21, № 2. — С. 120–126.

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

На главную BFOmetr →