Protocolos criptogr谩ficos para votaci贸n electr贸nica.



La democracia no es un voto, es un recuento de votos.
Tom Stoppard

Para los investigadores de criptograf铆a, la votaci贸n electr贸nica no est谩 relacionada principalmente con la m谩quina de votaci贸n y no con la votaci贸n en l铆nea: es solo un campo para la investigaci贸n matem谩tica . La investigaci贸n de votaci贸n electr贸nica crea protocolos, componentes matem谩ticos clave, sistemas de votaci贸n seguros y verificables , o sistemas en los que los auditores independientes y los votantes pueden verificar con seguridad la exactitud del recuento de votos. Estos sistemas no son simples trabajos te贸ricos, sino tecnolog铆as reales utilizadas para elecciones reales: en Tacoma Park, Maryland, los votantes confiaron en el sistema Scantegrity II , basado en papeletas de tinta invisibles, y los propios cript贸grafos utilizaron los sistemas de votaci贸n en l铆nea de Helios para la elecci贸n de liderazgo.

La votaci贸n electr贸nica es un tema extremadamente complicado, por lo que en este art铆culo me limitar茅 a conceptos clave: qu茅 significa la verificaci贸n de voz segura, c贸mo puedo contar los votos sin abordarlos individualmente y qu茅 impide que los votantes hagan trampa. No le dar茅 una descripci贸n completa de todo el protocolo de votaci贸n electr贸nica con todos sus matices, pero aquellos que lo deseen pueden buscar trabajo de forma independiente sobre este tema, del cual hay muchos .

Confirmaci贸n segura


驴Qu茅 esperar de un sistema de votaci贸n seguro?

Primero, y lo m谩s obvio: debe verificar que las papeletas se cuenten correctamente, es decir, para que todos puedan confirmar que el conteo final se realiza de acuerdo con el n煤mero de papeletas completadas por los votantes. El cheque no debe proporcionar informaci贸n adicional, excepto los totales. En particular, el revisor no deber铆a poder adivinar qui茅n vot贸. Esto es equivalente al cl谩sico conteo manual de papeletas.

En segundo lugar, es necesario que cualquier votante pueda asegurarse de que su voto se cuente y se cuente correctamente. Esto debe hacerse sin revelar su voto, y en un caso m谩s general, el votante no deber铆a poder probar por qui茅n vot贸. Esto se hace para eliminar la coerci贸n y para permitir a los votantes elegir libremente a un candidato sin temor a las consecuencias de su elecci贸n.

Finalmente, el sistema de votaci贸n debe estar protegido contra el fraude: el votante no debe poder votar m谩s de una vez, y no debe haber la posibilidad de cambiar o copiar la boleta. Adem谩s, solo los votantes registrados deben poder votar.

Para resumir: necesitamos escrutinio p煤blico, confianza de los votantes, resistencia a la coerci贸n e integridad de las elecciones. Estos principios fueron presentados en un estudio fundamental de Chaum, Neff y otros, publicado a principios de la d茅cada de 2000.

Principios b谩sicos


