Kryptografia II stopień
Od definicji bezpieczeństwa do konstrukcji, redukcji i publikacji naukowych.
W15. Kryptografia kwantowa i postkwantowa
QKD używa kanału kwantowego do uzgadniania materiału kluczowego, ale wymaga uwierzytelnionego kanału klasycznego. Nie rozwiązuje samo problemu tożsamości ani ochrony urządzeń końcowych.
- QKD
- Quantum Key Distribution. Kwantowa dystrybucja klucza. To inna technologia niż kryptografia postkwantowa.
W idei BB84 nadawca koduje losowe bity w losowo wybieranych bazach, a odbiorca mierzy w swoich losowych bazach. Publicznie porównują bazy i zachowują pozycje, w których były zgodne. Próbka służy do oszacowania błędów. Następnie potrzebne są uzgadnianie informacji i wzmacnianie prywatności. Informacja ujawniona przy korekcji musi wejść do rachunku końcowego klucza. Nie wystarczy powiedzieć, że podsłuch „zawsze zostanie wykryty”. Twierdzenie zależy od oszacowań, modelu urządzeń i skończonej liczby próbek.
Kryptografia postkwantowa działa na zwykłych komputerach i uwzględnia przeciwnika kwantowego. Algorytm Shora podważa faktoryzację i DL, także na krzywych. Grover przyspiesza ogólne przeszukiwanie kwadratowo. Koszty realnego ataku nie sprowadzają się jednak do mechanicznego dzielenia każdej tabeli parametrów przez dwa.
| Mechanizm | Funkcja | Dokument |
|---|---|---|
| ML-KEM | Enkapsulacja klucza | FIPS 203 |
| ML-DSA | Podpis oparty na modułowych kratach | FIPS 204 |
| SLH-DSA | Bezstanowy podpis oparty na haszach | FIPS 205 |
- ML-KEM
- Module-Lattice-Based Key-Encapsulation Mechanism. Mechanizm enkapsulacji klucza oparty na kratach modułowych. ML oznacza tu kraty modułowe, a nie uczenie maszynowe.
- ML-DSA
- Module-Lattice-Based Digital Signature Algorithm. Algorytm podpisu cyfrowego oparty na kratach modułowych.
- SLH-DSA
- Stateless Hash-Based Digital Signature Algorithm. Bezstanowy algorytm podpisu cyfrowego oparty na funkcjach haszujących.
Intuicja LWE
- LWE
- Learning With Errors. Problem uczenia z błędami, związany z równaniami zaburzonymi szumem.
LWE rozwijamy jako Learning With Errors, czyli uczenie się z błędami. Publiczna macierz opisuje współczynniki wielu równań, jest kolumną tajnych niewiadomych, a kolumną niewielkich losowych błędów. Obserwujemy , gdzie modulo . Bez błędu odpowiednio wiele niezależnych równań pozwala odzyskać przez algebrę liniową. Z błędem powstaje problem zależny od parametrów i rozkładów. To intuicja, nie specyfikacja ML-KEM. Dokładne wymiary i mały rachunek podajemy poniżej.
Klasyczny dowód cofający stan przeciwnika nie przenosi się automatycznie do kwantowej wyroczni losowej. Nie można swobodnie kopiować nieznanego stanu kwantowego.
Zadanie przekrojowe: wybierz standard, wypisz typy i założenie. Oddziel KEM od szyfrowania danych i podpisu. Wskaż, co można zachować podczas migracji.
Źródło historycznego protokołu: Bennett–Brassard, BB84. Standardy w tabeli opisują konkretne algorytmy postkwantowe, nie realizację QKD.
KEM nie jest podpisem ani szyfrem pliku
KEM, czyli mechanizm enkapsulacji klucza, ma trzy algorytmy. Odbiorca tworzy parę . Nadawca wykonuje i wysyła . Odbiorca wykonuje . Dla uczciwego szyfrogramu klucze powinny być równe, z błędem określonym przez konstrukcję. Dane użytkownika szyfrujemy osobno przez AEAD, po odpowiednim wyprowadzeniu klucza i związaniu kontekstu.
ML-KEM nie uwierzytelnia sam nadawcy ani źródła klucza publicznego. Zastąpienie publicznego klucza napastnika nadal jest możliwe bez ochrony protokołu nadrzędnego. IND-CCA modeluje odporność klucza wyzwania na dozwolone zapytania o inne szyfrogramy. Nie oznacza „wszystkie problemy bezpiecznego połączenia zostały rozwiązane”.
Jak niewielki błąd może chronić, ale nie niszczyć wyniku
LWE (Learning With Errors) dotyczy równań liniowych z niewielkim losowym błędem. W uproszczonym szyfrowaniu pracujemy modulo . Niech publiczna macierz ma wierszy i kolumn. Sekret ma współrzędnych, wektor błędu ma , a publiczne ma . Symbole oznaczają tu kolumny. Transpozycja zamienia kolumnę w wiersz i odwrotnie. Iloczyn wiersza i kolumny jest sumą iloczynów odpowiadających sobie współrzędnych.
Szyfrując bit , losujemy , i z rozkładów małych wartości przewidzianych przez konstrukcję. „Mała” dotyczy reprezentanta całkowitego wokół zera. Symbol oznacza zaokrąglenie w dół. Bezpieczny dobór rozkładów i wymiarów wymaga osobnej analizy. Poniższe równania ilustrują poprawność. Tworzymy wektor o współrzędnych i skalar :
Odbiorca odejmuje . Znosi się duży składnik liniowy i pozostaje zakodowany bit z błędem:
Dekodujemy według bliższego środka, 0 albo , z odległością liczoną cyklicznie modulo . Dla parzystego błąd o wartości bezwzględnej mniejszej niż wystarcza do rozdzielenia tych dwóch obszarów. Dla nieparzystego modułu uwzględniamy zaokrąglenia. Za mały błąd może osłabić założenie, za duży może powodować błędy deszyfrowania. Parametry dobiera się wspólnie, nie na podstawie samej poprawności kilku przykładów.
Policzmy mały przykład, który nie zapewnia bezpieczeństwa: , , , oraz
Dostajemy i . Pozostały błąd wynosi . Ten sam rachunek sprawdza oba możliwe bity:
| Bit | modulo 23 | modulo 23 | Bliższy środek |
|---|---|---|---|
| 0 | 5 | 22 | 0, odległość cykliczna 1 |
| 1 | 16 | 10 | 11, odległość 1 |
Liczba 22 leży blisko zera na okręgu reszt modulo 23. Zwykła odległość na prostej dawałaby tu błędną intuicję. Sprawdzenie dwóch bitów pokazuje poprawność tego przykładu, nie trudność odtworzenia małego sekretu.
ML-KEM używa struktur modułowych nad pierścieniem wielomianów oraz kompresji. Operacje NTT przyspieszają mnożenie wielomianów. Pełny standard zawiera również transformację do KEM, sprawdzenia wejść i regułę niejawnego odrzucenia niepoprawnego szyfrogramu. Powyższy rachunek wyjaśnia znoszenie składników, ale nie jest implementacją ML-KEM. Specyfikacja: FIPS 203.
- NTT
- Number-Theoretic Transform. Transformata teorioliczbowa.
Dwie drogi do podpisu postkwantowego
ML-DSA: relacja liniowa jest sprawdzana w strukturze modułowej. Odpowiedź musi mieć właściwe ograniczenia normy. Odrzucanie niektórych kandydatów podczas podpisywania kontroluje rozkład odpowiedzi, aby nie zdradzał sekretu. Nie wolno „przyspieszyć” algorytmu przez usunięcie odrzucania. To nie jest klasyczny Schnorr z podmienioną grupą. FIPS 204 definiuje również kodowanie, zaokrąglanie i informacje pomocnicze.
SLH-DSA: bezpieczeństwo opiera się na funkcjach haszujących. Podpisy jednorazowe i podpisy dla ograniczonej liczby użyć są uwierzytelniane przez strukturę drzew. Ścieżka uwierzytelnienia pozwala przejść od danego liścia do publicznego korzenia. „Bezstanowy” nie oznacza, że pojedynczego klucza jednorazowego można bez ograniczeń używać ponownie. Cała konstrukcja kontroluje wybór i użycie jej składowych. Ceną są inne rozmiary podpisu i koszty niż w rodzinie kratowej. FIPS 205 precyzuje ten podział.
Migracja to także model czasu
Dane o długim okresie poufności mogą być przechwycone dzisiaj i analizowane w przyszłości. Dlatego termin wdrożenia zależy nie tylko od przewidywanej dostępności komputera kwantowego, lecz także od czasu ochrony danych i kosztu zmiany infrastruktury. Dobór profilu hybrydowego wymaga bezpiecznego łączenia sekretów i ochrony negocjacji przed wymuszeniem słabszej wersji. Samo doklejenie dwóch szyfrogramów nie tworzy dowodu bezpieczeństwa. Klasyczne pairingi, BLS i Schnorr z tego kursu nie są postkwantowe.
W16. Szyfrowanie homomorficzne: suma i iloczyn bez klucza
Interfejs szyfrowania z obliczaniem
Do znanego interfejsu szyfrowania dodajemy algorytm oceny funkcji: . W ogólnym wariancie KeyGen zwraca , gdzie jest jawnym kluczem pomocniczym do obliczeń. W prostych przykładach poniżej osobny nie jest potrzebny, więc Eval korzysta z i parametrów. W innych systemach ten dodatkowy materiał może być istotny.
Właściciel wykonuje Enc ze swoim kluczem publicznym. Wykonawca otrzymuje szyfrogramy i opis dozwolonej funkcji, wywołuje Eval i zwraca szyfrogram wyniku. Dopiero właściciel uruchamia Dec z . Trzeba określić typy szyfrogramów wejściowych i wynikowych oraz klasę dopuszczalnych funkcji. Dodatkowe Eval nie oznacza możliwości wykonania dowolnego programu bez ograniczeń.
Cel. Właściciel szyfruje liczby. Wykonawca oblicza dopuszczalną funkcję na szyfrogramach. Właściciel odczytuje wynik, nie wykonując sam całej funkcji na jawnych danych. Nie chodzi tu o uczenie maszynowe, lecz o podstawowy kontrakt obliczeniowy:
Równość obowiązuje w określonej przestrzeni wiadomości i dla dozwolonej klasy obwodów. W systemach przybliżonych zastępuje ją określone ograniczenie błędu. Poufność wejść nie zmusza wykonawcy do policzenia właściwej funkcji. Szyfrogram zera może być poprawnym szyfrogramem, ale błędną odpowiedzią.
Najpierw dodawanie: ElGamal z wiadomością w wykładniku
Zacznijmy od generatora grupy rzędu , sekretu i klucza publicznego .
ElGamal z wiadomością w wykładniku: algorytmy i przepływ
Ustalamy mały zakres odczytu B. Liczby dodajemy modulo q, ale interpretacja całkowita wymaga braku zawinięcia i wyniku w B. Publiczny klucz K=g^k nie jest tajnym skalarem k.
Rząd q jest liczbą pierwszą. Ustal kodowania i działania grupy. Dodatkowe funkcje wskazano przy konstrukcji.
Jednoznacznie ograniczony logarytm, nie efektywny odczyt dowolnej liczby.
ElGamal z wiadomością w wykładniku
Właściciel danych:
Wykonawca:
- Właściciel danych, Enc: dwa wejścia:
- Właściciel danych → Wykonawca: Dwa szyfrogramy
- Wykonawca, EvalAdd:
- Wykonawca → Właściciel danych: Szyfrogram sumy
- Właściciel danych, Dec: usuń maskę i odczytaj: Znajdź wynik w ograniczonym zakresie B.
Dla małej liczby całkowitej i świeżego skalaru szyfrogram to . Właściciel usuwa maskę przez . Wynikiem jest na razie obraz wiadomości w grupie, nie sama liczba .
Gdy pomnożymy po składowych dwa szyfrogramy dla i losowości , otrzymamy:
Mnożenie elementów grupy dodaje wiadomości w wykładniku. W punkcie krzywej ta sama operacja będzie dodawaniem. Nie mylmy działania na szyfrogramach z działaniem na ukrytych liczbach.
W zapisie addytywnym niech . Dla małej liczby całkowitej i świeżego skalaru szyfrujemy:
Posiadacz oblicza . Aby odzyskać liczbę , trzeba jeszcze rozwiązać logarytm dyskretny w ograniczonym, małym zakresie. To nie jest metoda odczytywania dowolnego skalaru w dużej grupie. Wykonawca dodaje składowe szyfrogramów i otrzymuje szyfrogram sumy. Mnożenie szyfrogramu przez jawną stałą również jest możliwe. Nie jest tym samym co mnożenie dwóch zaszyfrowanych liczb.
Pairing dodaje jeden poziom mnożenia
Używamy dwóch kluczy , . Szyfrogram należy do , a do .
Dwa poziomy obliczeń homomorficznych: algorytmy i przepływ
Instancja dydaktyczna z tego rozdziału. Setup wybiera pairing typu 3, generatory P₁,P₂ i ograniczony zakres odczytu. KeyGen losuje niezależne niezerowe k₁,k₂ i publikuje K_i=k_i·P_i. Indeksy Enc oznaczają grupę źródłową, nie liczbę rund.
Wynik z jest liczbą w małym zakresie, nie dowolnym logarytmem dyskretnym.
Dwa poziomy obliczeń homomorficznych
Właściciel danych:
Wykonawca:
- Właściciel danych, Enc₁ i Enc₂:
- Właściciel danych → Wykonawca: Różne grupy źródłowe
- Wykonawca, EvalMul: cztery pairingi:
- Wykonawca → Właściciel danych: Wynik w grupie docelowej
- Właściciel danych, Dec: zdejmij maski:
- Właściciel danych, Dec: ograniczony odczyt: Szukaj z w ustalonym małym zakresie.
Wykonawca tworzy cztery elementy grupy docelowej:
Właściciel znający oba skalary usuwa maski:
Typy argumentów są istotne: . Nie obliczamy , ponieważ nie jest elementem . Komponentowe mnożenie dwóch krotek docelowych dodaje ich ukryte wiadomości. Możemy więc liczyć wiele iloczynów pierwszego poziomu i sumować je, np. . Nie możemy dowolnie mnożyć wyników takich iloczynów.
MCL WebAssembly, BLS12-381. Jedna warstwa iloczynów. Odczyt przez ograniczony logarytm dyskretny.
| Etap | Wynik |
|---|---|
| Jawny punkt odniesienia | 2 |
| Odczyt szyfrogramu | Jeszcze nie wykonano |
| Testy typów | Jeszcze nie wykonano |
Demonstrator wykonuje powyższą algebrę w lokalnym MCL WebAssembly, BLS12-381. Funkcja wykonawcy otrzymuje tylko szyfrogramy. Klucz jest używany przy odczycie. Jedna strona zna jednak cały stan, więc podział ról jest dydaktyczny, a nie izolowany sprzętowo. Zakres wejść gwarantuje . Odczyt przeszukuje ten ograniczony zakres. Używa porównań elementów grupy, nie odczytu zapamiętanego jawnego wyniku. Rachunek w grupie jest rzeczywisty, lecz ta niewielka implementacja nie jest audytowanym systemem produkcyjnym.
Dlaczego to może być poufne
W źródłowej grupie jest to wariant ElGamala. W typie 3 nie ma efektywnego izomorfizmu pozwalającego swobodnie przenieść każdy punkt między grupami. Odpowiednie założenia DDH w grupach źródłowych umożliwiają argument CPA. Nie należy ujawniać dodatkowego obrazu tego samego sekretu w drugiej grupie bez analizy. Taki obraz może pozwolić pairingiem sprawdzać kandydatów wiadomości. Założenia i publikowane parametry są częścią schematu.
Pairing wyjaśnia poprawność iloczynu. Poufność kompletnego systemu i dozwolonych wyników wymaga osobnego dowodu, uwzględniającego wszystkie udostępnione typy szyfrogramów. Nie jest to IND-CCA szyfrowanie z nieograniczoną usługą deszyfrowania: homomorfizm celowo pozwala modyfikować szyfrogramy.
Herumi i źródła. She-wasm realizuje dwupoziomowe szyfrowanie w WebAssembly. Dostępny jest działający przykład obliczania tabeli krzyżowej i opis interfejsu SHE. Podstawa badawcza to Attrapadung i współautorzy, Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and A Fast Implementation in WebAssembly, ASIACCS 2018. Powyższe demo prezentuje rachunek na szyfrogramach, nie kopię całego API ani profilu parametrów she-wasm. Historyczna konstrukcja Boneha–Goha–Nissima używa innego, złożonego rzędu grup.
- SHE
- Somewhat Homomorphic Encryption. Szyfrowanie homomorficzne pozwalające wykonać ograniczony zakres obliczeń.
- ASIACCS
- Asia Conference on Computer and Communications Security. Azjatycka konferencja ACM o bezpieczeństwie komputerów i komunikacji.
Od dwóch poziomów do większej głębokości
W rodzinie BGV wiadomości i błędy są przenoszone przez działania na szyfrogramach. Mnożenie zwiększa złożoność reprezentacji i zużywa budżet błędu. Dobór parametrów, reliniaryzacja i przełączanie modułów umożliwiają ocenę obwodu o zadanej głębokości. Bootstrapping homomorficznie wykonuje odpowiednio przygotowane deszyfrowanie, odświeżając szyfrogram. Wymaga to dodatkowych kluczy ewaluacyjnych i założeń, nie dostępu wykonawcy do jawnego sekretu. Brakerski–Gentry–Vaikuntanathan pokazują konstrukcje poziomowane.
CKKS projektuje się dla obliczeń przybliżonych. Kodowanie, skala i reskalowanie są częścią znaczenia wyniku. Nie można przedstawiać takiego wyniku jako dokładnej arytmetyki całkowitoliczbowej. Cheon–Kim–Kim–Song formalizują tę funkcjonalność. Większa ogólność nie zawsze pomaga: dla samej sumy lub iloczynu skalarnego prostszy mechanizm może realizować dokładnie potrzebny cel.