0Pricing
Cryptology Academy · Lekcja

ML-DSA (FIPS 204) i SLH-DSA (FIPS 205)

Proszę porównać kratowe podpisy CRYSTALS-Dilithium z opartymi na funkcjach skrótu podpisami SPHINCS+ oraz poznać kompromisy między nimi.

ML-DSA (FIPS 204) i SLH-DSA (FIPS 205) to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Pochodzenie ML-DSA

ML-DSA (oparty na kratach modułowych algorytm podpisu cyfrowego), standaryzowany jako FIPS 204, wywodzi się z CRYSTALS-Dilithium. Dilithium został zaprojektowany przez Ducasa, Kiltza, Lepointa, Lyubashevsky'ego, Schwabego, Seilera i Stehlego, a następnie zgłoszony do NIST w 2017 roku. Wykorzystuje schemat Fiat-Shamir z odrzucaniem zastosowany do Module-LWE, tworząc praktyczny schemat podpisu z silnymi dowodami bezpieczeństwa.

Fiat-Shamir z odrzucaniem

Klasyczne przekształcenie Fiat-Shamira zamienia interaktywne protokoły identyfikacji w podpisy. W przypadku schematów kratowych bezpośrednie zastosowanie ujawnia informacje o kluczu tajnym poprzez wektor odpowiedzi. Technika z odrzucaniem opracowana przez Lyubashevsky'ego dodaje próbkowanie z odrzuceniem: podpisujący sprawdza, czy odpowiedź ujawniłaby informacje, a jeśli tak, odrzuca ją i ponawia próbę. Zwiększa to nieznacznie koszt podpisywania, ale ma kluczowe znaczenie dla bezpieczeństwa.

Proces podpisywania ML-DSA

Aby utworzyć podpis, ML-DSA losuje wektor maskujący y z rozkładu jednostajnego, oblicza zobowiązanie w = Ay, haszuje parę (message, w), aby uzyskać wielomian wyzwania c, i oblicza odpowiedź z = y + cs. Próbkowanie z odrzuceniem sprawdza, czy z ujawnia informacje o s. Jeśli sprawdzenie się powiedzie, podpis ma postać (c, z) wraz ze wskazówką ułatwiającą wydajną weryfikację. W przeciwnym razie proces jest powtarzany.

Zestawy parametrów ML-DSA

ML-DSA definiuje trzy zestawy parametrów: ML-DSA-44 (2. poziom bezpieczeństwa NIST, ~128-bitowy), ML-DSA-65 (3. poziom, ~192-bitowy) oraz ML-DSA-87 (5. poziom, ~256-bitowy). Liczby odnoszą się do rang modułów w schemacie. Rozmiary kluczy publicznych wynoszą odpowiednio 1312, 1952 i 2592 bajty. Podpis ML-DSA-65 ma rozmiar 3293 bajtów, w porównaniu z 64 bajtami dla Ed25519 przy 128-bitowym poziomie bezpieczeństwa.

Kompromis dotyczący rozmiaru podpisu ML-DSA

Najistotniejszą wadą ML-DSA w porównaniu z ECDSA lub EdDSA jest rozmiar podpisu. Podpisy ML-DSA-65 mają 3293 bajty, podczas gdy podpisy Ed25519 mają 64 bajty. W protokołach, które przesyłają wiele podpisów (łańcuchy certyfikatów TLS, podpisywanie kodu), zwiększa to zapotrzebowanie na przepustowość. Jednak podpisywanie i weryfikacja ML-DSA są bardzo szybkie (porównywalne z ECDSA lub szybsze), dlatego kompromis dotyczy przede wszystkim kosztu komunikacji.

Pochodzenie i konstrukcja SLH-DSA

SLH-DSA (bezwstanowy algorytm podpisu cyfrowego oparty na funkcjach skrótu), standaryzowany jako FIPS 205, wywodzi się z SPHINCS+. W przeciwieństwie do schematów kratowych bezpieczeństwo SLH-DSA zależy wyłącznie od odporności bazowej funkcji skrótu na kolizje i znalezienie drugiego obrazu wstępnego (SHA-256 lub SHAKE-256). Dzięki temu SLH-DSA jest niezwykle konserwatywny: pozostaje bezpieczny nawet w przypadku złamania założeń dotyczących krat.

Jednorazowe podpisy WOTS+

SLH-DSA opiera się na WOTS+ (jednorazowym podpisie Winternitza), schemacie opartym na funkcjach skrótu, w którym klucz prywatny jest zbiorem losowych ciągów, a klucz publiczny powstaje przez wielokrotne haszowanie każdego z nich. Podpisywanie polega na częściowym haszowaniu zależnym od bitów wiadomości. Z jednej pary kluczy WOTS+ można bezpiecznie skorzystać tylko raz; dwukrotne użycie ujawnia informacje. SLH-DSA umożliwia wielokrotne podpisywanie na bazie WOTS+ dzięki wykorzystaniu drzew.

