ES2365887B1 - Metodo de verificacion de procesos de descifrado - Google Patents

Metodo de verificacion de procesos de descifrado Download PDF

Info

Publication number
ES2365887B1
ES2365887B1 ES200901196A ES200901196A ES2365887B1 ES 2365887 B1 ES2365887 B1 ES 2365887B1 ES 200901196 A ES200901196 A ES 200901196A ES 200901196 A ES200901196 A ES 200901196A ES 2365887 B1 ES2365887 B1 ES 2365887B1
Authority
ES
Spain
Prior art keywords
messages
message
integrity test
encrypted
incoming
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
ES200901196A
Other languages
English (en)
Other versions
ES2365887A1 (es
Inventor
Sandra Guasch Castelló
Jordi Puiggali Allepuz
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 Secure Electronic Voting SA
Original Assignee
Scytl Secure Electronic Voting SA
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 Secure Electronic Voting SA filed Critical Scytl Secure Electronic Voting SA
Priority to ES200901196A priority Critical patent/ES2365887B1/es
Priority to PCT/ES2009/000568 priority patent/WO2010128172A1/es
Priority to EP09844302.1A priority patent/EP2429115B1/en
Priority to US13/319,164 priority patent/US9077540B2/en
Publication of ES2365887A1 publication Critical patent/ES2365887A1/es
Application granted granted Critical
Publication of ES2365887B1 publication Critical patent/ES2365887B1/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
    • 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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • 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/42Anonymization, e.g. involving pseudonyms
    • 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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Método de verificación de procesos de descifrado.#La invención describe un método de verificación que permite corroborar que el proceso de descifrado se ha llevado a cabo honestamente por la entidad que lo ha realizado (los datos descifrados se corresponden exactamente con los datos cifrados).#El método se caracteriza porque la verificación de la corrección del descifrado de un conjunto de mensajes cifrados, se basa en la prueba de que el resultado de operar los mensajes cifrados con una operación {ph} es igual al cifrado del resultado de operar los mensajes descifrados con una operación {zt}. Se genera así una primera prueba de integridad entrante del conjunto de los mensajes cifrados basada en la operación {ph} realizada sobre el conjunto de los mensajes cifrados y se verifica que ésta se corresponda con una prueba de integridad saliente basada en la operación directa de los mensajes descifrados con la operación {zt}.

Description

Método de verificación de procesos de descifrado.
Campo de la invención
La presente invención es apta para aplicaciones donde se requiere verificar la integridad de los mensajes que han sido sometidos a un proceso de descifrado. Concretamente, es de especial relevancia en procesos de descifrado en los que se debe preservar el anonimato de los emisores de los mensajes cifrados, tal como el realizado por una mixnet.
El método es susceptible de ser utilizado en entornos de voto electrónico remoto.
Antecedentes de la invención
Cuando es necesario el envío de información a través de un medio considerado no seguro conservando la confidencialidad, ésta se cifra de forma que sólo el destinatario sea capaz de descifrarla. De este modo, otras personas, entidades o sistemas que accedan a esta información serán incapaces de leerla.
Existen métodos para asegurar la integridad del mensaje cifrado durante el envío, como por ejemplo las firmas digitales. Pero el destinatario final generalmente debe confiar en que el proceso de descifrado le proporciona el mensaje que realmente se corresponde al contenido cifrado que ha recibido. Normalmente, se confía en que el software utilizado para el descifrado es correcto y no cambia los resultados del cifrado, pero cuando esta operación se delega a un tercero, existe la posibilidad de que éste manipule la información después del cifrado. Esta problemática solo ha sido contemplada en la actualidad por los procesos de descifrado de mensajes donde los emisores deben permanecer en el anonimato. Dado que en estos sistemas el proceso usual no entraña solamente el descifrado de los mensajes recibidos, sino otras operaciones que contribuyen a la anonimización de dichos mensajes, se han desarrollado diversos métodos que permiten la verificación de su correcto funcionamiento.
Preservación del anonimato en los procesos de descifrado
Existen entornos en los que el proceso de descifrado debe preservar el anonimato de las entidades que han cifrado la información. Un ejemplo de ellos son los procesos de votación electrónica, en los que es importante que no se pueda relacionar el contenido del voto con la identidad de su emisor. Para ello, existen procesos de descifrado de información en los que se rompe la correlación de la información cifrada con la información descifrada. La técnica más conocida en este entorno es la basada en mixnets.
Una mixnet es una red de permutaciones que se compone de uno o varios servidores o nodos que realizan procesos de permutación y descifrado de la información. El objetivo es que el orden de la información cifrada que se introduce en la mixnet no se corresponda con el de la información descifrada que se obtiene después de ser procesada por la mixnet. En la técnica de descifrado basada en mixnets, el primer nodo recibe mensajes de entrada provenientes de distintos emisores que previamente han sido cifrados y les aplica una función de transformación, que generalmente consiste en permutarlos, cifrarlos y/o descifrarlos (dependiendo del tipo de mixnet). Si existen más nodos, los mensajes transformados se reenvían al siguiente nodo. La misma operación de permutación y cifrado o descifrado es repetida en cada nodo y los mensajes transformados enviados al siguiente hasta que los mensajes transformados son recibidos por un nodo final. Los mensajes transformados obtenidos por este último nodo son los mensajes originales antes de haber sido cifrados por los emisores. El propósito de las mixnets es crear un canal de comunicación anónimo con el fin de preservar la privacidad de los participantes en una comunicación.
El origen de las mixnets se remonta al concepto creado por Chaum [Ch81], que fue originalmente propuesto para lograr anonimato en el envío de correo electrónico. En esta propuesta se utiliza cifrado RSA anidado con relleno aleatorio (conocido también como padding). Cada nodo de la mixnet tiene una clave pública pki y su correspondiente clave privada ski. Los mensajes que se enviarán a través de la mixnet se preparan en el origen por los emisores. Esta preparación consiste en el cifrado anidado por parte del emisor de su mensaje m un número de veces igual al número de nodos que forman la mixnet. El cifrado se lleva a cabo utilizando las claves públicas de los nodos en el orden inverso a la trayectoria en la que se procesará el mensaje en la mixnet. De esta manera se forma un cifrado anidado el cuál se irá descifrando a medida que recorra los diferentes nodos:
De esta manera, el mensaje m es cifrado de manera repetitiva usando diferentes claves públicas y relleno aleatorio ri. El primer nodo utiliza su clave privada sk1 para descifrar la parte que le corresponde de los mensajes recibidos, elimina el relleno aleatorio r1 y entonces lleva a cabo la función de permutación y reenvía los mensajes al siguiente nodo. Esta operación es repetida hasta que se recuperan los mensajes originales en el último nodo.
De la propuesta descrita en [Ch81] se han derivado una serie de trabajos que se pueden agrupar como “mixnets chaumianas” o mixnets de descifrado, por ejemplo [FOO92 y JJR02], En todas ellas, se busca el anonimato de los mensajes mediante un cifrado anidado inicial y una mixnet con descifrado y permutación. El problema principal de estas propuestas de mixnet es que, a mayor número de nodos de la mixnet, mayor es el número de operaciones de cifrado que debe realizar el emisor. Además, como en cada cifrado se añade un relleno aleatorio, el tamaño del mensaje cifrado aumenta proporcionalmente al número de nodos.
Para solucionar estos problemas, Park et al. [PIK94] propusieron la primera mixnet de recifrado y descifrado parcial. En esta propuesta, los mensajes que se envían a la mixnet son cifrados una única vez por medio de una clave pública utilizando criptosistema de recifrado. Por criptosistema de recifrado se entiende aquel en el que se cumple que, dada un clave pública P, su correspondiente clave privada S, y un mensaje cifrado C obtenido a partir del cifrado de un mensaje m con la clave P, si ciframos de nuevo el mensaje cifrado C con la misma clave P, obtendremos un nuevo texto cifrado C’ que al ser descifrado una única vez con la clave S dará como resultado el mismo mensaje original m:
Un ejemplo de esquema de cifrado con propiedades de recifrado es ElGamal o Paillier.
En este tipo de propuestas, el primer nodo recibe los mensajes cifrados, los permuta, los vuelve a cifrar con la misma clave pública P y los descifra parcialmente con una clave propia del nodo. El recifrado en los nodos se lleva a cabo haciendo uso de valores aleatorios que son obtenidos algebraicamente combinándolos con el valor aleatorio utilizado en el cifrado anterior:
Esta operación de permutación, cifrado y descifrado parcial se repite en cada nodo de la mixnet. La salida del último nodo son los mensajes totalmente descifrados.
En cualquiera de las propuestas de mixnet descritas previamente (chaumianas o de recifrado) se contempla el anonimato de los emisores como el objetivo principal, pero tienen un problema común: no son resistentes a ataques de integridad de los mensajes cifrado. Si uno de los nodos cambia los mensajes transformados por otros distintos, el siguiente nodo no puede detectarlo.
Para detectar esta práctica deshonesta, propuestas posteriores han dado importancia a una propiedad de las mixnets, llamada verificabilidad universal. La propiedad de verificabilidad consiste en aportar una prueba de la correcta operación de la mixnet que cualquier observador sea capaz de verificar. Esta verificación permite comprobar que los mensajes de salida de un nodo son los mismos (transformados) que recibió dicho nodo. Sako y Killian [SK95] propusieron la primera mixnet universalmente verificable basada en la mixnet de recifrado con descifrado parcial propuesta en [PIK94]. En la mixnet propuesta, cada nodo publica los resultados intermedios y el descifrado parcial de cada entrada antes de llevar a cabo la permutación y recifrado. Entonces los nodos proveen una prueba de las operaciones de recifrado y permutación.
La prueba de permutación se basa en la siguiente prueba de conocimiento nulo:
Supongamos que πiy ri son los valores de permutación y de aleatoriedad usados por un nodo i. Entonces el nodo genera otra transformación λi y valor de aleatoriedad ti, y lleva a cabo el recifrado y la permutación de acuerdo a estos nuevos parámetros generando una segunda salida permutada. El verificador reta al nodo a revelar, ya sea (λi, ti), lo que prueba que la segunda transformación se realizó correctamente, o bien la diferencia entre la primera y la segunda transformación (λiπi −1,(ri-ti)), que permite al verificador comprobar cómo la salida de la transformación original puede ser obtenida permutando y recifrando las salidas de la segunda transformación. Con una probabilidad del 50% se logra comprobar la correcta operación de un nodo en la mixnet.
En 1998, Abe [Ab98] propuso una extensión del esquema descrito en [SK95] con el fin de reducir la cantidad de trabajo requerido por el verificador y que el número de verificaciones sea independiente del número de nodos. En la mixnet de recifrado propuesta, los probadores (nodos) llevan a cabo trabajo adicional para proveer una prueba conjunta de sus acciones. La contribución clave consiste en formar una cadena de todas las pruebas de los nodos, de forma que el verificador sólo necesite verificar la salida del último nodo. Para probar la correcta operación de recifrado y permutación, los nodos llevan a cabo una transformación secundaria tal como en [SK95]. La diferencia aquí es que la segunda transformación, en lugar de estar basada en los mensajes de entrada del nodo, está basada en la segunda transformación del nodo previo. Si el verificador hace el reto de la segunda transformación, entonces todos los nodos revelan los valores de su segunda transformación de manera simultánea. En cambio, si el verificador hace el reto para la diferencia entre la primera y la segunda transformación, los nodos computan secuencialmente la diferencia y la revelan en su turno. En cualquier caso, el verificador solamente necesita verificar una sola transformación secundaria, o la diferencia entre una transformación primaria y secundaria. El descifrado también puede ser verificado de manera independiente al número de nodos, dado que los nodos cooperan para generar el factor de descifrado conjunto. También producen una prueba de conocimiento Chaum-Pedersen encadenada que comprueba que el factor de descifrado fue generado correctamente
En el 2002, Jakobsson et al. [JJR02] presentaron una técnica de verificación llamada RPC (Randomized Partial Checking). Esta técnica puede aplicarse a cualquier mixnet independientemente de los mecanismos de cifrado y permutación que utilicen. En RPC, cada nodo debe revelar aleatoriamente la relación entrada-salida de la mitad de los mensajes. De esta manera, un nodo puede corromper n mensajes de forma encubierta con una probabilidad 2−n.Es decir, la corrupción de cualquier subconjunto de mensajes tiene una probabilidad alta de ser detectado. Por su parte, la privacidad de los mensajes es protegida en base a una probabilidad, que se ve reducida cuanto más grande sea el número de nodos, o bien, a través de una cuidadosa selección de mensajes a auditar. Al seleccionar los mensajes a auditar se debe considerar que puede ser descubierta la trayectoria completa de un mensaje a través de la mixnet, lo que violaría la privacidad. Esto puede ser resuelto agrupando los nodos consecutivos en parejas, es decir, el nodo 1 con el nodo 2, el nodo 3 con el nodo 4, etc. Teniendo esta agrupación de nodos, se selecciona de manera aleatoria la mitad de los mensajes del primer nodo de cada grupo y la mitad restante de los mensajes del segundo nodo. Entonces se lleva a cabo la verificación de los mensajes seleccionados en cada nodo. De esta manera se previene que la trayectoria de un mensaje sea claramente descubierta. Aún así, la privacidad de los mensajes dependerá de que al menos la mitad de los nodos sean honestos.
Posteriormente, en la invención EP1633077A2, también descrita en [Ne01] se propone una mixnet universalmente verificable. En esta invención se describe la verificación de la correcta operación de una mixnet con cifrado ElGamal a través de pruebas interactivas de conocimiento nulo. En este esquema, las permutaciones de los mensajes se basan en la propiedad de invariabilidad de polinomios independientemente de la permutación de sus raíces. Este esquema ofrece un tamaño de prueba eficiente, sin embargo, su principal desventaja es que para llevar a cabo la verificación de la permutación se tienen que realizar diversas rondas de interacción entre el probador y el verificador.
Los esquemas de mixnets verificables descritos previamente hacen uso de pruebas de conocimiento nulo, lo cual es muy costoso computacionalmente, por lo que llevar a la práctica dichos esquemas para aplicaciones críticas en el tiempo no resulta factible.
La presente invención se basa en la implementación de un método de descifrado anónimo verificable, que resuelva los problemas de eficiencia de las mixnets verificables que utilizan pruebas de conocimiento nulo y que no dependa del número de nodos para garantizar el anonimato de los emisores.
Breve exposición de la invención
La presente invención describe un método de verificación que permite corroborar que el proceso de descifrado se ha llevado a cabo honestamente por parte de la entidad que ha realizado este proceso (es decir, que los datos descifrados se corresponden exactamente con los datos cifrados).
Este método de verificación es aplicable en procesos de descifrado en el que se quiere mantener el anonimato de la/s entidad/es que han realizado el cifrado de los datos, tal y como en una mixnet.
El método descrito en esta invención se caracteriza porque la verificación de la corrección del descifrado de un conjunto de mensajes cifrados, se basa en la prueba de que el resultado de operar los mensajes cifrados con una operación Φ es igual al cifrado del resultado de operar los mensajes descifrados con una operación Θ.
En una implementación básica, el método comprende las siguientes etapas:
a.
Cifrado individual de cada mensaje del conjunto de mensajes por parte de uno a varios emisores mediante una clave pública de un algoritmo criptográfico asimétrico con propiedades homomórficas, que cumpla con la propiedad de que operando mensajes cifrados con una primera operación Φ se obtenga el cifrado de los mensajes operados con una segunda operación Θ;
b.
Generación de una primera prueba de integridad entrante del conjunto de los mensajes cifrados basada en la operación Φ realizada sobre el conjunto de los mensajes cifrados
c.
Descifrado de los mensajes cifrados utilizando una clave privada relacionada con la clave pública de cifrado;
d.
Generación de una prueba de integridad saliente basada en la operación directa de los mensajes descifrados con la operación Θ;
e.
Descifrado de la primera prueba de integridad entrante utilizando la clave privada con la que se han descifrado los mensajes, para obtener una segunda prueba de integridad entrante; y
f.
Verificación del correcto descifrado del conjunto de mensajes mediante la comparación de la prueba de integridad saliente generada y la segunda prueba de integridad entrante.
En una implementación preferente, el método utiliza algoritmos criptográficos con propiedades homomórficas aditivas, tales como ElGamal con exponenciación de mensaje, Paillier o sistemas basados en Curbas Elípticas. En una implementación específica con ElGamal con exponenciación de mensaje o Paillier, la operación Φ es el producto de los componentes resultantes del algoritmo de cifrado y la operación Θ es una suma aritmética. En el caso de los sistemas basados en Curvas Elípticas la operación Φ es la suma de puntos de la Curva Elíptica y la operación Θ es una suma aritmética.
El método contempla como alternativa de implementación la generación de una prueba de integridad del mensaje, y el cifrado del mensaje con la concatenación de dicha prueba. Como alternativas de cifrado, se propone que éste se realice cobre la concatenación del mensaje y su prueba de integridad, o que ambos de cifren por separado y se concatenen posteriormente. Como ejemplos de implementación, la prueba de integridad puede obtenerse a partir de una función hash criptográfica (p.e., SHA1) o una función de compactación (p.e., ZIP). Teniendo en cuenta la existencia de una prueba de integridad del mensaje como parte del cifrado de este, el método plantea distintas formas de generación de las pruebas de integridad entrante y saliente utilizando dicha prueba de integridad del mensaje. Como ejemplos de implementación propone:
-
La generación de la prueba de integridad entrante a partir de la prueba de integridad del mensaje cifrada, y de la prueba de integridad saliente a partir del resultado de aplicar la función resumen a la parte que corresponde al mensaje descifrado.
-
La generación de la prueba de integridad entrante a partir de la prueba de integridad del mensaje cifrada, y de la prueba de integridad saliente a partir del resultado de aplicar la función resumen a la parte que corresponde al mensaje descifrado.
-
La generación de la prueba de integridad entrante con dos componentes generados a partir de la prueba de integridad del mensaje cifrada por un lado y los mensajes por otra; y de una prueba de integridad saliente formada por dos componentes generada a partir del resultado de aplicar la función resumen a la parte que corresponde al mensaje descifrado por un lado y los mensajes por otro. De este modo se puede verificar primero los componentes basados en la prueba de integridad primero, y si esta verificación falla realizar la verificación con los componentes relacionados con los mensajes.
El método también contempla como alternativa que el proceso de descifrado utilizado se base en uno que preserve el anonimato del emisor, tal como una mixnet de descifrado, recifrado o recifrado con descifrado parcial. En este caso, el método contempla una extensión de la verificación del proceso de descifrado basado en la generación de pruebas de integridad intermedia del conjunto de los mensajes transformados de salida generado por los nodo de la mixnet y que serán utilizados como entrada en el siguiente nodo de la mixnet. Estas pruebas de integridad intermedia se generan sobre el conjunto de mensajes transformados en el nodo que recibe estos mensajes, en el nodo que envía estos, o en ambos nodos.
Esta extensión de la verificación consiste en poder implementar los mismos procesos de verificación sobre la prueba de integridad saliente que se realizan utilizando la prueba de integridad entrante pero con la/s prueba/s de integridad intermedia/s en lugar de la entrante. Como una extensión de la verificación, también se contempla la posibilidad de poder hacer verificaciones entre las pruebas de integridad intermedias que recibe y genera un nodo, a partir de la comparación del valores que se obtienen cuando ambas pruebas son descifradas. Este proceso de verificación se contempla para verificaciones online (i.e., para hacer verificaciones del correcto funcionamiento de uno o más nodos mientras el descifrado con mixnet se está ejecutando y aún no ha terminado) o offline (i.e., a posteriori para poder detectar si qué nodo del mixnet a actuado de forma deshonesta si la verificación de las pruebas de integridad entrante y saliente falla).
El método también prevé que el proceso de descifrado de la primera prueba de integridad entrante o de las pruebas intermedias se realice utilizando un proceso de descifrado distribuido.
En una implementación práctica de este método se contempla su utilización en entornos de voto electrónico para la verificación del correcto descifrado de los votos preservando el anonimato de los votantes.
Breve descripción de los dibujos
La Figura 1a identifica los componentes del método de verificación de procesos de descifrado:
118: mensajes originales.
119: mensajes cifrados.
120: sistema de descifrado.
121: mensajes descifrados.
122: primera prueba de integridad entrante.
123: prueba de integridad saliente.
124: segunda prueba de integridad entrante.
La Figura 1b muestra el proceso general que forma la invención presentada. En ella se detalla de forma visual el funcionamiento del proceso en el que los mensajes originales 118 son transformados en los mensajes descifrados 120, en un proceso verificable de cifrado y descifrado. Los procesos involucrados en esta Figura 1b son:
Los mensajes originales 118 se cifran 210, de forma que se dispone de mensajes cifrados 119 a la entrada del sistema de descifrado 120.
Una vez están cifrados 119, se calcula 211 la primera prueba de integridad entrante 122 a partir operar los mensajes cifrados de entrada 119.
Los mensajes cifrados 119 se introducen en el sistema de descifrado 120, donde se realiza el descifrado de los mensajes 212.
A partir de los mensajes descifrados 121 se calcula 213 la prueba de integridad saliente 123.
La primera prueba de integridad entrante 122 se descifra 214 antes, durante o después del proceso de descifrado de los mensajes 212.
Comparando 215 el resultado del descifrado de la primera prueba de integridad entrante (segunda prueba de integridad entrante) 124 con la prueba de integridad saliente 123 se verifica, en caso de coincidencia, que los mensajes descifrados 121 a la salida del sistema de descifrado 120 coinciden con los mensajes originales 118 a la entrada del sistema de descifrado 120.
La Figura 1c muestra una implementación preferente de la invención donde se usa una mixnet formada por varios nodos consecutivos para preservar el anonimato de los remitentes de los mensajes. Los componentes de la implementación son:
110: nodos de la mixnet.
119: mensajes cifrados.
121: mensajes descifrados.
122: primera prueba de integridad entrante.
123: prueba de integridad saliente.
125: pruebas de integridad intermedias.
Las pruebas de integridad intermedias se obtienen a partir del cálculo de los mensajes cifrados a la salida/entrada conectada con un nodo posterior o anterior.
Las Figuras 2a, 2b y 2c muestran el funcionamiento de los algoritmos propuestos para llevar a cabo las comparaciones de las pruebas de integridad intermedias con el objetivo de identificar nodos maliciosos en una implementación preferente donde el proceso de descifrado mantiene el anonimato de los emisores de los mensajes mediante el uso de una mixnet. Estos algoritmos proporcionan la opción de identificar, en caso de detectar un comportamiento malicioso, el nodo cuyo funcionamiento no es el correcto.
En la Figura 2a, se describe la primera fase del algoritmo de búsqueda binaria, consistente en la identificación del primer nodo malicioso de la mixnet. Los procesos involucrados en esta Figura 2a son:
En el primer paso 201 se procede a la comparación de la prueba de integridad entrante 101 con la prueba de integridad intermedia del nodo n/2 105.
Si no se detecta ningún tipo de manipulación en el paso anterior, la siguiente comparación 202 se realiza entre el nodo n/2 105 y el nodo con identificador (n+n/2)/2 107.
Si se detecta alguna diferencia entre los nodos 110 y n/2 105, la siguiente comparación 203 se realizará entre el nodo 110 y el nodo n/4 103.
Se repiten los pasos 202 y 203 hasta haber comparado las pruebas de integridad necesarias para detectar el nodo malicioso.
En la Figura 2b se describe la segunda fase del algoritmo de búsqueda binaria, en la que se identifican otros nodos maliciosos existentes en la mixnet aparte del encontrado inicialmente. Los procesos involucrados en la figura son:
Una vez se ha identificado el nodo malicioso 111, se comprueba la posible existencia de otros comparando 204 la prueba de integridad 103 de éste con la del último nodo 117, 109.
En caso de que las pruebas sean diferentes, se repiten los pasos descritos en la Figura 2a con esta prueba de integridad 103 como referencia, para así detectar otros nodos fraudulentos.
En la Figura 2c se describe el algoritmo de comparación exhaustiva, en la que se comprueba nodo a nodo la naturaleza de su comportamiento. Los procesos. descritos son:
De forma secuencial se compara 206 la prueba de integridad entrante 101 con la prueba de integridad del nodo 110 (102).
En 207 se compara la prueba de integridad del nodo 110 (102) con la del nodo 111 (103)... etc.
Se marcan como nodos maliciosos aquellos donde no coincida su prueba de integridad con la del nodo anterior (112).
Descripción detallada de la invención
La presente invención describe un método de verificación que permite corroborar que el proceso de descifrado se ha llevado a cabo honestamente por parte de la entidad que ha realizado este proceso (i.e., que los datos descifrados se corresponden exactamente con los datos cifrados). Este método de verificación es aplicable en procesos de descifrado en el que se quiere mantener el anonimato de la/s entidad/es que han realizado el cifrado de los datos, tal y como en una mixnet.
El método de verificación de descifrado descrito en la presente invención permite validar la integridad de los mensajes operados por el proceso de descifrado por medio de la generación y verificación de una prueba de integridad de los mensajes cifrados antes y después de ser transformados por este proceso. El método se aplica directamente sobre los mensajes entrantes y salientes del proceso de descifrado, por lo que es independiente del mecanismo de descifrado utilizado, ya sea un descifrado directo o un mecanismo que permita preservar el anonimato de las entidades que han cifrado los mensajes (p.e., una mixnet).
Concretamente en el caso de las mixnet, este método permite verificar si la transformación y permutación de los mensajes cifrados se ha llevado a cabo correctamente en cada uno de los nodos, permitiendo mediante una prueba de integridad corroborar que el contenido de los mensajes entrantes no ha sido modificado durante las operaciones de permutación y transformación ejecutadas por la mixnet.
El método de verificación descrito en la presente invención comprende las siguientes etapas:
a) Cifrado
b) Generación de las primeras pruebas de integridad entrante
c) Descifrado
d) Generación de pruebas de integridad saliente
e) Descifrado de las primeras pruebas de integridad entrante: generación de las segundas pruebas de integridad entrante
f) Verificación.
Etapa de cifrado
La etapa de cifrado consiste en cifrar los mensajes con el objetivo de preservar la privacidad de éstos. En esta etapa se utilizan criptosistemas de clave pública con propiedades homomórficas. Existen actualmente varios algoritmos del estado de la técnica que cumplen con esta propiedad como por ejemplo El Gamal, Paillier o basados en curvas elípticas. El cifrado se realizará con la componente pública del algoritmo de cifrado P.
Durante esta etapa los mensajes se construirán de forma que los mensajes cifrados puedan operarse entre ellos, obteniendo como resultado la operación cifrada de los contenidos de los mensajes. A modo de ejemplo, suponiendo c1 y c2 el resultado de cifrar los mensajes m1 y m2 respectivamente utilizando la calve pública P de un algoritmo de cifrado asimétrico con propiedades homomórficas, el cifrado se hará de forma que:
Siendo Φ la operación realizada entre los textos cifrados para conseguir el cifrado de los mensajes operados con la operación Θ.
En una implementación preferente, en esta etapa de cifrado del mensaje, se generará una prueba de integridad del mensaje Hm y se combinará con el mensaje antes de ser cifrado. Esta prueba de integridad puede ser el resultado de aplicar al mensaje una función resumen, tal como una función criptográfica hash (e.g., SHA1), o de compactación, tal como una función de compresión de datos (e.g., ZIP). Suponiendo que la función realizada es una función criptográfica de hash h(m) podemos expresar este paso de la siguiente manera:
La combinación | entre el mensaje y su prueba de integridad Hm puede realizarse mediante una concatenación antes del cifrado:
O de forma alternativa la concatenación puede realizarse después de los cifrados individuales del mensaje y la prueba de integridad de éste:
De forma optativa, la integridad del mensaje cifrado, concatenado con su prueba de integridad o no, podría protegerse mediante una firma digital con una calve secreta Se.:
Esta clave podría ser diferente para cada emisor o ser común para un conjunto o todos los mensajes cifrados.
En una implementación preferente, se utilizarán algoritmos criptográficos con propiedades homomórficas aditivas, en los que la operación Θ será equivalente a una operación de suma.
Generación de una primera prueba de integridad entrante
La generación de las primeras pruebas de integridad entrantes se realiza sobre la lista E de los mensajes cifrados antes de proceder con el proceso de descifrado. En el caso de que los mensajes hayan sido firmados digitalmente, la firma no se utiliza para obtener esta prueba. La primera prueba de integridad entrante se obtiene a partir de la realización de operaciones Φ sobre el conjunto de mensajes cifrados. Esta operación dependerá de las propiedades homomórficas del algoritmo de cifrado utilizado, pudiéndose realizar en bloques de mensajes cifrados o en la totalidad de los mensajes. Si la operación se realiza sobre la totalidad de los mensajes cifrados, la primera prueba de integridad entrante será el resultado de esta operación:
En el caso de hacerse por bloques, estos bloques volverán a operar entre ellos para obtener la primera prueba de integridad entrante:
En el caso de que los mensajes hubieran sido concatenados con una prueba de integridad de ellos mismos, este valor se podría calcular sobre el cifrado que contiene la concatenación de los mensajes y sus pruebas de integridad:
Opcionalmente, si los mensajes hubieran sido concatenados con una prueba de integridad de ellos mismos, esta prueba de integridad saliente se podría calcular realizando la misma operación Φ aplicada únicamente sobre el cifrado de los valores de las pruebas de integridad de los mensajes en lugar de utilizar la concatenación de los los mensajes y sus pruebas de integridad.
Si el cifrado se ha aplicado después de la concatenación ci =P(mi | Hmi) se podría seleccionar sólo los bits del texto cifrado que correspondan a la parte de la prueba de integridad del mensaje. Por ejemplo, en el caso de una prueba de integridad de una longitud de 160 bits, los primeros 160 bits menos significativos. En este caso es importante que el proceso de cifrado tenga en cuenta que los valores Hm queden siempre en la misma posición en el texto cifrado, independientemente de la longitud del mensaje.
Si la concatenación se ha realizado sobre cifrados independientes, ci =P(mi) | P(Hmi), se puede calcular una primera prueba de integridad entrante basada únicamente sobre los cifrados de la pruebas de integridad de los mensajes:
O bien se podrían calcular pruebas de integridad independientes de cada uno de los cifrados:
Esta etapa de generación de las primeras pruebas de integridad entrantes se puede realizar antes o después de las etapas de descifrado o generación de las pruebas de integridad salientes.
Descifrado de los mensajes
La etapa de descifrado consiste en el descifrado de la información utilizando la clave privada S del algoritmo utilizado en la etapa de cifrado. Este proceso de descifrado se puede realizar de forma directa o mediante un proceso de descifrado que preserve el anonimato de las entidades que han cifrado el mensaje, como por ejemplo un proceso de mixnet. El descifrado con la clave S se puede realizar en una etapa única o mediante distintas etapas si se utiliza un descifrado distribuido. Una ejemplo de descifrado distribuido es el descifrado parcial mediante un trozo (share) de la clave privada S que previamente haya sido dividida en distintos trozos (shares) mediante un esquema de compartición de secretos conocido por el estado de la técnica, tal como Shamir. En este caso el descifrado final se obtendrá después de combinar los distintos descifrados parciales.
En cualquiera de los casos el resultado del proceso de descifrado será la lista de mensajes originales cifrados por las entidades.
En el caso de que se haya utilizado un proceso de descifrado con anonimato (p.e., mixnet), el orden con el que se obtendrán los mensajes no dependerá del orden en el que han sido descifrados, por lo que no será posible asegurar la correlación con el texto cifrado del que provienen (i.e., no será posible correlacionar con seguridad el mensaje descifrado con el emisor).
En el caso de que a los mensajes se les hubiera concatenado una prueba de integridad de ellos mismos, se podría hacer un paso adicional de verificación entre el mensaje y esta prueba. Para ello se volverá a aplicar la misma función resumen sobre el mensaje descifrado (Hm’) y se verificará si tiene el mismo valor que la prueba de integridad obtenida después del descifrado:
ó si tenemos (P(m) | P(Hm)):
Si esta prueba falla en alguno de los mensajes, el proceso de descifrado no ha sido correcto.
Generación de la prueba de integridad saliente
Una vez los mensajes han sido descifrados, se procederá a la generación de una prueba de integridad saliente ls a partir de la realización de operaciones Θ sobre el conjunto de mensajes descifrados S:
En el caso de que los mensajes hubieran sido concatenados con una prueba de integridad de ellos mismos, este valor se podría calcular sobre la concatenación de los mensajes y sus pruebas de integridad:
Opcionalmente, si los mensajes hubieran sido concatenados con una prueba de integridad de ellos mismos, esta prueba de integridad saliente se podría calcular realizando la misma operación Θ únicamente sobre los valores de integridad de los mensajes en lugar de utilizar la concatenación de los valores descifrados:
calculamos:
Esta prueba de integridad de salida calculada sobre la integridad del mensaje se podría utilizar como prueba única
o se podría utilizar junto a otra prueba de integridad basada solo en los mensajes (i.e., sin su prueba de integridad):
Descifrado de la primera prueba de integridad entrante: generación de la segunda prueba de integridad entrante
Otra etapa consiste en descifrar los valores de la/s primera/s prueba/s de integridad entrante utilizando la misma clave privada S con la que han sido descifrados los mensajes, obteniendo la/s segunda/s prueba/s de integridad entrante:
Esta etapa puede realizarse dentro de o en paralelo a la etapa de descifrado de los mensajes, o en cualquier momento después de haberse generado la/s primera/s prueba/s de integridad entrante.
En caso de que se hayan utilizado algoritmos de cifrado con propiedades probabilísticas, opcionalmente se podría publicar el factor de aleatoriedad utilizado en el cifrado. De este modo se podría verificar que el descifrado es correcto reproduciendo el cifrado de le’ con este valor aleatorio.
Existen en el estado de la técnica varios algoritmos que cumplen con esta propiedad. Por ejemplo, en el caso de ElGamal, tenemos los siguientes componentes:
g raíz Zp*
p es un primo grande
clave privada: x
x número aleatorio dentro de p
clave publica: (h, g)
donde h = gx mod p
mensaje: m.
El cifrado se realiza:
Para descifrar calculamos hr=(gr)x por lo que si liberamos hr permitiremos que se pueda verificar si el le’seha obtenido del mismo mensaje cifrado volviéndolo a operar con el hr y comparando si se obtiene le de nuevo:
Este mismo proceso puede realizarse con ElGamal basado en Curvas Elípticas con los siguientes parámetros:
G
punto generador de la curva
n
orden de la curva elíptica
clave privada: x
x número aleatorio dentro de n
clave publica: Q
donde Q=xG
mensaje: m
mensaje convertido a punto: M
punto de la curva elíptica que representa al mensaje.
El cifrado se realiza:
donde r es un número aleatorio y + denota en este caso la operación aditiva de puntos según las normas aritméticas propias de las curvas elípticas.
Como para descifrar calculamos r.Q = r.G.x, si liberamos r.Q permitiremos que se pueda verificar si el le’ se ha obtenido del mismo mensaje cifrado volviéndolo a operar con el punto r.Q y comparando si se obtiene le de nuevo:
Verificación Finalmente, la etapa de verificación consistirá en verificar si el valor le’ es el mismo que el valor ls. En caso contrario, el proceso de descifrado no ha generado los mismos mensajes que originalmente habían cifrado los emisores. Al haber utilizado un método con propiedades homomórficas, deberíamos tener que:
Por lo que le’ debería ser igual a ls.
En el caso de que a los mensajes se les hubiera concatenado una prueba de integridad de ellos mismos, esta verificación podría basarse en pruebas de integridad entrantes basadas únicamente en el cifrado de la prueba de integridad del mensaje:
Tal como se propone anteriormente, P(Hm1) podría ser el cifrado independiente de Hm1 o los bits del texto cifrado que corresponden a Hm1, dependiendo si se concatenan los mensajes con sus pruebas de integridad antes de cifrar o después.
En una implementación preferente, se utilizará un método de descifrado que mantenga el anonimato basada en una mixnet con recifrado. En ese caso, se generarán tantas pruebas de integridad entrantes como nodos tenga la mixnet:
Cada primera prueba de integridad entrante se generará sobre el conjunto de mensajes cifrados de entrada de cada nodo de la mixnet. La primera prueba de integridad entrante puede ser generada por el nodo precedente a partir del conjunto de mensajes cifrados a su salida, si lo hubiera, en cuyo caso sería llamada prueba de integridad intermedia, y/o el mismo nodo que recibe los mensajes cifrados entrantes. Como prueba de integridad, el nodo precedente puede firmar digitalmente la primera prueba de integridad entrante o prueba intermedia que pase al siguiente nodo.
En las mixnets formadas por más de un nodo, en la situación de detección de un comportamiento fraudulento, de forma opcional se pueden utilizar ciertos métodos para determinar cuál o cuáles son los nodos que han actuado de forma maliciosa. Para ello, se comparan las pruebas de integridad intermedias calculadas a partir de los mensajes de salida de cada nodo con la primera entrante.
Para realizar la comparación es necesario el descifrado de las pruebas de integridad a comparar. Es decir, la comparación se realiza entre la segunda prueba de integridad entrante y las pruebas de integridad intermedias descifradas.
Para llevar a cabo las comparaciones con las pruebas de integridad intermedias se proponen como ejemplos de método de operación los siguientes algoritmos:
Algoritmo de búsqueda binaria
1.
se asigna a cada nodo un identificador secuencial, de tal modo que el nodo inicial es el nodo1yel nodo final es el nodo n.
2.
Se compara la primera prueba de integridad entrante con la prueba de integridad del nodo n/2. Si las pruebas de integridad coinciden significa que no ha existido ninguna manipulación en los nodos intermedios. En este caso, la siguiente comparación se realiza entre el nodo n/2 y el nodo con identificador (n + n/2)/2.
3.
Si se detecta alguna diferencia entre los nodos 1 y n/2, la siguiente comparación es entre el nodo1yel nodo n/4, y así sucesivamente hasta haber comparado las pruebas de integridad intermedias necesarias para detectar el nodo malicioso.
Una vez se identifica el nodo fraudulento, se comprueba la posible existencia de otros que pueden haber manipulado los resultados a su vez:
4.
Se compara la prueba de integridad del nodo detectado como malicioso con la saliente. Si coinciden se puede determinar que no existen más nodos maliciosos en la mixnet.
5.
En el caso de no coincidir las pruebas de integridad se procede a repetir el procedimiento descrito en los pasos 1, 2 y 3, comparando las pruebas de integridad intermedias de los nodos siguientes en la mixnet con la del nodo malicioso para detectar así cualquier cambio.
6.
El proceso finaliza cuando se obtiene la certeza de que no existen más nodos maliciosos en la mixnet descrita en el punto 4.
Algoritmo de comparación exhaustiva
De forma secuencial se compara la primera prueba de integridad entrante con la prueba de integridad del primer nodo, ésta con la del nodo siguiente, etc.; marcando como nodos maliciosos aquellos donde no coincida su prueba de integridad con la del nodo anterior.
En una implementación preferente el proceso de verificación se realiza una vez el mixing ha finalizado. Dicho proceso de verificación se lleva a cabo para dar validez a los resultados y, en el caso contrario, identificar al nodo o nodos que han actuado de forma fraudulenta.
Sin embargo, en una implementación en la que la comprobación se realice a partir de las pruebas de integridad entrantes, estas pruebas de integridad pueden ser usadas durante el proceso de mixing cuando el sistema esté formado por varios nodos. En esta situación, a medida que el conjunto de mensajes es operado por un nodo de la mixnet, se genera a su salida la prueba de integridad intermedia correspondiente a la entrada del siguiente nodo y, utilizando el algoritmo de comparación exhaustiva descrito anteriormente, se evalúa el funcionamiento de éste. De este modo, al detectar un comportamiento malicioso, el nodo es eliminado de la mixnet desechando su conjunto de mensajes de salida y proporcionando al nodo posterior la salida del anterior. Mediante esta implementación se detectan manipulaciones en los mensajes durante el proceso, para poder solucionarlos y asegurar unos resultados fiables a la salida de la mixnet sin tener que volver a repetir el proceso de mixing.
En un ejemplo de implementación preferente, se utilizará un algoritmo criptográfico de Paillier para el cifrado de los datos y una mixnet de recifrado.
En un ejemplo de implementación preferente, se utilizará un algoritmo criptográfico de ElGamal basado en curvas elípticas y una mixnet de recifrado. Para el recifrado de la mixnet se generará un nuevo valor aleatorio r2 y se calculará (r2.G, r2.Q). A continuación se sumará cada componente con los del cifrado a recifrar:
En una implementación preferente utilizamos algoritmos basados en curvas elípticas utilizando su definición sobre un plano proyectivo formado por los puntos [x:y:z].
Se define la curva elíptica sobre un plano proyectivo P2(Zn), donde los puntos satisfacen la ecuación y2z=x3+axz2+ bz3 en Zn.
Este método es susceptible de ser utilizado en entornos de voto electrónico para la verificación del correcto descifrado de los votos preservando el anonimato de los votantes.
Referencias
[Ab98]
Masayuki Abe. Universally verifiable MIX with verification work independent of the number of MIX servers. In Nyberg [126], pages 437-447.
[Ch81]
David Chaum. Untraceable electronic mail, return addresses, and digital pseudonyms. Commun. ACM,
24(2):84-88, 1981.
[F0092]
A. Fujioka,T. Okamoto, and K. Ohta, “A practical secret voting scheme for large scale election”, Advances in Cryptology -Auscrypt’92, LNCS 718, Springer-Verlag, pp. 244-260, 1992.
[JJR02]
Markus Jakobsson, Ari Juels, and Ronald L. Rivest. Making mix nets robust for electronic voting by ran
domized partial checking. In Dan Boneh, editor, USENIX Security Symposium, pages 339-353. USENIX,
2002.
[Ne01]
Andrew C. Neff. A verifiable secret shuffle and its application to evoting. In CCS ’01, pages 116-125,
2001.
[PIK94]
Choonsik Park, Kazutomo Itoh, and Kaoru Kurosawa. Efficient anonymous channel and all/nothing
election scheme. In Tor Helleseth, editor, EUROCRYPT, volume 765 of Lecture Notes in Computer Scien
ce, pages 248-259. Springer, 1994.
[SK95]
Kazue Sako and Joe Kilian. Receipt-free mix-type voting scheme -a practical solution to the implemen
tation of a voting booth. In Louis C. Guillou and Jean-Jacques Quisquater, editors, EUROCRYPT, volume
921 of Lecture Notes in Computer Science, pages 393-403. Springer, 1995.

