Esquema probabilístico de la firma de Rabin

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 6 de febrero de 2019; las comprobaciones requieren 8 ediciones .

El esquema de firma probabilística de Rabin es un  método de firma digital propuesto originalmente por Michael O. Rabin en 1979 [1] . El esquema de firma de Rabin fue uno de los primeros esquemas de firma digital propuestos y es el único que relaciona directamente la complejidad de la falsificación de firma con el problema de factorización de enteros . El algoritmo característico de Rabin no es adecuado en un modelo de cálculo aleatorio de Oracle que supone que el problema de factorización de enteros es indecidible. El esquema de la firma Rabin también está estrechamente relacionado con el criptosistema Rabin .

El algoritmo original

El algoritmo original no utiliza funciones hash y se considera poco fiable. [2]

Algoritmo seguro y simplificado

El algoritmo seguro y protegido [3] se basa en una función hash resistente a colisiones .

En la mayoría de las vistas, el algoritmo se simplifica eligiendo . Se supone que la función hash con el número de bits de salida es un oráculo aleatorio y el algoritmo funciona de la siguiente manera:

Generación de claves
  1. Se eligen números primos , cada uno aproximadamente del tamaño de un bit, y mod 4 es igual a 3. A continuación, se calcula el producto .
  2. Открытым ключом в этом случае является .
  3. La clave privada será el par .
Firma
  1. Para firmar un mensaje , se selecciona y calcula un número aleatorio .
  2. Si no es un módulo cuadrado , se elige un nuevo valor .
  3. Después de eso, se encuentra un valor de x, que es la solución a la ecuación .
  4. La firma del mensaje será una pareja .
Examen
  1. Dado el mensaje y la firma, el verificador realiza cálculos y luego verifica que sean iguales.

Notas

En algunas implementaciones del algoritmo, el valor no se usa. En cambio, es posible terminar multiplicando el valor hash por dos números a o b con propiedades y , donde denota el símbolo de Legendre . Entonces, para cualquier módulo, solo uno de los cuatro números será un módulo cuadrado , y es este número el que se elige para firmar digitalmente el mensaje.

Para simplificar aún más el algoritmo, debe cambiar el mensaje hasta que la firma pase la verificación.

\\ Función de cambio de mensaje para verificación de firma def root ( m : str , p , q ): while True : x = h ( m ) sig = pow ( p , q - 2 , q ) * p * pow ( x , ( q + 1 ) / 4 , q ) sig = ( pow ( q , p - 2 , p ) * q * pow ( x , ( p + 1 ) / 4 , p ) + sig ) % ( nrabin ) si ( sig * sig ) % nrabin == x : print ( "Escribir mensaje extendido en el archivo m.txt" ) f = open ( 'm.txt' , 'w' ) f . escribir ( m ) f . cerrar () romper m = m + ' ' volver sig

Seguridad

Si la función hash es un oráculo aleatorio, es decir, su salida es realmente aleatoria en , entonces falsificar una firma para cualquier mensaje es tan difícil como calcular la raíz cuadrada de un elemento aleatorio a partir de .

Para probar [4] que obtener una raíz cuadrada aleatoria es tan difícil como la factorización, debe notarse que en la mayoría de los casos hay cuatro raíces cuadradas diferentes, ya que tiene dos módulos de raíces cuadradas y dos módulos de raíces cuadradas , y cada par da un módulo de raíz cuadrada por el teorema chino del resto . Algunas de las raíces pueden tener el mismo valor, pero la probabilidad de que esto ocurra es extremadamente pequeña.

Si es posible encontrar dos raíces cuadradas diferentes tales que pero , esto conduce inmediatamente a una factorización de , ya que los factores primos son divisibles por , pero no divisibles. Entonces el cálculo dará como resultado una factorización no trivial .

Ahora se supone que existe un algoritmo eficiente para encontrar al menos una raíz cuadrada. Luego se elige un módulo aleatorio y se eleva al cuadrado , después de utilizar el algoritmo se saca la raíz cuadrada del módulo y se obtiene una nueva raíz , que tiene una probabilidad del 50% .

Véase también

Notas

  1. Firmas digitalizadas y funciones de clave pública tan intratables como la factorización  (enlace no disponible)
  2. | Michele Elia, Davide Schipani, Sobre la firma de Rabin c.1-3 . Consultado el 13 de diciembre de 2019. Archivado desde el original el 22 de septiembre de 2019.
  3. | Michele Elia, Davide Schipani, Sobre la firma de Rabin c.5-9 . Consultado el 13 de diciembre de 2019. Archivado desde el original el 22 de septiembre de 2019.
  4. Firmas digitalizadas y funciones de clave pública tan intratables como la factorización c.15-19  (enlace no disponible)

Literatura

  • Michele Elia, Davide Schipani, Sobre la firma de Rabin , 2011 PDF
  • Buchmann, Johannes. Einführung in die Kryptographie . segunda edicion. Berlín: Springer, 2001. ISBN 3-540-41283-2
  • Menezes, Alfred; van Oorschot, Paul C.; y Vanstone, Scott A. Manual de criptografía aplicada .
  • Rabin, Miguel. Firmas digitalizadas y funciones de clave pública tan intratables como la factorización (en PDF). Laboratorio de Ciencias de la Computación del MIT, enero de 1979.
  • Scott Lindhurst, Un análisis del algoritmo de Shank para calcular raíces cuadradas en campos finitos. en R Gupta y KS Williams, Proc 5th Conf Can Nr Theo Assoc, 1999, vol 19 CRM Proc & Lec Notes, AMS, agosto de 1999.
  • R Kumanduri y C Romero, Number Theory w/ Computer Applications, Alg 9.2.9, Prentice Hall, 1997. Una probabilística para la raíz cuadrada de un residuo cuadrático módulo a primo.

Enlaces


Fuente

Smart N. Criptografía. - M.: Technosfera, 2005. S. 525.