Cryptology Academy · Lekcja

CKKS do przybliżonych obliczeń i uczenia maszynowego

Zastosować CKKS do chronionego prywatności wnioskowania w uczeniu maszynowym

Lekcja 4 z 413 kroki

CKKS do przybliżonych obliczeń i uczenia maszynowego to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 4 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.

Dlaczego CKKS?

BGV/BFV działają na liczbach całkowitych (arytmetyka dokładna). Uczenie maszynowe wykorzystuje liczby zmiennoprzecinkowe (arytmetyka przybliżona). CKKS (Cheon-Kim-Kim-Song, 2017) koduje liczby rzeczywiste i zespolone oraz pozwala kontrolować utratę precyzji — dzięki temu idealnie nadaje się do wnioskowania ML i analityki danych.

Arytmetyka przybliżona

CKKS traktuje szum jako część precyzji kodowania. Zamiast eliminować szum (korygować błędy), CKKS interpretuje wynik jako przybliżenie z gwarantowanymi granicami precyzji. Ten kompromis umożliwia znacznie wydajniejsze HE dla obliczeń na wartościach ciągłych.

Kodowanie liczb rzeczywistych

CKKS koduje wektor liczb zespolonych jako wielomian: wektor (z_0, ..., z_{n/2-1}) jest odwzorowywany za pomocą odwrotnej transformaty FFT na wielomian w R. Współczynnik skalowania Δ (np. 2^40) odwzorowuje liczby zmiennoprzecinkowe na liczby całkowite. Jeden szyfrogram zawiera n/2 slotów rzeczywistych.

Reskalowanie

Po mnożeniu współczynnik skalowania podwaja się: Δ^2. CKKS wprowadza operację reskalowania: dzielenie przez Δ w celu przywrócenia pojedynczego skalowania. Zmniejsza to również poziom modułu szyfrogramu (podobnie jak przełączanie modułu w BGV), dzięki czemu szyfrogram pozostaje możliwy do obsługi.

Analiza precyzji

Każde mnożenie zużywa jeden poziom modułu i zmniejsza precyzję o około log2(Δ) bitów. Dla obwodu o głębokości L i współczynniku skalowania Δ = 2^40 całkowita utrata precyzji wynosi około L*40 bitów. Początkowy moduł Q należy wybrać na tyle duży, aby pomieścić ten budżet precyzji.

Wnioskowanie ML z użyciem CKKS

Warstwy liniowe (mnożenie macierzy przez wektor): wydajne — rotacja i akumulacja. Funkcje aktywacji (ReLU, sigmoid): wymagają przybliżenia wielomianowego. ReLU: przybliżenie wielomianem Czebyszewa stopnia 7. Utrata dokładności: około 0,1–1% w porównaniu z wnioskowaniem na tekście jawnym.

Przykład prywatnego wnioskowania

Szpital szyfruje dane pacjenta za pomocą klucza publicznego CKKS pacjenta. Chmura uruchamia diagnostyczną sieć neuronową na zaszyfrowanych danych, korzystając z operacji CKKS. Zwraca zaszyfrowaną predykcję. Szpital odszyfrowuje ją za pomocą klucza prywatnego. Chmura nigdy nie ma dostępu do danych pacjenta ani do diagnozy w postaci jawnej.

Parametry CKKS

Zalecenia HEAAN/OpenFHE: n=2^15 (32768) dla głębokich obwodów ML. Łańcuch modułów: początkowe Q ≈ 2^1500 dla 30 poziomów mnożenia przy Δ=2^50. Bezpieczeństwo: 128 bitów, przy założeniu, że CKKS z tymi parametrami jest równie trudne jak RLWE. Pamięć: szyfrogram ~1 MB.

Bootstrapping w CKKS

Bootstrapping CKKS (Cheon i in., 2018) homomorficznie oblicza redukcję modularną w celu odświeżenia szyfrogramu. Złożoność wynika z obliczania funkcji sinus za pomocą przybliżenia wielomianowego na liczbach zespolonych. Umożliwia nieograniczoną głębokość obwodu i trwa około 30 sekund na bootstrapping.

Porównanie: CKKS a BFV

BFV: dokładne liczby całkowite, teksty jawne zawierające liczby całkowite, brak utraty precyzji. CKKS: przybliżone liczby rzeczywiste/zespolone, teksty jawne zmiennoprzecinkowe, precyzja zmniejsza się wraz z głębokością. BFV należy stosować do: baz danych, zapytań, dokładnych obliczeń. CKKS należy stosować do: ML, statystyki, obliczeń naukowych.

Biblioteki

HEAAN (oryginalny CKKS, Seoul National University). Microsoft SEAL (CKKS + BFV). OpenFHE (CKKS + BGV + BFV). Concrete-ML (Zama.ai, opakowuje OpenFHE dla modeli scikit-learn i PyTorch). TF-HE (eksperymenty z integracją TensorFlow + HE).

Szybkie sprawdzenie

Dlaczego CKKS jest preferowany zamiast BFV do wnioskowania modeli uczenia maszynowego?

Podsumowanie

CKKS obsługuje przybliżoną arytmetykę na liczbach rzeczywistych, dzięki czemu idealnie nadaje się do wnioskowania ML i statystyki na zaszyfrowanych danych. Reskalowanie zarządza współczynnikiem skalowania, a przybliżenia wielomianowe zastępują funkcje aktywacji. Dalej: kryptografia postkwantowa — algorytmy Shora i Grovera.

Bezpłatny start

Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
67
Lekcje
261

Często zadawane pytania

Czy lekcja „CKKS do przybliżonych obliczeń i uczenia maszynowego” jest bezpłatna?

Tak — pełny tekst „CKKS do przybliżonych obliczeń i uczenia maszynowego” 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 „CKKS do przybliżonych obliczeń i uczenia maszynowego”?

Zastosować CKKS do chronionego prywatności wnioskowania w uczeniu maszynowym Ć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 4 z 4.

Ile czasu zajmuje lekcja „CKKS do przybliżonych obliczeń i uczenia maszynowego”?

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

  1. Czym jest szyfrowanie homomorficzne?
  2. Podstawa Learning With Errors (LWE)
  3. Schematy BGV i BFV do operacji na liczbach całkowitych
  4. CKKS do przybliżonych obliczeń i uczenia maszynowego
← Powrót do Cryptology Academy