En criptografía , MDC-2 ( Código de detección de modificaciones 2 , a veces llamado Meyer-Schilling, [ cita requerida ] estandarizado en ISO 10118-2) es una función de hash criptográfica . MDC-2 es una función hash basada en un cifrado de bloque con una prueba de seguridad en el modelo de cifrado ideal. [1] La longitud del hash de salida depende del cifrado de bloque subyacente utilizado.
Algoritmo
Por un mensaje dado a hash y una determinada función de cifrado de cifrado de bloque , el algoritmo MDC-2 procede de la siguiente manera. Dejar ser la longitud del bloque, dos constantes diferentes de tamaño . Si donde cada tiene tamaño , luego el hash del mensaje viene dado por:
- por a :
- regreso
Hash MDC-2DES
Cuando MDC-2 usa el cifrado de bloque DES , los hashes MDC-2 de 128 bits (16 bytes) se representan típicamente como números hexadecimales de 32 dígitos .se elige como la cadena de 8 bytes 5252525252525252 y se elige como la cadena de 8 bytes 2525252525252525 (escrito como dígitos hexadecimales). Además, antes de cada iteración, el primer byte A [0] de recalculado como (A [0] & 0x9f) ^ 0x20 y el primer byte B [0] de se vuelve a calcular como (B [0] & 0x9f) ^ 0x20.
A continuación, se muestra una entrada ASCII de 43 bytes (que se rellena con cinco bytes cero, por lo que su longitud es un múltiplo del tamaño del bloque DES de 8 bytes) y el hash MDC-2 correspondiente:
MDC2 ( "El rápido zorro marrón salta sobre el perezoso d og") = 000ed54e093d61679aefbeae05bfe33a
Incluso un pequeño cambio en el mensaje resultará (con probabilidad) en un hash completamente diferente, por ejemplo, cambiando d por c :
MDC2 ("El rápido zorro marrón salta sobre el perezoso c og") = 775f59f8e51aec29c57ac6ab850d58e8
El hash de la cadena de longitud cero es:
MDC2 ("") = 52525252525252522525252525252525
Problemas de patentes
MDC-2 fue cubierto por la patente de EE.UU. 4.908.861 , expedida el 13 de marzo de 1990, aunque presentada por IBM el 28 de agosto de 1987. Debido a los problemas de patentes para apoyar MDC-2 ha sido desactivada en OpenSSL en la mayoría de Linux distribuciones y no está implementada por muchos otras bibliotecas criptográficas. Está implementado en libgcrypt de GPG .
La patente vencería el 28 de agosto de 2007, veinte años después de la fecha de presentación. De hecho, expiró en 2002 [2] porque IBM no pagó la tasa de renovación. La patente canadiense no se renovó y no se otorgó ninguna patente europea, por lo que MDC-2 ahora se puede usar libremente.
Ver también
Notas
- ^ Steinberger, John (23 de junio de 2007). "La intratabilidad de colisión de MDC-2 en el modelo de cifrado ideal" . Avances en Criptología - EUROCRYPT 2007 . Springer-Verlag. págs. 34–51. doi : 10.1007 / 978-3-540-72540-4_3 . Consultado el 31 de enero de 2008 .
- ^ "USPTO - Tasas de mantenimiento de patentes" . Oficina de Patentes de Estados Unidos. 13 de marzo de 2002 . Consultado el 31 de enero de 2008 . Cite journal requiere
|journal=
( ayuda )[ enlace muerto permanente ] (Haga clic en "Datos bibliográficos").