FIPS 186‑3
FIPS 186‑3 (ang. Federal Information Processing Standard 186‑3) jest amerykańskim standardem federalnym dotyczącym algorytmów podpisu cyfrowego. Został opracowany przez National Institute of Standards and Technology (NIST) i opublikowany w 2009 roku. Standard opisuje specyfikację algorytmu podpisu cyfrowego DSA (Digital Signature Algorithm) oraz zalecenia dotyczące użycia funkcji skrótu z rodziny SHA‑1 i SHA‑2.
Historia
FIPS 186‑3 jest następcą FIPS 186‑2, który wprowadził DSA jako oficjalny algorytm podpisu cyfrowego w Stanach Zjednoczonych. Wraz ze wzrostem wymagań bezpieczeństwa i pojawieniem się słabych punktów w SHA‑1, NIST opracował nową wersję standardu, aby umożliwić użycie silniejszych funkcji skrótu oraz większych parametrów klucza.
Zakres i cele
- Określenie wymagań formalnych dla implementacji DSA oraz powiązanych funkcji.
- Definicja parametrów klucza (rozmiary p, q, g) oraz dopuszczalnych długości klucza: 1024, 2048 i 3072 bity.
- Ustanowienie dopuszczalnych funkcji skrótu: SHA‑1 (dla 1024‑bitowych kluczy), SHA‑224, SHA‑256, SHA‑384 i SHA‑512 (dla kluczy 2048 i 3072 bitowych).
- Wymagania co do generatora liczb losowych i testów kryptograficznych.
- Procedury generowania, weryfikacji i odwoływania podpisów cyfrowych.
Struktura standardu
Standard składa się z kilku sekcji:
- Wprowadzenie – opisuje cel dokumentu oraz odniesienia do pokrewnych standardów, takich jak FIPS 180‑4 (specyfikacja rodziny SHA) i FIPS 197 (AES).
- Definicje i notacje – wyjaśnia używane pojęcia kryptograficzne, np. modular exponentiation, random prime generation.
- Parametry algorytmu DSA – określa dopuszczalne rozmiary i metody generowania liczb pierwszych p i q oraz generatora g.
- Procedury podpisu i weryfikacji – szczegółowo opisuje kroki tworzenia podpisu (generowanie losowego k, obliczanie r i s) oraz procesu weryfikacji.
- Funkcje skrótu – podaje szczegółowe wymagania wobec SHA‑1 i SHA‑2 w kontekście DSA.
- Bezpieczeństwo i zalecenia operacyjne – omawia ryzyka, takie jak użycie nieodpowiednio dużego k, oraz rekomendacje dotyczące wyboru parametrów.
Powiązane standardy
FIPS 186‑3 współdziała z licznymi innymi standardami federalnymi i międzynarodowymi:
- FIPS 140‑2 – standard zabezpieczeń kryptograficznych modułów.
- SP 800‑57 – wytyczne dotyczące zarządzania kluczami.
- RFC 6979 – metoda deterministycznego generowania liczby k w DSA (nie jest częścią FIPS, ale jest zalecana w połączeniu z FIPS 186‑3).
- PKCS 1 – standard opisujący RSA, często używany równolegle z DSA w środowiskach hybrydowych.
Zastosowania
FIPS 186‑3 jest wykorzystywany w wielu systemach, w tym:
- Infrastruktura klucza publicznego (PKI) w agencjach rządowych USA.
- Protokoły komunikacyjne, np. TLS (w wersjach ze wsparciem dla DSA).
- Systemy podpisu elektronicznego w administracji publicznej.
- Oprogramowanie kryptograficzne spełniające wymóg FIPS 140‑2 (np. OpenSSL, CryptoAPI).
Ograniczenia i krytyka
Chociaż FIPS 186‑3 wprowadza silniejsze funkcje skrótu, DSA wciąż jest uważany za mniej efektywny niż RSA w niektórych scenariuszach (np. weryfikacja podpisu). Dlatego w 2013 roku NIST opublikował FIPS 186‑4, który rozszerza standard o dodatkowe algorytmy (np. ECDSA) oraz rekomenduje użycie wyłącznie rodziny SHA‑2.
Patrz także
Źródła: dokument FIPS 186‑3 opublikowany przez NIST, materiały szkoleniowe rządu USA oraz publikacje techniczne dostępne w ramach programu Special Publication 800.