Kryptografia II stopień
Od definicji bezpieczeństwa do konstrukcji, redukcji i publikacji naukowych.
W17. Od funkcjonalności podpisu do kosztu obliczeń
Liczenie kosztu pojedynczego potęgowania rozpocznij od square-and-multiply i drabinki. Tam podano dokładny wariant obu algorytmów, niezmiennik i liczniki działań potrzebne w C15.6 oraz L9.6. Poniżej traktujemy takie operacje jako składniki kosztu całego schematu.
Najpierw cel, potem narzędzie. Podpis indywidualny, wspólny podpis wielu osób, użycie jednego klucza przez próg osób i ukrycie podpisującego w pierścieniu nie są kolejnymi nazwami tej samej funkcji. Pairingi dają zwięzłe równania weryfikacji, ale nie zastępują definicji tego, co weryfikator ma stwierdzić.
Agregacja nie zastępuje kontroli kluczy
W zapisie potęgowym niezależni podpisujący mają i . Dla tej samej wiadomości łączymy podpisy przez iloczyn . Odpowiada mu iloczyn kluczy, a kontrola ma postać . To równanie poprawności, jeszcze nie gwarancja niepodrabialności. Przy przejściu do punktów iloczyny w grupach źródłowych stają się sumami:
Dla kluczy podpisy BLS na tej samej wiadomości sumują się do . Formalnie
Bez kontroli kluczy napastnik może dobrać i przedstawić jako rzekomy podpis obu osób. To rogue-key attack, a nie rozwiązanie logarytmu dyskretnego. Potrzebna jest właściwa rejestracja i dowód posiadania klucza albo inny udowodniony wariant wiążący klucze z podpisywanym tekstem. Dla różnych wiadomości podstawowe równanie ma postać , z wymaganiami konkretnego wariantu, w tym odrębności wiadomości tam, gdzie zakłada ją dowód. Źródło agregacji: Boneh–Gentry–Lynn–Shacham.
Podpis pierścieniowy ma inny cel: jeden uczestnik podpisuje, a jego indeks pozostaje ukryty w zadanym modelu. Dowód OR z W11 realizuje tę intuicję bez pairingu. Istnieją również podpisy pierścieniowe oparte na pairingach, np. konstrukcja identity-based Zhanga i Kima, ale sama zamiana równań na pairingowe nie daje anonimowości. Trzeba sprawdzić rozkład podpisu i jego zależność od rzeczywistej gałęzi. W wariancie identity-based występuje dodatkowo podmiot wydający klucze, co zmienia model zaufania.
Liczymy rodzaje operacji, nie tylko znaki we wzorze
Niech oznaczają koszt mnożenia zmiennej bazy przez skalar w , koszt pełnego pairingu, koszt hash-to-, a koszt dodawania punktów. To koszty dla ustalonej biblioteki, parametrów i sprzętu. Przykładowy rachunek ma postać
oznacza łączny czas, współczynniki liczą wykonane operacje odpowiednich typów, a zbiera pozostałe koszty, np. losowanie, kodowanie i obsługę pamięci. Litera w tym rachunku oznacza koszt pairingu, nie generator z równań grupowych.
| Operacja protokołu | Prosty rachunek, bez optymalizacji | Co jeszcze uwzględnić |
|---|---|---|
| Podpis BLS | Kodowanie wiadomości i domeny | |
| Weryfikacja BLS | Walidacja klucza i podpisu | |
| Weryfikacja Schnorra w | Wyzwanie, format i walidacja | |
| Weryfikacja dowodu OR z gałęziami | Sprawdzenie sumy wyzwań | |
| Iloczyn szyfrogramów z W16 | Odczyt i kodowanie są osobno |
To liczby operacji przy bezpośredniej realizacji wzorów. Implementacja może połączyć mnożenia w MSM. Iloczyn pairingów może współdzielić końcowe potęgowanie po pętlach Millera. Prekomputacja stałej bazy zmienia koszt. Dlatego „dwa pairingi” nie muszą kosztować dwukrotności każdego możliwego wywołania biblioteki.
- MSM
- Multi-Scalar Multiplication. Obliczenie sumy punktów pomnożonych przez zadane skalary.
5 partii po 20 operacji, po rozgrzewce. Mediana średnich czasów. Milisekundy na operację.
| Operacja | Mediana · ms/op. | Minimum · ms/op. | Maksimum · ms/op. |
|---|---|---|---|
| Brak pomiaru. Wyniki nie są wczytywane z gotowej tabeli. | |||
Pomiar dotyczy bieżącej przeglądarki, lokalnego MCL i BLS12-381. Wykonuje rozgrzewkę, następnie kilka partii i podaje medianę średniego czasu operacji w partii. Nie mierzy sieci, stałoczasowości ani poziomu bezpieczeństwa. Haszujemy do grupy przez API MCL, nie przypisujemy temu automatycznie zgodności z konkretną standardową ciphersuite. Otwarta konsola, oszczędzanie energii i inne zadania zmieniają wyniki.
Parametr bezpieczeństwa, rozmiar instancji i komunikacja
Rozróżniaj trzy osie. Parametr bezpieczeństwa steruje wielkością grup i kosztami podstawowych działań. Rozmiar zadania to np. liczba podpisujących lub bramek. Komunikacja obejmuje liczbę bajtów i rund, więc opóźnienie sieci może dominować mimo szybkiej lokalnej algebry. Liniowość liczby pairingów względem liczby uczestników nie oznacza liniowości względem długości bitowej modułu.
W dowodzie również liczymy koszt. Jeśli redukcja powtarza przeciwnika, jej czas obejmuje wszystkie uruchomienia i obsługę wyroczni. Strata sukcesu do wartości rzędu może mieć znaczenie dla parametrów, nawet gdy równania ekstrakcji są krótkie. Konkretne stałe należy brać z twierdzenia dla danego schematu. Nie utożsamiaj kosztu redukcji z czasem podpisywania.
W18. SNARK: krótki argument nie oznacza taniego dowodzenia
- SNARK
- Succinct Non-interactive Argument of Knowledge. Zwięzły nieinteraktywny argument wiedzy.
SNARK to zwięzły, nieinteraktywny argument wiedzy. Dla publicznego stwierdzenia i ukrytego świadka określamy efektywnie sprawdzalną relację . Dowodzący ma przekonać weryfikatora, że zna odpowiedni . Słowo „argument” wskazuje na bezpieczeństwo wobec obliczeniowo ograniczonego przeciwnika. Wiedzę formalizuje odpowiedni ekstraktor, nie samo istnienie świadka. Zero knowledge jest dodatkową własnością, nie konsekwencją samego słowa „zwięzły”. Konstrukcje zk-SNARK realizują oba cele.
- zk-SNARK
- zero-knowledge Succinct Non-interactive Argument of Knowledge. Zwięzły nieinteraktywny argument wiedzy z własnością zerowej wiedzy.
Przykład: zawiera zobowiązanie do danych i ogłoszony wynik, a zawiera dane i otwarcie zobowiązania. Relacja sprawdza zgodność otwarcia oraz wykonanie zdefiniowanej funkcji. Samo równanie nie wiąże wyniku z konkretnymi danymi, jeśli nic nie określa ich tożsamości. Najtrudniejszy błąd bywa więc nie w pairingu, lecz w zbyt słabym opisie relacji.
W Groth16 dowód ma trzy elementy grup, a sprawdzenie korzysta z równania pairingowego. Koszt weryfikacji obejmuje także przetwarzanie publicznego wejścia. Dowodzący musi wyznaczyć świadka i wykonać kosztowne operacje zależne od rozmiaru obwodu. Przygotowanie parametrów jest związane z obwodem i wymaga właściwego modelu zaufania. Publikacja: Groth, On the Size of Pairing-Based Non-interactive Arguments.
Implementacje działają. Przykładem jest snarkjs, z obliczeniami JavaScript/WebAssembly i kompletną ścieżką tworzenia oraz weryfikowania dowodów. Nie oznacza to, że ogólny SNARK jest najprostszą metodą dla każdego równania. Dla małej, dobrze określonej relacji dedykowany dowód Schnorra lub równanie pairingowe może być znacznie prostsze do implementacji i audytu.
Przed wyborem porównaj czas tworzenia świadka, czas dowodzenia, szczytową pamięć, rozmiar parametrów, rozmiar dowodu i czas weryfikacji. Osobno sprawdź założenia, zaufany setup i ewentualną odporność postkwantową. Klasyczny pairingowy Groth16 nie staje się postkwantowy przez to, że jest SNARK-iem. Systemy transparentne mogą unikać tajnej konfiguracji, lecz mają własne założenia i kompromisy. W tym miejscu poznajemy kontrakt i koszty, nie deklarujemy implementacji pełnego SNARK-a na stronie.