ES2936809T3 - Método para verificar el correcto registro de una información - Google Patents

Método para verificar el correcto registro de una información Download PDF

Info

Publication number
ES2936809T3
ES2936809T3 ES10834256T ES10834256T ES2936809T3 ES 2936809 T3 ES2936809 T3 ES 2936809T3 ES 10834256 T ES10834256 T ES 10834256T ES 10834256 T ES10834256 T ES 10834256T ES 2936809 T3 ES2936809 T3 ES 2936809T3
Authority
ES
Spain
Prior art keywords
information
entity
computer
encoding
proof
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES10834256T
Other languages
English (en)
Inventor
Allepuz Jordi Puiggali
Castello Sandra Guasch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Scytl Election Tech Sl
Scytl Election Technologies SL
Original Assignee
Scytl Election Tech Sl
Scytl Election Technologies SL
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Scytl Election Tech Sl, Scytl Election Technologies SL filed Critical Scytl Election Tech Sl
Application granted granted Critical
Publication of ES2936809T3 publication Critical patent/ES2936809T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

Método para verificar que una información de un emisor se ha registrado de forma correcta por parte de una entidad receptora preservando la privacidad del emisor, comprendiendo las siguientes etapas: a) Codificado de la información del emisor en una entidad emisora y envío de dicha codificación a la entidad receptora; b) Generación por parte de la entidad emisora de una prueba de contenido basada en la información codificada en el paso a), y posterior envío de la prueba de contenido a la entidad emisora; y c) Verificación por parte del emisor de que la prueba de contenido se corresponde con la información que se ha codificado.

Description

