Skip to content
crittografia-cloud-computing
6 min

Il Sacro Graal della crittografia - Applicazioni al Cloud computing

Uno dei problemi principali della crittografia omomorfica è la velocità di esecuzione; recentemente Microsoft sembra aver raggiunto ottimi risultati in questa sfida ma i prossimi anni ci diranno se gli algoritmi FHE troveranno piena e universale implementazione nelle piattaforme Cloud.

 

I servizi web e il Cloud computing possono trovare nella crittografia omomorfica PHE uno strumento molto valido per la protezione dei dati. Poter elaborare informazioni nel Cloud senza doverle decifrare renderebbe l'intero processo molto più sicuro: l'utente potrebbe inviare una richiesta criptata al server Cloud per eseguire qualche operazione (ad esempio una query di ricerca) sui dati criptati PHE e ottenere un risultato criptato da decriptare successivamente con la propria chiave.

Recentemente, nel febbraio 2016, i ricercatori Microsoft in collaborazione con il mondo accademico hanno pubblicato un documento (CryptoNets: Applying Neural Networks to Encrypted Data with High Throughput and Accuracy) dove sostengono di aver velocizzato la crittografia omomorfica.

 

Lo schema originale di Gentry, infatti, era 100 trilioni di volte più lento nell'eseguire calcoli su dati criptati che su dati non criptati, IBM ha migliorato notevolmente le prestazioni rendendo i calcoli 2 milioni di volte più veloci ma ora è Microsoft che sostiene di aver fatto grandi passi in termini di velocità. I ricercatori hanno sviluppato un'intelligenza artificiale chiamata CryptoNets, una rete neurale, capace di elaborare dati criptati senza bisogno di decifrarli. Il documento spiega anche come la tecnologia può essere applicata al Cloud per elaborare dati criptati senza la necessità di una chiave di decifrazione.

 

La crittografia omomorfica rappresenta il futuro delle tecniche crittografiche perché permette di eseguire operazioni su dati crittografati senza la necessità di decifrarli. A trarre vantaggio dagli schemi PHE sarebbe soprattutto il Cloud che troverebbe un efficace sistema di protezione dei dati e la soluzione a importanti problemi di privacy si pensi, per esempio, in campo medico, alle analisi basate sul Cloud eseguite dai ricercatori su dataset di sequenze di DNA. Uno dei principali problemi della crittografia omomorfica è la velocità di esecuzione, recentemente Microsoft sembra aver raggiunto ottimi risultati in questa sfida ma saranno i prossimi anni a dirci se gli algoritmi PHE troveranno piena e universale implementazione nelle piattaforme Cloud.

La crittografia omomorfica permette all'utente di inviare i due valori cifrati, quindi il server somma i valori cifrati e invia i risultati all'utente. L'utente può quindi decodificare il risultato per ottenere la somma dei valori originali.

 

In altre parole, nella crittografia omomorfica, la somma dei valori crittografati è la crittografia della somma dei valori originali.

 

La crittografia omomorfica è quasi magica, ma alcuni schemi sono stati inventati per addizione e moltiplicazione ma sono molto lenti.

 

Una CryptoNet è una rete neurale che lavora con dati codificati in modo omomorfico per produrre un risultato codificato. Perché possiamo creare codici omomorfi che conservano l'addizione e la moltiplicazione e possiamo organizzare una rete neurale che lavora solo con queste operazioni. Il problema è che la formazione e l'uso di una rete neurale richiede già molto tempo.

 

L'innovazione consiste nell'abbinare accuratamente le caratteristiche della crittografia omomorfica alla rete neurale e viceversa. La crittografia omomorfica funziona effettivamente con i polinomi, cioè codifica un polinomio, e finché la rete neurale lavora solo con i polinomi allora si può ottenere più velocemente usando le istruzioni SIMD.

 

In questo caso, sono stati utilizzati polinomi fino a 8191 per confezionare immagini in lotti di 8192. Il database MNIST di cifre scritte a mano è stato usato per addestrare la rete. È stato utilizzato un set di allenamento di 50.000 immagini e la rete ha raggiunto il 99% di accuratezza sui restanti 10.000 casi di test. Ogni immagine è 28x28 e le 8191 immagini possono essere codificate in 122 secondi. La rete può essere applicata in 570 secondi su un PC con 16 GB di RAM e uno Xeon E5 che gira a 3,5 GHz. Il risultato viene decrittato in 5 secondi. Questo dà un throughput totale di 77236 immagini all'ora, che è abbastanza pratico per un servizio commerciale.

 

L'idea di mescolare la complessità computazionale delle reti neurali e la crittografia omomorfica sembra un non-starter, ma sembra che si possa fare. È possibile addestrare e utilizzare una rete neurale con dati criptati senza decifrarli prima.

 

Al momento è difficile dire se questa tecnologia sta andando da qualche parte. Non è chiaro quanto grande, o potrebbe essere, la domanda di machine learning come servizio. Inoltre, non è chiaro quanto spesso i problemi di sicurezza dei dati renderebbero questo approccio desiderabile.