BGV- og BFV-skemaer til heltalsoperationer
Udfør krypteret addition og multiplikation af heltal ved hjælp af BGV.
BGV- og BFV-skemaer til heltalsoperationer er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.
BGV-oversigt
BGV (Brakerski-Gentry-Vaikuntanathan, 2012) er et niveauinddelt FHE-skema baseret på RLWE. Det understøtter vilkårlige additioner og multiplikationer på pakkede heltalsklartekster. "Niveauinddelt" betyder, at det håndterer kredsløb op til en fast dybde L uden bootstrapping.
Klartekstområde
BGV og BFV koder klartekster som polynomier i Z_t[x]/(x^n+1), hvor t er en lille klartekstmodulus (f.eks. t=65537). Hvert polynomium koder n heltalsværdier, én pr. koefficient. Aritmetik på chiffertekster udføres samtidigt på alle n værdier — SIMD-parallelisme.
Støjhåndtering i BGV
BGV reducerer støj ved modulusskift: efter hver multiplikation reduceres chiffertekstens modulus q fra Q_L til Q_{L-1}. Det dividerer støjen med Q_L/Q_{L-1}, så støjen holdes inden for grænser, hvor dekryptering stadig fungerer. Kredsløbsdybden L svarer til L modulusniveauer.
BFV-oversigt
BFV (Brakerski/Fan-Vercauteren, 2012) minder om BGV, men bruger en anden strategi til støjhåndtering: den er skala-invariant. BFV kræver ikke modulusskift; i stedet omskaleres chifferteksten efter multiplikation. Det er enklere at implementere og bruges i Microsoft SEAL.
Batchkodning (NTT-pladser)
Via den kinesiske restsætning over klartekstringen kan hver chiffertekst indeholde n/2 uafhængige heltalsværdier (pladser). En addition af chiffertekster lægger alle n/2 par sammen parallelt. En multiplikation multiplicerer alle par. Gennemløb: n/2 heltalsoperationer pr. chiffertekstoperation.
Relinearisering efter multiplikation
Efter multiplikation af to chiffertekster af grad 1 har resultatet grad 2 (3 komponenter). Relinearisering bruger evalueringsnøgler (relin-nøgler) til at konvertere tilbage til grad 1 på bekostning af øget støj. Dette trin kræves efter hver multiplikation.
Python-eksempel med SEAL
from seal import EncryptionParameters, scheme_type, SEALContext, KeyGenerator, Encryptor, Evaluator, Decryptor parms = EncryptionParameters(scheme_type.bfv) parms.set_poly_modulus_degree(4096) parms.set_coeff_modulus(CoeffModulus.BFVDefault(4096)) parms.set_plain_modulus(PlainModulus.Batching(4096, 20))
Rotation
Rotation af chifferteksten forskyder de n/2 klartekstpladser cyklisk. Det er nyttigt til: sum-reduce (akkumulér alle pladser i én), matrix-vektor-multiplikation (rotér og akkumulér) og foldninger (forskyd og multiplicér). Kræver Galois-nøgler (forudberegnede rotationsnøgler).
Ydelse
BFV med n=8192: addition ~10 µs, multiplikation ~5 ms (med relinearisering). Bootstrapping (hvis nødvendigt): 30-60 sekunder. Batch på 4096 heltal: amortiseret ~1 µs pr. heltal pr. multiplikation. Upraktisk i realtid, men anvendeligt til offline-analyse.
Valg af parametre
Valg af n og q: SEAL anbefaler n=4096 for 128-bit-sikkerhed med Q < 2^109 og n=8192 til større kredsløb. HE-standarden (homomorphicencryption.org) indeholder parametertabeller. Brug altid de anbefalede parametre — tilpassede valg kan nemt underminere sikkerheden.
Anvendelsesområder
Krypterede databaseforespørgsler (søg i krypterede poster uden at dekryptere dem). Privat genomisk analyse (beregn statistikker på krypteret DNA). Krypterede finansielle sammenlægninger (læg krypterede kontosaldi sammen uden at se de enkelte saldi). Sikker modelevaluering.
Hurtigt tjek
Hvilken teknik bruger BGV til at håndtere støjvæksten efter multiplikationer?
Opsummering
BGV og BFV udfører krypteret heltalsaritmetik ved hjælp af RLWE. Batchkodning giver SIMD-parallelisme. BGV bruger modulusskift; BFV bruger skala-invarians. Relinearisering gendanner graden efter multiplikation. Næste emne: CKKS til approksimativ aritmetik og ML.
Lær Cryptology Academy med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 67
- Lektioner
- 261
Ofte stillede spørgsmål
Er lektionen “BGV- og BFV-skemaer til heltalsoperationer” gratis?
Ja — hele teksten til “BGV- og BFV-skemaer til heltalsoperationer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “BGV- og BFV-skemaer til heltalsoperationer”?
Udfør krypteret addition og multiplikation af heltal ved hjælp af BGV. Du øver dig i Cryptology Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cryptology Academy?
Der kræves ingen tidligere erfaring. Cryptology Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “BGV- og BFV-skemaer til heltalsoperationer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cryptology Academy-lektion?
Ja. Alle Cryptology Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hvad er homomorf kryptering?
- Learning With Errors (LWE): Grundlag
- BGV- og BFV-skemaer til heltalsoperationer
- CKKS til approksimativ aritmetik og ML