0Pricing
Cryptology Academy · Lezione

Schemi BGV e BFV per operazioni su interi

Esegua addizioni e moltiplicazioni tra interi cifrati utilizzando BGV.

Schemi BGV e BFV per operazioni su interi è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Panoramica di BGV

BGV (Brakerski-Gentry-Vaikuntanathan, 2012) è uno schema FHE a livelli basato su RLWE. Supporta somme e moltiplicazioni arbitrarie su testi in chiaro interi impacchettati. «A livelli» significa che gestisce circuiti fino a una profondità fissa L senza bootstrapping.

Spazio dei testi in chiaro

BGV e BFV codificano i testi in chiaro come polinomi in Z_t[x]/(x^n+1), dove t è un piccolo modulo del testo in chiaro (ad esempio, t=65537). Ogni polinomio codifica n valori interi, uno per coefficiente. Le operazioni sui testi cifrati vengono eseguite simultaneamente su tutti gli n valori: parallelismo SIMD.

Gestione del rumore in BGV

BGV riduce il rumore tramite il cambio di modulo: dopo ogni moltiplicazione, il modulo del testo cifrato q viene ridotto da Q_L a Q_{L-1}. In questo modo il rumore viene diviso per Q_L/Q_{L-1}, mantenendolo entro i limiti che consentono la decifratura. La profondità del circuito L corrisponde a L livelli di modulo.

Panoramica di BFV

BFV (Brakerski/Fan-Vercauteren, 2012) è simile a BGV, ma utilizza una strategia diversa per la gestione del rumore: l'invarianza della scala. BFV non richiede il cambio di modulo; invece, ridimensiona il testo cifrato dopo la moltiplicazione. È più semplice da implementare ed è utilizzato in Microsoft SEAL.

Codifica batch (slot NTT)

Tramite il teorema cinese del resto applicato all'anello dei testi in chiaro, ogni testo cifrato può contenere n/2 valori interi indipendenti (slot). Un'operazione di addizione sui testi cifrati somma in parallelo tutte le n/2 coppie. Una moltiplicazione moltiplica tutte le coppie. Velocità: n/2 operazioni su interi per ogni operazione sui testi cifrati.

Relinearizzazione dopo la moltiplicazione

Dopo aver moltiplicato due testi cifrati di grado 1, il risultato ha grado 2 (3 componenti). La relinearizzazione utilizza chiavi di valutazione (chiavi relin) per tornare al grado 1 al costo di rumore aggiuntivo. Questo passaggio è richiesto dopo ogni moltiplicazione.

Esempio Python con 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))

Rotazione

La rotazione del testo cifrato sposta ciclicamente gli n/2 slot del testo in chiaro. È utile per: riduzione tramite somma (accumulare tutti gli slot in uno), moltiplicazione matrice-vettore (ruotare e accumulare), convoluzioni (spostare e moltiplicare). Richiede chiavi di Galois (chiavi di rotazione precalcolate).

Prestazioni

BFV con n=8192: addizione ~10 µs, moltiplicazione ~5 ms (con relinearizzazione). Bootstrapping, se necessario: 30-60 secondi. Batch di 4096 interi: circa ~1 µs per intero per moltiplicazione, in termini ammortizzati. Non è pratico per il tempo reale, ma è utilizzabile per l'analisi offline.

Scelta dei parametri

Scelta di n e q: SEAL raccomanda n=4096 per una sicurezza di 128 bit con Q < 2^109; n=8192 per circuiti più grandi. Lo standard HE (homomorphicencryption.org) fornisce tabelle dei parametri. Utilizzi sempre i parametri raccomandati: scelte personalizzate possono compromettere facilmente la sicurezza.

Casi d'uso

Query su database cifrati (cercare record cifrati senza decifrarli). Analisi genomica privata (calcolare statistiche su DNA cifrato). Aggregazioni finanziarie cifrate (sommare i saldi dei conti cifrati senza vedere i singoli individui). Valutazione sicura dei modelli.

Verifica rapida

Quale tecnica utilizza BGV per gestire la crescita del rumore dopo le moltiplicazioni?

Riepilogo

BGV e BFV eseguono operazioni aritmetiche cifrate su interi utilizzando RLWE. La codifica batch fornisce parallelismo SIMD. BGV utilizza il cambio di modulo; BFV utilizza l'invarianza della scala. La relinearizzazione ripristina il grado dopo la moltiplicazione. Prossimo argomento: CKKS per l'aritmetica approssimata e il machine learning.

Domande Frequenti

La lezione «Schemi BGV e BFV per operazioni su interi» è gratuita?

Sì — il testo completo di «Schemi BGV e BFV per operazioni su interi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Schemi BGV e BFV per operazioni su interi»?

Esegua addizioni e moltiplicazioni tra interi cifrati utilizzando BGV. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Schemi BGV e BFV per operazioni su interi»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Che cos'è la cifratura omomorfica?
  2. Fondamenti del Learning With Errors (LWE)
  3. Schemi BGV e BFV per operazioni su interi
  4. CKKS per l'aritmetica approssimata e il machine learning
← Torna a Cryptology Academy