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 определял три основных алгоритма цифровой подписи:
- DSA (Digital Signature Algorithm) — алгоритм, основанный на задаче дискретного логарифмирования в конечных полях. Использует простые числа и генераторы для создания и проверки подписей. DSA был разработан NIST и стал первым алгоритмом, утверждённым в рамках FIPS 186.
- RSA (Rivest–Shamir–Adleman) — алгоритм, основанный на сложности факторизации больших целых чисел. Включён в стандарт в качестве дополнительной опции для обеспечения совместимости с существующими системами.
- 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 процесс включал:
- Генерацию случайного числа (k).
- Вычисление точки на кривой (для ECDSA) или возведение в степень (для DSA).
- Вычисление значения подписи (r, s).
- Проверка подписи путём вычисления обратных значений и сравнения результатов.
Для 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 подвергался критике по нескольким причинам:
- Уязвимости SHA-1: стандарт требовал использования хэш-функции SHA-1, которая к середине 2000-х годов была признана уязвимой к коллизиям. Это ставило под угрозу безопасность подписей, особенно при долгосрочном хранении документов.
- Ограниченная длина ключей DSA: максимальная длина ключа DSA (1024 бита) считалась недостаточной для защиты от атак с использованием современных вычислительных мощностей, включая возможное появление квантовых компьютеров.
- Отсутствие гибкости: стандарт не предусматривал использования других хэш-функций (например, SHA-256) в качестве обязательных, что ограничивало адаптацию к новым угрозам.
- Проблемы с реализацией 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 →