El algoritmo MD2 Message-Digest es una función hash criptográfica desarrollada por Ronald Rivest en 1989. [2] El algoritmo está optimizado para computadoras de 8 bits . MD2 se especifica en IETF RFC 1319. [3] Aunque MD2 ya no se considera seguro, incluso a partir de 2014 [actualizar], permanece en uso en infraestructuras de clave pública como parte de certificados generados con MD2 y RSA . El "MD" en MD2 significa "Message Digest".
General | |
---|---|
Diseñadores | Ronald Rivest |
Publicado por primera vez | Agosto de 1989 [1] |
Serie | MD2, MD4 , MD5 , MD6 |
Detalle | |
Tamaños de resumen | 128 bits |
Rondas | 18 |
Descripción
El valor hash de 128 bits de cualquier mensaje se forma llenándolo a un múltiplo de la longitud del bloque (128 bits o 16 bytes ) y agregando una suma de comprobación de 16 bytes . Para el cálculo real, un bloque auxiliar de 48 bytes y una tabla S de 256 bytes . Las constantes se generaron barajando los números enteros del 0 al 255 usando una variante del algoritmo de Durstenfeld con un generador de números pseudoaleatorios basado en dígitos decimales de π (pi) [3] [4] [ fuente no confiable ] ( no ver nada bajo mi número de la manga ). El algoritmo se ejecuta a través de un bucle donde permuta cada byte en el bloque auxiliar 18 veces por cada 16 bytes de entrada procesados. Una vez que se han procesado todos los bloques del mensaje (alargado), el primer bloque parcial del bloque auxiliar se convierte en el valor hash del mensaje.
Los valores de la tabla S en hexadecimal son:
{0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 0x3D, 0x36, 0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, 0x62, 0xA7, 0x05, 0xF3, 0xC0, 0xC7, 0x73, 0x8C, 0x98, 0x93, 0x2B, 0xD9, 0xBC, 0x4C, 0x82, 0xCA, 0x1E, 0x9B, 0x57, 0x3C, 0xFD, 0xD4, 0xE0, 0x16, 0x67, 0x42, 0x6F, 0x18, 0x8A, 0x17, 0xE5, 0x12, 0xBE, 0x4E, 0xC4, 0xD6, 0xDA, 0x9E, 0xDE, 0x49, 0xA0, 0xFB, 0xF5, 0x8E, 0xBB, 0x2F, 0xEE, 0x7A, 0xA9, 0x68, 0x79, 0x91, 0x15, 0xB2, 0x07, 0x3F, 0x94, 0xC2, 0x10, 0x89, 0x0B, 0x22, 0x5F, 0x21, 0x80, 0x7F, 0x5D, 0x9A, 0x5A, 0x90, 0x32, 0x27, 0x35, 0x3E, 0xCC, 0xE7, 0xBF, 0xF7, 0x97, 0x03, 0xFF, 0x19, 0x30, 0xB3, 0x48, 0xA5, 0xB5, 0xD1, 0xD7, 0x5E, 0x92, 0x2A, 0xAC, 0x56, 0xAA, 0xC6, 0x4F, 0xB8, 0x38, 0xD2, 0x96, 0xA4, 0x7D, 0xB6, 0x76, 0xFC, 0x6B, 0xE2, 0x9C, 0x74, 0x04, 0xF1, 0x45, 0x9D, 0x70, 0x59, 0x64, 0x71, 0x87, 0x20, 0x86, 0x5B, 0xCF, 0x65, 0xE6, 0x2D, 0xA8, 0x02, 0x1B, 0x60, 0x25, 0xAD, 0xAE, 0xB0, 0xB9, 0xF6, 0x1C, 0x46, 0x61, 0x69, 0x34, 0x40, 0x7E, 0x0F, 0x55, 0x47, 0xA3, 0x23, 0xDD, 0x51, 0xAF, 0x3A, 0xC3, 0x5C, 0xF9, 0xCE, 0xBA, 0xC5, 0xEA, 0x26, 0x2C, 0x53, 0x0D, 0x6E, 0x85, 0x28, 0x84, 0x09, 0xD3, 0xDF, 0xCD, 0xF4, 0x41, 0x81, 0x4D, 0x52, 0x6A, 0xDC, 0x37, 0xC8, 0x6C, 0xC1, 0xAB, 0xFA, 0x24, 0xE1, 0x7B, 0x08, 0x0C, 0xBD, 0xB1, 0x4A, 0x78, 0x88, 0x95, 0x8B, 0xE3, 0x63, 0xE8, 0x6D, 0xE9, 0xCB, 0xD5, 0xFE, 0x3B, 0x00, 0x1D, 0x39, 0xF2, 0xEF, 0xB7, 0x0E, 0x66, 0x58, 0xD0, 0xE4, 0xA6, 0x77, 0x72, 0xF8, 0xEB, 0x75, 0x4B, 0x0A, 0x31, 0x44, 0x50, 0xB4, 0x8F, 0xED, 0x1F, 0x1A, 0xDB, 0x99, 0x8D, 0x33, 0x9F, 0x11, 0x83, 0x14}
Hash MD2
Los hash MD2 de 128 bits (16 bytes) (también denominados resúmenes de mensajes ) se representan normalmente como números hexadecimales de 32 dígitos . A continuación, se muestra una entrada ASCII de 43 bytes y el hash MD2 correspondiente:
MD2 ( "El rápido zorro marrón salta sobre el perezoso d og") = 03d85a0d629d2c442e987525319fc471
Como resultado del efecto de avalancha en MD2, incluso un pequeño cambio en el mensaje de entrada resultará (con una probabilidad abrumadora) en un hash completamente diferente. Por ejemplo, cambiando la letra d a c en el mensaje da como resultado:
MD2 ("El rápido zorro marrón salta sobre el perezoso c og") = 6b890c9292668cdbbfda00a4ebf31f05
El hash de la cadena de longitud cero es:
MD2 ("") = 8350e5a3e24c153df2275c9f80692773
Seguridad
Rogier y Chauvaud (1997) describieron colisiones de la función de compresión de MD2 , aunque no pudieron extender el ataque al MD2 completo.
En 2004, se demostró que MD2 era vulnerable a un ataque de preimagen con una complejidad de tiempo equivalente a 2 104 aplicaciones de la función de compresión. [5] El autor concluye que "MD2 ya no puede considerarse una función hash segura unidireccional".
En 2008, MD2 tiene más mejoras en un ataque de preimagen con complejidad de tiempo de 2 73 evaluaciones de funciones de compresión y requisitos de memoria de 2 73 bloques de mensajes. [6]
En 2009, se demostró que MD2 era vulnerable a un ataque de colisión con una complejidad de tiempo de 2 63,3 evaluaciones de función de compresión y requisitos de memoria de 2 52 valores hash. Esto es un poco mejor que el ataque de cumpleaños que se espera que tome 2 evaluaciones de función de compresión 65.5 . [7]
En 2009, se emitieron actualizaciones de seguridad que deshabilitan MD2 en OpenSSL , GnuTLS y Network Security Services . [8]
Ver también
Referencias
- ^ Linn, John (agosto de 1989). "Algoritmo de resumen de mensajes RSA-MD2" . Mejora de la privacidad para el correo electrónico de Internet: Parte III - Algoritmos, modos e identificadores . Rivest, Ron. IETF . segundo. 4.2. doi : 10.17487 / RFC1115 . RFC 1115 . Consultado el 26 de abril de 2021 .
- ^ Laboratorios RSA. "¿Qué son MD2, MD4 y MD5?" . Estándares de criptografía de clave pública (PKCS): PKCS # 7: Estándar de sintaxis de mensajes criptográficos . Laboratorios RSA. Archivado desde el original el 16 de enero de 2017.
- ^ a b Kaliski, Burt (abril de 1992). El algoritmo MD2 Message-Digest . IETF . pag. 3. doi : 10.17487 / RFC1319 . RFC 1319 . Consultado el 22 de noviembre de 2014 .
- ^ "¿Cómo se construye la tabla S de función hash MD2 a partir de Pi?" . Intercambio de pila de criptografía . Stack Exchange. 2 de agosto de 2014 . Consultado el 23 de mayo de 2021 .
- ^ Muller, Frédéric (2004). La función hash MD2 no es unidireccional (PDF) . ASIACRYPT 2004. págs. 214–229. doi : 10.1007 / 978-3-540-30539-2_16 . Consultado el 26 de abril de 2021 , a través de la Asociación Internacional para la Investigación Criptológica .
- ^ Thomsen, Søren S. (2008). "Un ataque de preimagen mejorado en MD2" (PDF) . Cite journal requiere
|journal=
( ayuda ) - ^ Knudsen, Lars R .; Mathiassen, John Erik; Muller, Frédéric; Thomsen, Søren S. (2009). "Criptoanálisis de MD2". Revista de criptología . 23 : 72–90. doi : 10.1007 / s00145-009-9054-1 . S2CID 2443076 .
- ^ CVE - 2009-2409
Otras lecturas
- Knudsen, Lars R .; Mathiassen, John Erik (21 a 23 de febrero de 2005). Ataques de preimagen y colisión en MD2 (PDF) . Cifrado de software rápido (FSE) 2005 . Consultado el 26 de abril de 2021 .
- Rogier, N .; Chauvaud, Pascal (18 a 19 de mayo de 1995). La función de compresión de MD2 no está libre de colisiones . Áreas seleccionadas en criptografía (SAC) 1995, Ottawa, Canadá (registro del taller).
- Rogier, N .; Chauvaud, Pascal (1997). "MD2 no es seguro sin el byte de suma de comprobación". Diseños, Códigos y Criptografía . 12 (3): 245-251.
enlaces externos
- RFC 6149 , MD2 a estado histórico
- Calculadora MD2 en línea a través de HTTPS