DESCRIPCIÓN
Método para verificar el correcto registro de una información
Campo de la invención
La presente invención se refiere principalmente al campo de los entornos de votación electrónica, como los procesos de votación electrónica o los procesos electorales, y está destinada a ser utilizada en aplicaciones en las que se requiere la verificación del registro correcto de la información. Más concretamente, el método puede utilizarse para verificar que la información enviada por un emisor ha sido correctamente recibida por un receptor. La presente invención es especialmente relevante en procesos en los que la información es enviada por remitentes cuya identidad debe permanecer privada.
Antecedentes de la invención
Para preservar la privacidad de la información del remitente, ésta suele codificarse o cifrarse antes de transmitirse a través de un canal inseguro, de modo que sólo el destinatario de la información pueda descodificarla y leerla. De este modo, otras personas, entidades o sistemas que accedan a esta información serán incapaces de leerla.
El codificado puede utilizarse para proteger la privacidad del remitente, pero no para preservar la integridad de la información. De hecho, esta información puede modificarse durante el proceso de codificado o la transmisión, por lo que el receptor no podría recibir la misma información enviada por el remitente. Por lo tanto, es importante proporcionar al emisor medios para detectar modificaciones en la información transmitida y, por lo tanto, para verificar que la información registrada por el receptor es la misma que envió el emisor. Las firmas digitales de la información codificada pueden utilizarse para garantizar que la integridad de la información se mantiene durante la transmisión. Sin embargo, no pueden utilizarse para verificar que la información se ha codificado correctamente. Por lo tanto, el remitente debe confiar en el proceso de codificado. El proceso de codificado suele realizarse mediante un software específico que es susceptible de ser manipulado por una entidad externa con el fin de modificar la información antes de codificarla. Una solución podría ser firmar digitalmente la información y codificar conjuntamente la información y su firma. Sin embargo, este enfoque compromete la privacidad del remitente, ya que la información, una vez descodificada, quedaría vinculada a la identidad del remitente por la firma digital obtenida también en el proceso de descodificado.
En situaciones en las que el receptor inicial de la información codificada no es el destinatario final y, por tanto, no posee la capacidad de descodificarla, probar que la información codificada recibida se corresponde con la que el emisor ha enviado puede ser un proceso complejo. Existen diversos métodos que tratan de presentar soluciones a este problema.
Comprobación de que la información enviada coincide con la que se ha querido enviar
Existen entornos en los que es importante que un emisor que envía un mensaje codificado a una entidad receptora, pueda verificar que el mensaje codificado recibido coincide con los contenidos que ha escogido enviar sin comprometer el secreto de la información enviada (al menos hasta que esta sea descodificada) ni el anonimato del emisor. Un ejemplo de ellos son los procesos de votación electrónica, donde el votante escoge sus opciones de voto, que son codificadas y almacenadas en un dispositivo receptor. La firma digital permite verificar que la información, una vez codificada y firmada (normalmente paso previo a su envío y/o almacenamiento), no ha sufrido ninguna manipulación, pero esta información puede manipularse durante el proceso de codificado.
En el momento en que el votante codifica sus opciones de voto, generalmente debe confiar en que el proceso de codificado realmente codifica las opciones escogidas, y que, por tanto, son estas las que se almacenan en el receptor.
Se han desarrollado varias técnicas para permitir al votante verificar que el mensaje enviado codificado corresponde a su intención de voto. Algunas de estas técnicas realizan una verificación punto a punto, en la que el receptor del mensaje codificado prueba al emisor que el mensaje codificado recibido contiene la misma información codificada por el emisor. Otras técnicas se centran en la verificación del proceso de codificación.
Verificación punto a punto
En [Ch01] y [Ma02] se presenta un método de verificación del contenido de un mensaje o voto codificado punto a punto, de forma que es el receptor el que proporciona al votante una prueba de que el voto codificado recibido se corresponde con las opciones escogidas por el votante.
Este método de verificación se basa en la generación previa a la fase de votación de códigos asignados a cada candidato u opción de voto, equivalentes al codificado de la opción. Un segundo código (denominado código de retorno) se calcula a partir de cada primer código, utilizando una operación criptográfica (por ejemplo, una función Hash) y un parámetro secreto.
Estos códigos se envían en papeletas a los votantes. Los códigos se calculan de forma que sean distintos para cada votante, candidato y papeleta.
En el momento de la votación, el votante selecciona los códigos correspondientes a las opciones de voto elegidas y los envía al servidor de voto. El servidor de voto calcula a partir de los códigos de las opciones de voto los códigos de retorno correspondientes usando el parámetro secreto que sólo él conoce. A continuación, envía los códigos de retorno al votante, que comprueba que coinciden con los códigos de retorno impresos en su papeleta de voto al lado de las opciones de voto seleccionadas.
Dado que solamente el servidor de voto conoce el parámetro secreto para generar los códigos de retorno, y que éstos no están previamente almacenados, sino que se calculan a partir de los códigos recibidos, el votante puede verificar que las opciones escogidas concuerdan con las que se han recibido en el servidor. Además, como los códigos de retorno se calculan a partir de los códigos de las opciones de voto, el secreto del voto se mantiene.
La debilidad de este método reside en la protección de las papeletas de voto. Dado que los códigos de candidato son distintos para cada papeleta de voto y no guardan ninguna relación con los nombres de los candidatos, cualquiera que accediera a las papeletas en una fase previa a la votación podría intercambiar los códigos de dos candidatos, desviando los votos de uno hacia el otro. Otro de los problemas es la usabilidad del sistema: la introducción y comprobación de códigos alfanuméricos aumenta considerablemente la complejidad del sistema de votación desde el punto de vista del votante.
Verificación del proceso de codificado
En [Be06] se presenta una idea distinta, en la que la verificación va enfocada al proceso de codificado.
Después que el emisor haya escogido el contenido del mensaje, éste es codificado por una entidad que se compromete con el mensaje codificado resultante. Des este modo, a partir de este momento el mensaje codificado no puede ser modificado. Una vez realizada esta operación, el emisor puede escoger dos opciones: enviar el mensaje o, en caso de querer realizar el proceso de verificación, pedir a la entidad que ha codificado el mensaje que lo descodifique para poder comprobar que el contenido del mensaje codificado se corresponde con el escogido por el emisor. En caso de realizar la verificación, el mensaje codificado (cuyo contenido ha sido desvelado) se desecha y se crea otro nuevo para proteger la privacidad del emisor. Como la decisión de verificar la decide el emisor de la información, este puede haber facilitado una información distinta a la entidad de codificación para preservar su confidencialidad cuando esta es descodificada al verificarse.
En [Ad08] se realiza una realización basada en el sistema propuesto en [Be06]. Una vez el mensaje ha sido codificado y la entidad que ha realizado proceso se compromete con el resultado, existen dos opciones: enviar el mensaje codificado o realizar el proceso de verificación del codificado. Este método se diferencia del anterior en que, en lugar de realizar el proceso de verificación pidiendo a la entidad que ha calculado el codificado del mensaje que lo descodifique, y comprobando que el resultado coincide con el mensaje escogido por el emisor, el emisor pide a la entidad que libere ciertos parámetros del codificado para poder comprobar de forma independiente que el codificado es correcto.
Otra propuesta basada en [Be06] es [Sa08]. Esta propuesta está especialmente diseñada para los lugares de votación donde los votantes votan en máquinas de voto. En la propuesta, estas máquinas están interconectadas mediante una red local aislada de redes exteriores, de forma que ningún mensaje de una red exterior pueda acceder a la red local.
Cuando un votante emite un voto codificado en una de las máquinas, éste se envía a través de la red local y se almacena en todas las máquinas del lugar de votación. Después de esta “publicación” del voto codificado en todas las máquinas, se presenta al votante la opción de verificar si el contenido del voto codificado se corresponde con las opciones elegidas o enviarlo (aunque en este caso ya se haya enviado). Si el votante decide enviar el voto codificado, la máquina simplemente guarda en el registro esa aceptación, dado que ya ha mandado el voto a las otras máquinas del lugar de votación. En cambio, si el votante decide comprobar que las opciones codificadas son las mismas que él ha elegido, la máquina publica la información con la que ha realizado el codificado a través de la red local.
Para proporcionar un método de verificación en tiempo real, se propone que la red local esté conectada a una red externa o Internet mediante un diodo de datos que asegure que la información solo circula en una dirección, de modo que un observador externo pueda observar el tráfico de la red local en tiempo real. Así, el votante o un observador externo pueden captar el voto y los parámetros de codificado para verificar que las opciones codificadas son las que se habían seleccionado en un principio. Una vez se audita un voto, éste se anula en todas las máquinas de voto a través de la red local.
La principal desventaja de estos métodos es que el votante requiere la ayuda de un sistema alternativo para verificar el correcto codificado de las opciones una vez el sistema muestra los parámetros del codificado. Para realizar esta verificación son necesarias operaciones criptográficas que no pueden ser realizadas a mano o mediante una calculadora convencional. El uso de un dispositivo alternativo para realizar estos cálculos puede ocasionar problemas de verificación y de usabilidad para el votante.
Los métodos de verificación del correcto registro de un mensaje codificado presentados tienen como principal problema la usabilidad, dado que el usuario debe realizar operaciones más o menos complejas para hacer la verificación, como la introducción y comparación de códigos numéricos o alfanuméricos, o complejas operaciones matemáticas con números grandes.
El documento WO 2005/093671 se refiere a un sistema de descodificado de votación electrónica configurado para recibir papeletas electrónicas de un dispositivo de votación y descodificarlas, el sistema de descodificado de votación electrónica comprende una pluralidad de entidades de procesamiento de datos cada una de las cuales tiene una parte de una clave secreta y está configurada para descodificar parcialmente y barajar dichos datos electrónicos utilizando la parte de clave secreta, y un sistema de verificación de votación para recibir datos de selección de votantes descodificados e información de enlace de dicho sistema de descodificado de votación. Para el proceso de verificación se divulga el uso de una red MIX tradicional consistente en un número de servidores de barajado, cada uno refrescando la parte de aleatoriedad del codificado de los votos codificados, cada uno permutando los votos y cada uno produciendo una prueba de conocimiento nulo de que su salida es una permutación y un nuevo codificado de la entrada.
El documento EP 1783696 divulga métodos para la gestión y protección de procesos electrónicos asociados a un terminal de voto electrónico.
El documento EP 0697776 se refiere a un método de votación electrónica segura que utiliza homomorfismos parcialmente compatibles, en el que un votante puede emitir un voto entre n centros de manera que se evite el fraude y se autentiquen los votos, pudiendo verificar cada centro que cada voto ha sido contabilizado correctamente.
Varios artículos científicos relacionados con el campo de la invención se incluyen como documentos A1 a A7 en la sección de Referencias al final de la descripción que precede a las reivindicaciones.
La presente invención se basa en la realización de un método para verificar el correcto registro de una información que resuelva los problemas de usabilidad de los métodos anteriormente explicados.
Breve descripción de la invención
La presente invención describe un método de verificación que permite comprobar el correcto registro de una información. Por ejemplo, para verificar que la información que recibe un medio de almacenamiento es la misma que se le ha proporcionado. La invención se define por las reivindicaciones independientes, las reivindicaciones dependientes representan realizaciones preferidas.
Este método de verificación es aplicable en procesos en los que el emisor envía cierta información al receptor y se quiere comprobar que la información recibida en el receptor es la misma que se envió. Este método de verificación es adecuado para ser usado en ocasiones en las que se quiere preservar la privacidad del emisor.
El método descrito en esta invención se caracteriza porque la verificación del correcto registro de una información se realiza preservando la privacidad del emisor. El método se basa en el cálculo de un código de retorno en la entidad receptora correspondiente al contenido de la información registrada sin necesidad de descodificar esta información. Esta prueba de contenido es conocida de antemano por el emisor, de modo que éste puede verificar que la prueba de contenido conocida coincide con la generada por el receptor.
En una realización básica, el método comprende las siguientes etapas:
a) Codificado de la información original por parte de uno o varios emisores en una entidad emisora, y envío de la información codificada a una entidad receptora;
b) La entidad receptora genera una prueba de contenido (también conocida como código de retorno) de la información codificada recibida. La prueba de contenido se envía a la entidad remitente.
c) Verificación por parte de los emisores de que la prueba de contenido recibida se corresponde con los contenidos originales codificados en la entidad emisora;
En una realización preferida, el método se basa en el uso de un algoritmo criptográfico asimétrico con propiedades deterministas para codificar la información. En el caso de utilizar el criptosistema ElGamal, el valor aleatorio utilizado durante el codificado es fijo para obtener un sistema de codificado determinista. Una vez recibida esta información codificada en la entidad receptora, ésta calcula una o varias pruebas de contenido a partir de la información recibida codificada de forma determinista, utilizando una función criptográfica unidireccional, como una función Hash o HMAC, para generar las pruebas de contenido.
En el caso en que el mensaje codificado esté formado por un conjunto de codificaciones individuales, se considera la generación de las pruebas de contenido a partir de cada una de las diferentes codificaciones o de una prueba de contenido a partir del conjunto de las mismas.
También se contempla una segunda codificación de la información. En una realización preferida, el contenido del resultado de los diferentes codificados de la información se correlaciona utilizando una prueba de similitud. Esta prueba puede ser una prueba criptográfica de conocimiento nulo que demuestre que el resultado del segundo codificado de la información es el nuevo codificado o el descodificado parcial del resultado del primer codificado de la información. En una realización en la que se utilice el criptosistema ElGamal para codificar la información, puede utilizarse el Protocolo de Identificación de Schnorr para generar esta prueba criptográfica de conocimiento nulo. En una realización preferida, la información codificada está compuesta por un conjunto de mensajes codificados individuales, que se codifican dos veces. En esta realización, la prueba de similitud se calcula a partir de ambos conjuntos de mensajes codificados, de manera que pueda utilizarse para verificar que el resultado del codificado del primer conjunto de mensajes individuales es el nuevo codificado o el descodificado parcial del segundo conjunto codificado de mensajes individuales. En una realización específica, se utilizan algoritmos de codificado con propiedades homomórficas, como ElGamal, Paillier, o los basados en Criptografía de Curva Elíptica.
En otra realización se generan más de dos codificados distintos de la información. En este caso se contempla la generación de pruebas de similitud que relacionen todos los codificados.
En una realización alternativa, el método utiliza un algoritmo de codificado asimétrico con propiedades probabilísticas para codificar la información. Las pruebas de contenido se generan en la entidad receptora aplicando una función criptográfica unidireccional a la información recibida, como una función Hash o HMAC. En una realización específica, la entidad receptora realiza un descodificado parcial de la realización codificada recibida, que no revela la información en texto sin formato, y las pruebas de contenido se generan a partir del resultado de este descodificado parcial.
El método de la presente invención puede utilizarse en entornos de votación electrónica para verificar el correcto registro de las opciones de voto codificadas emitidas por los votantes y recibidas en un servicio de votación.
Descripción de los dibujos
La Figura 1a identifica los componentes básicos del método de verificación de la recepción correcta de información: o 101: entidad emisora.
o 102: entidad receptora.
o 103: información original a codificar.
o 104: información codificada.
o 105: pruebas de contenido.
o 106: emisor.
La Figura 1b muestra el proceso general de la invención presentada con las etapas básicas. En ella se detalla de forma visual el funcionamiento del proceso en el que la información original 103 se codifica y se envía a la entidad receptora 102, que envía unas pruebas de contenido 105 correspondientes a la información codificada 104 a la entidad emisora 101 para verificar el correcto registro de la información. Los procesos involucrados en esta Figura 1b son:
o La entidad emisora 101 codifica y envía 201 la información original 103 a la entidad receptora 102.
o La entidad receptora 102 genera unas pruebas de contenido 105 a partir de la información codificada 104 y las envía 202 a la entidad emisora 101.
o La entidad emisora 101 verifica 203 las pruebas de contenido 105 para comprobar el correcto registro de la información codificada 104 en la entidad receptora 102.
La Figura 2a identifica los componentes del método de verificación de la recepción correcta de información cuando se implementan las etapas adicionales:
o 101: entidad emisora.
o 102: entidad receptora.
o 103: información a codificar.
o 104: información codificada (primera codificación).
o 105: pruebas de contenido.
o 106: emisor.
o 107: información codificada (segunda codificación).
o 108: prueba de similitud.
La Figura 2b muestra el proceso general de la invención presentada con las funcionalidades añadidas gracias a las etapas adicionales. En esta figura se detalla de forma visual el funcionamiento del proceso en el que se realizan y envían dos codificaciones 104, 107 de la información original 103 relacionadas por una prueba de similitud 108 a la entidad receptora 102, que envía unas pruebas de contenido 105, correspondientes a la información codificada 104, 107, a la entidad emisora 101 para verificar el correcto registro de la información. Los procesos involucrados en esta Figura 2b son:
o La entidad emisora 101 codifica y envía 201 la información original 103 a la entidad receptora 102.
o La entidad emisora 101 realiza una segunda codificación 107 de la información original 103 y la envía 204 a la entidad receptora 102.
o La entidad emisora 101 también genera y envía 205 a la entidad receptora 102 una prueba de similitud 108 que relaciona la primera codificación de la información 104 y la segunda 107.
o La entidad receptora 102 verifica 206 la prueba de similitud 108.
o La entidad receptora 102 genera 202 las pruebas de contenido 105 a partir de la información codificada por primera vez 104 o por segunda vez 107 y las envía 202 a la entidad emisora 101.
o La entidad emisora 101 verifica 203 las pruebas de contenido 105 para comprobar el correcto registro de la información codificada 104, 107 en la entidad receptora 102.
La Figura 3a identifica los componentes del método de verificación de la recepción correcta de información en un ejemplo de realización en el que existe una entidad intermedia que realiza una o varias etapas intermedias de generación de la información codificada:
o 101: entidad emisora.
o 102: entidad receptora.
o 103: información a codificar.
o 104: información codificada (primera codificación).
o 105: pruebas de contenido.
o 106: emisor.
o 107: información codificada (segunda codificación).
o 108: prueba de similitud.
o 109: información recodificada.
o 110: entidad intermedia.
La Figura 3b muestra un ejemplo de realización de la invención presentada. En la figura se detalla de forma visual el proceso en el que se realizan y envían dos codificaciones, una realizada con un algoritmo con propiedades deterministas 104 y otra realizada con un algoritmo con propiedades probabilísticas 107, se envía una prueba de similitud 108 que relaciona las dos codificaciones y se recodifica la información codificada 104 en una entidad intermedia 110, que la envía a la entidad receptora 102 para que genere a partir de la información recodificada 109 las pruebas de contenido 105 que se envían a la entidad emisora 101. Los procesos involucrados en esta Figura 3b son:
o La entidad emisora 101 codifica de forma determinista y envía 201 la información original 103 a la entidad intermedia 110.
o La entidad emisora 101 realiza una segunda codificación probabilística 107 de la información original 103 y la envía 204 a la entidad intermedia 110.
o La entidad emisora 101 también genera y envía 205 a la entidad intermedia 110 una prueba de similitud 108 que relaciona la primera codificación de la información 104 y la segunda 107.
o La entidad intermedia 110 verifica 206 la prueba de similitud 108.
o La entidad intermedia 110 realiza 207 una recodificación con un algoritmo determinista de la información codificada 104 y la envía 207 a la entidad receptora 102.
o La entidad receptora 102 genera 202 las pruebas de contenido 105 a partir de la información recodificada 109 y las envía 202 a la entidad emisora 101.
o La entidad emisora 101 verifica 203 las pruebas de contenido 105 para comprobar el correcto registro de la información codificada 104, 107.
La Figura 4 muestra otro ejemplo de realización de la invención presentada. En la figura se detalla de forma visual el proceso en el que se realiza una segunda codificación 107 de la información original 103 en la entidad emisora 101, que es enviada a la entidad intermedia 110 para realizar una primera codificación 104 de la información. Estas codificaciones envían a la entidad receptora 102 para generar las pruebas de contenido 105 que son enviadas a la entidad emisora 101 para verificar el correcto registro de la información. Los procesos involucrados en esta Figura 4 son:
o La entidad emisora 101 realiza una segunda codificación de la información (con propiedades probabilísticas) 107 y la envía 204 a la entidad intermedia 110.
o La entidad intermedia 110 realiza 201 una primera codificación de la información (con propiedades deterministas) 104 a partir de la información codificada 107, y envía ambas codificaciones 201, 204 a la entidad receptora 102. o La entidad receptora 102 genera 202 las pruebas de contenido 105 a partir de la información codificada 104 y las envía 202 a la entidad emisora 101.
o La entidad emisora 101 verifica 203 las pruebas de contenido 105 para comprobar el correcto registro de la información codificada 104, 107.
Descripción detallada de la invención
La presente invención describe un método de verificación del correcto registro de una información. Este método de verificación es aplicable en procesos de registro de información donde se debe preservar la privacidad del emisor. Este método es aplicable a entornos de voto electrónico, para facilitar a los votantes la verificación del correcto registro de su voto sin comprometer la privacidad del votante.
El método de verificación del correcto registro de una información descrito en la presente invención permite al receptor de una información codificada, enviar al emisor una prueba del contenido codificado en dicha información sin necesidad de que el receptor deba descodificarla. El emisor utiliza esta prueba de contenido para comprobar que la información codificada que recibe el receptor corresponde a la información original antes de ser codificada, sin revelar al receptor esta información original (texto sin formato).
El método es independiente del envío de la información por parte del emisor al receptor, ya sea a través de una red de comunicación, un medio de almacenamiento (como un CD o DVD), etc. Además, se contempla que el canal de envío de la información codificada y de recepción de la prueba de información codificada sean distintos.
El método de verificación descrito en la presente invención comprende las siguientes etapas:
a) Codificado de la información original por parte de uno o varios emisores en una entidad emisora, y envío de la información codificada a una entidad receptora;
b) La entidad receptora genera una prueba de contenido (también conocida como código de retorno) de la información codificada recibida. La prueba de contenido se envía a la entidad remitente.
c) Verificación por parte de los emisores de que la prueba de contenido recibida se corresponde con los contenidos originales codificados en la entidad emisora;
Codificado y envío de la información
En la etapa de codificación, un emisor (es decir, un votante) utiliza una entidad emisora (como un ordenador o cualquier otro dispositivo electrónico) para codificar una información o conjunto de mensajes (es decir, votos) con el fin de preservar su privacidad.
En una primera realización, se utilizan algoritmos criptográficos asimétricos para codificar la información. El componente público P de la clave criptográfica utilizada por el algoritmo de codificado se utiliza para codificar la información.
De forma adicional, el algoritmo de codificado tendría propiedades homomórficas. Existen varios algoritmos del estado de la técnica que cumplen con esta propiedad, como por ejemplo ElGamal, Paillier o los basados en Criptografía de Curva Elíptica.
En una realización específica, el algoritmo de codificado puede tener propiedades homomórficas y deterministas. Esta propiedad determinista hace que un algoritmo de codificación genere siempre el mismo valor para el mismo remitente específico. Por lo tanto, diferentes remitentes tendrán diferentes valores de codificado de la misma información. En el caso del criptosistema ElGamal, el valor aleatorio utilizado durante el codificado como exponente se fija para obtener un sistema de codificado determinista. Se utilizan parámetros únicos por remitente e información codificada para obtener un codificado determinista fijo para cada combinación de remitente y contenido de la información. En una realización específica, cada remitente tiene un identificador único y el identificador de la información a codificar se obtiene aplicando una función unidireccional (es decir, una función Hash) sobre dicha información. Por tanto, el exponente de codificado se fija como el resultado de la combinación del identificador único del emisor y el resultado de una función unidireccional sobre la información original (es decir, una función Hash). Esta combinación puede ser la concatenación de ambos valores o el resultado de aplicar una función Hash sobre el resultado de esta concatenación
En una realización alternativa, el proceso de codificado con propiedades deterministas lo realiza una entidad intermedia, distinta de la entidad emisora, utilizando la información ya codificada por la entidad emisora: la entidad emisora sigue codificando la información, pero utilizando un esquema criptográfico con propiedades probabilísticas. El resultado de este codificado se envía a la entidad intermedia, que vuelve a codificar esta información utilizando un esquema criptográfico con propiedades deterministas. La entidad intermedia puede realizar la segunda codificación (i) sobre toda la información codificada, (ii) sobre los valores de codificación utilizados por la entidad emisora para codificar el mensaje, o (iii) sobre una parte del mismo. Un ejemplo del primer caso es la adición de una capa adicional de codificado sobre la información (es decir, un nuevo codificado utilizando una clave criptográfica diferente o un algoritmo de codificado diferente). Un ejemplo del segundo caso es la modificación de los valores de codificado utilizados para codificar el mensaje en un primer momento (es decir, utilizando el mismo algoritmo de codificado y la misma clave criptográfica), de modo que el resultado tenga un aspecto diferente. En una realización específica, la entidad intermedia utiliza el criptosistema ElGamal para codificar o volver a codificar la información codificada proporcionada por la entidad remitente.
En una tercera realización, el codificado determinista lo realizan conjuntamente la entidad emisora y la entidad intermedia. El resultado de este doble proceso de codificado determinista se proporciona a la entidad receptora.
La entidad emisora envía la información codificada utilizando un canal físico o lógico. En una realización preferida, el canal físico es el canal postal o FAX. En estos esquemas, la información codificada se imprimiría o grabaría en formato papel o equivalente antes de ser enviada. En otra realización preferida, una red de comunicación, como Internet, se utiliza como canal lógico. En este caso, la información codificada se representa en un formato lógico, como binario o electrónico entre otros.
También se consideran canales híbridos lógicos/físicos para transmitir la información codificada. En este caso, la información codificada se almacenaría lógicamente en un soporte físico, como un CD-ROM, una cinta magnética o un soporte de almacenamiento extraíble. El soporte físico puede enviarse a través de un canal físico a la entidad receptora, utilizando uno de los canales físicos mencionados anteriormente o simplemente a mano.
El codificado puede realizarse sobre todo el conjunto de información o sobre partes individuales de esta información (es decir, mensajes individuales). En la segunda opción, los mensajes individuales codificados que componen la información pueden combinarse antes de ser enviados, o enviarse independientemente. En una realización preferida, la información se divide en mensajes individuales que se codifican de forma independiente, de tal manera que la combinación (es decir, la concatenación) o la operación (es decir, la multiplicación aritmética o la suma) de dichos mensajes puede utilizarse para recuperar la información codificada tal como era antes de la división. Opcionalmente, estos mensajes codificados podrían proporcionar información parcial de todo el conjunto en caso de que se descodifiquen individualmente. En una realización específica, la información se divide en mensajes codificados individuales que, una vez descodificados, proporcionan información parcial significativa sobre todo el conjunto. Por ejemplo, cada mensaje podría contener una selección del conjunto de selecciones realizadas por el votante para votar. Opcionalmente, el conjunto de información, una vez dividido en mensajes, podría contener mensajes con información neutra que no modifican el contenido de todo el conjunto de información. Esta técnica puede utilizarse para evitar que se rompa la privacidad de un remitente en caso de que pueda deducirse alguna información del número de mensajes en que se divide el conjunto de información: un remitente que envíe la información dividida en un único número de mensajes codificados que difiera del número de mensajes codificados generados por los demás remitentes, podría perder su privacidad si la información, una vez descodificada, genera un voto que sea el único con el mismo número de selecciones. Por ejemplo, en un sistema de votación electrónica, esto podría generar un voto que contenga un número único de selecciones que no sea elegido por ningún otro votante. En esta realización específica todos los votos están compuestos por el mismo número de mensajes o selecciones individuales (tanto como el máximo permitido) y los mensajes correspondientes a selecciones no realizadas por el votante podrían representarse como selecciones codificadas vacías.
En otra realización preferida, el contenido de la información que se va a codificar se convierte previamente en un valor numérico, de modo que los mensajes individuales que representan el conjunto de la información puedan operarse mediante técnicas aritméticas, como el producto o la suma. Esta conversión puede realizarse a nivel de todo el conjunto de información, o a nivel de los mensajes individuales en los que puede dividirse este conjunto. Tomando como referencia el sistema de votación electrónica, un voto podría convertirse en un conjunto o matriz de valores numéricos, cada uno de los cuales representaría unívocamente el valor de cada selección. Esta conversión podría ser innecesaria en caso de que la información original ya sea un valor numérico o pueda descomponerse en valores numéricos. En una realización específica, cada mensaje individual está representado por un número primo, de modo que los mensajes pueden operarse multiplicando su valor numérico primo que representa la selección y luego factorizarse para obtener la información original. En este caso, las selecciones nulas se representan por el valor neutro del producto: el número 1. Los cálculos pueden realizarse en un campo finito cuando se operan los mensajes codificados individuales.
En una realización específica, la información se representa como un conjunto de números primos, cada número primo representando información del mensaje como una selección, que se codifican utilizando un algoritmo de codificado criptográfico con propiedades homomórficas multiplicativas (por ejemplo, ElGamal). Esta realización específica está pensada para ser utilizada para verificar el contenido de cada mensaje individual en la recepción, y después compactar los mensajes codificados operando todos o algunos de ellos utilizando las propiedades homomórficas del algoritmo de codificación. La información original (el conjunto de selecciones) puede recuperarse factorizando en números primos el valor obtenido una vez descodificados los mensajes codificados compactados
Generación de una prueba de contenido
En esta etapa la entidad receptora genera una prueba de contenido de los mensajes codificados recibidos, y envía dicha prueba a la entidad emisora. En el caso de que el mensaje codificado esté formado por un conjunto de partes del mensaje codificadas, la entidad receptora podría enviar una prueba de contenido individual de cada mensaje individual.
En una realización preferida se usa una función unidireccional, como una función Hash, para calcular la prueba de contenido:
Prueba de contenido: PC(m)=H(E(m)), donde E(m) es el resultado de la codificación de la información m.
En otra realización preferida, la entidad receptora dispone de una clave secreta S para generar la prueba de contenido mediante una función MAC, por ejemplo, con una función HMAC:
Prueba de contenido: PC(m)=HMAC(E(m), S), donde E(m) es el resultado de la codificación de la información m.
En el caso de que el mensaje codificado esté formado por un conjunto de codificaciones individuales, en otra realización preferida se pueden generar tantas pruebas de contenido como mensajes individuales. En este caso, estas pruebas podrían operarse entre ellas de forma que se obtenga una única prueba de contenido, por ejemplo, mediante una operación XOR:
PC(mi)=HMAC(E(mi), S)
PC(m2)=HMAC(E(m2), S)
PC(ms)=HMAC(E(ms), S)
PC(mn)=HMAC(E(mn), S)
PC= PC(mi) @PC(m2) @PC(m3) B .. BPC(mn), donde n es el número de mensajes individuales, y m representa un mensaje individual.
En una realización en la que se ha utilizado un algoritmo de codificación con propiedades homomórficas para codificar los mensajes individuales, la prueba de contenido se genera a partir del resultado de la operación de varios mensajes individuales codificados:
E(M)= E(mi) O E(m2) O... O E(mn)
PC(M)=HMAC(E(M), S).
En una realización en la que la información ha sido codificada utilizando un algoritmo de codificado con propiedades probabilísticas en la etapa a), la información codificada puede ser parcialmente descodificada por la entidad receptora en esta etapa, con el fin de eliminar el factor aleatorio del codificado realizado en la etapa a), sin revelar el contenido de la información codificada. En este esquema, las pruebas de contenido se generan a partir de la información parcialmente descodificada.
Verificación de la prueba de contenido
En esta etapa, los remitentes verifican que la prueba de contenido recibida de la entidad receptora se ha obtenido a partir de la información original, que fue codificada y enviada.
En una realización preferida, los emisores de la información disponen de antemano de una lista con los valores de las pruebas de contenido para cada posible información o cada posible conjunto (o subconjunto) de mensajes a enviar.
Esta lista puede calcularse en una etapa previa a la etapa a) a partir del conocimiento del conjunto de posibles valores de información o mensajes que los remitentes pueden enviar. En una realización específica, estos valores se calculan en una etapa previa a la etapa a) utilizando la clave criptográfica secreta S de la entidad receptora y el resultado del codificado de todos los posibles valores de información o mensajes utilizando un algoritmo de codificado con propiedades deterministas y utilizando el identificador único para cada emisor especificado en la etapa a).
En caso de que se haya enviado un conjunto de mensajes individuales codificados, y la entidad receptora genere una prueba de contenido a partir de los valores del conjunto o de un subconjunto de los mensajes codificados recibidos, dicha lista puede especificar las pruebas de contenido relativas a conjuntos o subconjuntos de mensajes a partir de los cuales se genera una única prueba de contenido. Por lo tanto, en esta etapa el remitente tiene que verificar una prueba de contenido para un conjunto o subconjunto de mensajes.
Etapas adicionales
La invención contempla la realización de tres etapas adicionales para la generación y envío del resultado de una segunda codificación de la información, la generación y envío de una prueba de similitud, y la verificación de la prueba de similitud.
Segunda codificación y envío de una información
Esta etapa puede realizarse antes o después de la etapa a) de codificado y envío de la información.
En esta etapa, la información original codificada en la etapa a) es codificada de nuevo por la misma entidad emisora y enviada a la misma entidad receptora. El algoritmo de codificado utilizado en esta etapa puede ser el mismo que se utilizó en la etapa a) para codificar la información.
En una realización preferida, se utiliza un algoritmo de codificado asimétrico para codificar la información utilizando una clave criptográfica pública P. Se utilizan el mismo algoritmo de codificado y la misma clave pública utilizados en la etapa a), o bien otros diferentes.
En otra realización preferida, se utiliza un algoritmo de codificado asimétrico con propiedades probabilísticas y homomórficas para codificar la información en esta etapa. Por lo tanto, no será posible relacionar el resultado del codificado con la información original. En caso de que se utilice el esquema de codificado ElGamal, el valor aleatorio utilizado para el codificado (el exponente) se elegirá de forma aleatoria (no fija).
El resultado de la segunda codificación de la información puede enviarse de la misma manera que en la etapa a). En una realización preferida se utiliza el mismo canal de transmisión utilizado en la etapa a). Opcionalmente, el resultado de la codificación en esta etapa puede ser enviado a través de un canal de transmisión diferente al utilizado en la etapa a).
El proceso de codificación puede realizarse sobre todo el conjunto de información o en partes del mismo (por ejemplo, para cada mensaje individual en el que la información puede estar dividida), de la misma forma explicada en la etapa a).
Generación y envío de una prueba de similitud
En esta etapa, la entidad emisora genera una prueba de similitud entre el resultado del codificado de la información en la etapa a) y el resultado del segundo codificado de la información. El emisor envía dicha prueba a la entidad receptora.
Esta etapa se realiza después de las dos etapas de codificado (primer y segundo codificado). La prueba de similitud puede enviarse sola o conjuntamente con uno de los dos resultados de codificado o con ambos. La forma de envío de la prueba de similitud, así como el canal de transmisión, puede ser de uno de los tipos presentados anteriormente para el envío de la información codificada.
En una realización preferida, la prueba de similitud puede obtenerse a partir de una prueba de conocimiento nulo que demuestre que la información original contenida en dos resultados de codificados, o textos codificados, es la misma. En una realización específica, los dos procesos de codificación utilizan algoritmos de codificación con propiedades homomórficas, que permiten operaciones de recodificación o descodificación parcial. Por lo tanto, la prueba de conocimiento nulo puede demostrar que el resultado de una de las codificaciones es la recodificación o la descodificación parcial del otro resultado de codificación. En caso de que se utilice el criptosistema ElGamal en ambos procesos de codificado, la prueba de conocimiento nulo puede implementarse utilizando el Protocolo de Identificación de Schnorr. La prueba de conocimiento nulo puede ser interactiva o no.
Se usan los siguientes componentes en el sistema de codificado ElGamal:
g generador del subgrupo Gq de Zp* q es un primo grande, y p=2*q+1, también primo
clave privada: x x número aleatorio en Zq
clave pública: (h, g) donde h=gx mod p
mensaje: m
El codificado se calcula como:
c = (m.hr, g ) donde r es un número aleatorio en Zq.
Para descodificar, el mensaje m se recupera como m = c*( g)~x.
Si se ha utilizado un algoritmo de codificado determinista en la etapa a) de codificado:
ci = (m.hv, gv) donde v es un número en Zq calculado a partir de unos valores fijos (por ejemplo, unos identificadores únicos del emisor y del mensaje).
En el caso de que el algoritmo de la segunda codificación sea probabilístico:
C2 = (m.hr, gr) donde r es un número aleatorio en Zq.
Siendo r=v+r’, se puede considerar C2 como el re-codificado de ci con el factor r ’ y calcular la prueba basada en el Protocolo de Identificación de Schnorr del siguiente modo:
- Calcular c2/ c i = (1.hr, gr).
- Definiendo g ’ = h y h ’ = hr’, se puede probar en conocimiento nulo que se conoce el factor de recodificado r ’: - Seleccionar un número aleatorio e, 12= e í Í¡ f- í, y calcular w = ge.
- Calcular d = H(w\h 1g’\h\g), donde H es una función de hash.
- Finalmente, calcular s = r ’.d+e.
- La prueba de conocimiento nulo de que los dos codificados tienen el mismo contenido consiste en los parámetros [w, s].
En el caso de efectuar esta prueba sobre un conjunto de mensajes, se considera el uso de algoritmos con propiedades homomórficas, en los que la operación de los mensajes codificados con una operación O da como resultado el codificado de los mensajes operados mediante la operación 0. De este modo se puede obtener un mensaje codificado resultado de la operación de todos los otros:
Siendo Ep(m) el codificado de un mensaje con una clave pública P, el mensaje codificado resultante de operar n mensajes es
Ep (M) = EP(m1) O EP(m2) O ... O EP(mn), donde M = m 1 0 m2 0... 0 mn
El mensaje codificado resultante después de operar los mensajes codificados en la etapa a) es
E1P(M) = E1P(m1) O E1P(m2) O . O E1P(mn), donde M = m 1 0 m2 0 . 0 mn
Mientras que el mensaje codificado resultante después de operar los mensajes codificados en la segunda etapa de codificación es
E2p (M)= E2P(m1) O E2P(m2) O . O E2P(mn), donde M= m 1 0 m2 0 . 0 mn
La prueba de conocimiento nulo de que los dos codificados del conjunto de mensajes tienen el mismo contenido se puede resumir en una prueba de que los dos mensajes codificados resultantes tienen el mismo contenido. Ésta puede ser una prueba de re-codificado o de descodificado parcial. En el caso de utilizar el sistema de codificado ElGamal en las dos etapas de codificado, la prueba de conocimiento nulo puede consistir en la realización del Protocolo de Identificación de Schnorr.
Si se ha utilizado un algoritmo de codificado determinista en la etapa a) de codificado:
Ei(m) = (mi.hvi, gvi) donde es un número en Zq acordado antes del proceso de codificado.
El mensaje codificado resultante después de operar un conjunto de n mensajes codificados en la etapa a) es
donde M = mi * m2 *... * mn y V En el caso en que el algoritmo de la segunda codificación sea probabilístico:
E2 (m) = (m¡.hri, gri) donde re s un número aleatorio en Zq.
El mensaje codificado resultante después de operar el mismo conjunto de n mensajes codificados es
C2 = (M.hR, gR) = (mi.hr1, gr1) * (m2.hr2, gr2) *... *(mn.hrn, grn), donde M = mi * m2 *... * mn y R=ri+r2 +... n
Siendo n = v¡+n\ se puede considerar C2 como el re-codificado de Ci con el factor de re-codificado R’ = n'+r2 '+...
+rn', y calcular la prueba basada en el Protocolo de Identificación de Schnorr del siguiente modo:
- Calcular C2/ Ci = (1.hR’, gR).
- Definiendo g ’ = h y h ’ = hR, se puede probar en conocimiento nulo que se conoce el factor de re-codificado R':
- Seleccionar un número aleatorio e, 1 ¿ e ^ Q -1 , y calcular w = ge.
- Calcular d = H(w\h’\g’\h\g), donde H es una función de hash.
- Finalmente, calcular s = R’.d+e.
- La prueba de conocimiento nulo de que los dos codificados tienen el mismo contenido consiste en los parámetros [w, s].
Verificación de la prueba
En esta etapa la entidad receptora verifica que las codificaciones recibidas han sido realizadas sobre la misma información original, a partir de la prueba de similitud recibida.
En el caso de que esta prueba se haya obtenido a partir de una prueba de conocimiento nulo, esta verificación se realiza verificando que esta prueba de conocimiento nulo se ha generado a partir de las información codificada recibida (o resultados codificados recibidos).
En una realización preferida, los dos codificados se han realizado con algoritmos que tienen propiedades homomórficas utilizando la misma clave pública o el mismo factor de codificado, y la prueba de similitud se ha generado a partir de una prueba de conocimiento nulo de re-codificado o de descodificado parcial.
Si se ha utilizado un algoritmo de codificado determinista en la etapa a) de codificado:
ci = (m.hv, gv) donde v es un número en Zq determinado antes del proceso de codificado.
Y el algoritmo utilizado en el segundo proceso de codificado es probabilístico:
C2 = (m.hr, gr) donde r es un número aleatorio en Zq .
Siendo r = v+r’, la verificación de la prueba efectuada que demuestra el conocimiento del factor de re-codificado de ci con el factor r ’ para obtener C2 se basa en la verificación de [w, s] si la prueba se ha realizado usando el Protocolo de Identificación de Schnorr:
- Calcular C2/ c i = (1.hr’, gr).
- Definir g ’ = h y h = hr’.
- Calcular d = H(w\h’\g’\h\g), donde H es una función de hash.
- Verificar que g ’s = w.h d.
En el caso que la prueba de conocimiento nulo se haya efectuado sobre un conjunto de mensajes codificados con algoritmos con propiedades homomórficas, en los que la operación de los mensajes codificados con una operación
O da como resultado el codificado de los mensajes operados mediante la operación 0, la verificación se realiza utilizando el resultado de la operación de los mensajes codificados en la etapa a) y el resultado de la operación de los mensajes codificados en la etapa c).
En el caso de utilizar el sistema de codificado ElGamal en las dos etapas de codificado, la prueba de conocimiento nulo puede consistir en la realización del Protocolo de Identificación de Schnorr.
Si se ha utilizado un algoritmo de codificado determinista en la etapa a) de codificado:
Ei(m) = (mi.hvi, gvi) donde Vi es un número en Zq acordado antes del proceso de codificado.
El mensaje codificado resultante después de operar un conjunto de n mensajes codificados en la primera etapa es
* m2 *... * mn y V= En el caso en que el algoritmo de la etapa de segundo codificado es probabilístico:
E2 (m) = (m¡.hri, gri) donde re s un número aleatorio en Zq.
El mensaje codificado resultante después de operar el mismo conjunto de n mensajes codificados en la segunda etapa es
C2 = (M.hR, gR) = (mi.hri, gri) * (m2.hr2, t f 2) *... *(mn.hrn, grn), donde M = mi * m2 *... * mn y R=ri+r2 +... rn.
Siendo n = v¡+n\ se puede considerar C2 como el re-codificado de Ci con el factor de re-codificado R= r i '+&'+... rn'.
La verificación se efectúa sobre los parámetros [w, s] si la prueba se ha realizado usando el Protocolo de Identificación de Schnorr:
- Calcular C2/C i = ( i.h R, gR).
- Definir g ’ = h y h ’ = hR’.
- Seleccionar un número aleatorio e,
Figure imgf000014_0001
y calcular w = ge.
- Calcular d = H(W\h]g\h\g), donde H es una función de hash.
- Verificar que g ’s = w.h d.
Referencias
[Ch01] Chaum, D. (2001). “Surevote technical overview (slides)”.
http://www.vote.caltech.edu/wote01/pdfs/surevote.pdf
[Ma02] Malkhi, D; Margo, O; “Pavlov, E. E-voting without 'cryptography'.” Conference Information: 6th International Conferene on Financial Cryptography, 2002, SOUTHAMPTON BERMUDA. FINANCIAL CRYPTOGRAPHY
[Be06] Josh Benaloh. “Simple verifiable elections.” Proceedings of the USENIX/Accurate Electronic Voting Technology (2006). Vancouver, B.C., Canada.
[Ad08] Ben Adida. “Helios: web-based open-audit voting.” Proceedings of the 17th conference on Security symposium, USENIX. Páginas 335-348. Año de publicación: 2008
[Sa08] Sandler, D., Derr, K., and Wallach, D. S. 2008. “VoteBox: a tamper-evident, verifiable electronic voting system”. In Proceedings of the 17th Conference on Security Symposium, USENIX Association. Pp. 349-364.
A1 Changjie Wang y otros:"A secure and fully private borda voting protocol with universal verifiability”, Title: Proceedings of the 28th annual international computer software and applications conference, Compsac 2004, IEEE COMPUTER SOCIETY, LOS ALAMITOS, CALIF, 28 Septiembre 2004, (2004-09-28), páginas 224-229, XP010730628, DOI:10.1109/CMPSAC.2004.1342832
A2 Prof. Dr. y otros: "Diploma Thesis Verifiable Mixnets Techniques and Prototype Implementation", 1 Marzo 2007 (2007-03-01), XP055191015, Recuperado de Internet: URL:https://www.cdc.informatik.tudarmstadt.de/reports/reports/Jun_Chen.diplom.pdf [recuperado el 2015-05-21]
A3 Lan Nguten y otros: "A Provable Secure and Efficient Verifiable Shuffle based on a Variant of the Paillier Cryptosystem", INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH, vol. 20050627:092432, 27 Junio 2005 (2005-06-27), páginas 1-25, XP061001346, [recuperado el 2005-06-27]
A4 Morales-Rocha V.y otros: "New voter verification scheme using preencrypted ballots", COMPUTER COMMUNI­ CATIONS, vol. 32, 2 Abril 2009 (2009-04-02), páginas 1219-1227, XP026136339, Amsterdam, NL
A5 Fontaine C. y otros: "A survey of Homomorphic Encrypton for Nonspecialists", EURASIP JOURNAL ON INFOR­ MATION SECURITY, 2007, XP055012461,
A6 Moayed M.J. y otros: "A Survey on Cryptography Algorithms in Security of Voting System Approaches" In "Computational Sciences and Its Applications, 2008, ICCSA '08. International Conference on, 20080630, IEEE, Piscataway, NJ, USA.", XP031284157, pages 190-200,
A7 Magkos E. y otros: "Accurate and large-scale privacy-preserving data mining using the election paradigm", DATA & KNOWLEDGE ENGINEERING, vol. 68, 1 Noviembre 2009 (2009-11-01), páginas 1224-1236, XP026675205.

