La crittografia omomorfica è una categoria di sistemi; alcune implementazioni potrebbero essere deboli e altre potrebbero essere forti, ma non ha senso parlare dell'intera categoria come "debole" o cryptanalyzable.
I crittosistemi parzialmente omomorfici (che prima venivano chiamati solo "omomorfi" prima che venissero scoperti cryptosystems completamente omomorfi) sono stati usati in cripto per un po ', incluso, come fa notare Neal, nel mio sistema di votazione, Helios. In questi sistemi, è possibile eseguire una sola operazione, aggiunta o moltiplicazione, sotto le copertine della crittografia. Ciò ti consente di fare cose interessanti, come il conteggio dei voti individuali e solo la decifrazione del conteggio.
Ora, quando dico "non usare Helios per le elezioni pubbliche", non è a causa di alcuna debolezza nella crittografia omomorfica. Questa è la parte più strong del sistema. Il problema con il voto online è che il tuo client desktop potrebbe essere compromesso dal malware, modificando così il tuo voto prima che venga crittografato. La porzione di conteggio omomorfo è abbastanza sicura e non ci sono attacchi noti contro di essa.
Boneh, Goh e Nissim hanno progettato un cryptosystem più omomorfo nel 2005, in cui è possibile eseguire qualsiasi numero di aggiunte, seguito da una moltiplicazione, seguita da un numero qualsiasi di aggiunte, prima della decifrazione. Ciò ha consentito applicazioni più interessanti, ad es. il mio lavoro sul Public Mixing (applicabile anche al voto), in cui è possibile mischiare un insieme di valori crittografati in un'operazione pubblica, senza rivelare in quale ordine li si mescola (piuttosto pazzi, quando ci si pensa.)
I crittosistemi completamente omomorfici, in cui è possibile eseguire aggiunte e moltiplicazioni arbitrarie, sono stati ritenuti impossibili fino al lavoro di Gentry un paio di anni fa. Ciò che è significativo in questa categoria di crittosistema è che è possibile esternalizzare completamente qualsiasi calcolo nel cloud senza mai rivelare dati in testo semplice. Ad esempio, se si desidera eseguire una ricerca a tutto testo della parola "crittografia" su un corpo di testo, è possibile crittografare il corpus, crittografare la parola "crittografia" e inviarlo a un'altra parte che eseguirà il testo completo cerca su dati completamente crittografati e restituisci a te il risultato cifrato, che potrai poi decifrare per ottenere la risposta. Il sistema che computa il calcolo avrebbe conosciuto nulla sul corpus o sulla query di ricerca. Piuttosto sorprendente.
Ovviamente, ciò ha senso solo se il processo di crittografia e il processo di esecuzione delle operazioni omomorfiche sono ancora meno costosi sul cloud rispetto a quelli eseguiti manualmente sul proprio computer locale. Siamo molto, molto lontani da quello. Detto questo, i cryptosystems migliorano solo con il tempo, quindi forse vedremo che il calcolo omomorfico generico diventa utile in pochi anni.
Nel frattempo, ci sono probabilmente molti problemi specifici - non un calcolo generico - che possono essere esternalizzati in modo più sicuro grazie alla tecnologia omomorfica.