La crittografia omomorfica è una delle due strutture principali per i protocolli di voto elettronico, ma la parte di crittografia non è il intero protocollo.
La crittografia omomorfica funziona bene conteggio . In un tale sistema, ogni elettore cripta il suo voto (uno zero o uno). Poiché il voto è criptato, può essere gestito abbastanza facilmente: non vi è alcun problema nell'associare il voto all'elettore. Quindi i voti possono essere accumulati su una bacheca pubblica e tutti possono verificare che il proprio voto sia preso in considerazione, o che nessuno abbia votato due volte. Ottenuti tutti i voti, viene applicato l'omomorfismo per ottenere la crittografia della somma dei voti e la somma viene decodificata; la chiave privata di decodifica è suddivisa tra alcune autorità parzialmente attendibili, che collaborano solo per questa singola decrittografia. Finché almeno una delle autorità è onesta, i voti individuali non possono essere decifrati e il voto sull'anonimato viene mantenuto (non possiamo sapere chi ha votato cosa).
La parte difficile in questi sistemi è come assicurarsi che un voto cifrato sia davvero la crittografia di uno 0 o di un 1, e non la crittografia di qualcos'altro. Protocolli pratici per il voto elettronico che si basano sulla crittografia omomorfica, utilizzano prove non interattive a conoscenza zero , che sono piuttosto tecnici ma si riducono a quanto segue: con una sufficiente matematica lanciata al problema, è possibile, per alcuni algoritmi di crittografia asimmetrica e con la collaborazione dell'elettore stesso, dimostrare che un valore crittografato è davvero la crittografia di uno 0 o di un 1 ma non di qualcos'altro. Questo, ovviamente, non può essere fatto senza la collaborazione dell'elettore stesso, altrimenti sarebbe una debole debolezza del sistema di crittografia.
L'altra struttura principale per il protocollo di votazione elettronica è mix network : i voti vanno attraverso una sequenza di entità che li mescola casualmente (questo ha applicazioni diverse dal voto elettronico, ad esempio Tor ). La crittografia annidata viene utilizzata in modo che lo shuffling non possa essere tracciato esternamente. All'uscita dell'ultimo mixer, i voti vengono decifrati, ma non possono essere associati agli elettori, purché almeno uno dei mixer sia onesto. Dal momento che i voti sono decifrati, sono banalmente verificati per essere sintatticamente corretti (uno 0 o un 1, nient'altro). D'altra parte, convincere gli elettori che il loro voto non è stato perso, o che nessuno ha votato due volte, diventa molto più difficile - le soluzioni per questo implicano, ancora una volta, alcune prove ZK.
L' International Association for Cryptologic Research , quando deve votare per eleggere i suoi direttori, usa Helios Voting , che si basa sulla crittografia omomorfica (con l'algoritmo ElGamal e Chaum -Pedersen ZK prove).