CKKS for tilnærmet aritmetikk og maskinlæring
Bruk CKKS til personvernbevarende inferens i maskinlæring.
CKKS for tilnærmet aritmetikk og maskinlæring er en gratis leksjon i Cryptology Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cryptology Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cryptology Academy inneholder totalt 4 leksjoner.
Hvorfor CKKS?
BGV/BFV fungerer over heltall (eksakt aritmetikk). Maskinlæring bruker flyttall (tilnærmet aritmetikk). CKKS (Cheon-Kim-Kim-Song, 2017) koder reelle og komplekse tall og tillater kontrollert presisjonstap — ideelt for ML-inferens og dataanalyse.
Tilnærmet aritmetikk
CKKS behandler støyen som en del av kodingspresisjonen. I stedet for å eliminere støyen (feilkorrigering) betrakter CKKS resultatet som en tilnærming med garanterte presisjonsgrenser. Denne avveiningen muliggjør langt mer effektiv HE for beregninger med kontinuerlige verdier.
Koding av reelle tall
CKKS koder en vektor med komplekse tall som et polynom: en vektor (z_0, ..., z_{n/2-1}) avbildes via invers FFT til et polynom i R. Skaleringsfaktoren Δ (for eksempel 2^40) avbilder flyttall til heltall. n/2 reelle plasser per chiffertekst.
Reskalering
Etter multiplikasjon dobles skaleringsfaktoren: Δ^2. CKKS innfører en reskaleringsoperasjon: del på Δ for å gjenopprette enkel skalering. Dette reduserer også chiffertekstens modulusnivå (på samme måte som modulusbytte i BGV) og holder chifferteksten håndterbar.
Presisjonsanalyse
Hver multiplikasjon bruker ett modulusnivå og reduserer presisjonen med ~log2(Δ) biter. For en krets med dybde L og skaleringsfaktor Δ = 2^40 er det totale presisjonstapet ≈ L*40 biter. Velg et innledende modulus Q som er stort nok til å romme dette presisjonsbudsjettet.
ML-inferens med CKKS
Lineære lag (matrise-vektor-multiplikasjon): effektivt — roter og akkumuler. Aktiveringsfunksjoner (ReLU, sigmoid): krever polynomisk tilnærming. ReLU: tilnærm med et Chebyshev-polynom av grad 7. Presisjonstap: ~0,1–1 % sammenlignet med inferens i klartekst.
Eksempel på privat inferens
Sykehuset krypterer pasientdata med sin offentlige CKKS-nøkkel. Skyen kjører et diagnostisk nevralt nettverk på de krypterte dataene ved hjelp av CKKS-operasjoner. Returnerer en kryptert prediksjon. Sykehuset dekrypterer med den private nøkkelen. Skyen ser aldri pasientdataene eller diagnosen i klartekst.
CKKS-parametere
HEAAN/OpenFHE-anbefaling: n=2^15 (32768) for dype ML-kretser. Moduluskjede: innledende Q ≈ 2^1500 for 30 multiplikasjonsnivåer ved Δ=2^50. Sikkerhet: 128 biter, under antakelsen om at CKKS med disse parameterne er like vanskelig som RLWE. Minne: chiffertekst ~1 MB.
Bootstrapping i CKKS
CKKS-bootstrapping (Cheon et al., 2018) evaluerer modulusreduksjonen homomorft for å fornye chifferteksten. Kompleksitet: evaluering av sinusfunksjonen (via polynomisk tilnærming) over komplekse tall. Muliggjør ubegrenset kretsdybde med omtrent 30 sekunder per bootstrapping.
Sammenligning: CKKS vs. BFV
BFV: eksakte heltall, heltall som klartekst, ingen presisjonstap. CKKS: tilnærmede reelle og komplekse tall, flyttall som klartekst, presisjonen reduseres med dybden. Bruk BFV til: databaser, spørringer og eksakte beregninger. Bruk CKKS til: ML, statistikk og vitenskapelige beregninger.
Biblioteker
HEAAN (opprinnelig CKKS, Seoul National University). Microsoft SEAL (CKKS + BFV). OpenFHE (CKKS + BGV + BFV). Concrete-ML (Zama.ai, omslutter OpenFHE for scikit-learn- og PyTorch-modeller). TF-HE (eksperimenter med TensorFlow- og HE-integrasjon).
Hurtigsjekk
Hvorfor foretrekkes CKKS fremfor BFV for maskinlæringsinferens?
Oppsummering
CKKS støtter tilnærmet aritmetikk med reelle tall, noe som er ideelt for ML-inferens og statistikk på krypterte data. Reskalering håndterer skaleringsfaktoren; polynomiske tilnærminger erstatter aktiveringsfunksjoner. Neste: postkvantekryptografi — Shors og Grovers algoritmer.
Lær deg Cryptology Academy med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 67
- Leksjoner
- 261
Ofte stilte spørsmål
Er leksjonen «CKKS for tilnærmet aritmetikk og maskinlæring» gratis?
Ja – hele teksten i «CKKS for tilnærmet aritmetikk og maskinlæring» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cryptology Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cryptology Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «CKKS for tilnærmet aritmetikk og maskinlæring»?
Bruk CKKS til personvernbevarende inferens i maskinlæring. Du øver på Cryptology Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Cryptology Academy?
Ingen tidligere erfaring er nødvendig. Cryptology Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «CKKS for tilnærmet aritmetikk og maskinlæring»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Cryptology Academy-leksjonen?
Ja. Alle Cryptology Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Hva er homomorf kryptering?
- Learning With Errors (LWE) som grunnlag
- BGV- og BFV-skjemaer for heltallsoperasjoner
- CKKS for tilnærmet aritmetikk og maskinlæring