Claims (18)

  1. REIVINDICACIONES
    1. Método para verificar si el descifrado de un conjunto de mensajes cifrados se ha realizado correctamente, siendo dicho cifrado realizado con un algoritmo con propiedades homomórficas, caracterizado por comprender las siguientes etapas:
    a.
    Cifrado individual de cada mensaje del conjunto de mensajes por parte de uno a varios emisores mediante una clave pública de un algoritmo criptográfico asimétrico con propiedades homomórficas, que cumpla con la propiedad de que operando mensajes cifrados con una primera operación c se obtenga el cifrado de los mensajes operados con una segunda operación e ;
    b.
    Generación de una primera prueba de integridad entrante basada en la operación c de la etapa a) y realizada sobre bloques del conjunto de los mensajes cifrados en la etapa a);
    c.
    Descifrado de los mensajes cifrados en la etapa a) utilizando una clave privada relacionada con la clave pública de la etapa a), obteniendo una lista de mensajes descifrados;
    d.
    Generación de una prueba de integridad saliente basada en la operación directa de bloques de los mensajes descifrados en la etapa c) con la operación e , donde los bloques coinciden con los definidos en la etapa b);
    e.
    Generación de una segunda prueba de integridad entrante que relaciona la primera prueba de integridad entrante de los bloques del conjunto de mensajes cifrados en la etapa a), con la prueba de integridad saliente de los bloques de los mensajes descifrados en la etapa c); y
    f.
    Verificación del correcto descifrado del conjunto de mensajes cifrados en la etapa a) mediante la comparación de la prueba de integridad saliente de los bloques de mensajes descifrados generada en la etapa d) y la primera prueba de integridad entrante de los bloques cifrados en la etapa a), relacionadas por la segunda prueba de integridad entrante generada en la etapa e).
  2. 2.
    Método según la reivindicación 2 caracterizado porque las propiedades homomórficas del algoritmo criptográfico son aditivas o multiplicativas.
  3. 3.
    Método según la reivindicación 2 caracterizado porque el algoritmo utilizado en la etapa a) es del grupo que comprende EIGamal, El Gamal con exponenciación de mensaje o Paillier.
  4. 4.
    Método según la reivindicación 3 caracterizado porque la operación c es el producto de los componentes resultantes del algoritmo de cifrado y la operación e es una suma aritmética o un producto.
  5. 5.
    Método según la reivindicación 2 caracterizado porque el algoritmo utilizado en la etapa a) está basado en Curvas Elípticas.
  6. 6.
    Método según la reivindicación 5 caracterizado porque la operación c es la suma de puntos de la Curva Elíptica y la operación e es una suma aritmética o producto.
  7. 7.
    Método según la reivindicación 1 caracterizado porque la primera prueba de integridad entrante de la etapa b) está formada por un conjunto de primeras pruebas de integridad entrantes donde cada una se ha calculado a partir de uno de los bloques de mensajes cifrados en la etapa a).
  8. 8.
    Método según la reivindicación 7 caracterizado porque los bloques de mensajes cifrados sobre los que se calculan las primeras pruebas de integridad entrantes se forman distribuyendo de forma aleatoria cada mensaje del conjunto de mensajes cifrados entre distintos bloques sin que un mismo mensaje cifrado esté repetido en dos bloques.
  9. 9.
    Método según la reivindicación 9 caracterizado por generar la primera prueba de integridad entrante de cada bloque a partir de la operación c del conjunto de mensajes cifrados contenidos en dicho bloque.
  10. 10.
    Método según la reivindicación 1 caracterizado porque la operación de descifrado de la fase c) se realiza mediante un proceso de descifrado que preserva el anonimato del emisor o emisores que han cifrado los mensajes.
  11. 11.
    Método según la reivindicación 10 caracterizado porque dicho proceso de descifrado que preserva el anonimato del emisor es una mixnet de descifrado, re-cifrado o re-cifrado con descifrado parcial.
  12. 12.
    Método según la reivindicación 11 caracterizado por generar una prueba de integridad intermedia sobre bloques del conjunto de los mensajes de salida transformados por un nodo de la mixnet y que serán utilizados como entrada en el siguiente nodo de la mixnet.
  13. 13.
    Método según la reivindicación 12 caracterizado porque esta prueba de integridad intermedia se genera sobre bloques del conjunto de mensajes transformados en el nodo que recibe estos mensajes, en el nodo que envía estos,
    o en ambos nodos.
  14. 14. Método según la reivindicación 13 caracterizado porque cada bloque distinto de mensajes de salida transformados sobre los que se generan la prueba de integridad intermedia contienen los mismos mensajes de un mismo bloque de mensaje de entrada generado para crear la primera prueba de integridad entrante o prueba de integridad intermedia entrante, después de ser transformados.
    5 15. Método según la reivindicación 12 caracterizado porque la segunda prueba de integridad entrante contiene el valor de la transformación que se ha aplicado a los mensajes de cada bloque sobre el que se ha generado la primera prueba de integridad entrante o la prueba de integridad intermedia entrante.
  15. 16. Método según la reivindicación 16 caracterizado porque el valor de la transformación consiste en la identificación de los mensajes transformados pertenecientes a cada bloque sobre el que se ha generado la primera prueba de
    10 integridad entrante y el valor del recifrado, descifrado o re-cifrado con descifrado parcial aplicado al conjunto de mensajes de cada bloque.
  16. 17. Método según la reivindicación 15 caracterizado por ejecutar la etapa de verificación f) sobre la prueba de integridad de los bloques de mensajes entrantes que recibe un nodo y sobre la prueba de integridad de los mensajes salientes de un mismo nodo mediante la generación de una prueba de transformación que permita demostrar que la
    15 prueba de integridad de cada bloque de datos saliente es una transformación de la prueba de integridad del mismo bloque de datos entrante, del mismo tipo a la aplicada a los datos salientes.
  17. 18. Método según la reivindicación 13 caracterizado porque los bloques sobre los que se calculan las pruebas de integridad intermedias de los mensajes transformados que recibe un nodo de la mixnet se crean seleccionando al menos un mensaje de cada uno de los distintos bloques que se crearon sobre los mismos mensajes transformados
    20 en el nodo de la mixnet que los envía.
    OFICINA ESPAÑOLA DE PATENTES Y MARCAS N.º solicitud: 200901196 ESPAÑA
    Fecha de presentación de la solicitud: 05.05.2009
    INFORME SOBRE EL ESTADO DE LA TECNICA
    Fecha de prioridad:
    51 Int. Cl. :
    H04L 9/32 (2006.01)
    DOCUMENTOS RELEVANTES
    Categoría
    56 Documentos citados Reivindicaciones afectadas
    X
    "A Light-Weight e-Voting System with Distributed Trust", ZWIERKO; KOTULSKI A; Z. Electronic Notes in Theoretical Computer Science, Vol: 168 Págs: 109-126. 16.02.2007. doi:10.1016/j.entcs.2006.12.004, ISSN 1571-0661. 1-22
    Categoría de los documentos citados X: de particular relevancia Y: de particular relevancia combinado con otro/s de la misma categoría A: refleja el estado de la técnica O: referido a divulgación no escrita P: publicado entre la fecha de prioridad y la de presentación de la solicitud E: documento anterior, pero publicado después de la fecha de presentación de la solicitud
    El presente informe ha sido realizado • para todas las reivindicaciones • para las reivindicaciones nº:
    Fecha de realización del informe 15.09.2010
    Examinador M. Muñoz Sánchez Página 1/4
    Nº de solicitud: 200901196
    INFORME SOBRE EL ESTADO DE LA TÉCNICA
    Documentación mínima buscada (sistema de clasificación seguido de los símbolos de clasificación) H04L Bases de datos electrónicas consultadas durante la búsqueda (nombre de la base de datos y, si es posible, términos de búsqueda
    utilizados) INVENES, EPODOC,WPI,NPL/EPO
    Informe sobre el Estado de la Técnica (hoja adicional) Página 2/4
    OPINIÓN ESCRITA
    Nº de solicitud: 200901196
    Fecha de Realización de la Opinión Escrita: 15.09.2010
    Declaración
    Novedad (Art. 6.1 LP 11/1986)
    Reivindicaciones 2-22 Reivindicaciones 1 SÍ NO
    Actividad inventiva
    Reivindicaciones _____________________________________ SÍ
    (Art. 8.1 LP11/1986)
    Reivindicaciones 2-22 NO
    Se considera que la solicitud cumple con el requisito de aplicación industrial. Este requisito fue evaluado durante la fase de examen formal y técnico de la solicitud (Artículo 31.2 Ley 11/1986).
    Base de la Opinión.-
    La presente opinión se ha realizado sobre la base de la solicitud de patente tal y como ha sido publicada.
    Informe sobre el Estado de la Técnica (Opinión escrita) Página 3/4
    OPINIÓN ESCRITA
    Nº de solicitud: 200901196
    1. Documentos considerados.-
    A continuación se relacionan los documentos pertenecientes al estado de la técnica tomados en consideración para la realización de esta opinión.
    Documento
    Número Publicación o Identificación Fecha Publicación
    D01
    "A Light-Weight e-Voting System with Distributed Trust",Zwierko; Kotulski A; Z. Electronic Notes in Theoretical Computer Science,Vol:168 Págs:109-126. . doi:10.1016/j.entcs.2006.12.004. ISSN 1571-0661 16.02.2007
  18. 2. Declaración motivada según los artículos 29.6 y 29.7 del Reglamento de ejecución de la Ley 11/1986, de 20 de marzo, de Patentes sobre la novedad y la actividad inventiva; citas y explicaciones en apoyo de esta declaración
    Se considera D01 el documento del estado de la técnica más próximo al objeto de la invención.
    Reivindicaciones independientes:
    Siguiendo la redacción de la reivindicación 1 el documento D01 divulga un procedimiento de encriptación homomórfico de mensajes (votos) o sobre conjuntos de estos, bloques de mensajes, utilizado para verificar si el descifrado de un conjunto de mensajes cifrados se ha realizado correctamente y está basado en que el resultado de operar bloques de mensajes cifrados con una operación (phi) es igual al cifrado del resultado de operar los bloques de mensajes con la operación (theta). Así el documento D01 afecta a la novedad de la reivindicación 1 según el artículo 6.1 de la Ley de Patentes.
    Reivindicaciones dependientes:
    El cifrado con clave pública-clave privada de la reivindicación 2 se halla divulgado en D01 así como su aplicación para comprobar la integridad del mensaje tras su desencriptación.
    Las reivindicaciones 3-12 y 18-22 consisten en opciones referidas a las posibles operaciones (phi) y (theta) que se aplican en particular (sumas y/o productos), si se realiza una operación resumen (hash) del mensaje o sobre qué parte del mensaje se realizan las operaciones (mensaje en sí o prueba de integridad (hash) o ambas), o la forma de realizar el cifrado (conjunto tras la concatenación de mensaje y prueba de identidad o independiente para posteriormente concatenar). Las reivindicaciones 13-17 describen una alternativa de las posibles, mixnet, de preservar el anonimato del emisor en los mensajes. En particular las mixnets de recifrado aparecen divulgadas en el documento D01. Así el documento D01 afecta a la actividad inventiva de las reivindicaciones 2-22 según el artículo 8.1 de la Ley de Patentes.
    Informe sobre el Estado de la Técnica (Opinión escrita) Página 4/4
