Crittografia omomorfa con SEAL

.NET

Questo articolo illustra come e quando usare la crittografia omomorfica e come implementare la crittografia omomorfica con la libreria Aritmetica crittografata open source (edizione Standard AL) open source.

Architecture

Diagram showing traditional and SEAL encryption.

Scaricare un file di Visio di questa architettura.

Workflow

Gli schemi di crittografia tradizionali sono costituiti da tre funzionalità: generazione di chiavi, crittografia e decrittografia. Gli schemi di crittografia con chiave simmetrica usano la stessa chiave privata sia per la crittografia che per la decrittografia. Consente una crittografia efficiente di grandi quantità di dati per l'archiviazione cloud sicura e esternalizzata. Gli schemi di crittografia a chiave pubblica usano una chiave pubblica per la crittografia e una chiave privata separata per la decrittografia. Chiunque conosca la chiave pubblica può crittografare i dati, ma solo un utente che conosce la chiave privata può decrittografare e leggere i dati. La crittografia a chiave pubblica consente la comunicazione online sicura, ma in genere è meno efficiente rispetto alla crittografia con chiave simmetrica.

È possibile usare la crittografia tradizionale per l'archiviazione sicura e la comunicazione, ma il calcolo esternalizzato ha richiesto la rimozione dei livelli di crittografia. I servizi cloud che forniscono calcoli esternalizzati devono implementare i criteri di accesso per impedire l'accesso non autorizzato ai dati e alle chiavi. La privacy dei dati si basa sui criteri di controllo di accesso imposti dal provider di servizi cloud e considerati attendibili dal cliente.

Con La crittografia omomorfica microsoft edizione Standard AL, i provider di servizi cloud non hanno mai accesso non crittografato ai dati in cui archiviano e calcolano. I calcoli possono essere eseguiti direttamente sui dati crittografati. I risultati di tali calcoli crittografati rimangono crittografati e possono essere decrittografati solo dal proprietario dei dati usando la chiave privata. La maggior parte della crittografia omomorfica usa schemi di crittografia a chiave pubblica, anche se la funzionalità a chiave pubblica potrebbe non essere sempre necessaria.

Dettagli dello scenario

Le aziende spesso inviano, ricevono e archiviano i dati cloud in formato crittografato. Tuttavia, per sfruttare i vantaggi del cloud computing, le aziende devono fornire dati non crittografati o le chiavi per decrittografarla. Questa procedura comporta un aumento dei dati aziendali. La crittografia omomorfica consente il calcolo direttamente sui dati crittografati, semplificando l'applicazione del potenziale del cloud per i dati critici per la privacy.

Potenziali casi d'uso

  • Calcoli leggeri come addizione e moltiplicazione su dati critici per la privacy e parti dei programmi.
  • Cloud computing esternalizzato, in cui un singolo proprietario possiede tutti i dati e ha accesso esclusivo alle chiavi di decrittografia.

Considerazioni

  • Solo alcuni calcoli sono possibili sui dati crittografati. Microsoft edizione Standard AL libreria di crittografia omomorfica consente aggiunte e moltiplicazioni su numeri interi crittografati o numeri reali. I confronti crittografati, l'ordinamento o le espressioni regolari non sono spesso fattibili per valutare i dati crittografati usando questa tecnologia. È quindi possibile implementare solo calcoli cloud specifici critici per la privacy in parti di programmi usando Microsoft edizione Standard AL.

  • Microsoft edizione Standard AL include due schemi di crittografia omomorfica con proprietà diverse. Lo schema BFV consente l'aritmetica modulare per i numeri interi crittografati. Lo schema CKKS consente aggiunte e moltiplicazioni su numeri reali o complessi crittografati, ma restituisce solo risultati approssimativi. CKKS è la scelta migliore quando si sommano numeri reali crittografati, valutando modelli di Machine Learning su dati crittografati o distanze di calcolo di posizioni crittografate. Per le applicazioni in cui sono necessari valori esatti, lo schema BFV è l'unica scelta.

  • La crittografia omomorfica non è efficiente. Poiché la crittografia omomorfica comporta un notevole sovraccarico delle prestazioni, i calcoli già costosi da eseguire sui dati non crittografati probabilmente non sono fattibili sui dati crittografati.

  • I dati crittografati con crittografia omomorfica sono molte volte più grandi dei dati non crittografati, pertanto potrebbe non essere opportuno crittografare interi database di grandi dimensioni, ad esempio con questa tecnologia. Gli scenari in cui i requisiti di privacy rigorosi impediscono il cloud computation non crittografato, ma i calcoli stessi sono piuttosto leggeri, sono casi d'uso significativi.

  • In genere, gli schemi di crittografia omomorfica hanno una singola chiave privata, che viene mantenuta dal proprietario dei dati. La crittografia omomorfica non è ragionevole per gli scenari in cui più proprietari di dati privati diversi vogliono impegnarsi nel calcolo collaborativo.

  • Non è sempre facile o semplice tradurre un calcolo non crittografato in un calcolo sui dati crittografati. Anche se i nuovi utenti possono programmare ed eseguire un calcolo usando Microsoft edizione Standard AL, può esserci una grande differenza tra implementazione efficiente e inefficiente. Può essere difficile sapere come migliorare le prestazioni.

  • Anche se la primitiva di crittografia omomorfica stessa è sicura, non garantisce che le app e i protocolli che lo usano siano sicuri.

Contributori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Passaggi successivi

Per altre informazioni sulla crittografia omomorfica e sulla libreria Microsoft edizione Standard AL, vedere Microsoft edizione Standard AL di Microsoft Research e il progetto di codice edizione Standard AL su GitHub.

Vedere le risorse seguenti sulla sicurezza in Azure: