stringtranslate.com

Aprendizaje de anillos con firma de errores

Las firmas digitales son un medio para proteger la información digital de modificaciones intencionales y para autenticar la fuente de la información digital. La criptografía de clave pública proporciona un amplio conjunto de diferentes algoritmos criptográficos para crear firmas digitales. Sin embargo, las principales firmas de clave pública que se utilizan actualmente ( RSA y firmas de curva elíptica) se volverán completamente inseguras si los científicos alguna vez logran construir una computadora cuántica de tamaño moderado . [1] La criptografía postcuántica es una clase de algoritmos criptográficos diseñados para ser resistentes a los ataques de una criptografía cuántica. Se están creando varios algoritmos de firma digital postcuántica basados ​​en problemas difíciles en redes que reemplazan las firmas RSA y de curva elíptica de uso común. Un subconjunto de estos esquemas basados ​​en redes se basa en un problema conocido como aprendizaje en anillo con errores . Las firmas digitales basadas en aprendizaje en anillo con errores se encuentran entre las firmas postcuánticas con los tamaños de clave pública y firma más pequeños.

Fondo

Los avances en computación cuántica durante la última década y las perspectivas optimistas de que dentro de 20 años existan computadoras cuánticas reales han comenzado a amenazar la criptografía básica que protege Internet. [2] [3] Una computadora cuántica relativamente pequeña capaz de procesar solo diez mil bits de información rompería fácilmente todos los algoritmos de criptografía de clave pública ampliamente utilizados para proteger la privacidad y firmar digitalmente la información en Internet. [1] [4]

Uno de los algoritmos de clave pública más utilizados para crear firmas digitales se conoce como RSA . Su seguridad se basa en la dificultad clásica de factorizar el producto de dos primos grandes y desconocidos en los primos constituyentes. Se cree que el problema de factorización de números enteros es intratable en cualquier computadora convencional si los primos se eligen al azar y son suficientemente grandes. Sin embargo, para factorizar el producto de dos primos de n bits, una computadora cuántica con aproximadamente 6n bits de memoria lógica de qubits y capaz de ejecutar un programa conocido como el algoritmo de Shor realizará fácilmente la tarea. [5] El algoritmo de Shor también puede romper rápidamente las firmas digitales basadas en lo que se conoce como el problema del logaritmo discreto y el problema más esotérico del logaritmo discreto de la curva elíptica . En efecto, una computadora cuántica relativamente pequeña que ejecute el algoritmo de Shor podría romper rápidamente todas las firmas digitales utilizadas para garantizar la privacidad e integridad de la información en Internet hoy en día.

Aunque no sabemos cuándo existirá un ordenador cuántico capaz de descifrar el RSA y otros algoritmos de firma digital, en la última década se han llevado a cabo investigaciones activas para crear algoritmos criptográficos que sigan siendo seguros incluso cuando un atacante tenga a su disposición los recursos de un ordenador cuántico. [1] [6] Esta nueva área de la criptografía se denomina criptografía postcuántica o criptografía cuántica segura . [1] [6] Este artículo trata sobre una clase de estos algoritmos: las firmas digitales basadas en el problema de aprendizaje en anillo con errores. El uso del problema general de aprendizaje con errores en criptografía fue introducido por Oded Regev en 2005 y ha sido la fuente de varios diseños criptográficos. [7]

Los creadores del algoritmo Ring-based Learning with Errors (RLWE) para criptografía creen que una característica importante de estos algoritmos basados ​​en Ring-Learning with Errors es su reducción demostrable a problemas difíciles conocidos. [8] [9] La firma descrita a continuación tiene una reducción demostrable al problema del vector más corto en una red ideal . [10] Esto significa que si se puede encontrar un ataque al criptosistema Ring-LWE, entonces toda una clase de supuestos problemas computacionales difíciles tendrán una solución. [11]

La primera firma basada en RLWE fue desarrollada por Lyubashevsky en su artículo "Fiat-Shamir with Aborts: Applications to Lattice and Factoring-Based Signatures" [12] y refinada en "Lattice Signatures Without Trapdoors" en 2011. [13] A esto le siguieron una serie de mejoras y variantes. Este artículo destaca la estructura matemática fundamental de las firmas RLWE y sigue el trabajo original de Lyubashevsky y el trabajo de Guneysu, Lyubashevsky y Popplemann (GLP). [10] Esta presentación se basa en una actualización de 2017 del esquema GLP llamada GLYPH. [14]

