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
- FIPS 186‑4 – poprzednia wersja standardu podpisu cyfrowego.
- FIPS 140‑2 i FIPS 140‑3 – standardy zabezpieczeń modułów kryptograficznych.
- PKCS#1 – specyfikacja RSA Cryptography Standard.
- IEEE 1363 – kolejny zestaw norm opisujących algorytmy kryptograficzne.
Bibliografia
- NIST, Digital Signature Standard (DSS), FIPS 186‑5, 2022.
- R. Katz, Y. Lindell, Introduction to Modern Cryptography, 2‑ed., CRC Press, 2020.
- J. Barker, PKCS #1: RSA Cryptography Standard, RFC 8017, 2017.