Il concetto noto come crittografia omomorfica, in cui il testo cifrato può essere manipolato e lavorato senza essere decifrato, è stato presentato per la prima volta alla comunità scientifica nel 1978 da Ronald Rivest, Leonard Adleman e Michael Dertouzos come omomorfismo della privacy. Uno schema di crittografia omomorfo semanticamente sicuro è stato sviluppato e proposto da Shafi Goldwasser e Silvio Micali nel 1982. Nel 2009, Craig Gentry ha dimostrato che è possibile uno schema di crittografia completamente omomorfo.
Rivest, Aldeman e Dertouzos hanno sviluppato la loro teoria attorno al fatto che i sistemi di sicurezza e crittografia esistenti limitano gravemente la capacità di fare qualsiasi cosa con i dati dopo che sono stati crittografati e trasformati in testo cifrato. Senza lo sviluppo di una soluzione omomorfa, l’invio e la ricezione dei dati è essenzialmente l’unica funzione che può essere eseguita con i dati crittografati. Le maggiori preoccupazioni erano il livello di elaborazione necessario per elaborare la richiesta crittografata sui dati crittografati e se uno schema di crittografia di questa natura potesse essere sufficientemente sicuro per l’uso pratico.
Con l’avvento e la continua espansione del cloud computing, è fondamentale trovare un metodo di crittografia omomorfico praticabile. In caso contrario, il rischio è troppo alto per affidare i dati a un provider di cloud computing quando tali dati devono rimanere al sicuro. Se il provider ha accesso in qualsiasi modo ai dati nella loro forma decifrata, i dati possono essere compromessi troppo facilmente. Gentry ha dimostrato che si tratta di una teoria praticabile, anche se la quantità di tempo necessaria per i calcoli e la potenziale facilità con cui la crittografia può essere violata sono preoccupanti.
Il sistema di Gentry delinea come creare uno schema di crittografia che consentirà ai dati di essere archiviati in modo sicuro in un ambiente cloud in cui il proprietario dei dati può utilizzare la potenza di calcolo del provider cloud per eseguire funzioni sui dati crittografati in modo persistente. Lo fa in un processo in tre fasi. Viene costruito uno schema di crittografia “bootstrapable” o costituito da uno schema di crittografia in qualche modo omomorfo che può funzionare con il proprio circuito di decrittazione. Successivamente, viene costruito uno schema di crittografia a chiave pubblica quasi avviabile utilizzando reticoli ideali. Infine, gli schemi vengono modificati per essere più semplicistici, consentendo loro di essere bootstrap pur mantenendo la loro profondità.
Questo metodo crea uno schema di crittografia completamente omomorfo, ma rimane relativamente poco pratico. La crittografia omomorfa si è evoluta per essere per lo più protetta da attacchi di testo in chiaro scelti, ma la protezione da attacchi di testo cifrato rimane un problema. Oltre al problema della sicurezza, gli schemi completamente omomorfi sono così grandi e complessi che il fattore tempo ne ha precluso l’uso nella maggior parte delle applicazioni. Sono stati sviluppati sistemi di crittografia un po’ omomorfi per affrontare almeno il fattore tempo, utilizzando solo le parti più efficienti di uno schema di crittografia completamente omomorfo.