Un RLWE-SIG funciona en el anillo cociente de polinomios módulo un polinomio de grado n Φ(x) con coeficientes en el cuerpo finito Z q para un primo impar q (es decir, el anillo Z q [x]/Φ(x) ). [13] La multiplicación y la suma de polinomios funcionarán de la manera habitual con resultados de una multiplicación reducida módulo Φ(x). Para esta presentación, un polinomio típico se expresa como:

El cuerpo Z q tiene sus elementos representativos en el conjunto { -(q-1)/2, ...-1, 0, 1, ... (q-1)/2 }. Cuando n es una potencia de 2, el polinomio Φ(x) será el polinomio ciclotómico x n + 1. Otras opciones de n son posibles pero los polinomios ciclotómicos correspondientes son más complicados o su seguridad no está tan bien estudiada.

Generando polinomios “pequeños”.

Una firma RLWE utiliza polinomios que se consideran "pequeños" con respecto a una medida llamada " norma de infinito ". La norma de infinito para un polinomio es simplemente el valor absoluto más grande de los coeficientes del polinomio cuando esos coeficientes se ven como números enteros en Z en lugar de Z q . [10] El algoritmo de firma creará polinomios aleatorios que son pequeños con respecto a un límite de norma de infinito particular. Esto se hace fácilmente generando aleatoriamente todos los coeficientes del polinomio (a 0 , ..., a n-1 ) de una manera que se garantiza o es muy probable que sea menor o igual a este límite. En la literatura sobre aprendizaje de anillos con errores, hay dos formas comunes de hacer esto: [13]

En la firma RLWE GLYPH utilizada como ejemplo a continuación, los coeficientes para los polinomios "pequeños" utilizarán el método de muestreo uniforme y el valor b será mucho menor que el valor q. [10]

Hashing a un polinomio "pequeño"

La mayoría de los algoritmos de firma RLWE también requieren la capacidad de convertir criptográficamente cadenas de bits arbitrarias en pequeños polinomios de acuerdo con alguna distribución. El ejemplo siguiente utiliza una función hash, POLYHASH(ω), que acepta una cadena de bits, ω, como entrada y genera un polinomio con n coeficientes de manera que exactamente k de estos coeficientes tengan un valor absoluto mayor que cero y menor que un límite entero b (ver arriba).

Muestreo de rechazo

Una característica clave de los algoritmos de firma RLWE es el uso de una técnica conocida como muestreo de rechazo . [13] [12] En esta técnica, si la norma de infinito de un polinomio de firma excede un límite fijo, β, ese polinomio será descartado y el proceso de firma comenzará de nuevo. Este proceso se repetirá hasta que la norma de infinito del polinomio de firma sea menor o igual al límite. El muestreo de rechazo asegura que la firma de salida no esté correlacionada de manera explotable con los valores de la clave secreta del firmante.

En el ejemplo que sigue, el límite, β, será (b - k), donde b es el rango del muestreo uniforme descrito anteriormente y k será el número de coeficientes distintos de cero permitidos en un polinomio "aceptado" [10].

Otros parámetros

Siguiendo a GLYPH y como se señaló anteriormente, el grado máximo de los polinomios será n-1 y, por lo tanto, tendrán n coeficientes. [10] Los valores típicos para n son 512 y 1024. [10] Los coeficientes de estos polinomios serán del campo F q donde q es un primo impar congruente con 1 módulo 4. Para n = 1024, GLYPH establece q = 59393, b = 16383 y k el número de coeficientes distintos de cero en la salida de Polyhash igual a 16. [14] El número de coeficientes distintos de cero k producidos por la función hash es igual a 32 para ambos casos. [10] La seguridad del esquema de firma está estrechamente vinculada a los tamaños relativos de n, q, b y k. Los detalles sobre la configuración de estos parámetros se pueden encontrar en las referencias 5 y 6 a continuación. [13] [10] [14]

Como se señaló anteriormente, el polinomio Φ(x) que define el anillo de polinomios utilizado será x n + 1. Finalmente, a(x) será un polinomio elegido aleatoriamente y fijo con coeficientes del conjunto { -(q-1)/2 a (q-1)/2 }. El polinomio a(x) debe elegirse de una manera " sin tener nada en la manga ", como por ejemplo mediante un algoritmo hash unidireccional de la salida de un generador de números aleatorios de ruido real (TRNG) o utilizando la expansión digital de constantes matemáticas bien conocidas, como pi o e. Todos los firmantes y verificadores de firmas conocerán n, q, b, k, Φ(x), a(x) y β = bk.

