Informe eSAMCid sobre el voto electrónico

Inicio Anterior Abajo Siguiente

3. Nuevas variantes

3.1 Mixnets híbridas
3.2 Vector-Ballot
3.3 Mixing de credenciales

Los protocolos explicados, divididos en cuatro tipos básicos, se han visto ampliados en los últimos años con propuestas que proponen modificaciones para reforzar algunas de las propiedades de seguridad así como para mejorar sus características. A continuación describimos algunas de estas propuestas.

3.1. Mixnets híbridas

En [5153] se presenta un esquema de recuento de voto electrónico donde se combinan las técnicas de recuento homomórfico y mixing para sacar provecho de los dos esquemas y mitigar sus inconvenientes. Concretamente, el autor trabaja con las características del recuento homomórfico cuando se aprovechan las propiedades del homomorfismo multiplicativo del algoritmo de cifrado, a diferencia del homomorfismo aditivo, donde el voto para cada opción de voto posible se representa como una constante elevada al valor 1 o 0, dependiendo de si se ha escogido o no la opción de voto, en el homomorfismo multiplicativo cada opción se representa por un número primo y el votante sólo ha de enviar los valores de los números primos correspondientes a las opciones que ha escogido cifrados. De esta forma el voto de un votante que escoge el candidato 1 (representado por un número primo v1) y el voto de un votante que ha escogido el candidato 3 (representado por un número primo v3) pueden multiplicarse para conseguir el cifrado del producto de las dos opciones. Así, una vez descifrado el voto, un proceso de factorización permitirá extraer estos números primos para obtener las opciones elegidas (v1 y v3), sin poder discernir qué opción ha elegido cada votante (ver figura 7).


Figura 7: Mixnet híbrida.

En este esquema, la privacidad de los votantes se mantiene entre el grupo de votantes el voto de los cuales se opera antes de descifrar el resultado. Un algoritmo con propiedad homomórfica, como ElGamal, requiere (para que se mantenga esta propiedad) que el resultado del producto de las opciones cifradas no sea mayor que el módulo: siendo el cifrado del voto del primer votante (gr1,v 1hr1) y el del segundo (gr2,v 3hr2), el producto de los dos es (gr1+r2,v 1v3hr1+r2), y el resultado del descifrado es v 1v3 (mod p). Si el producto v1v3 es mayor que p, la factorización del resultado del descifrado será incorrecta y no dará los valores v1 y v3. Podemos entender que un número limitado de votos pueden ser operados antes de descifrar en caso de que los números primos asignados a la elección sean relativamente grandes (por ejemplo en una elección a gran escala donde hay muchas opciones). Para prevenir problemas de privacidad en el caso que el subconjunto de votos entre los que esté el voto de un votante específico sea demasiado pequeño para mantener un nivel adecuado de anonimato del votante dentro del subconjunto de votantes que han emitido esos votos, la propuesta contempla la posibilidad de introducir los resultados de las operaciones de cada grupo de votos en una mixnet antes de descifrar, de forma que no pueda relacionarse el resultado de un descifrado con un grupo de votantes específico.

Igual que en los protocolos clásicos de recuento homomórfico, como se operan varios votos antes de descifrar, es importante que cada votante envíe, con su voto cifrado, una prueba criptográfica de conocimiento nulo que demuestre que el voto cifrado que envía contiene una de las opciones válidas de la elección, sin mostrar cuál, dado que si esto se descubre al descifrar, no se podrá saber cuál de los votos operados antes de descifrar era inválido.

Como se ha explicado antes, estas pruebas son especialmente costosas. Por ello, en [52] se propone un esquema para agrupar estas pruebas, de forma que el esquema de mixnet híbrido combinando homomorfismo multiplicativo, mixnets y pruebas criptográficas más eficientes aprovecha las ventajas del recuento homomórfico y las mixnets, mientras que reduce sus inconvenientes.

3.2. Vector-Ballot

