fips_180-2
FIPS 180‑2 (ang. Federal Information Processing Standard Publication 180‑2) jest amerykańskim standardem federalnym określającym rodzinę kryptograficznych funkcji skrótu znanych jako SHA‑1 oraz SHA‑2. Standard został opracowany przez National Institute of Standards and Technology (NIST) i opublikowany w 2002 roku jako zastępstwo wcześniejszego FIPS 180‑1.
Historia
W latach 1993‑1995 NIST wydał FIPS 180‑1, definiujący jedną funkcję skrótu – SHA‑1. W miarę rosnących wymagań bezpieczeństwa oraz pojawienia się nowych ataków kryptograficznych, w 2002 r. opracowano FIPS 180‑2, rozszerzający specyfikację o dodatkowe algorytmy o zwiększonej długości wyjścia (256, 384 i 512 bitów) oraz ulepszoną strukturę funkcji.
Zakres i struktura standardu
Standard definiuje następujące algorytmy:
- SHA‑1 – 160‑bitowy skrót, zgodny z FIPS 180‑1.
- SHA‑224 – 224‑bitowy skrót (odmiana SHA‑2).
- SHA‑256 – 256‑bitowy skrót (podstawowy algorytm rodziny SHA‑2).
- SHA‑384 – 384‑bitowy skrót (odmiana SHA‑2).
- SHA‑512 – 512‑bitowy skrót (podstawowy algorytm rodziny SHA‑2).
Wszystkie algorytmy opierają się na konstrukcji Merkle‑Damgård oraz operacjach bitowych i arytmetycznych na 32‑ lub 64‑bitowych słowach.
Kluczowe cechy techniczne
- Rozmiar bloku
- 512 bitów (SHA‑1, SHA‑224, SHA‑256) lub 1024 bitów (SHA‑384, SHA‑512).
- Długość wyjścia
- 160, 224, 256, 384 lub 512 bitów, w zależności od wybranego wariantu.
- Algorytm przetwarzania
- Seria 64 (dla 32‑bitowych wariantów) lub 80 (dla 64‑bitowych) rund operacji mieszanek (ang. compression function), które obejmują rotacje, przesunięcia i operacje logiczne (AND, OR, XOR).
- Wymóg wstępnego wypełnienia
- Wiadomość jest dopasowywana do wielokrotności rozmiaru bloku poprzez dopisanie bitu „1”, a następnie odpowiedniej liczby zer oraz 64‑bitowej lub 128‑bitowej reprezentacji długości oryginalnej wiadomości.
Zastosowania
FIPS 180‑2 jest wykorzystywany w licznych protokołach i systemach:
- Podpisy cyfrowe – jako część algorytmów DSA i RSA.
- Protokół TLS/SSL – do weryfikacji integralności danych.
- Systemy operacyjne i oprogramowanie – w funkcjach kontroli integralności plików (np. Windows lub Linux).
- Bezpieczne przechowywanie haseł – w połączeniu z technikami solenia (ang. salting).
- Standardy rządowe USA – wszelkie aplikacje wymagające zgodności z FIPS.
Bezpieczeństwo i krytyka
W kolejnych latach po publikacji FIPS 180‑2 odkryto słabości w SHA‑1. W 2005 r. zaprezentowano pierwsze praktyczne kolizje, a w 2017 r. przeprowadzono pełnowymiarowy atak kolizyjny SHAttered. Z tego powodu NIST zaleca stopniowe wycofywanie SHA‑1 z nowych systemów i migrację do SHA‑2 lub nowszych rodzin, takich jak SHA‑3 (FIPS 202).
PowiÄ…zane standardy
- FIPS 180‑1 – poprzednik, definiujący wyłącznie SHA‑1.
- FIPS 180‑4 – najnowsza wersja, opublikowana w 2015 r., zawierająca korekty techniczne i odniesienia do SHA‑3.
- FIPS 186‑4 – standard dotyczący podpisów cyfrowych, w którym SHA‑2 jest używany jako funkcja skrótu.