Claims (12)

REIVINDICACIONES
1. Método implementado por ordenador que utiliza un algoritmo de codificado homomórfico asimétrico con propiedades probabilísticas para verificar que la información de una entidad emisora se ha registrado correctamente en una entidad receptora, preservando al mismo tiempo la privacidad del emisor al no revelar la información de la entidad emisora, caracterizado porque comprende las siguientes etapas:
a) codificar una información del remitente (103) en el ordenador de la entidad remitente (101) mediante dicho algoritmo de codificado homomórfico asimétrico utilizando identificadores únicos del remitente y del mensaje, haciendo que dicho algoritmo con propiedades probabilísticas tenga propiedades deterministas, y enviar (201) la información codificada del remitente, denominada codificado determinista (104), desde el ordenador de la entidad remitente (101) a un ordenador de la entidad receptora (102);
b) generar con el ordenador de entidad receptora (102) una prueba de contenido (105) basada en el codificado determinista (104), y enviar (202) la prueba de contenido (105) al ordenador de entidad emisora (101) desde el ordenador de entidad receptora (102)
c) verificar la información (203) con el ordenador de entidad emisora (101) para realizar así una comprobación de que la prueba de contenido (105) recibida del ordenador de entidad receptora (102) se corresponde con el codificado determinista (104) en el ordenador de entidad emisora (101) comparando los valores de la prueba de contenido (105) recibida con valores de una prueba de contenido conocida de antemano por el ordenador de entidad emisora (101) que se corresponden con la información verificada
d) codificar, antes o después de la etapa a), la información del remitente (103) en el ordenador de la entidad remitente (101) mediante dicho algoritmo de codificado homomórfico asimétrico, y enviar (204) la información codificada del remitente, denominada segundo codificado (107), desde el ordenador de la entidad remitente (101) al ordenador de la entidad receptora (102);
e) calcular una prueba de similitud (108) mediante un protocolo criptográfico de prueba de conocimiento nulo, en el que el protocolo criptográfico de prueba de conocimiento nulo demuestra que el codificado determinista (104) de la etapa a) y el segundo codificado (107) de la etapa d) se han realizado sobre la misma información en el ordenador de entidad emisora (101), sin revelar dicha información, y enviando dicha prueba de similitud (108) al ordenador de entidad receptora (102), de forma que el protocolo criptográfico de prueba de conocimiento nulo demuestre que un resultado del codificado determinista (104) es el recodificado o descodificado parcial del segundo codificado (107), o viceversa; y
f) el ordenador de la entidad receptora (102) verifica con el ordenador de la entidad receptora (102) que la prueba de similitud (108) de la etapa e) se corresponde con el codificado de la etapa a y el codificado de la etapa d).
2. Un método, según la reivindicación 1, que comprende además utilizar un valor de exponente fijado a partir de los valores del ordenador de la entidad emisora (101).
3. Un método, según la reivindicación 1, que comprende además utilizar un parámetro común en el codificado de las etapas a) y d), en el que el parámetro común es la misma clave pública.
4. Un método, según la reivindicación 1, en el que la información en el ordenador de entidad emisora (101) que se codifica en la etapa a) y en la etapa d) está compuesta respectivamente por un conjunto de codificados individuales a partir de partes de dicha información de emisor (103) en el ordenador de entidad emisora (101).
5. Un método, según la reivindicación 1, en el que la prueba de similitud (108) de la etapa e) está compuesta por un conjunto de pruebas de similitud entre el conjunto de codificados individuales obtenidos en la etapa a) y el conjunto de codificados individuales obtenidos en la etapa d).
6. Un método, según la reivindicación 1, en el que la prueba de contenido (105) de la etapa b) se obtiene aplicando sobre la información del remitente (103) codificada en la etapa a) una función unidireccional del grupo que comprende SHA1, SHA2 o MD5.
7. Un método, según la reivindicación 1, en el que la prueba de contenido (105) de la etapa b) se genera a partir del codificado del codificado determinista (104).
8. Un método, según la reivindicación 7, en el que dicho codificado de dicha prueba de contenido de la etapa b) es una función criptográfica que utiliza una clave secreta S asignada al ordenador de la entidad receptora (102), del grupo que comprende un codificado simétrico o una función MAC.
9. Un método, según la reivindicación 1, en el que la prueba de contenido (105) generada en la etapa b) está compuesta por un conjunto de pruebas de contenido generadas a partir de los codificados individuales de la etapa a).
10. Un método, según la reivindicación 1, en el que la prueba de contenido (105) generada en la etapa b) es el resultado de operar el conjunto de pruebas de contenido generadas a partir de los codificados individuales de la etapa a).
11. Un método, según la reivindicación 1, comprendiendo además una etapa adicional g) donde los valores de las pruebas de contenido para la información verificada son generados y enviados al ordenador de la entidad emisora (101).
12. Un método, según la reivindicación 3, que comprende además realizar una etapa adicional h) para el descodificado parcial del codificado determinista (104) en el ordenador de la entidad emisora (101) antes de generar la prueba de contenido (105) de la etapa b) con el ordenador de la entidad receptora (102)
ES10834256T 2009-12-04 2010-12-01 Método para verificar el correcto registro de una información Active ES2936809T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ES200902326A ES2367940B1 (es) 2009-12-04 2009-12-04 Método para la verificación del correcto registro de una información.
PCT/ES2010/000490 WO2011067437A2 (es) 2009-12-04 2010-12-01 Método para verificar el correcto registro de una información