Drzewa Merkle'a do wielokrotnego podpisywania

SLH-DSA wykorzystuje hiperdrzewo, czyli drzewo drzew Merkle'a. Każdy liść jest kluczem publicznym jednej instancji WOTS+. Korzeń stanowi klucz publiczny SLH-DSA. Podpis składa się z podpisu WOTS+ wiadomości oraz ścieżki uwierzytelniania prowadzącej od liścia do korzenia. Struktura hiperdrzewa umożliwia tworzenie wielu podpisów z jednej pary kluczy dzięki wykorzystaniu różnych liści WOTS+.

Zestawy parametrów SLH-DSA

SLH-DSA ma 12 zestawów parametrów łączących funkcję skrótu (SHA-256 lub SHAKE-256), poziom bezpieczeństwa (128s/128f, 192s/192f, 256s/256f) oraz optymalizację (s = małe podpisy, f = szybkie podpisywanie). Wariant 128f ma podpisy o rozmiarze 7856 bajtów i zapewnia szybkie podpisywanie, natomiast 128s ma podpisy o takim samym rozmiarze, ale działa wolniej. Wszystkie podpisy są znacznie większe niż w ML-DSA, ale opierają się na najsilniejszym możliwym założeniu bezpieczeństwa.

Kiedy wybrać SLH-DSA zamiast ML-DSA

ML-DSA jest preferowany, gdy istotne są wydajność i przepustowość oraz można zaufać założeniom dotyczącym krat. SLH-DSA jest preferowany w niezwykle konserwatywnych wdrożeniach, w których ufa się wyłącznie bezpieczeństwu funkcji skrótu, lub jako zabezpieczenie na przyszłość przed ewentualnym złamaniem założeń dotyczących krat. Urzędy certyfikacji i systemy rządowe, które podpisują rzadko, ale wymagają maksymalnej gwarancji bezpieczeństwa, mogą preferować SLH-DSA, podczas gdy serwery TLS podpisujące często będą preferować ML-DSA.

FN-DSA (FALCON): kolejny kratowy schemat podpisu

FN-DSA (FIPS 206, oparty na FALCON) zapewnia mniejsze podpisy niż ML-DSA (897 bajtów dla FALCON-512 przy 128-bitowym poziomie bezpieczeństwa), wykorzystując kraty NTRU i próbkowanie gaussowskie. FALCON wymaga jednak starannej implementacji ze stałym czasem wykonania, aby uniknąć ataków kanałami bocznymi ze strony próbnika gaussowskiego. Oczekuje się, że FIPS 206 zostanie ustandaryzowany po FIPS 203–205 i zapewni wysokowydajną opcję dla środowisk o ograniczonych zasobach.

Quiz dotyczący ML-DSA i SLH-DSA

Jaka jest główna przewaga bezpieczeństwa SLH-DSA nad ML-DSA?

Podsumowanie ML-DSA i SLH-DSA

ML-DSA (FIPS 204) wykorzystuje schemat Fiat-Shamir z odrzucaniem oparty na Module-LWE i zapewnia szybkie podpisywanie przy podpisach o rozmiarze 3 KB (przy 192-bitowym poziomie bezpieczeństwa). SLH-DSA (FIPS 205) wykorzystuje oparte na funkcjach skrótu drzewa Merkle'a (WOTS+) i opiera się wyłącznie na bezpieczeństwie funkcji skrótu, ale generuje podpisy o rozmiarze 7–50 KB. ML-DSA jest preferowany w zastosowaniach, w których kluczowa jest wydajność, a SLH-DSA — gdy najważniejsza jest maksymalna ostrożność. FN-DSA (FALCON, FIPS 206) doda kratową opcję z mniejszymi podpisami.

Często zadawane pytania

Czy lekcja „ML-DSA (FIPS 204) i SLH-DSA (FIPS 205)” jest bezpłatna?

Tak — pełny tekst „ML-DSA (FIPS 204) i SLH-DSA (FIPS 205)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „ML-DSA (FIPS 204) i SLH-DSA (FIPS 205)”?

Proszę porównać kratowe podpisy CRYSTALS-Dilithium z opartymi na funkcjach skrótu podpisami SPHINCS+ oraz poznać kompromisy między nimi. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „ML-DSA (FIPS 204) i SLH-DSA (FIPS 205)”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Konkurs NIST PQC: przebieg i kryteria
  2. ML-KEM (FIPS 203): standaryzacja CRYSTALS-Kyber
  3. ML-DSA (FIPS 204) i SLH-DSA (FIPS 205)
  4. Planowanie migracji do standardów postkwantowych
← Powrót do Cryptology Academy