Articulo de referencia

algoritmo de firma de Rabin

En criptografía , el algoritmo de firma de Rabin es un método de firma digital publicado originalmente por Michael O. Rabin en 1979. [ 1 ] [ 2 ] El algoritmo de firma de Rabin f...

En criptografía , el algoritmo de firma de Rabin es un método de firma digital publicado originalmente por Michael O. Rabin en 1979. [ 1 ] [ 2 ]

El algoritmo de firma de Rabin fue uno de los primeros esquemas de firma digital propuestos. Al utilizar una función de puerta trasera con un hash del mensaje en lugar del mensaje mismo, a diferencia de las propuestas anteriores de firmas basadas en hash de un solo uso o firmas basadas en puerta trasera sin hash, [ 3 ] [ 4 ] el de Rabin fue el primer diseño publicado que cumplió con lo que ahora es el estándar moderno de seguridad para firmas digitales para más de un mensaje: la infalsificación existencial bajo un ataque de mensaje elegido . [ 5 ]

Las firmas de Rabin se asemejan a las firmas RSA con exponentemi=2{\displaystyle e=2}, pero esto conduce a diferencias cualitativas que permiten una implementación más eficiente [ 5 ] y una garantía de seguridad relativa a la dificultad de la factorización de enteros , [ 1 ] [ 2 ] [ 6 ] que no se ha demostrado para RSA . Sin embargo, las firmas de Rabin han tenido relativamente poco uso o estandarización fuera de IEEE P1363 [ 7 ] en comparación con esquemas de firma RSA como RSASSA-PKCS1-v1_5 y RSASSA-PSS .

Definición

El esquema de firma de Rabin está parametrizado por una función hash aleatoria.H(metro,){\displaystyle H(m,u)}de un mensajemetro{\displaystyle m}yk{\displaystyle k}-cadena de aleatorización de bits{\displaystyle u}.

Clave pública
Una clave pública es un par de números enteros.(norte,b){\displaystyle (n,b)}con0b<norte{\displaystyle 0\leq b<n}ynorte{\displaystyle n}extraño.b{\displaystyle b}se elige arbitrariamente y puede ser una constante fija.
Firma
Una firma en un mensajemetro{\displaystyle m}es un par(,incógnita){\displaystyle (u,x)}de unk{\displaystyle k}cadena de bits{\displaystyle u}y un número enteroincógnita{\displaystyle x}de tal manera queincógnita(incógnita+b)H(metro,)(modnorte).{\displaystyle x(x+b)\equiv H(m,u){\pmod {n}}.}
Clave privada
La clave privada para una clave pública(norte,b){\displaystyle (n,b)}es el secreto factorización prima imparpagq{\displaystyle p\cdot q}denorte{\displaystyle n}, elegidos uniformemente al azar de algún espacio grande de números primos.
Firmar un mensaje
Para hacer una firma en un mensajemetro{\displaystyle m}Utilizando la clave privada, el firmante comienza eligiendo unak{\displaystyle k}cadena de bits{\displaystyle u}uniformemente al azar y calculado:=H(metro,){\displaystyle c:=H(m,u)}. Dejard=(b/2)modnorte{\displaystyle d=(b/2){\bmod {n}}}. Sido+d2{\displaystyle c+d^{2}}es un no residuo cuadrático módulonorte{\displaystyle n}, el firmante comienza de nuevo con un número aleatorio independiente{\displaystyle u}. [ 1 ] : pág. 10 De lo contrario, el firmante calculaincógnitapag:=(d±do+d2)modpag,incógnitaq:=(d±do+d2)modq,{\displaystyle {\begin{aligned}x_{p}&:={\Bigl (}-d\pm {\sqrt {c+d^{2}}}{\Bigr )}{\bmod {p}},\\x_{q}&:={\Bigl (}-d\pm {\sqrt {c+d^{2}}}{\Bigr )}{\bmod {q}},\end{aligned}}}utilizando un algoritmo estándar para calcular raíces cuadradas módulo un número primo eligiendopagq3(mod4){\displaystyle p\equiv q\equiv 3{\pmod {4}}}lo hace más fácil. Las raíces cuadradas no son únicas, y las diferentes variantes del esquema de firma hacen diferentes elecciones de raíz cuadrada; [ 5 ] en cualquier caso, el firmante debe asegurarse de no revelar dos raíces diferentes para el mismo hash.do{\displaystyle c}. incógnitapag{\displaystyle x_{p}}yincógnitaq{\displaystyle x_{q}}satisfacer las ecuacionesincógnitapag(incógnitapag+b)H(metro,)(modpag),incógnitaq(incógnitaq+b)H(metro,)(modq).{\displaystyle {\begin{aligned}x_{p}(x_{p}+b)&\equiv H(m,u){\pmod {p}},\\x_{q}(x_{q}+b)&\equiv H(m,u){\pmod {q}}.\end{aligned}}} El firmante utiliza entonces el teorema chino del resto para resolver el sistema.incógnitaincógnitapag(modpag),incógnitaincógnitaq(modq),{\displaystyle {\begin{aligned}x&\equiv x_{p}{\pmod {p}},\\x&\equiv x_{q}{\pmod {q}},\end{aligned}}}paraincógnita{\displaystyle x}, de modo queincógnita{\displaystyle x}Satisfaceincógnita(incógnita+b)H(metro,)(modnorte){\displaystyle x(x+b)\equiv H(m,u){\pmod {n}}}según sea necesario. El firmante revela(,incógnita){\displaystyle (u,x)}como firma enmetro{\displaystyle m}.
El número de ensayos para{\displaystyle u}antesincógnita(incógnita+b)H(metro,)(modnorte){\displaystyle x(x+b)\equiv H(m,u){\pmod {n}}}se puede resolverincógnita{\displaystyle x}se distribuye geométricamente con un promedio de alrededor de 4 ensayos, porque aproximadamente 1/4 de todos los enteros son residuos cuadráticos módulonorte{\displaystyle n}.

