Kryptografia II stopień
Od definicji bezpieczeństwa do konstrukcji, redukcji i publikacji naukowych.
W12. Obliczenia wielostronne i OT
- OT
- Oblivious Transfer. Transfer utajniony. Odbiorca poznaje wybraną wartość, a nadawca nie poznaje jego wyboru.
Interfejs jest teraz interaktywny. Dla funkcji dwie strony wykonują algorytmy i , a nie jedno wspólne wywołanie z jawnymi w tym samym urządzeniu. Schemat określa przygotowanie parametrów, lokalne stany, komunikaty i to, która strona otrzymuje wynik. Nie dopisujemy tu Sign lub Dec, jeśli nie należą do konkretnej realizacji. Dopiero wewnątrz protokołu mogą zostać użyte podpisy, szyfrowanie lub OT.
Alicja ma , Bob , a wyznaczony odbiorca poznaje . Prywatność porównuje widok rzeczywisty z możliwym do zasymulowania na podstawie własnego wejścia i dozwolonego wyniku. Wynik sam może dużo ujawniać. Dla jednoelementowego zbioru liczność przecięcia ujawnia bit przynależności.
OT: jedno z dwóch
Najpierw model. Strona półuczciwa wykonuje polecenia protokołu, ale analizuje cały zapamiętany widok. Strona złośliwa może też zmienić komunikaty lub przerwać wykonanie. Poniższy rachunek wyjaśnia poprawność i intuicję prywatności przy uczciwym wykonaniu. Nie stanowi samodzielnego dowodu dla złośliwych stron. OT (oblivious transfer) ogranicza informację uzyskaną przez odbiorcę, a jednocześnie ukrywa jego wybór przed nadawcą.
Nadawca ma , odbiorca wybiera . Odbiorca poznaje , nie drugą wiadomość. Nadawca nie poznaje .
OT: trzy przepływy w rachunku DH: algorytmy i przepływ
To dydaktyczny przepływ OT oparty na rachunku Diffiego–Hellmana. pp obejmuje grupę, KDF, szyfrowanie symetryczne i kontekst sesji. Nie jest samodzielną specyfikacją wariantu odpornego na złośliwe strony. KDF_i(Z) poniżej skraca wyprowadzenie z kodowania Z, identyfikatora sesji i indeksu i.
Rząd q jest liczbą pierwszą. Ustal kodowania i działania grupy. Dodatkowe funkcje wskazano przy konstrukcji.
b jest bitem.
Dla i=0,1. Szyfrowanie musi mieć uzgodniony profil.
OT: trzy przepływy w rachunku DH
- Nadawca, Start:
- Nadawca → Odbiorca: Pierwszy wkład
- Odbiorca, Choose:
- Odbiorca → Nadawca: Wybór b pozostaje prywatny
- Nadawca, Send:
- Nadawca → Odbiorca: Dwa szyfrogramy
- Odbiorca, Receive:
Nadawca losuje swój tajny wykładnik i wysyła . Odbiorca losuje własny tajny wykładnik i odsyła element zależny od wyboru . Nadawca wyznacza dwa elementy , a odbiorca tylko odpowiadający wybranemu indeksowi. Dydaktyczny przepływ DH zapisujemy następująco:
Dla odbiorca uzyskuje , dla otrzymuje . KDF wiąże sesję i indeks, po czym wyznacza klucze szyfrowania. Jednostajne daje ten sam rozkład dla obu wyborów. Ochrona nieotrzymanej wiadomości wymaga argumentu obliczeniowego. Model złośliwy i walidacja punktów nie wynikają z samej równości.
Rozpiszmy role. Nadawca losuje sekret i wysyła . Odbiorca losuje sekret , wybiera bit i odsyła . Nadawca oblicza oba , choć nie zna . Odbiorca oblicza i zna tylko klucz odpowiadający swojemu wyborowi. Obie strony stosują tę samą funkcję wyprowadzania klucza do kodowania elementu grupy, identyfikatora sesji i indeksu . Nadawca szyfruje osobno pod tak otrzymanymi kluczami i wysyła oba szyfrogramy. Odbiorca odszyfrowuje wybrany szyfrogram kluczem wyprowadzonym z oraz .
Widać zatem trzy etapy komunikacji: do odbiorcy, do nadawcy, dwa szyfrogramy do odbiorcy. Równość zapewnia poprawność. Analiza prywatności wymaga jeszcze odpowiednich założeń o grupie, KDF i szyfrowaniu. Konkretne reguły oraz dowód podaje cytowana praca Chou–Orlandiego.
W garbled circuit OT dostarcza jedną etykietę wejściowego przewodu. Bramki przekształcają etykiety w następne. Wydanie obu etykiet zmienia informację dostępną odbiorcy.
Od OT do obwodu
Jak czytać obwód: reprezentujemy funkcję jako bramki logiczne. Każdy przewód ma dwie niezależne etykiety, oznaczające 0 i 1, lecz ich znaczenie jest ukryte przed wykonawcą. Dla bramki o dwóch wejściach twórca przygotowuje zaszyfrowaną tabelę wynikowych etykiet. Wykonawca posiada po jednej etykiecie wejściowej i może przejść do odpowiedniej etykiety wyjściowej. Dopiero na końcu poznaje uzgodnione znaczenie wyniku. To opis idei. Poprawne szyfrowanie tabel, kolejność wierszy i zabezpieczenia złośliwego twórcy wymagają konkretnego protokołu.
Model półuczciwy zakłada wykonywanie poleceń protokołu przy analizie całego zapamiętanego widoku. Model złośliwy pozwala wybierać inne komunikaty i przerywać wykonanie. Prywatność, poprawność wyniku, odporność na przerwanie i sprawiedliwe otrzymanie wyniku są osobnymi celami. Nie każdy protokół MPC zapewnia je wszystkie.
- MPC
- Multi-Party Computation. Obliczenia wielostronne.
Rachunek na udziałach
Udział nie jest osobnym szyfrogramem. Aby podzielić między dwie osoby, losujemy jednostajnie , a potem wyznaczamy . Pierwsza osoba dostaje tylko , druga tylko . Każdy udział osobno ma rozkład niezależny od . Razem pozwalają obliczyć . Zapis oznacza ten rozdzielony stan, nie wartość znaną każdemu uczestnikowi.
Na przykład dla i można dostać udziały 19 i 11, bo . Otwarcie oznacza przekazanie udziałów i odtworzenie wartości. Otwarcie ujawniłoby sekret. Dlatego poniżej otwieramy tylko zamaskowane różnice. Dodawanie oznacza lokalne dodawanie odpowiednich udziałów. Mnożenie przez jawną liczbę oznacza mnożenie każdego udziału przez .
Publiczną stałą reprezentujemy umownie przez . Dodanie jej do obu udziałów byłoby błędem, ponieważ odtworzona suma wzrosłaby o . Rozdział W13 wprowadzi inny podział, Shamira, pozwalający ustalić próg odtwarzania. Nie jest potrzebny do poniższego rachunku dwóch udziałów.
Dla udziałów dodawanie wykonujemy lokalnie. Iloczyn nie jest sumą lokalnych iloczynów, bo brakuje wyrazów mieszanych. Jednorazowa trójka Beavera ma i również jest podzielona na udziały. Otwieramy :
Publiczny składnik włączamy raz do sumy udziałów. Losowe niezależne maski ukrywają wejścia. Powtórne użycie trójki ujawnia różnice wejść. Złośliwy model wymaga dodatkowego sprawdzania.
W PSI opartym na DH haszujemy elementy zbioru do grupy i porównujemy podwójnie przekształcone punkty. W PSI-cardinality odbiorca ma poznać tylko liczbę. Tasowanie musi usuwać konkretne powiązanie wyniku z wejściem. Nie jest samodzielnym dowodem prywatności.
- PSI
- Private Set Intersection. Prywatne wyznaczanie przecięcia zbiorów.
Źródła: Chou–Orlandi, garbled circuits, kurs rozproszony.
W12a. Garbled circuits: obliczenie bez odczytywania wejść
Funkcjonalność. Alicja zna bity , Bob zna bit . Bob ma poznać tylko uzgodniony wynik , oprócz informacji wynikającej z jego własnego wejścia. Obwód i liczba bramek są jawne. Nie próbujemy ukrywać samej funkcji. Wykonanie przenosi po przewodach losowe etykiety, zamiast jawnych bitów.
Dla przewodu twórca losuje dwie etykiety . Indeks górny oznacza tutaj wartość logiczną, nie potęgę. Wykonawca dostaje tylko jedną z nich. Twórca pamięta obie i ich znaczenie. Nie wysyłamy tabeli znaczeń przewodów wewnętrznych.
Publiczny obwód oznaczamy przez . Każda jego bramka otrzymuje zaszyfrowaną tabelę . Zbiór tych tabel tworzy zakodowany obwód . Mapa przypisuje bitom wejściowym etykiety. Osobna mapa pozwala odczytać jedynie bity wyjściowe. Ciągi etykiet na wejściu i wyjściu obliczenia oznaczamy odpowiednio i .
Obwód z zaszyfrowanymi etykietami: algorytmy i przepływ
Garble przygotowuje zaszyfrowane tabele publicznego obwodu F. Każdy wiersz chroni etykietę wyjściową bramki. Sposób szyfrowania i wybierania wiersza rozwijamy po diagramie. OT jest dodatkowym protokołem dystrybucji etykiet, nie częścią lokalnego Eval.
Wylosuj dwie etykiety na przewód, bity wyboru i cztery szyfrogramy każdej bramki. Zachowaj mapę kodowania wejść. Osobna mapa dekoduje wyłącznie wyjścia.
W protokole twórca koduje własne wejścia. Dla wejść wykonawcy OT wydaje tylko wybrane etykiety.
Przechodź po bramkach w porządku topologicznym. Otwórz jeden wskazany wiersz z dwóch dostępnych etykiet. Błąd integralności przerywa obliczenie.
Ujawniaj tylko znaczenie przewodów wyjściowych.
Obwód z zaszyfrowanymi etykietami
- Twórca obwodu, Garble: Losowe etykiety i tabele bramek.
- Twórca obwodu → Wykonawca: Bez pełnej mapy etykiet wejściowych
- Twórca obwodu, Encode: własne wejścia:
- Twórca obwodu → Wykonawca: Jedna etykieta na własny przewód
- Twórca obwodu → Wykonawca: OT ukrywa wybór b przed twórcą
- Wykonawca, Eval i Decode:
Jedna etykieta nie mówi, czy oznacza zero
W wariancie point-and-permute etykieta zawiera bit wyboru , gdzie jest tajnym, losowym bitem danego przewodu. Bit wyboru wskazuje wiersz, lecz sam nie ujawnia . Dwie etykiety tego samego przewodu mają przeciwne bity wyboru. Ich pozostałe części są losowe.
oznacza wyprowadzenie klucza szyfrowania z numeru bramki i obu etykiet. To nie jest używana wcześniej skalarna . oznacza szyfrowanie etykiety z kontrolą integralności w poniższym demonstratorze. Numer obwodu, numer bramki i indeks wiersza wiążemy z kontekstem. Dwie znane etykiety wystarczają do otwarcia jednego wiersza, a otrzymana etykieta staje się wejściem następnej bramki.
Dla bramki o funkcji , wejściach i wyjściu tworzymy cztery zaszyfrowane etykiety. W tabeli indeksujemy wiersze bitami wyboru z etykiet wejściowych:
wskazuje bramkę. to bity wyboru odczytane z etykiet, nie jawne wejścia .
chroni etykietę kluczem zapisanym w indeksie dolnym. W demonstratorze jest to AES-GCM.
wyprowadza klucz z obu etykiet wejściowych i kontekstu bramki. Potrzebne są obie etykiety.
Etykieta przewodu odpowiadająca wynikowi . Indeks górny wybiera etykietę, nie oznacza potęgowania.
Od bramki logicznej do czterech szyfrogramów
Bramka o dwóch wejściach ma cztery pary możliwych bitów: , , i . Dla każdej pary twórca najpierw oblicza bit wyjściowy. Następnie wybiera odpowiadającą mu etykietę przewodu wyjściowego i szyfruje ją kluczem wyprowadzonym z dwóch etykiet wejściowych. Nie szyfrujemy tutaj samego bitu wyniku. Szyfrujemy etykietę, która może później posłużyć jako wejście kolejnej bramki.
Widok dydaktyczny twórcy obwodu. Odsłaniamy znaczenie etykiet i przyjmujemy przykładowo , więc oraz . W protokole te zależności nie są ujawniane wykonawcy.
Skrót dla klucza wiersza: . Symbol oznacza szyfrogram, nie jawny bit.
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| Para etykiet wejść | Zaszyfrowana etykieta wyjścia | Adres w tabeli |
|---|---|---|
| Bity wyboru | Szyfrogram |
|---|---|
Cztery szyfrogramy, ale tylko dwie etykiety wyjścia. Trzy wiersze szyfrują tę samą etykietę , a jeden etykietę . Każdy wiersz korzysta z klucza wyprowadzonego z innej pary etykiet wejściowych.
Widok wykonawcy jest uboższy. Dostaje szyfrogramy w kolejności bitów wyboru oraz po jednej etykiecie każdego wejścia. Nie otrzymuje tabeli znaczeń ani indeksów użytych tutaj w nazwach .
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
| Para etykiet wejść | Zaszyfrowana etykieta wyjścia | Adres w tabeli |
|---|---|---|
| Bity wyboru | Szyfrogram |
|---|---|
Cztery szyfrogramy, ale tylko dwie etykiety wyjścia. Dwa wiersze szyfrują etykietę , a dwa etykietę . Każdy wiersz korzysta z klucza wyprowadzonego z innej pary etykiet wejściowych.
Widok wykonawcy jest uboższy. Dostaje szyfrogramy w kolejności bitów wyboru oraz po jednej etykiecie każdego wejścia. Nie otrzymuje tabeli znaczeń ani indeksów użytych tutaj w nazwach .
- AND
- and. I, czyli koniunkcja logiczna. To angielskie słowo, nie akronim. Bramka AND zwraca 1 tylko wtedy, gdy oba wejścia mają wartość 1.
Na przykład dla AND i wejść para pozwala uzyskać . Pozostałe trzy pary prowadzą do , ale ich szyfrogramy nie muszą wyglądać podobnie. W demonstratorze każdy wiersz używa własnego klucza oraz losowego IV. Nie wolno traktować kolejności w tabeli prawdy jako jawnego porządku wysyłanych szyfrogramów. Bity wyboru zmieniają adresy wierszy, a ich związek z bitami logicznymi pozostaje ukryty.
Podstawową ideę zastąpienia tabeli prawdy zaszyfrowanymi etykietami opisują Lindell i Pinkas, §1 i tabela 1. Ich opis używa zagnieżdżonego szyfrowania. Powyższy zapis odpowiada lokalnemu wariantowi demonstracyjnemu z kluczem wyprowadzanym z obu etykiet, a nie dosłownemu przepisaniu tamtej konstrukcji. Poniższy obwód oblicza rzeczywiste szyfrogramy w WebCrypto.
Przepływ od dwóch osób do jednego wyniku
- Przygotowanie. Alicja tworzy etykiety i zaszyfrowane tabele obu bramek. Publikuje tabele, ale nie znaczenia etykiet wewnętrznych.
- Wejścia Alicji. Przekazuje Bobowi i . Nie przekazuje pozostałych etykiet tych przewodów.
- Wejście Boba. OT z pary dostarcza tylko . Alicja nie poznaje wyboru. Bob nie otrzymuje drugiej etykiety.
- Obliczenie. Bob otwiera właściwy wiersz AND, następnie właściwy wiersz XOR. Nie musi znać wartości pośredniego bitu.
- Odczyt. Uzgodnione dekodowanie końcowego przewodu pozwala odczytać . Wynik nie powinien ujawniać dodatkowych etykiet.
SHA-256 i AES-GCM w WebCrypto. Lokalna symulacja OT. Czterowierszowe tabele, bez Free-XOR.
| Bramka | Wiersz | Szyfrogram · skrót hex | Stan |
|---|---|---|---|
| Tabele powstaną w pierwszym kroku. | |||
W demonstratorze tabele rzeczywiście powstają przez SHA-256 i AES-GCM w WebCrypto. Etykiety mają 128 bitów, w tym bit wyboru. Jest to dydaktyczne kodowanie czterech wierszy, a nie implementacja zoptymalizowanego protokołu Yao z dowodem bezpieczeństwa. OT jest lokalnie symulowaną usługą wydającą jedną etykietę. Jedna przeglądarka zna oba wejścia, więc nie zapewnia między nimi izolacji. Test uszkodzonego szyfrogramu sprawdza odrzucenie przez AEAD, nie odporność na złośliwego twórcę całego obwodu.
Co dokładnie ma wykazać dowód
Nie wystarczy, że Bob nie widzi napisu „0” ani „1”. Dla półuczciwego Boba symulator ma odtworzyć jego widok, znając tylko i dozwolony wynik . Dla półuczciwej Alicji symulujemy widok na podstawie jej wejścia i jej dozwolonego wyjścia. Bezpieczeństwo OT ukrywa wybór Boba. Bezpieczeństwo garblingu ukrywa nieaktywne etykiety i wartości wewnętrzne. Argument hybrydowy zastępuje odpowiednie zaszyfrowane etykiety, z zachowaniem zgodności aktywnej ścieżki. To nie jest teza, że wszystkie wiersze można niezależnie zastąpić zerami.
Złośliwy twórca może przygotować inną funkcję. Szyfrowanie tabel samo temu nie zapobiega. Potrzebna jest konkretna metoda sprawdzania obwodów, zgodności wejść i poprawności OT. Przykładem jest rodzina technik cut-and-choose: otwieramy losowo wybrane obwody kontrolne, pozostałe służą obliczeniu. Parametry, sposób agregowania wyników i kontrola wejść decydują o błędzie bezpieczeństwa. Samo pokazanie jednego poprawnego obwodu nie certyfikuje pozostałych.
Precyzyjny opis i dowód dla modelu półuczciwego podają Lindell i Pinkas, A Proof of Security of Yao's Protocol for Two-Party Computation. Historyczny punkt odniesienia to Yao, How to Generate and Exchange Secrets, FOCS 1986. Konstrukcji demonstracyjnej nie przypisujemy automatycznie twierdzenia z tych prac.
- FOCS
- Foundations of Computer Science. Podstawy informatyki. Skrót w nazwie sympozjum teoretycznego.
Free-XOR i half-gates: gdzie znika komunikacja
W Free-XOR etykiety mają wspólną, tajną różnicę : . Dla XOR można ustalić . Wtedy
Nie wysyłamy tabeli XOR. Cena to skorelowane etykiety i właściwe założenia dla całego garblingu. Nie wolno bez analizy wkleić tej korelacji do dowolnego szyfrowania tabel. Technika half-gates łączy darmowe XOR z dwoma blokami na AND. To dwa uzupełniające się usprawnienia, nie dwa różne cele bezpieczeństwa.
| Konstrukcja tabel | Bloki na XOR | Bloki na AND |
|---|---|---|
| Cztery wiersze | 4 | 4 |
| Free-XOR + redukcja do trzech wierszy | 0 | 3 |
| Free-XOR + half-gates | 0 | 2 |
Blok ma długość parametru etykiety . Tabela nie obejmuje OT, wejść, dekodowania ani zabezpieczeń złośliwego modelu. Dla bramek AND koszt tabel half-gates to bitów. To koszt komunikacji, nie całego obliczenia. Demonstrator powyżej pozostaje czterowierszowy i ma dodatkowy narzut IV oraz znaczników AES-GCM. Nie należy przypisywać mu podanych rozmiarów zoptymalizowanych tabel. Źródło optymalizacji: Zahur–Rosulek–Evans, Two Halves Make a Whole.