Definizione di crittografia omomorfa
Come si fa quando è necessario eseguire calcoli su grandi insiemi di dati preservandone la riservatezza? In altre parole, vorreste raccogliere analisi, per esempio, sui dati degli utenti, senza rivelare il contenuto al motore di calcolo che sta per calcolare le analisi. Oppure siete un fornitore di servizi cloud che supporta l’archiviazione crittografata dei documenti, ma volete permettere ai vostri utenti di modificare i loro documenti senza decifrarli prima.
Ecco dove la crittografia omomorfa potrebbe venire in vostro soccorso. La crittografia omomorfa offre la possibilità di “esternalizzare” l’archiviazione e il calcolo dei dati in ambienti cloud convertendo prima i dati in una forma crittografata.
Quello che è degno di nota di questa tecnica è che si ottengono gli stessi risultati (in forma crittografata) eseguendo le operazioni e i calcoli desiderati sui dati crittografati come si sarebbe fatto eseguendo le stesse operazioni sulla forma non crittografata.
“La crittografia omomorfa differisce dai tipici metodi di crittografia in quanto permette di eseguire calcoli direttamente sui dati crittografati senza richiedere l’accesso a una chiave segreta. Il risultato di tale calcolo rimane in forma criptata, e può in un secondo momento essere rivelato dal proprietario della chiave segreta”, secondo Homomorphic Encryption Standardization, il consorzio di standard industriali che mantiene gli standard “ufficiali”, la guida e le informazioni sugli sviluppi nel settore. Questo permette l’uso delle stesse soluzioni di analisi computazionale senza compromettere la riservatezza dei dati in nessuna fase.
L’idea di progettare tali suite di cifratura era in gran parte sperimentale e proposta alla fine degli anni ’70. Ci sono voluti tre decenni per concepire un primo concetto pratico nel 2009, da Craig Gentry.
Cosa c’è di diverso nella crittografia omomorfa
Quando si pensa alla crittografia in un contesto standard industriale, come HTTPS (reso possibile da SSL/TLS) o la messaggistica chat end-to-end, si assume che tutta la crittografia è intrinsecamente sicura e garantisce riservatezza e integrità. Questa è una netta differenza che distingue la crittografia omomorfa dai tipici sistemi di crittografia.
Perché la crittografia omomorfa funzioni, le sue suite di cifratura sono progettate per essere malleabili, il che significa che non possono garantire l’integrità dei dati. Questo non è un difetto, ma una caratteristica prevista che rende più facile operare sui dati criptati.
La malleabilità è una proprietà degli algoritmi crittografici che permette la trasformazione di un testo criptato in un altro testo criptato valido che cambia il significato del testo originale. Inoltre, l’utente che trasforma i dati non avrebbe nemmeno bisogno di sapere o dedurre quali fossero i dati originali non crittografati.
In parole povere, se io inviassi un’email crittografata all’editore di CSO dicendo: “CSO è fantastico”, un attaccante man-in-the-middle (MitM) che può rubare questo testo crittografato ma non sa cosa significa potrebbe potenzialmente trasformarlo in un’altra stringa crittografata, che quando l’editore la decifra dice: “Io odio CSO!”
Ovviamente, i sistemi pratici di crittografia delle email hanno delle contromisure per proteggere l’integrità dei dati e rendere questo scenario virtualmente impossibile, a condizione che non ci siano vulnerabilità negli algoritmi o nella loro implementazione.
Per esempio, il sistema di crittografia RSA, che è parzialmente omomorfo, usa la cosiddetta funzione “padding” per ridurre l’impatto della malleabilità. Inoltre, i checksum di autenticazione dei messaggi (ad esempio, gli hash MD5 o SHA) aiutano a convalidare l’integrità dei dati.
Questo non è tanto un motivo di preoccupazione in quanto la riservatezza dei dati non sarebbe influenzata dalla malleabilità. La preoccupazione sorge quando, diciamo, il motore di calcolo che lavora sui dati criptati introduce un errore nei dati o nel risultato criptato a causa di un algoritmo difettoso. La natura della crittografia omomorfica potrebbe rendere particolarmente difficile scoprire questi errori.
Tipi di crittografia omomorfa
Tutti i dati sono numeri (i computer lavorano in binario). La crittografia, essendo una branca matematica, lavora direttamente con i numeri. Ciò significa che la crittografia e la decrittografia non sono altro che un complesso gioco di operazioni sui numeri.
Ci sono tre tipi di crittografia omomorfa:
- La crittografia parzialmente omomorfa (PHE) permette solo un tipo di operazione matematica (come la moltiplicazione) su un dato insieme di dati per un numero illimitato di volte.
- La crittografia in qualche modo omomorfa (SHE) è più permissiva ma ancora restrittiva, permettendo sia l’addizione che la moltiplicazione su un dato insieme di dati solo un numero di volte.
- La crittografia completamente omomorfica (FHE) è il meglio di tutti i mondi, permettendo diversi tipi di operazioni sui dati per un numero illimitato di volte, ma con un significativo compromesso di prestazioni.
Ogni approccio propende per offrire prestazioni, utilità o protezione, con FHE che è altamente intensivo e attualmente inefficiente (e quindi offre scarse prestazioni in uno scenario del mondo reale).
Gli attuali sviluppi della crittografia omomorfica sono un costante atto di bilanciamento tra i tre per raggiungere una soluzione ottimale. Una volta sbloccato, il potenziale di FHE porterà avanti possibilità rivoluzionarie, come la capacità per un operatore di cloud di eseguire varie operazioni matematiche sui dati crittografati.
Casi d’uso della crittografia omorfa
Industrie regolamentate e incentrate sulla privacy
La conservazione dei dati e delle informazioni personali identificabili (PII) in settori altamente regolamentati come la sanità, la finanza, la legge e le banche è una sfida. L’archiviazione crittografata è una misura di sicurezza che queste industrie implementano, ma un’ulteriore sfida si presenta quando devono prima decifrare i dati dell’utente per ricavarne intuizioni.
Per esempio, ricavare l’analisi predittiva, che utilizza l’apprendimento automatico, dalle cartelle dei pazienti può aiutare i medici a identificare le cure per le malattie. Con la crittografia omomorfica, la necessità di decifrare prima i file dei pazienti verrebbe meno. Gli algoritmi analitici potrebbero essere adattati per lavorare sui dati dei pazienti criptati e produrre risultati anche in forma criptata. Questo risultato, una volta decriptato, fornirebbe le stesse intuizioni che sarebbero venute dai file dei pazienti non criptati.
Questo caso d’uso si estende anche alla pubblicità online. Con le crescenti restrizioni imposte dalla legislazione come il GDPR, offrire annunci personalizzati proteggendo la privacy degli utenti è una sfida. La crittografia omomorfica consente di ricavare analisi e approfondimenti dai dati crittografati degli utenti senza compromettere la riservatezza delle informazioni dell’utente nel processo.
Il cloud storage in outsourcing
L’archiviazione dei dati in outsourcing può essere una strategia conveniente quando si tratta di ridurre i costi del personale ed eliminare i mal di testa associati alla manutenzione di un vero e proprio centro dati sicuro. Inoltre, a volte i progetti possono avere bisogno di esternalizzare i database oltre i confini perché non sono disponibili protezioni legali sufficienti nella propria giurisdizione. Come esempio del mondo reale si consideri WikiLeaks, un’organizzazione attivista no-profit che ospita i suoi server primari in Svezia.
La crittografia risolve il problema dell’archiviazione dei dati, ma aggiungere o modificare i dati crittografati nella loro forma crittografata è un problema che la crittografia omomorfica può affrontare. Per aggiungere sostanza, questo può schiacciare la possibilità di incidenti come quando un ex ingegnere di Google aveva abusato dei privilegi per perseguitare alcuni degli utenti della piattaforma.
Con la crittografia omomorfa, i dati sono memorizzati in modo sicuro nel cloud, pur consentendo la possibilità di calcolare e cercare informazioni crittografate. In un ambiente ideale, solo l’utente che possiede i dati nel cloud avrebbe la capacità di decifrare i dati e i risultati della crittografia omomorfa.
Se si vuole sperimentare la tecnologia, il sito web Homomorphic Encryption Standardization fornisce molte implementazioni open-source di crittografia omomorfa. Microsoft SEAL fornisce “librerie di crittografia che permettono di eseguire calcoli direttamente sui dati crittografati” per aiutare gli sviluppatori a costruire servizi di archiviazione e calcolo dei dati crittografati end-to-end.