ES2365887A1 - Metodo de verificacion de procesos de descifrado. - Google Patents
Metodo de verificacion de procesos de descifrado. Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 230000008569 process Effects 0.000 title claims abstract description 61
- 238000012795 verification Methods 0.000 title claims abstract description 45
- 238000012360 testing method Methods 0.000 claims description 162
- 239000000654 additive Substances 0.000 claims description 4
- 230000000996 additive effect Effects 0.000 claims description 3
- 238000005056 compaction Methods 0.000 claims description 3
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 1
- 230000009466 transformation Effects 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000001558 permutation test Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3013—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/42—Anonymization, e.g. involving pseudonyms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic 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.
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.
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.
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:
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:
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 \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.
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.
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:
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
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
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
\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:
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.:
\vskip1.000000\baselineskip
\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.
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:
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
\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
\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:
jes:
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.
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:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
ó si tenemos (P(m) |
P(Hm)):
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Si esta prueba falla en alguno de los mensajes,
el proceso de descifrado no ha sido correcto.
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
\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
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:
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):
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^{\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:
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:
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:
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
\vskip1.000000\baselineskip
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
\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:
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:
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.
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:
- 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.
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:
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}.
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
- [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.
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)
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)
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 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メッセージ送信および受信方法 |
-
2009
- 2009-05-05 ES ES200901196A patent/ES2365887B1/es active Active
- 2009-12-11 US US13/319,164 patent/US9077540B2/en active Active
- 2009-12-11 EP EP09844302.1A patent/EP2429115B1/en active Active
- 2009-12-11 WO PCT/ES2009/000568 patent/WO2010128172A1/es active Application Filing
Non-Patent Citations (1)
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 |