Enc(a) + Enc(b)= Enc(a + b)compute without decrypting

Crittografia omomorfa

11 minimo lettoCrittografia

La crittografia omomorfa è la tecnica crittografica che consente di eseguire calcoli su dati crittografati senza prima decrittografarli. La matematica esiste dal 1978, la versione pratica completamente omomorfa dal 2009, e le prestazioni ingegneristiche sono migliorate di 10.000 volte negli ultimi dieci anni. Il fatto che sia pronto per la produzione è passato da "no" a "a volte sì" solo negli ultimi anni.

Il corpo completo dell'articolo è fornito in inglese di seguito.

Crittografia omomorfica (HE) è una classe di schemi di crittografia che consentono il calcolo direttamente su testi cifrati. Il risultato, una volta decrittografato, equivale al risultato dell'esecuzione della stessa operazione sui testi in chiaro. Un cliente fidato detiene le chiavi; un server non attendibile può eseguire analisi, apprendimento automatico o funzioni arbitrarie sui dati crittografati senza mai vedere i dati stessi.

LL'idea di base

Un semplice esempio: immagina un codice in cui Crittografa(a) + Crittografa(b) = Crittografa(a + b). Se invii al server Encrypt(5) e Encrypt(7), calcola la somma per ottenere Encrypt(12). Decifri e vedi 12. Il server non ha imparato nulla sui tuoi numeri ma ha prodotto la somma corretta.

Gli schemi omomorfi reali sono più complessi ma il principio è lo stesso: i testi cifrati hanno una struttura algebrica che rispecchia i testi in chiaro sottostanti.

Tre categorie

  • Crittografia parzialmente omomorfa (PHE). Supporta un tipo di operazione: addizione o moltiplicazione, non entrambi. RSA è moltiplicativamente omomorfico; Paillier è additivamente omomorfo. Hanno applicazioni pratiche (voto elettronico, aggregazione privata) e prestazioni ragionevoli.
  • Somewhat Homomorphic Encryption (SHE). Supporta sia l'addizione che la moltiplicazione, ma solo un numero limitato di operazioni prima che il testo cifrato diventi troppo rumoroso per essere decrittografato correttamente.
  • Fully Homomorphic Encryption (FHE). Supporta calcoli arbitrari. La svolta di Craig Gentry nel 2009 ha introdotto il primo schema FHE; le generazioni successive (BGV, BFV, CKKS, TFHE) lo hanno reso progressivamente più veloce.

La storia delle prestazioni

FHE L'ostacolo principale sono state le prestazioni. Lo schema originale di Gentry era circa 100 trilioni di volte più lento del calcolo su testo in chiaro. Lo stato attuale della tecnica (CKKS per l'aritmetica approssimata, TFHE per i circuiti booleani) è da 100× a 100.000× più lento del testo in chiaro a seconda dell'operazione. È ancora lento ma consente applicazioni reali per casi d'uso in cui la sensibilità dei dati conta più della velocità.

  • CKKS — aritmetica approssimata sui numeri reali; buono per l'inferenza dell'apprendimento automatico dove sono accettabili piccoli errori.
  • BGV, BFV: aritmetica esatta degli interi; ottimo per le operazioni sui database.
  • TFHE — circuiti booleani con bootstrap veloce; utile per il controllo del flusso.

Distribuzioni nel mondo reale

  • Suggerimenti privati di Microsoft Edge utilizza HE per crittografare l'URL che il browser sta per visitare, consente a Microsoft di elaborare i suggerimenti correlati sull'input crittografato e restituisce risultati crittografati.
  • Apple Private Cloud Compute and Private Apprendimento federato utilizza tecniche correlate a HE per aggregare gli aggiornamenti dei modelli utente senza visualizzare i contributi individuali.
  • I provider cloud (AWS, Azure) stanno iniziando a offrire FHE-as-a-service per carichi di lavoro specifici come l'analisi genomica sui dati dei pazienti crittografati.
  • Banks utilizza HE per l'analisi dei rischi tra istituti senza condividere i clienti data.
  • I sistemi elettorali utilizzano schemi omomorfi additivi per l'aggregazione dei voti proteggendo al contempo le singole schede elettorali.

