Resumen del procedimiento de anonimización del sistema de votación electrónica a distancia

В publicaciones anteriores Nos decidimos por el hecho de que en el sistema de votación electrónica remota que estamos considerando, se utiliza un algoritmo criptográfico de "firma electrónica ciega" para garantizar el secreto de la votación y anonimizar al votante. En este artículo lo veremos con más detalle.

Para empezar, pasemos al conocido y familiar algoritmo de firma electrónica, que se utiliza ampliamente en los sistemas de información para diversos fines. La firma electrónica se basa en algoritmos de cifrado criptográfico asimétrico. El cifrado asimétrico es un cifrado que utiliza 2 claves: una de ellas se utiliza para cifrar y la otra para descifrar. Se llaman clave abierta (pública) y privada. La clave pública es conocida por otros y la clave privada solo la conoce el propietario de la firma electrónica y se almacena en un lugar inaccesible para otros.

Al firmar, sucede lo siguiente: primero, el documento electrónico, mediante transformaciones matemáticas, se reduce a una secuencia de caracteres de un cierto tamaño; esto se denomina función hash.

La secuencia de caracteres resultante (un hash del documento) es cifrada por el remitente del documento utilizando una clave privada y, junto con la clave pública, se envía al destinatario. El destinatario descifra la secuencia de caracteres utilizando la clave pública, aplica exactamente la misma función hash al documento y compara el resultado de la conversión con el resultado del descifrado. Si todo coincide, entonces no se realizaron cambios en el documento después de que fue firmado por el remitente.

Las acciones descritas le permiten verificar que el documento no ha sido modificado, pero no le permiten verificar que el remitente es realmente quien dice ser. Por lo tanto, necesitamos un tercero en el que confíen tanto el remitente como el destinatario. Para ello, antes de enviar el documento, el remitente contacta con un tercero y le solicita que firme su clave pública con su firma electrónica. El remitente ahora envía al destinatario el documento, su clave pública y la firma de un tercero de su clave. El destinatario verifica la firma del tercero en la clave pública y confía en la firma del documento resultante.

Pasemos ahora a qué es una “firma ciega” y cómo puede ayudarnos con la anonimización.

Imaginemos que en el ejemplo descrito anteriormente, el remitente es el elector, el documento es la boleta y el destinatario es la comisión electoral, o como dijimos “el componente de conteo de votos”. Tendremos el componente “Lista de Electores” como tercero (validador). En este caso, el proceso puede ocurrir de la siguiente manera.

Resumen del procedimiento de anonimización del sistema de votación electrónica a distancia

El votante genera un par de claves en su dispositivo: privada y pública. Dado que estas claves se crean en su dispositivo personal en el navegador, solo él las conoce.

Con estas claves firmará la papeleta para controlar su integridad. Envía la boleta firmada y la clave pública a la comisión electoral. Para que una boleta sea aceptada por el componente de conteo y almacenamiento distribuido de votos, debe verificar que la clave pública esté firmada por el validador.

El validador (componente de la lista de votantes) firmará la clave pública solo después de verificar que el votante está en la lista de votantes.

Para resolver el problema de preservar el secreto de la votación, nadie debe conocer la clave pública del elector creada en su dispositivo. Resulta que el validador debe firmar algo que desconoce. La tarea parece imposible, pero aquí los algoritmos criptográficos vienen al rescate; en este caso, el algoritmo de "firma ciega"

Primero, la clave pública debe estar enmascarada en el dispositivo del votante. El enmascaramiento es la realización de operaciones matemáticas individuales en el dispositivo del usuario. Imagina que pensaste en un número aleatorio del 1 al 100, luego pensaste en un segundo número aleatorio del 1 al 10 y un tercero, del 10 al 50, elevaste el número inicialmente pensado a la potencia del segundo número, y lo dividiste sin un resto por el tercero. El resultado fue informado a otros. No te resultará difícil restaurar el número original, ya que conoces la secuencia de acciones y los números que tienes en mente. Pero quienes te rodean no podrán hacer esto.

El enmascaramiento (cegamiento) de la clave pública se realiza según un algoritmo criptográfico especial. Como resultado, el validador firma una clave pública enmascarada sin conocer la clave original. Pero la peculiaridad del algoritmo es que el usuario (elector), habiendo recibido una firma para una clave enmascarada, puede realizar transformaciones inversas y obtener una firma que sea válida para la clave original desenmascarada.

El algoritmo descrito se utiliza ampliamente en protocolos de votación secreta. El sistema de votación electrónica remota utiliza actualmente el algoritmo RSA con una longitud de clave de 4096 bits para firmas ciegas.

En general, el procedimiento de anonimización es el siguiente.

  1. Cuando se crea una votación, se crea un par de claves "validadoras" separadas y la clave pública se registra en la cadena de bloques. Se crea un par de claves único para cada voto.
  2. El usuario está identificado en el sistema de identificación (en este caso, en el ESIA) y otorga permiso para transferir sus datos de identificación desde el sistema de identificación al DEG PTC.
  3. El componente “Lista de votantes” del DEG PTC verifica la presencia del usuario en la lista de votantes.
  4. En el dispositivo del usuario se crean sus claves personales: privadas y públicas, que sólo él conoce.
  5. La clave pública está enmascarada en el dispositivo del usuario.
  6. Junto con los datos de identificación y una clave pública enmascarada, el usuario accede al componente “Lista de Electores”
  7. El componente comprueba una vez más la presencia del usuario en la lista y el hecho de que no haya recibido una firma antes.
  8. Si todas las comprobaciones son exitosas, la clave está firmada.
  9. El hecho de firmar la clave queda registrado en la blockchain.
  10. El usuario en su dispositivo quita la máscara de la clave pública y recibe una clave privada, una clave pública y una firma en la clave pública, y todas las claves son conocidas solo por él.
  11. Después de esto, el usuario es transferido a una zona anónima, a un sitio web separado edg2020.gov.ru, donde es imposible identificarlo (por ejemplo, antes de la transición puede conectarse a una VPN o cambiar de proveedor de Internet, cambiando completamente el Dirección IP)
  12. La aceptación de la papeleta dependerá únicamente de si se verifica la firma del “validador” y si dicha clave no ha sido utilizada previamente.

A continuación, proporcionamos una descripción del algoritmo desde el punto de vista de la criptografía.
Opciones de firma y designación:

Resumen del procedimiento de anonimización del sistema de votación electrónica a distancia
Resumen del procedimiento de anonimización del sistema de votación electrónica a distancia

M – en formato de relleno FDN para firma.

Fuente: habr.com

Añadir un comentario