Powrót do bloga

ML-KEM i ML-DSA po ludzku

NetSenX Team3 min czytania
post-quantumpqcml-kemml-dsatls

ML-KEM i ML-DSA to dwa algorytmy postkwantowe, z którymi większość organizacji zetknie się najpierw. ML-KEM (FIPS 203) pozwala dwóm stronom uzgodnić tajny klucz przez otwartą sieć, czyli wykonuje zadanie, które dziś pełnią transport klucza RSA i Diffie-Hellman na krzywych eliptycznych. ML-DSA (FIPS 204) podpisuje dane i weryfikuje podpisy, jak dziś podpisy RSA i ECDSA. NIST opublikował oba standardy 13 sierpnia 2024 r., razem z FIPS 205 (SLH-DSA), schematem podpisu opartym na funkcjach skrótu, utrzymywanym jako ostrożna alternatywa. Oba opierają się na problemach kratowych, których nie rozwiązuje wydajnie żaden znany algorytm kwantowy, i dlatego zastępują algorytmy klucza publicznego, które złamałby algorytm Shora.

ML-KEM: uzgadnianie klucza

Wyobraź sobie kłódkę, którą każdy może zamknąć, ale otworzyć możesz tylko Ty. Publikujesz otwartą kłódkę (publiczny „klucz enkapsulacji”). Druga strona losuje nowy sekret, zamyka go Twoją kłódką i odsyła wynik („szyfrogram”). Tylko Ty możesz go otworzyć i od tej chwili obie strony mają ten sam sekret, którym kluczuje się potem szybkie szyfrowanie symetryczne, na przykład AES. To mechanizm enkapsulacji klucza, w skrócie KEM. „ML” oznacza kratę modułową (module lattice), strukturę matematyczną, na której jest zbudowany; wywodzi się ze zgłoszenia CRYSTALS-Kyber.

ML-KEM ma trzy rozmiary: ML-KEM-512, ML-KEM-768 i ML-KEM-1024. Typowym wyborem jest ML-KEM-768; CNSA 2.0 amerykańskiej NSA wymaga ML-KEM-1024 dla systemów bezpieczeństwa narodowego USA. Jest szybki, często porównywalny z krzywymi eliptycznymi, ale jego komunikaty są znacznie większe: przy ML-KEM-768 klucz publiczny ma 1184 bajty, a szyfrogram 1088 bajtów, wobec 32 bajtów udziału klucza X25519.

ML-DSA: podpisywanie

Podpis cyfrowy dowodzi, kto wytworzył dane i że od tego czasu się nie zmieniły: certyfikaty, aktualizacje oprogramowania, dokumenty, dowód tożsamości serwera w handshake'u TLS. ML-DSA robi to za pomocą matematyki krat zamiast problemu faktoryzacji czy logarytmu dyskretnego, na których opierają się RSA i ECDSA; wywodzi się z CRYSTALS-Dilithium. Występuje jako ML-DSA-44, ML-DSA-65 i ML-DSA-87. Podpisy są duże: podpis ML-DSA-65 ma 3309 bajtów, a jego klucz publiczny 1952 bajty, podczas gdy podpis Ed25519 ma 64 bajty. Łańcuch certyfikatów z kilkoma takimi podpisami dokłada kilobajty do każdego handshake'u, co jest jednym z powodów, dla których podpisy postkwantowe przychodzą później niż postkwantowa wymiana kluczy.

Wymiana hybrydowa: X25519MLKEM768

Większość ruchu nie przechodzi od razu na samo ML-KEM. Łączy je z wymianą klasyczną: w TLS 1.3 grupa hybrydowa X25519MLKEM768 wykonuje w jednym handshake'u wymianę X25519 i enkapsulację ML-KEM-768, a klucz sesji wyprowadza z obu. Gdyby w ML-KEM znaleziono słabość, sesję nadal chroni X25519; gdyby komputer kwantowy złamał X25519, nadal chroni ją ML-KEM. Obecne przeglądarki już oferują tę grupę, a wiele dużych serwisów ją akceptuje, więc spora część ruchu WWW Twoich użytkowników może już korzystać z postkwantowej wymiany kluczy, choć nikt tego nie planował.

Dlaczego rozmiar ma znaczenie w Twojej sieci

Pierwszy komunikat handshake'u klienta (ClientHello) rośnie z hybrydowym udziałem klucza o ponad kilobajt i często nie mieści się już w jednym pakiecie sieciowym. Niektóre stare zapory, load balancery i urządzenia inspekcji źle obsługują ClientHello podzielone na pakiety i odrzucają albo resetują połączenie. To najczęstsza praktyczna niespodzianka migracji postkwantowej: kryptografia działa, urządzenie pośredniczące nie. Przetestuj wymianę hybrydową na każdej istotnej ścieżce, także przez koncentratory VPN i proxy z inspekcją TLS, zanim zaczniesz jej wymagać.

Co z tym zrobić

  • Szukaj nazw „ML-KEM”, „X25519MLKEM768” i „ML-DSA” w dokumentacji dostawców i odpowiedziach przetargowych; to te nazwy mają znaczenie.
  • Włącz wymianę hybrydową tam, gdzie Twoje biblioteki TLS i wersje SSH już ją obsługują, i sprawdź w ruchu sieciowym, czy połączenia naprawdę z niej korzystają.
  • Ustal, gdzie Twój ruch wciąż używa wyłącznie klasycznej wymiany kluczy. Ta lista, uszeregowana według tego, jak długo dane muszą pozostać tajne, wyznacza kolejność migracji; przewodnik po kryptografii postkwantowej wyjaśnia, jak ją uszeregować.

Tę ostatnią listę NetSenX pokazuje z sieci. NQCI, inwentaryzacja kryptografii NetSenX (w wersji zapoznawczej), jest aktywna od planu Pro z czujnikiem przechwytywania pakietów na agencie Linux albo czujnikiem na porcie SPAN lub TAP i pokazuje, które połączenia używają wymiany kluczy podatnej na komputery kwantowe, a które hybrydowej postkwantowej. Sama nie zmienia żadnej kryptografii.

Źródła


Autor: zespół NetSenX, TriStiX S.L. Pytania: info@netsenx.com.

NetSenX Team

TriStiX S.L.