Generación de clave pública

Una entidad que desea firmar mensajes genera su clave pública a través de los siguientes pasos:

  1. Generar dos polinomios pequeños s(x) y e(x) con coeficientes elegidos uniformemente del conjunto {-b,...-1, 0, 1, ..., b}
  2. Calcular t(x) = a(x)·s(x) + e(x)
  3. Distribuya t(x) como la clave pública de la entidad

Los polinomios s(x) y e(x) sirven como clave privada y t(x) es la clave pública correspondiente. La seguridad de este esquema de firma se basa en el siguiente problema. Dado un polinomio t(x), encuentre polinomios pequeños f 1 (x) y f 2 (x) tales que: a(x)·f 1 (x) + f 2 (x) = t(x)

Si este problema es difícil de resolver, entonces el esquema de firma será difícil de falsificar. [Consulte el artículo de Wikipedia sobre aprendizaje de anillos con errores o criptografía de red ideal para obtener más detalles sobre la dificultad teórica de este problema]

Generación de firmas

Siguiendo GLYPH, [14] para firmar un mensaje m expresado como una cadena de bits, la entidad firmante hace lo siguiente:

  1. Generar dos polinomios pequeños y 1 (x) e y 2 (x) con coeficientes del conjunto {-b, ..., 0, ...., b}
  2. Calcular w(x) = a(x)·y 1 (x) + y 2 (x)
  3. Mapa w(x) en una cadena de bits ω
  4. Calcular c(x) = POLYHASH(ω | m) (Este es un polinomio con k coeficientes distintos de cero. El "|" denota concatenación de cadenas)
  5. Calcular z 1 (x) = s(x)·c(x) + y 1 (x)
  6. Calcular z 2 (x) = e(x)·c(x) + y 2 (x)
  7. Hasta que las normas de infinito de z 1 (x) y z 2 (x) ≤ β = ( B - k) vaya al paso 1. (Este es el paso de muestreo de rechazo mencionado anteriormente)
  8. La firma es el triple de los polinomios c(x), z 1 (x) y z 2 (x)
  9. Transmita el mensaje junto con c(x), z 1 (x) y z 2 (x) al verificador.

Verificación de firma

Siguiendo a GLYPH, [14] para verificar un mensaje m expresado como una cadena de bits, la entidad verificadora debe poseer la clave pública del firmante (t(x)), la firma (c(x), z 1 (x), z 2 (x)) y el mensaje m. El verificador hace lo siguiente:

  1. Verificar que las normas de infinito de z 1 (x) y z 2 (x) ≤ β , si no rechazar la firma.
  2. Calcular w'(x) = a(x)·z 1 (x) + z 2 (x) - t(x)c(x)
  3. Mapa w'(x) en una cadena de bits ω'
  4. Calcular c'(x) = POLYHASH(ω' | m)
  5. Si c'(x) ≠ c(x) rechace la firma, de lo contrario acepte la firma como válida.

Tenga en cuenta que:

a(x)· z1 (x) + z2 (x) - t(x)c(x) = a(x)·[s(x)·c(x) + y1 ( x)] + z2 (x) - [a(x)·s(x) + e(x)]c(x)

= a(x)·y1 ( x)+z2 ( x)-e(x)·c(x)

= a(x)y 1 (x) + e(x)·c(x) + y 2 (x) - e(x)·c(x)

= a(x)y 1 (x) + y 2 (x) = w(x) (como se define arriba)

Esta breve derivación demuestra que el proceso de verificación tendrá c'(x) = c(x) si la firma no fue alterada.

Desarrollos futuros

El esquema de firmas GLYPH descrito en este documento sigue de cerca el trabajo de Lyubashevsky, Gunesyu y Popplemen de 2011 y 2012. Existen otras variaciones de su trabajo, entre ellas:

Otro enfoque para las firmas basadas en retículas sobre anillos es una variante de la familia NTRU patentada de criptografía basada en retículas. El principal ejemplo de este enfoque es una firma conocida como Esquema de Firma de Retícula Bimodal (BLISS). Fue desarrollado por Ducas, Durmas, Lepoint y Lyubashevsky y documentado en su artículo "Firmas de Retícula y Gaussianas Bimodales". [17] Véase el esquema de firma BLISS