Los protocolos de votaci贸n electr贸nica m谩s cl谩sicos funcionan de la siguiente manera:
  1. El votante recibe una ficha en forma de bolet铆n, que cambia seg煤n su elecci贸n. Los diferentes votantes reciben diferentes boletas.
  2. El votante encripta la boleta (utilizando un tipo especial de encriptaci贸n que permite que funcione la magia de la votaci贸n electr贸nica, y la env铆a para que los organizadores de la votaci贸n reciban una boleta encriptada.
  3. Los organizadores publican boletines encriptados en el tabl贸n de anuncios, el "canal de transmisi贸n p煤blica con memoria", en la jerga de criptograf铆a, en t茅rminos simples, en algo como Pastebin.
  4. Los organizadores combinan las papeletas encriptadas para calcular un resultado en cach茅. Luego lo decodifican (隆pero no las papeletas en s铆!) Y publican los resultados.
  5. Habiendo recibido el resultado y las voces encriptadas, cualquiera puede verificar su correcci贸n.


Cuenta segura: cifrado homom贸rfico


En el cuarto paso, los organizadores combinan criptogramas para crear un nuevo criptograma que encripta la suma de los votos individuales. Para esto, los esquemas de votaci贸n electr贸nica utilizan el esquema de cifrado Enc (), en el que puede calcular Enc (v1 + v2), teniendo solo Enc (v1) y Enc (v2) a mano, y sin conocer la clave de cifrado. Dichos esquemas de cifrado se denominan homom贸rficos .

Por ejemplo, si se simplifica enormemente, los votantes estadounidenses hacen lo siguiente el 8 de noviembre:
  1. Reciben el bolet铆n de Clinton y el bolet铆n de Trump de los organizadores (por simplicidad, consideraremos solo dos candidatos).
  2. Escriben Enc (1) en una boleta y Enc (0) en la otra, utilizando la clave p煤blica emitida por los organizadores como la clave.


Las boletas encriptadas se publican en el tabl贸n de anuncios junto con la identificaci贸n del votante. Conozco a todos los que votaron, pero es imposible entender exactamente qui茅n, porque cada Enc (0) y Enc (1) son 煤nicos, y utilizamos cifrado fuerte y aleatorio. Si el cifrado fuera determinista, el votante podr铆a verse obligado a revelar su voz calculando Enc (0) nuevamente y compar谩ndola con el valor en la pizarra.

Finalmente, los organizadores combinan todas las papeletas para Clinton y obtienen el resultado de Enc (la cantidad de votos para Clinton), y luego hacen lo mismo con las papeletas para Trump y obtienen Enc (la cantidad de votos para Trump). Luego toman la clave de descifrado y descifran estos dos valores, declarando el ganador.

驴C贸mo encontrar un esquema de cifrado homom贸rfico? Bastante f谩cil: los circuitos como RSA y ElGamal son homom贸rficos en su forma b谩sica porque satisfacen la ecuaci贸n

Enc (v1) 脳 Enc (v2) = Enc (v1 脳 v2)

Pero esto no es exactamente lo que necesitamos: es un homomorfismo multiplicativo, pero necesitamos uno aditivo. Hay trucos que convierten los esquemas RSA y ElGamal en aditivos homom贸rficos, pero en su lugar mostrar茅 un esquema menos conocido que es inmediatamente adictivamente homom贸rfico: el criptosistema Paye encripta el mensaje v1 a

Enc (v1) = g v1 r1 n mod n 2

Donde n = pq yg son fijos, y r1 es un entero aleatorio de] 1; n 2 [. Por lo tanto, tenemos:

Enc (v1) 脳 Enc (v2) = (g v1 r1 n ) 脳 (g v2 r2 n ) mod n 2 = g v1 + v2 (r1r2) n mod n 2 = Enc (v1 + v2)

Es decir, el esquema de Peye se puede usar para calcular votos cifrados.

Prevenci贸n del fraude: evidencia de divulgaci贸n cero


Para hacer trampa, un votante puede escribir Enc (10000) en lugar de Enc (1) en la boleta para agregar votos al candidato. En caso de malas intenciones, puede escribir Enc (very_large_number) para que esto provoque un desbordamiento del conjunto y un fallo de todo el sistema. 驴C贸mo garantizar la validez de voz (0 o 1) sin descifrado?

La soluci贸n es el conocimiento cero no interactivo (NIZK). La prueba NINR es un objeto criptogr谩fico muy complejo y extremadamente poderoso: en nuestro caso, permitir谩 al votante probar que su criptograma contiene 0 o 1, pero sin mostrar el mensaje cifrado. En el caso general, las pruebas NINR permiten al probador convencer al verificador de la verdad de la declaraci贸n envi谩ndole solo un conjunto de datos sin ning煤n otro tipo de interacci贸n.

Quiz谩s el sistema m谩s simple con cero divulgaci贸n es el esquema Schnorr : supongamos que conoce la soluci贸n al problema del logaritmo discreto (la tarea dif铆cil detr谩s del DSA y el cifrado en curvas el铆pticas), y desea demostrar que conoce su soluci贸n sin revelar la soluci贸n en s铆. Es decir, sabes x tal que g x = y mod p, y el examinador solo sabe g, y y p. Para convencer al cr铆tico, juegas el siguiente juego:
  1. Elija un n煤mero aleatorio r y env铆e el valor g r al probador (obligaci贸n).
  2. Obtiene un n煤mero aleatorio s del probador (llamada).
  3. Enviar al verificador s = r + cx.
  4. El revisor calcula g s = g r + cx y verifica que es igual a g r 脳 y c = g r 脳 (g x ) c .


En este protocolo interactivo, el probador no revela el valor de x, ya que solo env铆a n煤meros aleatorios. Sin embargo, solo el probador que sabe x puede enviar s, pasando la 煤ltima prueba.

Para convertir dicho protocolo interactivo en uno no interactivo (uno que se puede enviar con un conjunto de datos), se crean pruebas NINR. Jugamos este juego por nuestra cuenta y pretendemos ser un probador para que el probador real se asegure de que no podamos encontrar una prueba NINR sin conocer la declaraci贸n comprobada.

Conclusi贸n



Ideas clave discutidas en este art铆culo:
  • El principal problema con un sistema de votaci贸n electr贸nica seguro es la audibilidad p煤blica. Esto se logra mediante la publicaci贸n de boletines cifrados en un foro de acceso p煤blico. Los votantes tambi茅n deben describir el mecanismo que lleva a cabo la confirmaci贸n en s铆.
  • La exactitud del voto se confirma al autorizar a cada votante con una identificaci贸n 煤nica y darles acceso a los votantes que les permite verificar que su boleta 1) se haya contado y 2) no se haya cambiado.
  • Los votantes no pueden ser castigados por votar por candidatos "incorrectos" debido a la resistencia a la coerci贸n, que, en particular, se logra mediante un cifrado impredecible y probabil铆stico.
  • La privacidad de las boletas est谩 garantizada por el hecho de que los votos cifrados no se descifran, y solo se descifra el resultado creado con cifrado homom贸rfico.
  • La estafa no funciona si forzamos a los votantes a publicar evidencia criptogr谩fica de la validez de su boleta usando NINR.


Los conceptos y tecnolog铆as descritos aqu铆 pueden parecer profundos y complejos, pero en realidad esto es solo la punta del iceberg. No puede crear un sistema de votaci贸n electr贸nica que funcione de manera segura simplemente siguiendo la descripci贸n. Por ejemplo, omit铆 detalles como la forma en que los votantes revisan sus boletas en la pr谩ctica, la raz贸n por la que usan el servidor NINR, etc. La conclusi贸n es que cualquier protocolo seguro de votaci贸n electr贸nica es algo muy complicado y lleno de matices, y la implementaci贸n real agrega complejidad adicional debido a factores humanos y organizacionales.

Para obtener m谩s informaci贸n sobre la criptograf铆a relacionada con el tema de la votaci贸n electr贸nica, puede estudiar estos materiales de calidad:

Source: https://habr.com/ru/post/es436560/


All Articles