Vector-Ballot [42] es una propuesta que pretende hacer compatibles los esquemas de recuento homomórfico con la posibilidad de que los votantes introduzcan respuestas escritas por ellos mismos (write-ins). La idea principal es construir un voto igual que en el recuento homomórfico aditivo (aunque también podría utilizarse en un esquema homomórfico multiplicativo), es decir, una constante elevada al valor 1 o 0 indica para cada posible opción de la elección si el votante la ha elegido o no. En caso de tener la posibilidad de llenar algún campo con texto libre, esta opción también se representa como el cifrado de la constante elevado al valor 1 o 0 dependiendo de si esta opción se ha llenado o no, actuando como un tipo de indicador. En caso de que se haya llenado, el texto introducido por el votante va cifrado y se coloca a continuación de las otras opciones de voto (ver figura 8).


Figura 8: Estructura del voto en Vector-Ballot.

Para impedir que un observador externo pueda inferir qué votantes han llenado esta opción, el cifrado del texto libre se incluye en todos los votos, aunque para los votantes que no han puesto nada este texto está vacío (al utilizar un cifrado con propiedades aleatorizadoras un observador externo no lo podría distinguir). El valor cifrado del indicador, que proporciona información sobre si hay contenido en el texto libre cifrado o no, se usa para saber cuáles son los votos que contienen texto libre introducido por el votante. En el momento del recuento, cada voto se divide según los contenidos que contiene: el campo de texto libre cifrado de los votos, donde los votantes han introducido un contenido, se introducirá en una mixnet para desvincularlo del votante que lo ha emitido, antes de descifrarlo. En cambio, la parte del voto correspondiente a las opciones que han sido seleccionadas entre un conjunto predeterminado, se pasa por un proceso de recuento homomórfico aditivo para extraer los resultados. Así, la propuesta adapta los esquemas de recuento homomórfico para su uso en elecciones en las que haya la opción de respuesta libre.

3.3. Mixing de credenciales

El artículo Coercion-Resistant Electronic Elections [39] presenta una propuesta de esquema de voto electrónico enfocada a evitar la venta de votos o coacción de los votantes. En protocolos como los de recuento homomórfico o de Mixing, el servidor de voto recibe votos cifrados y firmados, que se pueden relacionar directamente con los votantes que los han emitido.

Los autores del artículo hacen énfasis en el hecho de que un coaccionador podría entregar al votante el voto cifrado con la opción deseada, y comprobar que éste se encuentra almacenado en el servidor de voto, firmado digitalmente por el votante: como veremos más adelante, es común que los sistemas de voto electrónico hagan pública la lista de votos que recibe el servidor de voto para facilitar la verificación del proceso. Un coaccionador podría incluso asegurar que alguien se abstiene en la votación comprobando que no hay ningún voto recibido por el servidor de voto con su firma digital. La idea principal de este esquema es mantener en secreto la relación entre una firma y la identidad del votante que la ha hecho. Así, el coaccionador no puede localizar, en la lista de votos publicados, el voto emitido por un votante específico.

Normalmente denominamos credenciales a los datos que utiliza un votante para demostrar que puede participar en una elección. En este esquema, la credencial de un votante es su pareja de claves de firma, ya que el sistema aceptará los votos en base a si están firmados con claves válidas.

El esquema (ver figura 9) asume que existe una manera de entregar estas credenciales a los votantes, de forma privada en un momento previo a la fase de voto, de manera que sólo el votante conoce qué credencial le ha sido asignada. Un servicio de registro mantiene un listado con los nombres de los votantes autorizados a participar en la elección y sus credenciales, cifradas para mantener el secreto. El listado contiene en cada entrada el nombre del votante i-ésimo V i y la credencial asignada (σi) cifrada Si = E(σi). En la fase de voto, el votante i-ésimo envía el voto v y su credencial cifrados: A = E(σi),B = E(v). En caso que esté siendo coaccionado, el votante puede emitir un voto falso en el que el voto cifrado es el que ha elegido el coaccionador, y la credencial cifrada es falsa: A = E(α),B = E(v). También puede entregar al coaccionador la credencial falsa para que emita el voto en su nombre. El servidor de voto publica todos los votos que recibe, así que el coaccionador puede ver el voto publicado aun no sabiendo si la credencial adjunta es válida.