Principali biblioteche

  • Microsoft SEAL: schema open source, maturo e ampio support
  • OpenFHE — successore gestito dalla comunità di PALISADE
  • Concrete — Framework di Zama incentrato su TFHE con API di alto livello
  • HElib — Ricerca di IBM libreria
  • tfhe-rs — Implementazione Rust di TFHE

Limitations e gotchas

  • Ciphertext size. Un bit crittografato può essere decine di kilobyte. Un piccolo set di dati crittografato può contenere gigabyte.
  • LBudget di rumore limitato. Ogni operazione aggiunge rumore; alla fine la decrittazione fallisce. Il bootstrap aggiorna il rumore ma è costoso.
  • Profondità della funzione. I calcoli profondi richiedono molti livelli moltiplicativi, aumentando le dimensioni dei parametri.
  • Non per tutto. Operazioni come la ramificazione o l'ordinamento sono scomode in FHE perché non esiste un modo efficiente per esaminare gli elementi intermedi valori.
  • Gestione chiavi. La chiave di decrittazione è altamente sensibile: perderla significa perdere l'accesso ai tuoi dati; la fuga di notizie vanifica l'intero punto.

HE vs MPC vs ZK

Tre tecnologie correlate per la tutela della privacy spesso confuse:

  • Crittografia omomorfica: una parte crittografa, un'altra calcola su testi cifrati, la prima parte decrypts.
  • Secure Multi-Party Computation (MPC): più parti calcolano congiuntamente una funzione senza rivelare i propri input. Protocolli diversi, compromessi diversi.
  • Zero-Knowledge Proofs (ZK): dimostrare che un'affermazione è vera senza rivelare informazioni aggiuntive. Obiettivo diverso: dimostrazione, non calcolo.

Le tre sono complementari; i moderni sistemi di privacy spesso li combinano.

Lil futuro

FHE le prestazioni continuano a migliorare. L'accelerazione hardware (supporto CUDA di NVIDIA per HE, FPGA e ASIC personalizzati di Optalysys e altri, primitive HE di Intel) sta riducendo il divario con il calcolo del testo in chiaro di un altro ordine di grandezza. I prossimi 5-10 anni vedranno probabilmente la FHE passare da "ricerca interessante" a "mainstream per casi d'uso della privacy di alto valore". Non sostituirà la crittografia convenzionale: la integra.

Domande frequenti

La crittografia omomorfica è sicura?
Gli schemi maturi (CKKS, BGV, BFV, TFHE) si basano sul problema Learning With Errors, considerato sicuro anche contro i computer quantistici. I bug di implementazione e gli attacchi dai canali laterali rimangono preoccupazioni; la teoria crittografica è valida.
Posso archiviare i miei dati con HE nel cloud?
In casi specifici sì: alcuni fornitori di servizi cloud offrono HE-as-a-service per l'analisi dei dati crittografati. Per l'archiviazione generale, HE è eccessivo rispetto alla crittografia a riposo più crittografia lato client. HE è importante quando il cloud deve elaborare i dati senza decrittografarli.
Qual è la differenza tra PHE e FHE?
PHE supporta un tipo di operazione (addizione O moltiplicazione); FHE supporta calcoli arbitrari che includono entrambi. PHE è veloce e pratico; La FHE è lenta ma del tutto generale. Usa PHE quando le operazioni di cui hai bisogno si adattano; usa FHE quando hai bisogno di flessibilità.
Viene utilizzato in prodotti reali?
Sempre più. I suggerimenti privati ​​di Microsoft Edge, l'apprendimento federato di Apple, alcune analisi dei rischi bancari e un numero crescente di applicazioni di machine learning nel settore sanitario utilizzano HE. L'adozione più ampia avviene man mano che le prestazioni migliorano e gli strumenti maturano.
I computer quantistici distruggeranno HE?
Si ritiene che i moderni schemi HE basati su reticolo (CKKS, BGV, BFV, TFHE) siano resistenti ai quanti. La loro sicurezza si basa sugli stessi problemi complessi utilizzati nella crittografia post-quantistica. La comunità crittografica considera HE una delle direzioni di crittografia post-quantum-safe.
Spiegazione della crittografia omomorfa: calcolo su dati che non puoi leggere