ES2365887A1 - Metodo de verificacion de procesos de descifrado. - Google Patents

Metodo de verificacion de procesos de descifrado. Download PDF

Info

Publication number
ES2365887A1
ES2365887A1 ES200901196A ES200901196A ES2365887A1 ES 2365887 A1 ES2365887 A1 ES 2365887A1 ES 200901196 A ES200901196 A ES 200901196A ES 200901196 A ES200901196 A ES 200901196A ES 2365887 A1 ES2365887 A1 ES 2365887A1
Authority
ES
Spain
Prior art keywords
messages
integrity
decryption
integrity test
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.)
Granted
Application number
ES200901196A
Other languages
English (en)
Other versions
ES2365887B1 (es
Inventor
Sandra Guasch Castello
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 EP09844302.1A priority patent/EP2429115B1/en
Priority to US13/319,164 priority patent/US9077540B2/en
Priority to PCT/ES2009/000568 priority patent/WO2010128172A1/es
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

\global\parskip0.950000\baselineskip
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 pk_{i} y su correspondiente clave privada sk_{i}. 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:
100
De esta manera, el mensaje m es cifrado de manera repetitiva usando diferentes claves públicas y relleno aleatorio r_{i}. El primer nodo utiliza su clave privada sk_{1} para descifrar la parte que le corresponde de los mensajes recibidos, elimina el relleno aleatorio r_{1} 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:
101
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:
102
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 \pi_{i} y r_{i} son los valores de permutación y de aleatoriedad usados por un nodo i. Entonces el nodo genera otra transformación \lambda_{i} y valor de aleatoriedad t_{i}, 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 (\lambda_{i}, t_{i}), lo que prueba que la segunda transformación se realizó correctamente, o bien la diferencia entre la primera y la segunda transformación (\lambda_{i}\pi_{i}^{-1}, (r_{i} - t_{i})), 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 \Phi es igual al cifrado del resultado de operar los mensajes descifrados con una operación \Theta.
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 \Phi se obtenga el cifrado de los mensajes operados con una segunda operación \Theta;
b.
Generación de una primera prueba de integridad entrante del conjunto de los mensajes cifrados basada en la operación \Phi 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 \Theta;
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.
\newpage
\global\parskip1.000000\baselineskip
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 \Phi es el producto de los componentes resultantes del algoritmo de cifrado y la operación \Theta es una suma aritmética. En el caso de los sistemas basados en Curvas Elípticas la operación \Phi es la suma de puntos de la Curva Elíptica y la operación \Theta 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
\hbox{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:
\circ 118:
mensajes originales.
\circ 119:
mensajes cifrados.
\circ 120:
sistema de descifrado.
\circ 121:
mensajes descifrados.
\circ 122:
primera prueba de integridad entrante.
\circ 123:
prueba de integridad saliente.
\circ 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:
\circ
Los mensajes originales 118 se cifran 210, de forma que se dispone de mensajes cifrados 119 a la entrada del sistema de descifrado 120.
\circ
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.
\circ
Los mensajes cifrados 119 se introducen en el sistema de descifrado 120, donde se realiza el descifrado de los mensajes 212.
\circ
A partir de los mensajes descifrados 121 se calcula 213 la prueba de integridad saliente 123.
\circ
La primera prueba de integridad entrante 122 se descifra 214 antes, durante o después del proceso de descifrado de los mensajes 212.
\circ
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:
\circ 110:
nodos de la mixnet.
\circ 119:
mensajes cifrados.
\circ 121:
mensajes descifrados.
\circ 122:
primera prueba de integridad entrante.
\circ 123:
prueba de integridad saliente.
\circ 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:
\circ
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.
\circ
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.
\circ
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.
\circ
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:
\circ
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.
\circ
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:
\circ
De forma secuencial se compara 206 la prueba de integridad entrante 101 con la prueba de integridad del nodo 110 (102).
\circ
En 207 se compara la prueba de integridad del nodo 110 (102) con la del nodo 111 (103)... etc.
\circ
Se marcan como nodos maliciosos aquellos donde no coincida su prueba de integridad con la del nodo anterior (112).
\vskip1.000000\baselineskip
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.
\vskip1.000000\baselineskip
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:
\vskip1.000000\baselineskip
103
\vskip1.000000\baselineskip
Siendo \Phi la operación realizada entre los textos cifrados para conseguir el cifrado de los mensajes operados con la operación \Theta.
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:
104
La combinación | entre el mensaje y su prueba de integridad Hm puede realizarse mediante una concatenación antes del cifrado:
105
O de forma alternativa la concatenación puede realizarse después de los cifrados individuales del mensaje y la prueba de integridad de éste:
106
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.:
\vskip1.000000\baselineskip
107
\vskip1.000000\baselineskip
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 \Theta 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 \Phi 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:
108
En el caso de hacerse por bloques, estos bloques volverán a operar entre ellos para obtener la primera prueba de integridad entrante:
\vskip1.000000\baselineskip
109
\vskip1.000000\baselineskip
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:
\vskip1.000000\baselineskip
110
\vskip1.000000\baselineskip
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 \Phi 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 c_{i} = P(m_{i} | Hm_{i}) 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, c_{i} = P(m_{i}) | P(Hm_{i}), se puede calcular una primera prueba de integridad entrante basada únicamente sobre los cifrados de la pruebas de integridad de los mensa-
jes:
111
O bien se podrían calcular pruebas de integridad independientes de cada uno de los cifrados:
112
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.
113
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:
\vskip1.000000\baselineskip
114
\vskip1.000000\baselineskip
ó si tenemos (P(m) | P(Hm)):
\vskip1.000000\baselineskip
115
\vskip1.000000\baselineskip
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 \Theta sobre el conjunto de mensajes descifrados S:
\vskip1.000000\baselineskip
116
\vskip1.000000\baselineskip
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:
\vskip1.000000\baselineskip
117
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 \Theta únicamente sobre los valores de integridad de los mensajes en lugar de utilizar la concatenación de los valores descifrados:
118
calculamos:
119
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):
120
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:
121
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^{\text{*}}
p es un primo grande
clave privada: x
x número aleatorio dentro de p
clave publica: (h, g)
donde h = g^{x} mod p
\quad
mensaje: m.
\vskip1.000000\baselineskip
El cifrado se realiza:
122
Para descifrar calculamos h^{r} = (g^{r})^{x} por lo que si liberamos h^{r} permitiremos que se pueda verificar si el le' se ha obtenido del mismo mensaje cifrado volviéndolo a operar con el h^{r} y comparando si se obtiene le de nuevo:
123
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
\quad
mensaje: m
mensaje convertido a punto: M
punto de la curva elíptica que representa al mensaje.
\vskip1.000000\baselineskip
El cifrado se realiza:
124
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:
\vskip1.000000\baselineskip
125
\vskip1.000000\baselineskip
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:
\vskip1.000000\baselineskip
126
\vskip1.000000\baselineskip
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:
127
Tal como se propone anteriormente, P(Hm_{1}) podría ser el cifrado independiente de Hm_{1} o los bits del texto cifrado que corresponden a Hm_{1}, 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:
128
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 desci-
fradas.
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 nodo 1 y el 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 nodo 1 y el 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 r_{2} y se calculará (r_{2}.G, r_{2}.Q). A continuación se sumará cada componente con los del cifrado a recifrar:
129
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 P^{2}(Z_{n}), donde los puntos satisfacen la ecuación y^{2}z=x^{3}+axz^{2}+
bz^{3} en Z_{n}.
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.
\vskip1.000000\baselineskip
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, \underbar{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, \underbar{1992}.
[JJR02]
Markus Jakobsson, Ari Juels, and Ronald L. Rivest. Making mix nets robust for electronic voting by randomized partial checking. In Dan Boneh, editor, USENIX Security Symposium, pages 339-353. USENIX, \underbar{2002}.
[Ne01]
Andrew C. Neff. A verifiable secret shuffle and its application to evoting. In CCS '01, pages 116-125, \underbar{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 Science, pages 248-259. Springer, \underbar{1994}.
[SK95]
Kazue Sako and Joe Kilian. Receipt-free mix-type voting scheme - a practical solution to the implementation 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, \underbar{1995}.

Claims (22)

1. Método de verificación de procesos de descifrado, apto para verificar si el descifrado de un conjunto de mensajes cifrados se ha realizado correctamente, caracterizado porque dicho cifrado se realiza con un algoritmo con propiedades homomórficas y dicha verificación se basa en la prueba de que el resultado de operar los mensajes cifrados con una operación \Phi es igual al cifrado del resultado de operar los mensajes descifrados con una operación \Theta.
2. Método según la reivindicación 1 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 \Phi se obtenga el cifrado de los mensajes operados con una segunda operación \Theta;
b.
Generación de una primera prueba de integridad entrante del conjunto de los mensajes cifrados basada en la operación \Phi de la etapa a) y realizada sobre el 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 los mensajes descifrados en la etapa c) con la operación \Theta;
e.
Descifrado de la primera prueba de integridad entrante de la etapa b) utilizando la clave privada con la que se han descifrado los mensajes en la etapa c) y obteniendo una segunda prueba de integridad entrante; 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 generada en la etapa d) y la segunda prueba de integridad entrante generada en la etapa e).
3. Método según la reivindicación 2 caracterizado porque las propiedades homomórficas del algoritmo criptográfico son aditivas.
4. Método según la reivindicación 3 caracterizado porque el algoritmo utilizado en la etapa a) es del grupo que comprende ElGamal con exponenciación de mensaje o Paillier.
5. Método según la reivindicación 4 caracterizado porque la operación \Phi es el producto de los componentes resultantes del algoritmo de cifrado y la operación \Theta es una suma aritmética.
6. Método según la reivindicación 3 caracterizado porque el algoritmo utilizado en la etapa a) está basado en Curvas Elípticas.
7. Método según la reivindicación 6 caracterizado porque la operación \Phi es la suma de puntos de la Curva Elíptica y la operación \Theta es una suma aritmética.
8. Método según la reivindicación 2 caracterizado por generar en la etapa a) una prueba de integridad del mensaje basada en una operación resumen de dicho mensaje antes de cifrarlo, del grupo que comprende una función hash criptográfica o una función de compactación.
9. Método según la reivindicación 8 caracterizado por concatenar la prueba de integridad del mensaje con el propio mensaje y cifrarlos conjuntamente para obtener el cifrado del mensaje, o cifrar el mensaje y la prueba de integridad del mensaje por separado y concatenar los cifrados para obtener el cifrado del mensaje.
10. Método según la reivindicación 8 caracterizado por generar la primera prueba de integridad entrante a partir de la operación \Phi de la parte que contiene solo la prueba de integridad del mensaje cifrada.
11. Método según la reivindicación 9 caracterizado porque la primera prueba de integridad entrante tiene dos componentes independientes de integridad calculados individualmente a partir de la operación \Phi de la parte que contiene solo la prueba de integridad del mensaje cifrada y la operación \Phi de la parte que contiene solo el mensaje respectivamente.
12. Método según la reivindicación 9 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.
13. Método según la reivindicación 12 caracterizado porque dicho proceso de descifrado que preserva el anonimato del emisor es una mixnet de descifrado, recifrado o recifrado con descifrado parcial.
14. Método según la reivindicación 13 caracterizado por generar una prueba de integridad intermedia 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.
15. Método según la reivindicación 14 caracterizado porque esta prueba de integridad intermedia se genera sobre el conjunto de mensajes transformados en el nodo que recibe estos mensajes, en el nodo que envía estos, o en ambos nodos.
16. Método según la reivindicación 14 caracterizado porque el proceso de descifrado de las pruebas de integridad entrantes de la etapa e) y verificación de la etapa f) también se realizan en uno o más nodos de la mixnet.
17. Método según la reivindicación 14 caracterizado por ejecutar la etapa de descifrado e) sobre la prueba de integridad de los datos entrantes que recibe un nodo y sobre la prueba de integridad de los datos entrantes que este nodo envía al nodo siguiente, y posteriormente realizar una etapa adicional de verificación online del mixing en la que se comparan los resultados de ambas pruebas de integridad entrantes descifradas.
18. Método según la reivindicación 8 caracterizado porque la prueba de integridad saliente de la etapa d) se obtiene después de aplicar a los mensajes descifrados en la etapa c) sin su prueba de integridad la misma operación de resumen aplicada en la etapa a), y después operar con la operación \Theta los resultados de aplicar esta función resumen en los mensajes.
19. Método según la reivindicación 8 caracterizado porque la prueba de integridad saliente de la etapa d) tiene dos componentes obtenidos después de operar por separado con la operación \Theta los resultados de aplicar la misma operación resumen de la etapa a) a los mensajes descifrados por un lado y sus pruebas de integridad por otro.
20. Método según la reivindicación 11 caracterizado porque el proceso de descifrado de la primera prueba de integridad entrante de la etapa e) se basa en el descifrado de al menos el componente de la primera prueba de integridad entrante obtenido al operar las pruebas de integridad de los mensajes cifrados.
21. Método según la reivindicación 11 caracterizado porque el proceso de descifrado de la primera prueba de integridad entrante de la etapa e) se realiza utilizando un proceso de descifrado distribuido.
22. Método según la reivindicación 19 caracterizado porque el proceso de verificación se basa en verificar primero los componentes basados en las pruebas de integridad de los mensajes de la prueba de integridad saliente y la segunda prueba de integridad entrante, y, en caso que esta verificación falle, verificar primero los componentes basados en los mensajes de las pruebas de integridad saliente y entrante descifrada.
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
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
PCT/ES2009/000568 WO2010128172A1 (es) 2009-05-05 2009-12-11 Método de verificación de procesos de descifrado

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 true ES2365887A1 (es) 2011-10-13
ES2365887B1 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 (21)