Publications (1)

Publication Number Publication Date
ES2936809T3 true ES2936809T3 (es) 2023-03-22

Family

ID=44115356

Family Applications (2)

Application Number Title Priority Date Filing Date
ES200902326A Active ES2367940B1 (es) 2009-12-04 2009-12-04 Método para la verificación del correcto registro de una información.
ES10834256T Active ES2936809T3 (es) 2009-12-04 2010-12-01 Método para verificar el correcto registro de una información

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES200902326A Active ES2367940B1 (es) 2009-12-04 2009-12-04 Método para la verificación del correcto registro de una información.

Country Status (4)

Country Link
US (1) US8713319B2 (es)
EP (1) EP2509050B1 (es)
ES (2) ES2367940B1 (es)
WO (1) WO2011067437A2 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9230133B2 (en) * 2014-01-14 2016-01-05 International Business Machines Corporation Secure access for sensitive digital information
US9544150B2 (en) 2014-06-04 2017-01-10 International Business Machines Corporation Using multiple digital identification documents to control information disclosure
CN105320892B (zh) * 2014-06-16 2022-01-04 腾讯科技(深圳)有限公司 社交通信应用的通信记录存储方法及相关系统
EP3145114A1 (en) * 2015-09-18 2017-03-22 Gemalto Sa Electronic voting using secure electronic identity device
US10095880B2 (en) * 2016-09-01 2018-10-09 International Business Machines Corporation Performing secure queries from a higher security domain of information in a lower security domain
US10255442B2 (en) * 2016-11-15 2019-04-09 Adobe Inc. Controlled publication of sensitive content
CN107317667B (zh) * 2017-06-05 2020-06-05 国政通科技股份有限公司 一种身份证件丢失的预警方法及预警装置
US11087578B2 (en) 2018-11-15 2021-08-10 Daniel Bernard Ruskin Voting booth, system, and methods of making and using same

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495532A (en) * 1994-08-19 1996-02-27 Nec Research Institute, Inc. Secure electronic voting using partially compatible homomorphisms
US7409557B2 (en) * 1999-07-02 2008-08-05 Time Certain, Llc System and method for distributing trusted time
WO2002077929A2 (en) * 2001-03-24 2002-10-03 Votehere, Inc. Verifiable secret shuffles and their application to electronic voting
US20030159032A1 (en) * 2000-08-16 2003-08-21 Edgardo Gerck Automatically generating unique, one-way compact and mnemonic voter credentials that support privacy and security services
US20050193198A1 (en) * 2004-01-27 2005-09-01 Jean-Michel Livowsky System, method and apparatus for electronic authentication
EP1728220A2 (en) * 2004-03-25 2006-12-06 Cryptomathic A/S Electronic voting systems
ATE395674T1 (de) * 2004-07-27 2008-05-15 Scytl Secure Electronic Voting Verfahren zum verwalten und schützen von wählprozessen, die mit einem elektronischen wähl- endgerät assoziiert sind, und verwendetes operatives modul
ES2365887B1 (es) * 2009-05-05 2012-09-03 Scytl Secure Electronic Voting S.A. Metodo de verificacion de procesos de descifrado

