En criptografía , MDC-2 ( Código de Detección de Modificaciones 2 , a veces llamado Meyer-Schilling, estandarizado en ISO 10118-2) es una función hash criptográfica . MDC-2 es una función hash basada en un cifrado de bloques con una prueba de seguridad en el modelo de cifrado ideal. [ 1 ] La longitud del hash de salida depende del cifrado de bloques subyacente utilizado.
Algoritmo
Dejarser una función de cifrado por bloques con entradas(texto plano) y(clave), cada uno de longitud, calculando un texto cifrado de longitud tambiénPara un mensaje dadoPara calcular el hash, el algoritmo MDC-2 procede de la siguiente manera. Seasean dos constantes de tamaño diferentes. Dejardonde cadatiene tamaño, luego el hashdel mensaje es dado por:
- paraa:
- devolver.
Aquí elestán divididos por la mitadetc., que tienen la longitud.
Hashes MDC-2DES
Cuando MDC-2 utiliza el cifrado de bloques DES , los hashes MDC-2 de 128 bits (16 bytes) se representan normalmente como números hexadecimales de 32 dígitos .se elige como la cadena de 8 bytes 5252525252525252 yse elige como la cadena de 8 bytes 2525252525252525 (escrita como dígitos hexadecimales). Además, antes de cada iteración, el primer byte A[0] derecalculado como (A[0] & 0x9f) ^ 0x40 y el primer byte B[0] dese recalcula como (B[0] & 0x9f) ^ 0x20.
A continuación se muestra una entrada ASCII de 43 bytes (que se rellena con cinco bytes cero para que su longitud sea 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 perro perezoso ") = 000ed54e093d61679aefbeae05bfe33aIncluso un pequeño cambio en el mensaje dará como resultado (con probabilidad) un hash completamente diferente, por ejemplo, cambiando da c:
MDC2("El rápido zorro marrón salta sobre el perezoso c og") = 775f59f8e51aec29c57ac6ab850d58e8El hash de la cadena de longitud cero es:
MDC2("") = 525252525252525252525252525252525Cuestiones de patentes
MDC-2 estaba protegido por la patente estadounidense 4,908,861 , emitida el 13 de marzo de 1990, pero solicitada por IBM el 28 de agosto de 1987. Debido a problemas con la patente, la compatibilidad con MDC-2 se ha deshabilitado en OpenSSL en la mayoría de las distribuciones de Linux y no está implementada en muchas otras bibliotecas criptográficas. Está implementada en libgcrypt de GPG .
La patente debía expirar el 28 de agosto de 2007, veinte años después de la fecha de presentación. En realidad, expiró en 2002 [ 2 ] porque IBM no pagó la tasa de renovación. La patente canadiense no se renovó y no se concedió ninguna patente europea, por lo que MDC-2 ahora puede utilizarse libremente.
Véase también
Notas
- ↑ Steinberger, John (23 de junio de 2007). "La intratabilidad de colisiones 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 .
- ↑ "Tasas de mantenimiento de la patente 4,908,861" . Sitio web de tasas de mantenimiento de la USPTO . Oficina de Patentes de los Estados Unidos. 13 de marzo de 2002. Consultado el 16 de septiembre de 2025 .
- funciones hash criptográficas