ES200901196A 2009-05-05 2009-05-05 Metodo de verificacion de procesos de descifrado Active ES2365887B1 (es)

Priority Applications (4)

Application Number Priority Date Filing Date Title
ES200901196A ES2365887B1 (es) 2009-05-05 2009-05-05 Metodo de verificacion de procesos de descifrado
PCT/ES2009/000568 WO2010128172A1 (es) 2009-05-05 2009-12-11 Método de verificación de procesos de descifrado
EP09844302.1A EP2429115B1 (en) 2009-05-05 2009-12-11 Method for verification of decryption processes
US13/319,164 US9077540B2 (en) 2009-05-05 2009-12-11 Method for verification of decryption processes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES200901196A ES2365887B1 (es) 2009-05-05 2009-05-05 Metodo de verificacion de procesos de descifrado

Publications (2)

Publication Number Publication Date
ES2365887A1 ES2365887A1 (es) 2011-10-13
ES2365887B1 true ES2365887B1 (es) 2012-09-03

Family

ID=43050007

Family Applications (1)

Application Number Title Priority Date Filing Date
ES200901196A Active ES2365887B1 (es) 2009-05-05 2009-05-05 Metodo de verificacion de procesos de descifrado

Country Status (4)

Country Link
US (1) US9077540B2 (es)
EP (1) EP2429115B1 (es)
ES (1) ES2365887B1 (es)
WO (1) WO2010128172A1 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2367940B1 (es) * 2009-12-04 2012-09-27 Scytl Secure Electronic Voting, S.A. Método para la verificación del correcto registro de una información.
FR2960671B1 (fr) * 2010-06-01 2020-01-10 Institut Telecom-Telecom Paris Tech Procede de securisation de donnees numeriques et d'identites notamment au sein de processus utilisant des technologies de l'information et de la communication
EP2905922A1 (en) * 2014-02-10 2015-08-12 Thomson Licensing Signing method delivering a partial signature associated to a message, threshold signing method, signature verification method, and corresponding computer program and electronic devices
GB2513260B (en) * 2014-06-27 2018-06-13 PQ Solutions Ltd System and method for quorum-based data recovery
GB2529246A (en) * 2014-08-15 2016-02-17 Ibm Method for securing integrity and consistency of a cloud storage service with efficient client operations
EP3041165B1 (en) * 2014-12-31 2019-08-07 Scytl Secure Electronic Voting, S.A. A method for the verification of the correct content of an encoded message
US10630686B2 (en) 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10560440B2 (en) 2015-03-12 2020-02-11 Fornetix Llc Server-client PKI for applied key management system and process
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US11063980B2 (en) 2016-02-26 2021-07-13 Fornetix Llc System and method for associating encryption key management policy with device activity
US10348485B2 (en) * 2016-02-26 2019-07-09 Fornetix Llc Linking encryption key management with granular policy
US10880281B2 (en) 2016-02-26 2020-12-29 Fornetix Llc Structure of policies for evaluating key attributes of encryption keys
US10860086B2 (en) 2016-02-26 2020-12-08 Fornetix Llc Policy-enabled encryption keys having complex logical operations
US10931653B2 (en) 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
US10917239B2 (en) 2016-02-26 2021-02-09 Fornetix Llc Policy-enabled encryption keys having ephemeral policies
US11488433B2 (en) * 2018-01-11 2022-11-01 Mastercard International Incorporated Method and system for public elections on a moderated blockchain
ES2950584T3 (es) * 2018-02-19 2023-10-11 Telefonica Sa Procedimiento y sistema para validar la prueba ordenada de tránsito de paquetes de tráfico en una red
KR102602119B1 (ko) * 2018-04-06 2023-11-15 주식회사 크립토랩 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들
US11087578B2 (en) 2018-11-15 2021-08-10 Daniel Bernard Ruskin Voting booth, system, and methods of making and using same
DE102021129979B3 (de) 2021-11-17 2023-03-23 Physikalisch-Technische Bundesanstalt Braunschweig Und Berlin Verfahren und System zur anonymen Übertragung von digitalen Daten

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373506B2 (en) * 2000-01-21 2008-05-13 Sony Corporation Data authentication system
EP1633077A3 (en) 2000-03-24 2006-06-07 Dategrity Corporation Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections
DE60044586D1 (de) * 2000-04-28 2010-08-05 Swisscom Ag Verfahren zur sicherung der kommunikation zwischen einem endgerät und einer zusätzlichen benutzervorrichtung
KR100668016B1 (ko) * 2004-01-22 2007-01-16 닛본 덴끼 가부시끼가이샤 믹스넷 시스템
JP4802274B2 (ja) * 2009-10-30 2011-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ送信および受信方法