Also Published As

Publication number Publication date
EP2509050B1 (en) 2022-09-21
WO2011067437A3 (es) 2011-07-14
WO2011067437A2 (es) 2011-06-09
ES2367940B1 (es) 2012-09-27
ES2367940A1 (es) 2011-11-11
EP2509050A4 (en) 2015-07-01
US20120239932A1 (en) 2012-09-20
EP2509050A2 (en) 2012-10-10
US8713319B2 (en) 2014-04-29

Similar Documents

Publication Publication Date Title
ES2936809T3 (es) Método para verificar el correcto registro de una información
Menezes et al. Handbook of applied cryptography
US20110145576A1 (en) Secure method of data transmission and encryption and decryption system allowing such transmission
JP6042663B2 (ja) signcryption方法と装置及び対応するsigncryption検証方法と装置
ES2365887B1 (es) Metodo de verificacion de procesos de descifrado
CN103095453A (zh) 应用私有集合交集的公钥加密的布隆过滤器
US20100046755A1 (en) Cryptography related to keys with signature
CA2819211C (en) Data encryption
Ryabko et al. Basics of contemporary cryptography for IT practitioners
CN109887150A (zh) 支持投票系统的代理重签密方法
CN102594551A (zh) Rfid标签隐私数据可靠统计方法
Darwish et al. A new cryptographic voting verifiable scheme for e-voting system based on bit commitment and blind signature
Gligoroski et al. Cryptcoding-Encryption and Error-Correction Coding in a Single Step.
EP1361693B1 (en) Handle deciphering system and handle deciphering method, and program
WO2008131130A1 (en) Asymmetric cryptography using shadow numbers
Ahubele et al. Secured electronic voting system using RSA Key encapsulation mechanism
Demirel et al. A Publicly-Veriable Mix-net with Everlasting Privacy Towards Observers
Murugan An efficient algorithm on quantum computing with quantum key distribution for secure communication
JP2004192029A (ja) 電子投票システム、投票データ生成サーバ、端末装置、及び、集計サーバ、ならびに、コンピュータプログラム
Liao Multi-Candidate Electronic Voting Scheme Based on Fully Homomorphic Encryption
Yang et al. RVBT: a remote voting scheme based on three-ballot
Azougaghe et al. Electronic voting scheme based on additive homomorphic encryption.
CN114189329B (zh) 一种公钥认证可否认加密方法及系统
Srinivasarao et al. A technique for data encryption and decryption
Sarkar A sketch of modern cryptology