Kryptografia II stopień
Od definicji bezpieczeństwa do konstrukcji, redukcji i publikacji naukowych.
W11. Anonimowość i zaprzeczalność
Podpis pierścieniowy przekonuje, że podpisał ktoś ze zbioru kluczy. Podpis grupowy może mieć zarządcę i kontrolowane otwarcie tożsamości. Podpis progowy wymaga współpracy określonej liczby podmiotów. To różne funkcjonalności.
Interfejs podpisu pierścieniowego
Rozszerzamy znany interfejs podpisu, a nie zastępujemy go anonimową „czarną skrzynką”. Schemat tworzy parametry i klucze użytkowników. Jawny pierścień jest uporządkowaną listą kluczy . Podpisujący zna tylko własny , zgodny z na tej liście.
Indeks jest lokalnym wejściem podpisującego, nie argumentem weryfikatora. Wynik oznacza akceptację względem wiadomości i wskazanego pierścienia. Poprawność wymaga akceptacji uczciwego podpisu. Niepodrabialność i anonimowość są odrębnymi wymaganiami. Ich definicje ustalają m.in. dopuszczalne klucze, dostęp do podpisywania i ujawnienia sekretów. Najpierw poznamy mechanizm dowodu „znam jeden ze świadków”, a potem dokładną konstrukcję Herranza–Sáeza.
W grze anonimowości przeciwnik wskazuje dwóch uprawnionych podpisujących i wiadomość. Otrzymuje podpis jednego z nich, wybranego losowo. Trzeba określić dostęp do kluczy i losowości. Anonimowość bez ujawnień nie implikuje anonimowości po ujawnieniu losowości.
Najpierw algebra dowodu OR
- OR
- or. Lub, czyli alternatywa logiczna. To angielskie słowo, nie akronim. Dowód OR dotyczy spełnienia co najmniej jednej z podanych relacji.
Dowodzimy znajomości logarytmu lub .
Interaktywny dowód OR: algorytmy i przepływ
Dowodzący zna jeden z sekretów a_j dla j∈{0,1}. Drugi indeks oznaczamy k=1−j. Setup i KeyGen są takie jak w Schnorrze. Wszystkie poniższe losowania i sumy skalarne odbywają się w ℤ_q.
Rząd q jest liczbą pierwszą. Ustal kodowania i działania grupy. Dodatkowe funkcje wskazano przy konstrukcji.
Sekret a pozostaje u właściciela. Odbiorca uwierzytelnia publiczny A.
Stan zachowuje j, u_j, c_k, s_k.
Zużyj stan sesji.
Sprawdź grupy, zakresy i oba równania.
Interaktywny dowód OR
Dowodzący:
Weryfikator:
- Dowodzący, Commit: gałąź znana i symulowana:
- Dowodzący → Weryfikator: Bez wskazania znanej gałęzi
- Weryfikator, Challenge:
- Weryfikator → Dowodzący: Jedno globalne wyzwanie
- Dowodzący, Respond:
- Dowodzący → Weryfikator: Odpowiedzi obu gałęzi
- Weryfikator, Check:
Znając , losujemy i wyznaczamy . Gałąź 1 symulujemy przez i . Po globalnym wyzwaniu ustalamy oraz .
Weryfikator sprawdza oba równania i sumę . Dla ustalonego wyzwania są jednostajne w zbiorze o tej sumie. Odpowiedzi są przesunięciami jednostajnej losowości. Rozkład transkryptu nie wskazuje rzeczywistej gałęzi. To argument dla tego protokołu i rozkładu, nie dowód każdej ring signature.
Po Fiat–Shamir globalne wyzwanie musi wiązać uporządkowany pierścień, zobowiązania i wiadomość. Rewinding przy wielu zapytaniach wymaga kontroli ich wzorca. Herranz–Sáez analizują określone konstrukcje, nie dowolne sklejenie podpisów.
Więcej gałęzi i rachunek anonimowości
Rozszerzenie dowodu OR do wielu kluczy: dla wszystkich gałęzi poza rzeczywistą losujemy i wyznaczamy . W rzeczywistej gałęzi wysyłamy . Po wyzwaniu globalnym ustalamy i . Weryfikacja obejmuje każde równanie i sumę wyzwań. Podpis pierścieniowy musi dodatkowo określić kodowanie listy, dopuszczalne klucze i model bezpieczeństwa.
Pogłębienie: anonimowość przez liczenie. Dla ustalonego wektor wyzwań o sumie jest jednostajny. Każdy ma prawdopodobieństwo . Wektor odpowiedzi jest jednostajny na , gdy rzeczywisty nonce losujemy z całego ciała. Zobowiązania są jednoznacznie wyznaczone przez klucze, wyzwania i odpowiedzi. Warunkowe prawdopodobieństwo takiego akceptującego transkryptu przy ustalonym wynosi niezależnie od indeksu rzeczywistej gałęzi. Jeśli liczymy także niezależne, jednostajne losowanie globalnego , prawdopodobieństwo konkretnego pełnego transkryptu wynosi . Jest to argument dla uczciwego interaktywnego wyzwania. Przeniesienie do wersji nieinteraktywnej musi uwzględnić wyrocznię i ewentualne ujawnienia.
Odbiorca a osoba trzecia
Jeśli odbiorca może sam stworzyć transkrypt o tym samym rozkładzie, pokazanie go osobie trzeciej nie dowodzi samo w sobie udziału nadawcy. Dodatkowe logi lub ujawniony stan mogą zmienić sytuację. HVZK nie rozwiązuje wszystkich modeli zaprzeczalności.
Powiązania: C9: anonimowość, C10: zaprzeczalność, hierarchiczne podpisy pierścieniowe.
Podpis pierścieniowy Herranza–Sáeza: jeden sekret, wspólne równanie
Cel: odbiorca ma wiedzieć, że podpisał posiadacz jednego z kluczy wskazanego pierścienia. Nie powinien dowiedzieć się, którego. Nie ma zarządcy otwierającego tożsamość. Pozostali użytkownicy w pierścieniu nie muszą uczestniczyć w podpisywaniu ani wyrażać zgody na każdy podpis.
Poniższa konstrukcja pochodzi z pracy Javiera Herranza i Germána Sáeza, Forking Lemmas in the Ring Signatures' Scenario, §4.2–4.4. Nie jest poprzednim dowodem OR z wyzwaniami sumującymi się do jednej wartości. Tutaj każdy element zobowiązania ma własny hasz, a podpis zawiera jedną odpowiedź skalarną. Publikacja oryginalna.
Parametry i oznaczenia. Grupa ma pierwszy rząd . Ustalony, uporządkowany pierścień to , gdzie . Przyjmujemy różne klucze i . Sekret jest niezerowym skalarem. Wiadomość oznaczamy , zobowiązania , wyzwania , a łączną odpowiedź . Podpis to .
Stosujemy , z jednoznacznym kodowaniem pary. W publikacji sekrety oznaczono , klucze , wyzwania , a odpowiedź symbolem . Nasza zmiana liter nie zmienia równań. Publikacja zapisuje też wyzwania w podpisie. Tutaj je odtwarzamy i zawsze sprawdzamy równanie z rzeczywistymi wartościami hasza.
Podpis pierścieniowy Herranza–Sáeza: algorytmy i przepływ
Parametry i ograniczenia pierścienia L są podane wyżej. Jeden podpisujący zna sekret swojego klucza. Pozostali użytkownicy w pierścieniu nie wykonują kroków podpisywania.
Rząd q jest liczbą pierwszą. Ustal kodowania i działania grupy. Dodatkowe funkcje wskazano przy konstrukcji.
Sekret a pozostaje u właściciela. Odbiorca uwierzytelnia publiczny A.
Losuj różne niezerowe nonce dla pozostałych miejsc. Własny nonce losuj z całego ciała i ponawiaj, aż wszystkie zobowiązania będą różne i niejednostkowe.
Sprawdź pierścień, typy, zakres z oraz różność i niejednostkowość R_i. Setup obejmuje ℋ i kodowanie pary.
Podpis pierścieniowy Herranza–Sáeza
Podpisujący:
Weryfikator:
- Podpisujący, RingSign: pozostałe miejsca:
- Podpisujący, RingSign: własne miejsce: Ponawiaj u przy niedozwolonym R_j.
- Podpisujący, RingSign: jedna odpowiedź:
- Podpisujący → Weryfikator: Bez indeksu j i bez losowości
- Weryfikator, RingVerify:
Podpisywanie krok po kroku
Podpisujący ma indeks i zna tylko swój sekret .
- Pozostałe miejsca. Dla kolejno losuje , gdzie jest zbiorem już wybranych skalarów. Początkowo . Po każdym losowaniu dodaje do . To losowanie bez zwracania, nie niezależne losowania z całego zbioru. Oblicza i .
- Zamknięcie równania. Losuje i oblicza
- Jeżeli albo dla któregoś , ponownie losuje tylko . Zachowuje pozostałe zobowiązania.
- Oblicza oraz
- Zwraca . Indeks i losowość nie są elementami publicznego podpisu.
Dlaczego to możliwe? Do przygotowania wystarczają cudze klucze publiczne. Własny sekret jest potrzebny dopiero przy obliczaniu . Podpisujący dopasowuje jedną pozycję tak, aby wszystkie składniki złożyły się w równanie weryfikacyjne.
Weryfikacja i dowód poprawności
Sprawdzamy typy i przynależność do grupy, zakres skalaru oraz różność i niezerowość zobowiązań. Te ostatnie ograniczenia są częścią rozpatrywanego profilu generycznych podpisów w raporcie. Następnie odtwarzamy wszystkie i akceptujemy dokładnie wtedy, gdy
Po podstawieniu czynniki dla skracają się z . Pozostaje
To dowód poprawności. Nie dowodzi jeszcze ani anonimowości, ani niepodrabialności. Każda z tych własności wymaga osobnego argumentu.
Mała, niebezpieczna grupa . Tabela przykładu ma . To rachunek dydaktyczny, nie implementacja bezpiecznego hasza.
Podpisuje użytkownik o indeksie . Druga pozycja ma indeks . Do jej przygotowania wystarcza klucz publiczny . Własny sekret jest potrzebny w odpowiedzi .
Dwa prywatne przebiegi, jeden wynik publiczny
Dobrano dwie różne taśmy losowe, czyli konkretne wartości i , aby oba przebiegi dały ten sam podpis. Niezależne losowania zwykle dają różne podpisy. Anonimowość dotyczy równości rozkładów, nie identyczności dowolnych dwóch wykonań.
Podpisuje użytkownik 1
. Nie korzysta z sekretu .
- Symuluje pozycję użytkownika 2
- Domyka własną pozycję 1
- Używa własnego sekretu w odpowiedzi
Podpisuje użytkownik 2
. Nie korzysta z sekretu .
- Symuluje pozycję użytkownika 1
- Domyka własną pozycję 2
- Używa własnego sekretu w odpowiedzi
Podpis publiczny w obu przypadkach
Indeks podpisującego, sekrety i losowość nie są częścią podpisu. Wyzwania weryfikator odtwarza z wiadomości i zobowiązań.
To samo sprawdzenie
Oba równania są spełnione. Publiczny podpis jest identyczny.
Każdy użytkownik w pierścieniu ma 22 możliwe pozostałe zobowiązania i 21 możliwych domknięć.
Dwie różne gwarancje i granice modelu
| Własność | Co wolno przeciwnikowi | Jaki jest cel i podstawa argumentu |
|---|---|---|
| Anonimowość transkryptu | Zna pierścień, wiadomość i podpis. Może nawet znać długoterminowe sekrety | Nie rozróżnia dwóch kandydatów na podpisującego. Dowód porównuje dokładne rozkłady |
| Niepodrabialność w ROM | Zna ustalony pierścień uczciwych kluczy. Pyta o hasze i podpisy wybranych wiadomości, bez ujawniania sekretów | Nie tworzy podpisu nowej wiadomości. Redukcja rozwiązuje DL |
Anonimowość nie ukrywa adresu sieciowego, czasu działania ani ujawnionych wyborów losowych. Niepodrabialność nie zabrania użytkownikowi w pierścieniu podpisywania. Taka osoba właśnie ma do tego uprawnienie. Sam napis „hash odporny na kolizje” nie zastępuje założenia ROM w poniższym dowodzie niepodrabialności.
Dowód dotyczy ustalonego pierścienia. Nie przenosimy go automatycznie na adaptacyjnie rejestrowane złośliwe klucze, przejmowanie sekretów użytkowników czy dowolne zmiany pierścienia. W aplikacji o zmiennych pierścieniach trzeba określić ich kodowanie i związanie z podpisem oraz osobno przeanalizować model.
Pełne dowody: anonimowość przez liczenie, symulacja wyroczni i redukcja DL, fork wielu zapytań i stałe.