Articulo de referencia

Criptosistema Paillier

El criptosistema Paillier , inventado y bautizado en honor a Pascal Paillier en 1999, es un algoritmo asimétrico probabilístico para criptografía de clave pública . Se considera...

El criptosistema Paillier , inventado y bautizado en honor a Pascal Paillier en 1999, es un algoritmo asimétrico probabilístico para criptografía de clave pública . Se considera que el problema de calcular las clases de residuos n -ésimos es computacionalmente complejo. La hipótesis de intratabilidad en la que se basa este criptosistema es la suposición de residuos compuestos decisionales .

El esquema es un criptosistema homomórfico aditivo ; esto significa que, dados únicamente la clave pública y el cifrado demetro1{\displaystyle m_{1}}ymetro2{\displaystyle m_{2}}, se puede calcular el cifrado demetro1+metro2{\displaystyle m_{1}+m_{2}}.

Algoritmo

El sistema funciona de la siguiente manera:

Generación de claves

  1. Elige dos números primos grandes.pag{\displaystyle p}yq{\displaystyle q}de forma aleatoria e independiente entre sí, de tal manera quemcd(pagq,(pag1)(q1))=1{\displaystyle \gcd(pq,(p-1)(q-1))=1}Esta propiedad se garantiza si ambos números primos tienen la misma longitud. [ 1 ]
  2. Calcularnorte=pagq{\displaystyle n=pq}yλ=lcm(pag1,q1){\displaystyle \lambda =\operatorname {lcm} (p-1,q-1)}. lcm significa Mínimo Común Múltiplo .
  3. Seleccione un número entero aleatorio.gramo{\displaystyle g}dóndegramoZnorte2{\displaystyle g\in \mathbb {Z} _{n^{2}}^{*}}
  4. Asegurarnorte{\displaystyle n}divide el orden degramo{\displaystyle g}comprobando la existencia del siguiente inverso multiplicativo modular :μ=(L(gramoλmodnorte2))1modnorte{\displaystyle \mu =(L(g^{\lambda }{\bmod {n}}^{2}))^{-1}{\bmod {n}}},
donde funciónL{\displaystyle L}se define comoL(incógnita)=incógnita1norte{\displaystyle L(x)={\frac {x-1}{n}}}.
Tenga en cuenta que la notaciónab{\displaystyle {\frac {a}{b}}}no denota la multiplicación modular dea{\displaystyle a}veces el inverso multiplicativo modular deb{\displaystyle b}sino más bien el cociente dea{\displaystyle a}dividido porb{\displaystyle b}, es decir, el mayor valor enterov0{\displaystyle v\geq 0}para satisfacer la relaciónavb{\displaystyle a\geq vb}.
  • La clave pública (de cifrado) es(norte,gramo){\displaystyle (n,g)}.
  • La clave privada (de descifrado) es(λ,μ).{\displaystyle (\lambda,\mu).}

Si se utilizan p y q de longitud equivalente, una variante más sencilla de los pasos de generación de claves anteriores sería establecergramo=norte+1,λ=φ(norte),{\displaystyle g=n+1,\lambda =\varphi (n),}yμ=φ(norte)1modnorte{\displaystyle \mu =\varphi (n)^{-1}{\bmod {n}}}, dóndeφ(norte)=(pag1)(q1){\displaystyle \varphi (n)=(p-1)(q-1)}. [ 1 ] Se recomienda la variante más simple para fines de implementación, porque en la forma general el tiempo de cálculo deμ{\displaystyle \mu }puede ser muy alto con primos p,q suficientemente grandes.

