Questo articolo illustra come e quando usare la crittografia omomorfica e come implementare la crittografia omomorfica con Microsoft simple encrypted Arithmetic Library (SEAL) open source.
Architettura
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 di Microsoft SEAL , i provider di servizi cloud non hanno mai accesso non crittografato ai dati archiviati e calcolati. 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. La libreria di crittografia omomorfica microsoft SEAL 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 SEAL.
Microsoft SEAL 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 con Microsoft SEAL, 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.
Collaboratori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.
Autore principale:
- Jose Contreras | Principal Software Engineering Manager
Passaggi successivi
Per altre informazioni sulla crittografia omomorfica e sulla libreria Microsoft SEAL, vedere Microsoft SEAL from Microsoft Research e il progetto di codice SEAL su GitHub.
Vedere le risorse seguenti sulla sicurezza in Azure:
- Introduzione alla sicurezza di Azure
- Procedure consigliate per la sicurezza di Azure
- Microsoft Cloud Security Benchmark
- Panoramica del pilastro per la sicurezza
- Sicurezza in Microsoft Cloud Adoption Framework