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

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 года), после чего требуется их замена.

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

Стандарт детально описывает этапы создания и проверки цифровой подписи:

  1. Генерация ключей: создаётся пара ключей — секретный (для подписания) и открытый (для проверки). Для DSA и ECDSA используется случайное число, для RSA — два больших простых числа.
  2. Подписание сообщения: хеш-значение сообщения (обычно SHA-256 или SHA-512) преобразуется в подпись с помощью секретного ключа. Для DSA и ECDSA подпись состоит из двух чисел (r, s), для RSA — из одного числа.
  3. Проверка подписи: получатель использует открытый ключ и хеш сообщения, чтобы убедиться, что подпись соответствует сообщению. Если проверка успешна, подпись считается действительной.

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

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 →