Figura 9: Flujo del protocolo de Mixing de credenciales.

Acabada la fase de votación, la lista de votos recibidos, compuesta por parejas de cifrados de opción de voto y credenciales (A,B), y la lista de credenciales cifradas mantenida por el servicio de registro (S) se mezclan utilizando una mixnet de recifrado, de forma que las entradas de los votos en la lista mezclada no pueden relacionarse con la lista de los votos publicada, y la relación entre credenciales cifradas y los votantes a los que se habían asignado, V i, Si, se pierde. Finalmente, mediante pruebas criptográficas de conocimiento nulo, que permiten comprobar que dos valores son el cifrado del mismo texto en claro [37], se puede comprobar qué votos han sido emitidos con credenciales válidas, es decir, qué parejas (A,B) contienen en A el cifrado de una de las credenciales de la lista de valores S. Estos votos constituyen la lista de votos válidos que se descifran y se cuentan para obtener los resultados de la elección. Como antes de la validación de los votos, éstos han sido procesados por la mixnet, un coaccionador no podrá saber si el voto elegido por él está incluido en la lista de votos válidos o no.

Las pruebas que permiten comprobar la coincidencia entre los valores A y Si son muy costosas. En caso de que haya un gran número de votos porque han participado muchos votantes o porque se han emitido muchos votos con credenciales falsas, la realización de todas las pruebas (cuyo número tiene una relación cuadrática con el número de votos emitidos) puede impedir que los resultados de la elección se obtengan en un tiempo razonable.

Por esta razón el esquema es vulnerable a ataques de denegación de servicio (mediante el envío de muchos votos con credenciales falsas) y poco adecuado para elecciones a gran escala.

Civitas [22] es una implementación práctica de este esquema. [63] es una mejora del esquema original de [39] donde se aumenta la eficiencia de la detección de votos emitidos con credenciales falsas. La idea principal es que el votante indica cuál es la entrada de la lista de credenciales mantenida por el servicio de registro (las parejas V i,Si) correspondiente a su identidad (V i), enviando este valor cifrado juntamente con el voto, de forma que sólo las entidades encargadas del recuento podrán descifrarlo. Así se sabe qué parejas de valores (A,B) han sido emitidas por un votante específico y las pruebas criptográficas para comprobar qué parejas han sido emitidas con credenciales falsas, solo se tendrán que hacer comparándolas con el valor Si asignado a este votante, y no con toda la lista de valores S como pasa con el protocolo original. Dado que las credenciales están cifradas, y que los valores (A,B) se pasan por una mixnet antes de su validación, los autores reivindican que el nuevo esquema mantiene las mismas propiedades de seguridad que el original. En [43] se presenta otra mejora de la propuesta [39] donde se propone limitar el número de votos con credenciales inválidas que puede emitir un votante, para así asegurar que la lista de votos recibidos que han de ser validados mediante pruebas criptográficas no crece de forma desmesurada. La idea básica consiste en entregar a cada votante una credencial válida y una lista limitada de credenciales inválidas que puede usar para engañar al coaccionador, de forma que el coaccionador no puede distinguir cuáles son válidas y cuáles no, pero el proceso de validación de los votos (que se realiza acabada la fase de voto) sí que puede distinguirlas para contabilizar solo los votos emitidos con credenciales válidas. Durante la fase de voto, el servicio de voto comprobará que los votos que recibe contienen una credencial cifrada de las de una lista donde se encuentran las válidas y las inválidas entregadas a todos los votantes.

Inicio Anterior Arriba Siguiente