No hay ningún sistema digital, NINGUNO, que garantice que el voto emitido en él es universal, libre, secreto, directo, personal e intransferible.
No hay ningún sistema... pero se puede aproximar.
Mira esto
Cada grupo de votación, corresponde a una "mesa de voto", que contiene varios interventores que participan como "manos limpias en el proceso" (en equivalencia a las mesas físicas)
Cada interventor, genera una clave pública-privada, y declara su clave pública.
Así, en equivalencia a la física, una mesa tendría X claves públicas declaradas (sus interventores)
La gente usa su DNI para emitir una solicitud de "papeleta de voto" (declara su intención de votar)
Yo, con DNI 97960365F declaro que quiero votar.
Ahí NO ESTOY DECLARANDO EL VOTO. Sólo mi compromiso a votar.
Se me asigna una mesa de voto, con sus interventores A,B,C,D... etc.
Genero un código aleatorio de votación más una clave pública-privada, declarando sólo la pública, y se cifra el par código+clave encadenadamente con las claves de los interventores A,B,C,D,E...
Publico mi solicitud de voto junto a mi código cifrado.
NINGÚN INTERVENTOR CONOCERÁ LA CORRESPONDENCIA ENTRE MI FIRMA Y MI CÓDIGO CIFRADO, a no ser que todos los interventores se pongan de acuerdo para descifrarlo a la vez.
Mediante una cadena, los interventores tienen la responsabilidad de descifrar cada etapa del código y transferirlo al siguiente interventor.
Es decir... El interventor A recibe mi secuencia de cifrado A,B,C,D,E
Descifra y queda un código B,C,D,E que pasa al interventor B, sin decirle que ese código era de 97960365F.
El interventor B hace lo mismo, y pasa C,D,E al siguiente
Y así hasta que pasa por todos, y aparece mi código anónimo.
El orden de interventores puede ser aleatorio, sólo que es publicado en el propio cifrado (dice a qué interventor le corresponde descifrar cada etapa)
Cada interventor tendrá que realizar tantos descifrados como interventores haya.
Se declara el listado de códigos anonimizados.
En un proceso independiente, la gente publica su código anónimo, su voto, y firma esa información con la clave privada correspondiente a la clave pública del proceso de voto.
Así tenemos tres resultados.
Una lista de declaración de votantes
Una lista de códigos de voto y claves publicas. (Puede publicarse ANTES de la votación misma)
Una lista de votos-códigos de voto-y firma electrónica correspondiente a la clave de la lista anterior.
Cada persona puede verificar que su voto con código anónimo se ha realizado al voto correcto.
Todo el mundo puede ver quienes son los votantes.
La correspondencia entre votante y voto sólo se puede hacer si todos los interventores se ponen de acuerdo o se rompe el algoritmo de cifrado. Se recomienda endurecer mucho esa parte.
Las fases de intercambio de datos entre interventores no necesita hacerse en un sistema online atacable. Puede perfectamente hacerse de forma física, con un intercambio de datos con un dispositivo físico, por ejemplo.
A los interventores manuales se puede agregar interventores virtuales automatizados que agreguen incluso más confianza.
La parte del voto personal es telemática. La parte de revolver los votos y custodiar las claves críticas para garantizar el anonimato sí serían físicas.
Se puede acordar la destrucción de las claves secretas una vez finalizada las alegaciones sobre problemas en la votación, haciendo imposible a posteriori sacar la información del voto por carencia de información.