Cifrado

  1. Dejarmetro{\displaystyle m}ser un mensaje para ser cifrado donde0metro<norte{\displaystyle 0\leq m<n}
  2. Seleccionar al azarr{\displaystyle r}dónde0<r<norte{\displaystyle 0<r<n}y mcd(r,norte)=1{\displaystyle \gcd(r,n)=1}. (Nota: si encuentra un valor que tengamcd(r,norte)1{\displaystyle \gcd(r,n)\neq 1}Puedes usar esto para calcular la clave privada: es lo suficientemente improbable como para ignorarlo.
  3. Calcula el texto cifrado como:do=gramometrornortemodnorte2{\displaystyle c=g^{m}\cdot r^{n}{\bmod {n}}^{2}}

Descifrado

  1. Dejardo{\displaystyle c}sea ​​el texto cifrado a descifrar, dondedoZnorte2{\displaystyle c\in \mathbb {Z} _{n^{2}}^{*}}
  2. Calcula el mensaje en texto plano de la siguiente manera:metro=L(doλmodnorte2)μmodnorte{\displaystyle m=L(c^{\lambda }{\bmod {n}}^{2})\cdot \mu {\bmod {n}}}

Como señala el artículo original [ 2 ] , el descifrado es "esencialmente una exponenciación módulonorte2{\displaystyle n^{2}}"

Propiedades homomórficas

Una característica notable del criptosistema Paillier son sus propiedades homomórficas junto con su cifrado no determinista (véase Votación electrónica en Aplicaciones para su uso). Dado que la función de cifrado es homomórfica aditivamente, se pueden describir las siguientes identidades:

  • Suma homomórfica de textos planos
El producto de dos textos cifrados se descifrará como la suma de sus textos planos correspondientes,
D(mi(metro1,r1)mi(metro2,r2)modnorte2)=metro1+metro2modnorte.{\displaystyle D(E(m_{1},r_{1})\cdot E(m_{2},r_{2}){\bmod {n}}^{2})=m_{1}+m_{2}{\bmod {n}}.\,}
El producto de un texto cifrado con un texto plano que generagramo{\displaystyle g}se descifrará como la suma de los textos planos correspondientes,
D(mi(metro1,r1)gramometro2modnorte2)=metro1+metro2modnorte.{\displaystyle D(E(m_{1},r_{1})\cdot g^{m_{2}}{\bmod {n}}^{2})=m_{1}+m_{2}{\bmod {n}}.\,}
  • Multiplicación homomórfica de textos planos
Un texto cifrado elevado a la potencia de un texto plano se descifrará como el producto de los dos textos planos,
D(mi(metro1,r1)metro2modnorte2)=metro1metro2modnorte,{\displaystyle D(E(m_{1},r_{1})^{m_{2}}{\bmod {n}}^{2})=m_{1}m_{2}{\bmod {n}},\,}
D(mi(metro2,r2)metro1modnorte2)=metro1metro2modnorte.{\displaystyle D(E(m_{2},r_{2})^{m_{1}}{\bmod {n}}^{2})=m_{1}m_{2}{\bmod {n}}.\,}
En términos más generales, un texto cifrado elevado a una constante k se descifrará como el producto del texto plano y la constante.
D(mi(metro1,r1)kmodnorte2)=kmetro1modnorte.{\displaystyle D(E(m_{1},r_{1})^{k}{\bmod {n}}^{2})=km_{1}{\bmod {n}}.\,}

Sin embargo, dadas las encriptaciones Paillier de dos mensajes, no existe una forma conocida de calcular la encriptación del producto de estos mensajes sin conocer la clave privada.

Fondo

El criptosistema Paillier aprovecha el hecho de que ciertos logaritmos discretos se pueden calcular fácilmente.

Por ejemplo, por el teorema del binomio ,

(1+norte)incógnita=k=0incógnita(incógnitak)nortek=1+norteincógnita+(incógnita2)norte2+poderes superiores de norte{\displaystyle (1+n)^{x}=\sum _{k=0}^{x}{x \choose k}n^{k}=1+nx+{x \choose 2}n^{2}+{\text{potencias superiores de }}n}

Esto indica que:

(1+norte)incógnita1+norteincógnita(modnorte2){\displaystyle (1+n)^{x}\equiv 1+nx{\pmod {n^{2}}}}

Por lo tanto, si:

y=(1+norte)incógnitamodnorte2{\displaystyle y=(1+n)^{x}{\bmod {n}}^{2}}

entonces

incógnitay1norte(modnorte){\displaystyle x\equiv {\frac {y-1}{n}}{\pmod {n}}}.

De este modo:

L((1+norte)incógnitamodnorte2)incógnita(modnorte){\displaystyle L((1+n)^{x}{\bmod {n}}^{2})\equiv x{\pmod {n}}},
donde funciónL{\displaystyle L}se define comoL()=1norte{\displaystyle L(u)={\frac {u-1}{n}}}(cociente de división entera) yincógnitaZnorte{\displaystyle x\in \mathbb {Z} _{n}}.

Seguridad semántica

El criptosistema original, tal como se muestra arriba, proporciona seguridad semántica contra ataques de texto plano elegido ( IND-CPA ). La capacidad de distinguir con éxito el texto cifrado de desafío equivale esencialmente a la capacidad de determinar la resiliencia compuesta. Se cree que la denominada suposición de resiliencia compuesta decisional (DCRA) es intratable.

Debido a las propiedades homomórficas mencionadas, el sistema es maleable y, por lo tanto, no ofrece el máximo nivel de seguridad semántica ni protección contra ataques adaptativos de texto cifrado elegido ( IND-CCA2 ). En criptografía, la maleabilidad no suele considerarse una ventaja, pero en ciertas aplicaciones, como la votación electrónica segura y los criptosistemas de umbral , esta propiedad puede resultar necesaria.

Sin embargo, Paillier y Pointcheval propusieron un criptosistema mejorado que incorpora el hash combinado del mensaje m con un valor aleatorio r . Similar en su propósito al criptosistema Cramer-Shoup , el hash impide que un atacante, conociendo solo c, pueda modificar m de manera significativa. Mediante esta adaptación, se puede demostrar que el esquema mejorado es seguro frente a ataques IND-CCA2 en el modelo de oráculo aleatorio .

Aplicaciones

Voto electrónico

La seguridad semántica no es la única consideración. Existen situaciones en las que la maleabilidad puede ser deseable. Los sistemas de votación electrónica seguros pueden utilizar las propiedades homomórficas mencionadas. Consideremos una votación binaria simple ("a favor" o "en contra"). Supongamos que m votantes emiten un voto de 1 (a favor) o 0 (en contra). Cada votante cifra su elección antes de emitir su voto. El funcionario electoral toma el producto de los m votos cifrados, luego descifra el resultado y obtiene el valor n , que es la suma de todos los votos. El funcionario electoral sabe entonces que n personas votaron a favor y mn personas votaron en contra . El papel del número aleatorio r garantiza que dos votos equivalentes se cifrarán al mismo valor solo con una probabilidad insignificante, lo que garantiza la privacidad del votante.

Dinero electrónico

Otra característica mencionada en el artículo es la noción de auto- cegamiento . Se trata de la capacidad de cambiar un texto cifrado por otro sin alterar el contenido de su descifrado. Esto tiene aplicación en el desarrollo del dinero electrónico , una iniciativa liderada originalmente por David Chaum . Imagínese pagar un artículo en línea sin que el vendedor necesite conocer su número de tarjeta de crédito y, por lo tanto, su identidad. El objetivo tanto del dinero electrónico como del voto electrónico es garantizar la validez de la moneda electrónica (y del voto electrónico), sin revelar la identidad de la persona a la que está asociada.

Subasta electrónica

El criptosistema Paillier desempeña un papel crucial en la mejora de la seguridad de las subastas electrónicas . Previene actividades fraudulentas como subastadores deshonestos y la colusión entre postores y subastadores que manipulan las ofertas. Al garantizar la confidencialidad de los valores reales de las ofertas y, al mismo tiempo, revelar los resultados de la subasta, el criptosistema Paillier promueve con éxito prácticas justas. [ 3 ]

criptosistema de umbral

La propiedad homomórfica del criptosistema Paillier se utiliza a veces para construir la firma ECDSA de umbral . [ 4 ]

Véase también

Referencias

  • Paillier, Pascal (1999). "Sistemas criptográficos de clave pública basados ​​en clases de residuos de grado compuesto" (PDF) . Avances en criptología – EUROCRYPT '99. EUROCRYPT . Springer. doi : 10.1007/3-540-48910-X_16 .
  • Paillier, Pascal; Pointcheval, David (1999). "Sistemas criptográficos de clave pública eficientes y demostrablemente seguros contra adversarios activos". ASIACRYPT . Springer. pp. 165–179 . doi : 10.1007/978-3-540-48000-6_14 . 
  • Paillier, Pascal (1999). Criptosistemas basados ​​en residuosidad compuesta (tesis doctoral). Escuela Nacional Superior de Telecomunicaciones.
  • Paillier, Pascal (2002). "Criptografía basada en residuos compuestos: una visión general" (PDF) . CryptoBytes . 5 (1). Archivado del original (PDF) el 20 de octubre de 2006.

Notas

  1. 1 2 Jonathan Katz, Yehuda Lindell, "Introducción a la criptografía moderna: principios y protocolos", Chapman & Hall/CRC, 2007
  2. Paillier, Pascal (1999). «Sistemas criptográficos de clave pública basados ​​en clases de residuos de grado compuesto». Avances en criptología — EUROCRYPT '99 . Notas de clase en informática. Vol. 1592. Springer. págs. 223–238 . doi : 10.1007/3-540-48910-X_16 . ISBN   978-3-540-65889-4.
  3. Pan, M., Sun, J., & Fang, Y. (2011). Purging the Back-Room Dealing: Secure Spectrum Auction Leveraging Paillier Cryptosystem. IEEE Journal on Selected Areas in Communications, 29(4), 866–876. https://doi.org/10.1109/JSAC.2011.110417
  4. Canetti, Ran; Gennaro, Rosario; Goldfeder, Steven; Makriyannis, Nikolaos; Peled, Udi (30 de octubre de 2020). "UC Non-Interactive, Proactive, Threshold ECDSA with Identifiable Aborts" . Actas de la Conferencia ACM SIGSAC 2020 sobre Seguridad Informática y de Comunicaciones . Association for Computing Machinery. págs. 1769–1787 . doi : 10.1145/3372297.3423367 . ISBN  9781450370899. S2CID 226228099 . 
  • El Proyecto de Cifrado Homomórfico implementa el criptosistema Paillier junto con sus operaciones homomórficas.
  • Encounter: una biblioteca de código abierto que proporciona una implementación del criptosistema Paillier y una construcción de contadores criptográficos basada en el mismo.
  • python-paillier es una biblioteca para el cifrado parcialmente homomórfico en Python, que incluye soporte completo para números de punto flotante.
  • El simulador interactivo del criptosistema Paillier, archivado el 18 de febrero de 2012 en la Wayback Machine, muestra una aplicación de votación.
  • Una demostración interactiva del criptosistema Paillier.
  • Implementación en Javascript de prueba de concepto del criptosistema Paillier con una demostración interactiva .
  • Un vídeo de GoogleTechTalk sobre la votación mediante métodos criptográficos.
  • Implementación en Ruby de la suma homomórfica de Paillier y un protocolo de prueba de conocimiento cero ( documentación ).