Also Published As

Publication number Publication date
EP2429115A1 (en) 2012-03-14
US20120144186A1 (en) 2012-06-07
WO2010128172A1 (es) 2010-11-11
EP2429115B1 (en) 2019-02-20
ES2365887A1 (es) 2011-10-13
EP2429115A4 (en) 2017-03-01
US9077540B2 (en) 2015-07-07

Similar Documents

Publication Publication Date Title
ES2365887B1 (es) Metodo de verificacion de procesos de descifrado
Joux Algorithmic cryptanalysis
Benaloh Simple verifiable elections.
Ateniese et al. Untraceable RFID tags via insubvertible encryption
Koblitz et al. Another look at" provable security"
US8352380B2 (en) Method and system for generating a list signature
CN103095453A (zh) 应用私有集合交集的公钥加密的布隆过滤器
JP2013048417A (ja) signcryption方法と装置及び対応するsigncryption検証方法と装置
Achenbach et al. Improved coercion-resistant electronic elections through deniable re-voting
Libert et al. Adaptively secure non-interactive threshold cryptosystems
Sebé et al. Simple and efficient hash-based verifiable mixing for remote electronic voting
ES2400895B1 (es) Método para realizar una firma digital de grupo
ES2367940B1 (es) Método para la verificación del correcto registro de una información.
Ryabko et al. Basics of contemporary cryptography for IT practitioners
Jarecki et al. Handcuffing big brother: an abuse-resilient transaction escrow scheme
Damgård et al. Stronger security and constructions of multi-designated verifier signatures
Tian A new strong multiple designated verifiers signature
Ki et al. Constructing Strong Identity‐Based Designated Verifier Signatures with Self‐Unverifiability
Patachi et al. Eos a universal verifiable and coercion resistant voting protocol
El Laz et al. Security analysis of ElGamal implementations
Devillez et al. Traceable receipt-free encryption
Demirel et al. A Publicly-Veriable Mix-net with Everlasting Privacy Towards Observers
Duc et al. DiAE: Re-rolling the DiSE
Blazy et al. Identity-based encryption in DDH hard groups
Kang et al. Tight chosen ciphertext attack (CCA)-secure hybrid encryption scheme with full public verifiability

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 2365887

Country of ref document: ES

Kind code of ref document: B1

Effective date: 20120903