Seguridad

Seguridad frente a cualquier adversario definida genéricamente en términos de una función hash.H{\displaystyle H}(es decir, la seguridad en el modelo de oráculo aleatorio ) se deriva de la dificultad de factorizarnorte{\displaystyle n}Cualquier adversario con alta probabilidad de éxito en la falsificación puede, con una probabilidad casi igual de alta, encontrar dos raíces cuadradas distintas.incógnita1{\displaystyle x_{1}}yincógnita2{\displaystyle x_{2}}de un número entero aleatoriodo{\displaystyle c}módulonorte{\displaystyle n}. Siincógnita1±incógnita20(modnorte){\displaystyle x_{1}\pm x_{2}\not \equiv 0{\pmod {n}}}entoncesmcd(incógnita1±incógnita2,norte){\displaystyle \gcd(x_{1}\pm x_{2},n)}es un factor no trivial denorte{\displaystyle n}, desdeincógnita12incógnita22do(modnorte){\displaystyle {x_{1}}^{2}\equiv {x_{2}}^{2}\equiv c{\pmod {n}}}entoncesnorteincógnita12incógnita22=(incógnita1+incógnita2)(incógnita1incógnita2){\displaystyle n\mid {x_{1}}^{2}-{x_{2}}^{2}=(x_{1}+x_{2})(x_{1}-x_{2})}peronorteincógnita1±incógnita2{\displaystyle n\nmid x_{1}\pm x_{2}}. [ 2 ] Formalizar la seguridad en términos modernos requiere completar algunos detalles adicionales, como el codominio deH{\displaystyle H}; si establecemos un tamaño estándarK{\displaystyle K}para los factores primos,2K1<pag<q<2K{\displaystyle 2^{K-1}<p<q<2^{K}}, entonces podríamos especificarH:{0,1}×{0,1}k{0,1}K{\displaystyle H\colon \{0,1\}^{*}\times \{0,1\}^{k}\to \{0,1\}^{K}}. [ 6 ]

La aleatorización de la función hash se introdujo para permitir al firmante encontrar un residuo cuadrático, pero el hash aleatorio para firmas posteriormente se volvió relevante por derecho propio para teoremas de seguridad más estrictos [ 2 ] y resistencia a ataques de colisión en funciones hash fijas. [ 8 ] [ 9 ] [ 10 ]

Variantes

Eliminando b