* 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
US10348485B2 (en) * 2016-02-26 2019-07-09 Fornetix Llc Linking encryption key management with granular policy
US10931653B2 (en) 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
US11063980B2 (en) 2016-02-26 2021-07-13 Fornetix Llc System and method for associating encryption key management policy with device activity
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
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
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
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
EP1267515A3 (en) * 2000-01-21 2004-04-07 Sony Computer Entertainment Inc. Method and apparatus for symmetric encryption/decryption of recorded data
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
AU2000275203A1 (en) * 2000-04-28 2001-11-12 Swisscom Mobile Ag Method for securing communications between a terminal and an additional user equipment
JP4687465B2 (ja) * 2004-01-22 2011-05-25 日本電気株式会社 ミックスネットシステム
JP4802274B2 (ja) * 2009-10-30 2011-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ送信および受信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"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. *

Also Published As

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

Similar Documents

Publication Publication Date Title
ES2365887B1 (es) Metodo de verificacion de procesos de descifrado
Ateniese et al. Untraceable RFID tags via insubvertible encryption
Yung Practical signcryption
Yuen et al. Identity-based encryption with post-challenge auxiliary inputs for secure cloud applications and sensor networks
Hohenberger et al. Detecting dangerous queries: A new approach for chosen ciphertext security
CN103095453A (zh) 应用私有集合交集的公钥加密的布隆过滤器
Achenbach et al. Improved coercion-resistant electronic elections through deniable re-voting
ES2367940B1 (es) Método para la verificación del correcto registro de una información.
Buchmann et al. Towards a publicly-verifiable mix-net providing everlasting privacy
Gennaro et al. Text search protocols with simulation based security
ES2400895B1 (es) Método para realizar una firma digital de grupo
Damgård et al. Stronger security and constructions of multi-designated verifier signatures
Jarecki et al. Handcuffing big brother: an abuse-resilient transaction escrow scheme
Tian A new strong multiple designated verifiers signature
EP3627367B1 (en) Subversion resilient attestation for trusted execution environments
Ki et al. Constructing Strong Identity‐Based Designated Verifier Signatures with Self‐Unverifiability
Kutyłowski et al. Anamorphic signatures: Secrecy from a dictator who only permits authentication!
Galindo et al. Public-key encryption with non-interactive opening: New constructions and stronger definitions
Blazy et al. Identity-based encryption in DDH hard groups
Duc et al. DiAE: Re-rolling the DiSE
Faust et al. Statement-oblivious threshold witness encryption
Abe et al. Flaws in robust optimistic mix-nets and stronger security notions
Yeun Design, analysis and applications of cryptographic techniques
Kohlweiss et al. Accountable tracing signatures
Yuen et al. Encryption schemes with post-challenge auxiliary inputs

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