FIPS 186-4
FIPS 186-4 (Federal Information Processing Standard Publication 186-4) — это стандарт правительства США, определяющий алгоритмы цифровой подписи (Digital Signature Algorithm, DSA). Он был опубликован Национальным институтом стандартов и технологий США (NIST) в июле 2013 года и заменил предыдущую версию FIPS 186-3. Стандарт устанавливает требования к генерации, проверке и управлению ключами для цифровых подписей, используемых в государственных и коммерческих системах США. Основное внимание в FIPS 186-4 уделяется алгоритму DSA, а также алгоритму цифровой подписи на основе эллиптических кривых (ECDSA) и алгоритму подписи на основе RSA (RSASSA-PKCS1-v1_5 и RSASSA-PSS). Стандарт был разработан для обеспечения безопасности и совместимости криптографических систем, однако впоследствии был признан устаревшим и заменён версией FIPS 186-5.
История
Разработка стандартов цифровой подписи в США началась в 1991 году, когда NIST предложил первую версию FIPS 186 (Digital Signature Standard, DSS). Этот стандарт был основан на алгоритме DSA, предложенном Агентством национальной безопасности (АНБ). В 1994 году стандарт был утверждён, а в 1996 году вышла его первая редакция FIPS 186-1, которая добавила поддержку алгоритма RSA. В 2000 году была опубликована версия FIPS 186-2, включившая ECDSA.
FIPS 186-4 стал четвёртой редакцией стандарта и был выпущен в ответ на развитие криптоанализа и необходимость более строгих требований к длине ключей. В частности, в версии 186-4 были увеличены минимальные размеры ключей для DSA и RSA, а также уточнены процедуры генерации простых чисел. В 2019 году NIST объявил о начале перехода к FIPS 186-5, который был опубликован в 2023 году и отказался от поддержки DSA в пользу ECDSA и EdDSA.
Основные алгоритмы
FIPS 186-4 определяет три основных алгоритма цифровой подписи:
DSA (Digital Signature Algorithm)
DSA — это алгоритм, основанный на сложности вычисления дискретных логарифмов в конечных полях. Стандарт требует использования простых чисел длиной от 1024 до 3072 бит. Алгоритм включает генерацию ключей (секретного и открытого), подписание сообщения и проверку подписи. В FIPS 186-4 были ужесточены требования к генерации простых чисел, чтобы предотвратить атаки, основанные на слабых параметрах.
ECDSA (Elliptic Curve Digital Signature Algorithm)
ECDSA — это вариант DSA, использующий эллиптические кривые. Он обеспечивает более высокую производительность при меньшей длине ключа по сравнению с DSA. Стандарт определяет несколько кривых, рекомендованных NIST (например, P-256, P-384, P-521). ECDSA широко применяется в современных системах, таких как блокчейн, мобильные устройства и протоколы TLS.
RSA (Rivest-Shamir-Adleman)
RSA — это асимметричный алгоритм, основанный на сложности факторизации больших чисел. В FIPS 186-4 включены схемы подписи RSASSA-PKCS1-v1_5 и RSASSA-PSS. Минимальная длина ключа RSA составляет 2048 бит, а рекомендуемая — 3072 бита. RSASSA-PSS считается более безопасной, так как она включает случайное заполнение, что затрудняет атаки.
Требования к ключам
FIPS 186-4 устанавливает строгие требования к генерации и управлению ключами:
- Длина ключей: для DSA — от 1024 до 3072 бит (с шагом 1024 бит); для RSA — от 2048 до 15360 бит; для ECDSA — от 224 до 521 бит (в зависимости от кривой).
- Генерация простых чисел: для DSA и RSA требуется использование проверенных методов генерации, таких как алгоритм Миллера — Рабина с определённым числом раундов.
- Хранение ключей: секретные ключи должны храниться в защищённом виде, например, в аппаратных модулях безопасности (HSM).
- Срок действия: для ключей DSA и RSA рекомендуется ограниченный срок использования (обычно 1–3 года), после чего требуется их замена.
Процедуры подписания и проверки
Стандарт детально описывает этапы создания и проверки цифровой подписи:
- Генерация ключей: создаётся пара ключей — секретный (для подписания) и открытый (для проверки). Для DSA и ECDSA используется случайное число, для RSA — два больших простых числа.
- Подписание сообщения: хеш-значение сообщения (обычно SHA-256 или SHA-512) преобразуется в подпись с помощью секретного ключа. Для DSA и ECDSA подпись состоит из двух чисел (r, s), для RSA — из одного числа.
- Проверка подписи: получатель использует открытый ключ и хеш сообщения, чтобы убедиться, что подпись соответствует сообщению. Если проверка успешна, подпись считается действительной.
Критика и ограничения
FIPS 186-4 подвергался критике по нескольким причинам:
- Сложность реализации: стандарт содержит множество технических деталей, что затрудняет его корректную реализацию без ошибок.
- Уязвимости DSA: алгоритм DSA требует использования качественного генератора случайных чисел, иначе возможны утечки секретного ключа (например, атака с повторным использованием k).
- Зависимость от NIST: некоторые исследователи выражали опасения, что стандарты NIST могут содержать скрытые уязвимости, хотя доказательств этому нет.
- Устаревание: с развитием квантовых вычислений алгоритмы, основанные на факторизации и дискретных логарифмах, становятся уязвимыми. FIPS 186-4 не включает постквантовые алгоритмы.
Применение
FIPS 186-4 широко использовался в государственных и коммерческих системах США, включая:
- Электронный документооборот (например, подписание PDF-документов).
- Системы аутентификации (например, в протоколах TLS и SSH).
- Банковские и финансовые транзакции (например, в стандартах EMV и SWIFT).
- Обновление программного обеспечения (подписание кода для Windows и macOS).
В России аналогичные требования к цифровым подписям регулируются ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012, которые основаны на эллиптических кривых и хеш-функции «Стрибог».
Переход к FIPS 186-5
В 2023 году NIST опубликовал FIPS 186-5, который отменил FIPS 186-4. Основные изменения:
- Исключение DSA: алгоритм признан устаревшим и не рекомендуется к использованию.
- Добавление EdDSA: алгоритм на основе эллиптических кривых (Ed25519 и Ed448), обеспечивающий более высокую производительность и безопасность.
- Уточнение требований: упрощены процедуры генерации ключей и проверки подписей.
Организациям рекомендуется перейти на FIPS 186-5 до 2025 года, хотя старые подписи, созданные по FIPS 186-4, остаются действительными до истечения срока их ключей.
Источники
- National Institute of Standards and Technology. FIPS 186-4: Digital Signature Standard (DSS). July 2013.
- National Institute of Standards and Technology. FIPS 186-5: Digital Signature Standard (DSS). February 2023.
- Menezes, A., van Oorschot, P., Vanstone, S. Handbook of Applied Cryptography. CRC Press, 1996.
- Ferguson, N., Schneier, B., Kohno, T. Cryptography Engineering. Wiley, 2010.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →