¿Por qué sigue siendo un problema el voto electrónico?

9

La votación electrónica ha sido considerada inviable desde hace mucho tiempo. Y recientemente vi un video del canal Computerphile en YouTube, donde muestran todos los problemas que surgen con e -votación.

Pero con los libros de contabilidad distribuidos y el cifrado homomórfico en mi mente, pude encontrar cualquier problema que no pueda resolverse. Para ser justos, este video tiene un año y medio, pero aún se puede suponer que este tipo ha oído hablar de estas técnicas.

No soy un experto en seguridad, pero puedo imaginar un sistema que garantice tanto el anonimato como la confianza en el resultado:

  1. Configure una cadena de bloques donde cada nodo acepte el algoritmo de votación. (No es difícil en absoluto y esto ya resuelve el problema de confiar en el software)
  2. Generar clave de cifrado privada y pública. Entregue la clave pública a cualquier persona que tenga permiso para participar en la votación. Difunde la clave privada entre las autoridades en las que confías para no conspirar.
  3. Cada participante tiene una cuenta en la cadena de bloques con una clave privada que firma la "transacción" de votación. Cada cuenta tiene un voto, que está garantizado por el software de votación que todos los nodos de la cadena de bloques acuerdan.
  4. Como todas las transacciones están en una cadena de bloques, cada votante puede rastrear su voto y verificar que se haya agregado al resultado general. (Lo que resuelve otro problema importante: asegúrese de que cada voto se agregue al resultado general).
  5. Un algoritmo de votación primitivo podría tener este aspecto: Para cada partido que un participante puede votar, encripta un cero o uno con un poco de sal (para que no se pueda realizar una búsqueda) con la clave pública de la elección. Luego firma su transacción o voto con su clave pública de la cadena de bloques y su voto se procesa: los ceros y los unos se agregan a cada uno de los contadores del partido. Para cada voto la suma de los votos se calcula y descifra. De esa manera, puede estar seguro de que solo se agrega uno a uno de los contadores del partido (la suma debe ser uno), pero no puede decir a qué partido votó el participante.
  6. Descifra el resultado final.

Por supuesto, para cualquier descifrado, las autoridades que poseen una parte de la clave privada deben ponerse de acuerdo sobre ese descifrado.

Entonces, ¿cuál es el problema que no se puede superar con el voto electrónico?

    
pregunta flxh 14.09.2016 - 10:12
fuente

2 respuestas

7

Técnicamente, su solución es bastante similar a CGS97 (note la fecha) que es la base de Helios y sus descendientes. Como enfoque general, es muy razonable, pero carece por completo de recursos para prevenir la venta de votos y el soborno / las amenazas (Recibimiento de Freeness y Resistencia a la Coerción en la literatura):

Ejemplo de falta de RF: Supongamos que prometo darle $ 100 si vota por mi candidato y me muestra la aleatoriedad que usó (es decir, un recibo ) para cifrar su voto como prueba . Este es un problema conocido con el libro de texto Helios (mencionado en el documento original) que se corrige en varios grados en trabajos posteriores.

Su sugerencia de utilizar una cadena de bloques para implementar el tablero de anuncios es razonable, pero yo diría que las personas activas en el área son conscientes.

Hay algunos problemas más con su solución:

  • Es trivial copiar los votos de otras personas. Esto se considera malo para la privacidad. Los ataques de maleabilidad también.
  • Requerir que la suma de una boleta de una persona sea no adecuada. Supongamos que doy 100 votos al candidato X y +101 votos al candidato Y.
  • Combinando lo anterior, tome todos los votos publicados en el tablero y súmelos. Digamos que hay n de ellos. Invertir la suma. Eso producirá una boleta que resume hasta -n . Agregue n + 1 votos a su candidato. Ahora tiene una boleta que niega todas las boletas anteriores y mueve todos sus votos a su candidato.
  • La mayoría de lo anterior se resuelve con los protocolos de Cero Conocimiento que demuestran que las partes individuales de la boleta son 0/1 además de sumar hasta 1, más algunos requisitos de no maleabilidad.
  • Hacer que las autoridades descifren una suma mínima para cada votante puede ser ineficiente. Además, ¿cómo verifica que se comportaron correctamente? Si su respuesta es ZK, ¿por qué no trasladarla al votante?
  • Cuando hablas de sales y encriptación, creo que te refieres a IND-CPA. Sin embargo, es probable que necesite NM-CPA (también eche un vistazo a IND-CCA, pero no es estrictamente necesario).

Volviendo al tema del panorama general, también queremos considerar votar desde PC comprometidas, tener un proceso de verificación que la gente pueda seguir, el hecho de que las elecciones atraerían adversarios patrocinados por el estado y el hecho de que una repetición en caso de fracaso sería extremadamente costoso (en términos de confianza pública, así como $$$).

TL; DR: Hay abundante literatura en el área (tanto en el stand como en internet), pero también es un problema muy difícil.

    
respondido por el Nolyc T'nega 19.09.2016 - 18:20
fuente
2

Este algoritmo que has propuesto es sin duda uno bueno. Pero quizás le falte el concepto de privacidad. Esta es quizás la razón por la que se evita el sondeo electrónico en general.

La privacidad aquí se refiere al conjunto de respuestas / texto sin formato que un usuario podría enviar. {0,1}. Esto se refiere al 'ataque de texto plano conocido'. Un adversario, que pone a un hombre en medio ataque puede interceptar el código de cifrado. Ahora, conociendo el texto sin formato, la clave pública y el texto cifrado, puede usar muchas herramientas sofisticadas, o tal vez mediante un simple ataque de fuerza bruta para descifrar la sal así como la clave utilizada para el cifrado. (Por supuesto, el tiempo necesario para descifrar Definitivamente dependería de la longitud de la clave y la sal).

    
respondido por el Penguine 18.09.2016 - 08:35
fuente

Lea otras preguntas en las etiquetas