encyklopedia.run.place

FIPS 186‑5

FIPS 186‑5 („Digital Signature Standard”, DSS) to amerykański standard opracowany przez NIST (National Institute of Standards and Technology). Jest to piąta rewizja dokumentu FIPS 186‑4 i określa formalne wymagania oraz szczegółowe algorytmy służące do generowania i weryfikacji podpisów cyfrowych.

Historia

Standard pierwszy raz opublikowano w 1994 r. jako FIPS 186‑1. Kolejne rewizje (‑2, ‑3, ‑4) wprowadzały nowe algorytmy oraz zwiększały parametry bezpieczeństwa, odpowiadając na rosnące wymagania kryptografii i ewolucję mocy obliczeniowej. FIPS 186‑5 został przyjęty w 2022 roku i aktualnie obowiązuje jako obowiązujący standard w wielu agencjach rządowych USA oraz w sektorze prywatnym.

Zakres

Standard definiuje:

  • Wymagania dotyczÄ…ce RSA, DSA oraz ECDSA jako algorytmĂłw podpisu cyfrowego;
  • Procedury generowania kluczy prywatnych i publicznych;
  • Wymagania co do hash‑funkcji (np. SHA‑2, SHA‑3);
  • Formaty kodowania podpisĂłw (PKCS#1, ASN.1 DER);
  • Procedury testowe i zalecenia weryfikacyjne.

Algorytmy opisane w FIPS 186‑5

RSA

Standard określa minimalny rozmiar klucza 2048 bitów (z możliwością użycia 3072 i 4096 bitów) oraz wymaga zastosowania paddingu PKCS#1 v1.5 lub RSA‑PSS. Dopuszcza się użycie SHA‑2 lub SHA‑3 jako funkcji skrótu.

DSA

FIPS 186‑5 wprowadza trzy rozmiary parametrów: L = 2048 bit, 3072 bit oraz 4096 bit przy odpowiednich wartościach Q (256, 384, 512 bit). Dopuszcza się użycie SHA‑2 oraz SHA‑3 jako skrótu.

ECDSA

Standard przyjmuje krzywe NIST P‑256, P‑384 i P‑521 (znane także jako secp256r1, secp384r1, secp521r1). Dla każdego z nich wymagalny jest skrót o długości co najmniej równiej długości pola krzywej (np. SHA‑256 dla P‑256).

Parametry i rozmiary kluczy

Algorytm Minimalny rozmiar klucza Rekomendowane rozmiary Funkcje skrĂłtu
RSA 2048 bit 2048 – 4096 bit SHA‑256, SHA‑384, SHA‑512, SHA‑3‑256, SHA‑3‑384
DSA 2048 bit (L) / 256 bit (Q) 2048/256, 3072/384, 4096/512 SHA‑256, SHA‑384, SHA‑512, SHA‑3‑256, SHA‑3‑384
ECDSA P‑256 P‑256, P‑384, P‑521 SHA‑256, SHA‑384, SHA‑512, SHA‑3‑256, SHA‑3‑384, SHA‑3‑512

Zastosowania

FIPS 186‑5 jest szeroko stosowany w:

  • Systemach PKCS#7/CMS (Cryptographic Message Syntax) – do podpisywania e‑maili, dokumentĂłw i kodu;
  • Infrastrukturalnych systemach kluczy (PKI) – certyfikaty X.509.
  • Bezpiecznych protokoĹ‚ach komunikacyjnych, takich jak TLS (w trybach z uwierzytelnianiem podpisĂłw);
  • Systemach operacyjnych i oprogramowaniu rzÄ…dowym w USA, ktĂłre muszÄ… speĹ‚niać wymĂłg FIPS 140‑2 lub FIPS 140‑3.

Krytyka i kontrowersje

Choć FIPS 186‑5 zapewnia wysokie bezpieczeństwo, poddawany jest krytyce za:

  • UĹĽycie krzywych eliptycznych opracowanych przez NIST, ktĂłre niektĂłre Ĺ›rodowiska uznajÄ… za potencjalnie osĹ‚abione w porĂłwnaniu z krzywymi Curve25519 czy Ed448, opisanymi w RFC 7748 (choć te nie sÄ… formalnie częściÄ… standardu FIPS).
  • Skomplikowane wymogi dotyczÄ…ce testĂłw konformnoĹ›ci, ktĂłre podnoszÄ… koszty certyfikacji produktĂłw.

PowiÄ…zane standardy

Bibliografia

  1. NIST, Digital Signature Standard (DSS), FIPS 186‑5, 2022.
  2. R. Katz, Y. Lindell, Introduction to Modern Cryptography, 2‑ed., CRC Press, 2020.
  3. J. Barker, PKCS #1: RSA Cryptography Standard, RFC 8017, 2017.