Si parla tanto di crittografia, ma pochi conoscono la crittografia omomorfa (o omomorfica) che si basa su particolari tecniche che consentono di manipolare i dati cifrati, ad esempio mediante operazioni aritmetiche o booleane (And, Or, Not) senza dover prima decifrare le informazioni, con evidenti ricadute positive per quanto riguarda la privacy dei dati stessi.
La crittografia omomorfa, ad esempio, può tornare molto utile quando si tratta di operare su dati provenienti dai correttori ortografici delle e-mail, dai dispositivi indossabili o dalle analisi delle cartelle cliniche, con notevoli vantaggi in termini di sicurezza e protezione dei dati personali.
Indice degli argomenti
Proprietà degli algoritmi di cifratura tradizionali
Cifrare un dato, lo ricordiamo, significa renderlo non comprensibile a tutte quelle parti che sono estranee alla comunicazione tra un mittente e il ricevente prescelto.
In altre parole, un dato viene cifrato da qualcuno affinché solo il destinatario che possiede la chiave di decifratura possa poi accedere al messaggio. Il destinatario può essere il mittente stesso, nel caso in cui esso voglia proteggere il dato senza comunicarlo (si pensi quando cifriamo dei documenti con password nel nostro computer in locale).
Il fatto di rendere tale dato cifrato illeggibile e incomprensibile significa proprio che il dato non veicola più alcun messaggio e perde qualsiasi utilizzo semantico. Ad esempio, se una persona cifra quanto si è speso in un mese e lo si fa per la somma complessiva spesa ogni mese, poi non è più possibile da questi dodici dati cifrati ricavare quanto si è speso complessivamente in un anno e quindi, di conseguenza, dedurre la spesa media mensile. Questo perché questi numeri, ovvero questi dati, da cifrati, perdono il loro vero significato e qualsiasi proprietà algebrica.
Da un punto di vista più formale, l’impossibilità di effettuare una somma dei dati cifrati si spiega con il fatto che lo spazio dei crittogrammi annulla completamente qualsiasi struttura propria dello spazio dei dati di partenza. Pertanto, se si cifra numeri naturali o reali, nello spazio dei crittogrammi di arrivo si perde la possibilità di sommarli, sottrarli, moltiplicarli e via dicendo.
Crittografia, cos’è: guida alla tecnologia che protegge dati e privacy anche delle aziende
Limiti pratici della cifratura tradizionale
Il disfacimento di qualsiasi proprietà nello spazio di arrivo dopo un algoritmo di cifratura, per quanto sia desiderabile da un punto di vista crittografico, a livello operativo è poco efficace quando i dati da crittare sono di fatto input utilissimi ad algoritmi statistici.
Si pensi, ad esempio, a dei dati medici: la pressione sanguigna, il peso e il livello di colesterolo. Ciascun dato deve per forza di cose rimanere confidenziale, dato che questi sono dati medici. Allo stesso tempo però è utile poter fare delle statistiche su questi dati con lo scopo di capire se e come questi sono correlati, migliorando così diagnosi e cure.
Molto spesso, però, come nel caso dei dati medici, la persona che genera e cifra il dato (il medico) non è la stessa persona che compie le varie computazioni statistiche (ad esempio un ricercatore esterno alla struttura ospedaliera).
Dovrebbe essere, secondo un punto di vista puramente crittografico, il medico a decifrare i dati uno ad uno, compiere le varie operazioni statistiche e poi cifrare ancora una volta i dati medici di input ed eventualmente il risultato ottenuto.
Ovviamente, questo scenario non è compatibile con la realtà pratica, dove, come appunto nell’esempio sopra, la persona o le persone che compiono studi statistici sono diverse da quelle che hanno generato e cifrato i dati.
La crittografia omomorfa
Come si può allora mantenere la confidenzialità dei dati senza rinunciare alle proprietà strutturali dello spazio di partenza che permettono di utilizzare i dati anche da cifrati? La crittografia omomorfa risponde a tale problema.
In matematica e in particolare in algebra, un omomorfismo è una funzione tra due spazi che presentano la stessa struttura algebrica.
La crittografia omomorfa è un termine che rappresenta dunque tutti quegli algoritmi di crittografici che mappano le proprietà algebriche (nel nostro caso somma e moltiplicazione) dello spazio dei messaggi in chiaro di partenza nello spazio dei crittogrammi (ovvero dei messaggi cifrati) di arrivo.
Abbiamo visto sopra l’esempio dei dati medici cifrati. Con la crittografia omomorfa è dunque possibile compiere computazioni statistiche (e.g. media) sui dati medici cifrati, mantenendo la confidenzialità di questi ultimi.
La crittografia omomorfa non si limita agli algoritmi di cifratura, ma si estende anche a quelli di firma. In questo caso la proprietà omomorfa di un algoritmo di firma digitale si esprime nel fatto che due dati che vengono accompagnati dalla firma dello stesso autore, se ad esempio sommati, producono un risultato che è accompagnato da una firma che tiene conto delle due firme precedenti.
Questo significa, ad esempio, che se un medico genera e firma diversi dati in momenti diversi, computazioni su questi dati producono un risultato che risulta autentico e in particolare firmato dal medico stesso.
Crittografia omomorfa completa
Tra i crittografi, mantenere le proprietà algebriche tra lo spazio di partenza e lo spazio di arrivo di una primitiva crittografica non è un’idea nuova, ma risale infatti alla fine degli anni settanta, nello stesso periodo in cui nasce e si sviluppa la crittografia moderna usata ancora oggi.
La “rigidità” degli algoritmi di cifratura e di firma introdotti in quegli anni (e largamente utilizzati tuttora) era già stata notata. Sin da subito infatti era stata sollevata la necessità di costruire algoritmi crittografici che fossero “completamente omomorfi”, ovvero che permettessero di effettuare qualsiasi operazione algebrica nello spazio di arrivo, ovvero qualsiasi concatenazione di somma e di moltiplicazione, anche infinita.
Molti degli algoritmi di cifratura tradizionali (ad esempio Paillier) offrano intrinsecamente proprietà omomorfe in quanto sono lineari. Questo significa che è possibile effettuare operazioni lineari tra due o più dati cifrati, ma non la moltiplicazione e in generale operazioni non lineari.
Nonostante ciò, ottenere primitive crittografiche che supportassero qualsiasi combinazione di operazioni lineari e moltiplicazione non è stata un’avventura facile per i crittografi. Il primo algoritmo di cifratura completamente omomorfo è stato presentato infatti solo nel 2009 e che ci impiegava mezz’ora per computare il risultato (contro la manciata di millisecondi degli algoritmi di cifratura tradizionali).
A partire da questo primo esempio di crittografia completamente omomorfa, sono stati presentati diversi altri algoritmi con lo scopo di migliorare l’efficienza del loro predecessore. Molto spesso l’efficienza è stata migliorata a scapito della “completezza” delle operazioni possibili o della precisione del loro risultato.
Conclusione
Con crittografia omomorfa si intende quella parte della crittografia volta al design di primitive (siano esse algoritmi di cifratura o di firma) che permettano di compiere qualsiasi tipo di operazione algebrica sui dati cifrati o firmati.
Questo è un ambito di ricerca tuttora aperto in quanto si punta a costruire degli algoritmi che siano efficienti e sicuri da poter permettere di fare del vero e proprio machine learning sui dati crittografati.
La crittografia omomorfa beneficerebbe così quei settori che necessitano di studi di machine learning sofisticati ma con regole stringenti in quanto a privacy, come il campo della medicina.