Problem MPC i ukryte obwody Yao
Zrozumieć bezpieczne obliczenia dla dwóch stron za pomocą ukrytych obwodów boolowskich
Problem MPC i ukryte obwody Yao to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 1 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.
Problem bezpiecznych obliczeń wielostronnych
MPC umożliwia n uczestnikom, z których każdy posiada prywatne dane wejściowe x_i, wspólne obliczenie f(x_1,...,x_n) bez ujawniania sobie nawzajem tych danych — tak, jakby obliczenia wykonywała zaufana strona trzecia.
Klasyczny przykład: problem milionerów
Problem milionerów Yao z 1982 roku: Alice i Bob chcą ustalić, kto jest bogatszy, nie ujawniając swojego majątku. Nie korzystają przy tym z zaufanej strony trzeciej. MPC rozwiązuje ten problem z gwarancjami kryptograficznymi.
Cele bezpieczeństwa w MPC
1. Prywatność: uczestnicy poznają tylko wynik oraz informacje, które mogą z niego wywnioskować. 2. Poprawność: wynik jest prawidłowy, nawet jeśli niektórzy uczestnicy są skorumpowani. 3. Istnieją warianty dla przeciwników półuczciwych i złośliwych.
Obwody boolowskie jako model obliczeń
Każdą funkcję można wyrazić jako obwód boolowski (bramki AND, XOR, NOT). Protokoły MPC często działają na poziomie obwodu, bezpiecznie obliczając wartość każdej bramki.
Konstrukcja obwodu garblowanego Yao
Alice (garbler) przypisuje każdemu przewodowi dwie losowe etykiety: jedną dla wartości 0 i jedną dla wartości 1. Szyfruje tabelę prawdy każdej bramki za pomocą etykiet przewodów wejściowych. Bob (evaluator) poznaje wyłącznie etykiety odpowiadające jego danym wejściowym dzięki Oblivious Transfer.
Obliczanie wartości garblowanej bramki
Bob otrzymuje garblowane tabele (4 szyfrogramy na bramkę AND). Odszyfrowuje dokładnie jeden wiersz za pomocą swoich etykiet wejściowych i otrzymuje etykietę wyjściową — nie wiedząc, czy reprezentuje ona 0, czy 1.
Optymalizacja Point-and-Permute
Do każdej etykiety dołącz losowy „bit wyboru”. Bob używa bitów wyboru, aby znaleźć właściwy wiersz garblowanej tabeli w czasie O(1), zamiast próbować wszystkich czterech odszyfrowań. Zmniejsza to koszt obliczeń 4×.
Optymalizacja Free-XOR
Kolesnikov i Schneider (2008): wybierz globalne przesunięcie Δ. Następnie dla każdego przewodu zachodzi label_1 = label_0 ⊕ Δ. Bramki XOR stają się bezpłatne (nie wymagają szyfrowania), co pozwala zaoszczędzić około 30% przepustowości.
Half-Gates: minimalna liczba bramek AND
Zahur i in. (2015): każda bramka AND wymaga tylko 2 szyfrogramów (wcześniej 4). W połączeniu z Free-XOR rozwiązanie to zmniejsza o połowę przepustowość standardowych obwodów garblowanych.
Garblowanie dwu- i wielostronne
Klasyczne obwody garblowane są przeznaczone dla 2 stron. Rozszerzenia wielostronne (np. protokół BMR) równoleglą garblowanie między wszystkimi uczestnikami, ale wymagają komunikacji O(n²). Są praktyczne dla małej liczby n.
Sprawdzenie wiedzy
W protokole obwodu garblowanego Yao, jak Bob uzyskuje etykiety przewodów odpowiadające jego prywatnym bitom wejściowym?
Podsumowanie lekcji
MPC umożliwia uczestnikom wspólne obliczenia bez ujawniania danych wejściowych. Obwody garblowane kodują funkcje boolowskie jako zaszyfrowane tabele prawdy. Optymalizacje (Free-XOR, Half-Gates, Point-and-Permute) sprawiają, że rozwiązanie jest praktyczne. OT dostarcza Bobowi prywatnie etykiety jego danych wejściowych.
Często zadawane pytania
Czy lekcja „Problem MPC i ukryte obwody Yao” jest bezpłatna?
Tak — pełny tekst „Problem MPC i ukryte obwody Yao” 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 „Problem MPC i ukryte obwody Yao”?
Zrozumieć bezpieczne obliczenia dla dwóch stron za pomocą ukrytych obwodów boolowskich Ć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 1 z 4.
Ile czasu zajmuje lekcja „Problem MPC i ukryte obwody Yao”?
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