Referencias

  1. ^ abcd Dahmen-Lhuissier, Sabine. "ETSI - Criptografía cuántica segura". ETSI . Consultado el 5 de julio de 2015 .
  2. ^ Shah, Agam. "IBM afirma haber logrado un gran avance en la computación cuántica". Archivado desde el original el 23 de septiembre de 2015. Consultado el 1 de junio de 2015 .
  3. ^ Markoff, John (4 de marzo de 2015). «Investigadores informan de un hito en el desarrollo de una computadora cuántica». The New York Times . ISSN  0362-4331 . Consultado el 5 de julio de 2015 .
  4. ^ Beckman, David; Chari, Amalavoyal N.; Devabhaktuni, Srikrishna; Preskill, John (1996). "Redes eficientes para factorización cuántica". Physical Review A . 54 (2): 1034–1063. arXiv : quant-ph/9602016 . Código Bibliográfico :1996PhRvA..54.1034B. doi :10.1103/PhysRevA.54.1034. ISSN  1050-2947. PMID  9913575. S2CID  2231795.
  5. ^ Smolin, John A.; Smith, Graeme; Vargo, Alexander (11 de julio de 2013). "Sobresimplificando la factorización cuántica". Nature . 499 (7457): 163–165. arXiv : 1301.7007 . Bibcode :2013Natur.499..163S. doi :10.1038/nature12290. ISSN  0028-0836. PMID  23846653. S2CID  4422110.
  6. ^ ab "Introducción". pqcrypto.org . Consultado el 5 de julio de 2015 .
  7. ^ "El problema del aprendizaje con errores" (PDF) . www.cims.nyu.edu . Consultado el 24 de mayo de 2015 .
  8. ^ Lyubashevsky, Vadim; Peikert, Chris; Regev, Oded (2010). "Sobre redes ideales y aprendizaje con errores sobre anillos". En Gilbert, Henri (ed.). Avances en criptología – EUROCRYPT 2010. Apuntes de clase en informática. Vol. 6110. págs. 1–23. CiteSeerX 10.1.1.297.6108 . doi :10.1007/978-3-642-13190-5_1. ISBN .  978-3-642-13189-9.
  9. ^ "¿Qué significa la "historia de advertencia" del GCHQ para la criptografía en red?". www.cc.gatech.edu . Archivado desde el original el 2015-07-06 . Consultado el 2015-07-05 .
  10. ^ abcdefghi Güneysu, Tim; Lyubashevsky, Vadim; Pöppelmann, Thomas (2012). "Criptografía práctica basada en retículas: un esquema de firma para sistemas integrados". En Prouff, Emmanuel; Schaumont, Patrick (eds.). Hardware criptográfico y sistemas integrados – CHES 2012. Apuntes de clase en informática. Vol. 7428. Springer Berlin Heidelberg. págs. 530–547. doi :10.1007/978-3-642-33027-8_31. ISBN 978-3-642-33026-1.
  11. ^ Micciancio, Daniele (1998). "El vector más corto de una red es difícil de aproximar dentro de una constante". En Proc. 39th Symposium on Foundations of Computer Science : 92–98.
  12. ^ ab Lyubashevsky, Vadim (1 de enero de 2009). "Fiat-Shamir con abortos: aplicaciones a firmas basadas en factorización y en red". En Matsui, Mitsuru (ed.). Avances en criptología – ASIACRYPT 2009. Apuntes de clase en informática. Vol. 5912. Springer Berlin Heidelberg. págs. 598–616. doi :10.1007/978-3-642-10366-7_35. ISBN 978-3-642-10365-0.
  13. ^ abcde Lyubashevsky, Vadim (2011). "Firmas de red sin trampillas". Archivo de criptografía ePrint .
  14. ^ abcde Chopra, Arjun (2017). "GLYPH: A New Instantiation of the GLP Digital Signature Scheme" (PDF) . Archivo de publicaciones electrónicas de la Asociación Internacional de Investigación Criptográfica . Archivado desde el original el 28 de agosto de 2017. Consultado el 26 de agosto de 2017 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  15. ^ "Archivo de ePrints de criptología: Informe 2013/838". eprint.iacr.org . Consultado el 17 de enero de 2016 .
  16. ^ "Archivo de ePrints de criptología: Informe 2015/755". eprint.iacr.org . Consultado el 17 de enero de 2016 .
  17. ^ "Archivo de ePrints de criptología: Informe 2013/383". eprint.iacr.org . Consultado el 17 de enero de 2016 .

Enlaces externos