SPDZ i arytmetyczne MPC na współdzielonych sekretach
Wykonywać wspólne dodawanie i mnożenie liczb całkowitych z podzielonym sekretem
SPDZ i arytmetyczne MPC na współdzielonych sekretach to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
MPC arytmetyczne a boolowskie
Boolowskie MPC działa na bitach (XOR/AND). Arytmetyczne MPC działa na liczbach całkowitych lub elementach ciała, obsługując bezpośrednio dodawanie i mnożenie. Lepiej sprawdza się w zastosowaniach związanych z uczeniem maszynowym i statystyką.
Współdzielenie addytywne nad Z_p
Wartość x ∈ Z_p jest współdzielona jako x = x_1 + x_2 + ... + x_n mod p. Dodawanie współdzielonych wartości jest bezpłatne: każdy uczestnik lokalnie dodaje swoje udziały. Nie jest potrzebna żadna komunikacja.
Trójki mnożenia Beavera
Aby pomnożyć udziały [a] i [b], uczestnicy z wyprzedzeniem rozdzielają trójkę Beavera ([a_t], [b_t], [c_t]), gdzie c_t = a_t·b_t. Mnożenie w fazie online wymaga jednej rundy komunikacji.
Przegląd protokołu SPDZ
SPDZ (Damgård i in. 2012) = "Somewhat Homomorphic Encryption-based Distributed Zero-Knowledge". Faza offline generuje uwierzytelnione trójki za pomocą SHE. Faza online to szybkie obliczenia na udziałach addytywnych.
Kody uwierzytelniania wiadomości w SPDZ
Każdemu udziałowi towarzyszy kod MAC: MAC(x_i) = α·x mod p, gdzie α jest globalnym tajnym kluczem. Zapobiega to niezauważonemu fałszowaniu udziałów przez złośliwych uczestników.
Faza offline: generowanie trójek
SPDZ w fazie offline korzysta z Somewhat Homomorphic Encryption (BGV/BFV). Uczestnicy homomorficznie mnożą swoje udziały, aby utworzyć uwierzytelnione trójki Beavera. Ta faza jest wymagająca obliczeniowo, ale można ją wykonywać równolegle.
Faza online: szybkie mnożenie
Mając trójkę ([a],[b],[c]) oraz dane wejściowe [x],[y], ujawnij d=x-a i e=y-b (są zamaskowane, więc nie powodują wycieku informacji). Następnie [x·y] = [c] + d·[b] + e·[a] + d·e. Jedna runda komunikacji.
MASCOT: faza offline oparta na OT
MASCOT zastępuje fazę offline SHE rozszerzeniem OT, szybciej generując trójki dla małych ciał. Jest preferowanym mechanizmem fazy offline dla dwuuczestnikowego SPDZ.
Zastosowanie SPDZ: prywatne statystyki
Wiele szpitali oblicza średni wiek pacjentów bez udostępniania dokumentacji. Każdy szpital koduje swoje dane jako udziały arytmetyczne. SPDZ oblicza sumę i liczność, a uczestnicy poznają tylko iloraz.
Wydajność i skalowalność
SPDZ-2k (Cramer i in. 2018) rozszerza rozwiązanie na Z_{2^k} na potrzeby przyjaznej uczeniu maszynowemu arytmetyki stałoprzecinkowej. Biblioteka MP-SPDZ osiąga w testach 1 mln mnożeń na sekundę przez sieć LAN dla 2 uczestników.
Sprawdzenie wiedzy
Jaki jest cel trójek mnożenia Beavera w arytmetycznym MPC?
Podsumowanie lekcji
Arytmetyczne MPC używa udziałów addytywnych nad Z_p. Dodawanie jest bezpłatne, a mnożenie wykorzystuje trójki Beavera w jednej rundzie. SPDZ dodaje kody MAC na potrzeby bezpieczeństwa wobec złośliwych uczestników. MASCOT używa OT do szybkiego generowania trójek. MP-SPDZ umożliwia praktyczne wykorzystanie tych technik.
Często zadawane pytania
Czy lekcja „SPDZ i arytmetyczne MPC na współdzielonych sekretach” jest bezpłatna?
Tak — pełny tekst „SPDZ i arytmetyczne MPC na współdzielonych sekretach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „SPDZ i arytmetyczne MPC na współdzielonych sekretach”?
Wykonywać wspólne dodawanie i mnożenie liczb całkowitych z podzielonym sekretem Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?
Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „SPDZ i arytmetyczne MPC na współdzielonych sekretach”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?
Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Problem MPC i ukryte obwody Yao
- Protokół GMW i transfer niejawny
- SPDZ i arytmetyczne MPC na współdzielonych sekretach
- Zastosowania MPC: prywatne przecięcie zbiorów i uczenie maszynowe