La cantidadb{\displaystyle b}en la clave pública no agrega seguridad, ya que cualquier algoritmo para resolver congruenciasincógnita(incógnita+b)do(modnorte){\displaystyle x(x+b)\equiv c{\pmod {n}}}paraincógnita{\displaystyle x}dadob{\displaystyle b}ydo{\displaystyle c}puede usarse trivialmente como una subrutina en un algoritmo para calcular raíces cuadradas módulonorte{\displaystyle n}y viceversa, por lo que las implementaciones pueden establecer de forma segurab=0{\displaystyle b=0}por simplicidad;b{\displaystyle b}fue descartado por completo en los tratamientos después de la propuesta inicial. [ 11 ] [ 2 ] [ 7 ] [ 5 ] Después de eliminarb{\displaystyle b}, las ecuaciones paraincógnitapag{\displaystyle x_{p}}yincógnitaq{\displaystyle x_{q}}en el algoritmo de firma se convierten en:incógnitapag:=±domodpag,incógnitaq:=±domodq.{\displaystyle {\begin{aligned}x_{p}&:=\pm {\sqrt {c}}{\bmod {p}},\\x_{q}&:=\pm {\sqrt {c}}{\bmod {q}}.\end{aligned}}}

Rabin-Williams

El esquema de firmas de Rabin fue posteriormente modificado por Williams en 1980 [ 11 ] para elegirpag3(mod8){\displaystyle p\equiv 3{\pmod {8}}}yq7(mod8){\displaystyle q\equiv 7{\pmod {8}}}y reemplazar una raíz cuadradaincógnita{\displaystyle x}mediante una raíz cuadrada modificada(mi,F,incógnita){\displaystyle (e,f,x)}, conmi=±1{\displaystyle e=\pm 1}yF{1,2}{\displaystyle f\in \{1,2\}}, de modo que una firma en su lugar satisface miFincógnita2H(metro,)(modnorte),{\displaystyle efx^{2}\equiv H(m,u){\pmod {n}},} que permite al firmante crear una firma en un solo intento sin sacrificar la seguridad. Esta variante se conoce como Rabin-Williams . [ 5 ] [ 7 ]

Otros

Otras variantes permiten encontrar un equilibrio entre el tamaño de la firma y la velocidad de verificación, la recuperación parcial del mensaje, la compresión de la firma (hasta la mitad de su tamaño) y la compresión de la clave pública (hasta un tercio de su tamaño), sin sacrificar la seguridad. [ 5 ]

Se han publicado variantes sin la función hash en libros de texto, [ 12 ] [ 13 ] atribuyéndole a Rabin el exponente 2 pero no el uso de una función hash. Estas variantes son trivialmente vulnerables ; por ejemplo, la firmaincógnita=2{\displaystyle x=2}Puede ser falsificado por cualquiera como una firma válida en el mensaje.metro=4{\displaystyle m=4}si la ecuación de verificación de firma esincógnita2metro(modnorte){\displaystyle x^{2}\equiv m{\pmod {n}}}en lugar deincógnita2H(metro,)(modnorte){\displaystyle x^{2}\equiv H(m,u){\pmod {n}}}.

En el artículo original, [ 1 ] la función hashH(metro,){\displaystyle H(m,u)}fue escrito con la notacióndo(METROU){\displaystyle C(MU)}, con C para compresión y usando yuxtaposición para denotar concatenación deMETRO{\displaystyle M}yU{\displaystyle U}como cadenas de bits:

Por convención, cuando se desea firmar un mensaje determinado,METRO{\displaystyle M}, [el firmante]PAG{\displaystyle P}agrega como sufijo una palabraU{\displaystyle U}de una longitud acordadak{\displaystyle k}. La elección deU{\displaystyle U}se aleatoriza cada vez que se va a firmar un mensaje. El firmante ahora comprimeMETRO1=METROU{\displaystyle M_{1}=MU}mediante una función hash a una palabrado(METRO1)=do{\displaystyle C(M_{1})=c}, de modo que como un número binariodonorte{\displaystyle c\leq n}

Esta notación ha generado cierta confusión entre algunos autores posteriores que ignoraron lado{\displaystyle C}parte y malinterpretadoMETROU{\displaystyle MU}para significar multiplicación, dando la interpretación errónea de un esquema de firma trivialmente roto. [ 14 ]

Referencias

  1. 1 2 3 4 Rabin, Michael O. (enero de 1979). Firmas digitales y funciones de clave pública tan intratables como la factorización (PDF) (Informe técnico). Cambridge, MA, Estados Unidos: Laboratorio de Ciencias de la Computación del MIT. TR-212.
  2. 1 2 3 4 5 Bellare, Mihir ; Rogaway, Phillip (mayo de 1996). Maurer, Ueli (ed.). La seguridad exacta de las firmas digitales: cómo firmar con RSA y Rabin . Avances en criptología – EUROCRYPT '96 . Notas de clase en ciencias de la computación. Vol. 1070. Zaragoza, España: Springer. págs. 399–416 . doi : 10.1007/3-540-68339-9_34 . ISBN   978-3-540-61186-8.
  3. Diffie, Whitfield ; Hellman, Martin (noviembre de 1976). "Nuevas direcciones en criptografía" (PDF) . IEEE Transactions on Information Theory . 22 (6). IEEE : 644–654 . Bibcode : 1976ITIT...22..644D . doi : 10.1109/TIT.1976.1055638 .
  4. Rivest, RL ; Shamir, A. Shamir ; Adleman, L. (febrero de 1978). Graham, SL; Rivest, RL ; Manacher, GK (eds.). "Un método para obtener firmas digitales y criptosistemas de clave pública" . Communications of the ACM . 21 (2). ACM : 120–126 . doi : 10.1145/359340.359342 .
  5. 1 2 3 4 5 6 Bernstein, Daniel J. (31 de enero de 2008). Firmas RSA y firmas Rabin-Williams: estado del arte (Informe).(Información adicional en https://cr.yp.to/sigs.html )
  6. 1 2 Bernstein, Daniel J. (abril de 2008). Smart, Nigel (ed.). Demostración de seguridad estricta para firmas Rabin-Williams . Avances en criptología – EUROCRYPT 2008. Notas de clase en ciencias de la computación. Vol. 4965. Estambul, Turquía: Springer. págs. 70–87 . doi : 10.1007/978-3-540-78967-3_5 . ISBN   978-3-540-78966-6.
  7. 1 2 3 Especificaciones estándar IEEE para criptografía de clave pública . IEEE Std 1363-2000. Instituto de Ingenieros Eléctricos y Electrónicos. 25 de agosto de 2000. doi : 10.1109/IEEESTD.2000.92292 . ISBN 0-7381-1956-3.
  8. Bellare, Mihir ; Rogaway, Phillip (agosto de 1998). Presentación a IEEE P1393—PSS: Método de codificación demostrablemente seguro para firmas digitales (PDF) (Informe). Archivado del original (PDF) el 13 de julio de 2004.
  9. Halevi, Shai ; Krawczyk, Hugo (agosto de 2006). Dwork, Cynthia (ed.). Fortalecimiento de firmas digitales mediante hash aleatorio (PDF) . Avances en criptología – CRYPTO 2006. Notas de clase en ciencias de la computación. Vol. 4117. Santa Bárbara, CA, Estados Unidos: Springer. págs. 41–59 . doi : 10.1007/11818175_3 . Archivado del original (PDF) el 19 de marzo de 2022.  
  10. Dang, Quynh (febrero de 2009). Hashing aleatorio para firmas digitales (Informe). Publicación especial del NIST. Vol. 800–106 . Departamento de Comercio de los Estados Unidos, Instituto Nacional de Estándares y Tecnología . doi : 10.6028/NIST.SP.800-106 . 
  11. 1 2 Williams, Hugh C. "Una modificación del procedimiento de cifrado de clave pública RSA" . IEEE Transactions on Information Theory . 26 (6): 726– 729. doi : 10.1109/TIT.1980.1056264 . ISSN 0018-9448 . 
  12. Menezes, Alfred J .; van Oorschot, Paul C .; Vanstone, Scott A. (octubre de 1996). «§11.3.4: El esquema de firma de clave pública de Rabin» (PDF) . Manual de criptografía aplicada . CRC Press. págs. 438–442 . ISBN  0-8493-8523-7.
  13. Galbraith, Steven D. (2012). «§24.2: El criptosistema Rabin del libro de texto». Matemáticas de la criptografía de clave pública . Cambridge University Press. págs. 491–494 . ISBN  978-1-10701392-6.
  14. ^ Elia, Michele; Schipani, David (2011). Sobre la firma de Rabin (PDF) . Taller de Seguridad Computacional. Centro de Recerca Matemática, Barcelona, ​​España.
  • Firmas de Rabin-Williams en cr.yp.to