Vés al contingut

MD2

De la Viquipèdia, l'enciclopèdia lliure
MD2
General
DissenyadorsRonald Rivest
Data primera publicacióagost 1989
SeriesMD2, MD4, MD5, MD6
Detall
Digest sizes128 bits
Rondes18

L'algoritme MD2 Message-Digest és una funció hash criptogràfica desenvolupada per Ronald Rivest el 1989. L'algoritme està optimitzat per a ordinadors de 8 bits. MD2 s'especifica a l'IETF RFC 1319. Les sigles de "MD" a MD2 signifiquen "Message Digest".[1]

Tot i que MD2 encara no està completament compromès, l'IETF el va retirar a l'estatus "històric" el 2011, al·legant "signes de debilitat". Està obsolet en favor de SHA-256 i altres algoritmes de resum forts.

No obstant això, A 2014 , va romandre en ús en infraestructures de clau pública com a part dels certificats generats amb MD2 i RSA.

Descripció

[modifica]

El valor hash de 128 bits de qualsevol missatge es forma omplint-lo amb un múltiple de la longitud del bloc (128 bits o 16 bytes ) i afegint-hi una suma de verificació de 16 bytes. Per al càlcul real, s'utilitza un bloc auxiliar de 48 bytes i una taula S de 256 bytes. Les constants es van generar barrejant els enters del 0 al 255 utilitzant una variant de l'algoritme de Durstenfeld amb un generador de nombres pseudoaleatoris basat en dígits decimals de π (pi)[2] (vegeu el número que no tinc amagat). L'algoritme s'executa a través d'un bucle on permuta cada byte del bloc auxiliar 18 vegades per cada 16 bytes d'entrada processats. Un cop s'han processat tots els blocs del missatge (allargat), el primer bloc parcial del bloc auxiliar esdevé el valor hash del missatge.[3]

Els valors de la taula S en hexadecimal són:

{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

[modifica]

Els hashes MD2 de 128 bits (16 bytes) (també anomenats resums de missatges ) es representen normalment com a nombres hexadecimals de 32 dígits. El següent exemple mostra una entrada ASCII de 43 bytes i el hash MD2 corresponent:[4]

MD2("La guineu marró, ràpida, salta per sobre del d mandrós") = 03d85a0d629d2c442e987525319fc471

Com a resultat de l' efecte d'allau a MD2, fins i tot un petit canvi en el missatge d'entrada (amb una probabilitat aclaparadora) donarà lloc a un hash completament diferent. Per exemple, canviant la lletrad ac al missatge dóna com a resultat:

MD2("La guineu marró, ràpida, salta per sobre del mandrós c ") = 6b890c9292668cdbbfda00a4ebf31f05

El hash de la cadena de longitud zero és:

MD2("") = 8350e5a3e24c153df2275c9f80692773

Seguretat

[modifica]

Rogier i Chauvaud van presentar el 1995 col·lisions de la funció de compressió de MD2, tot i que no van poder estendre l'atac a tot MD2. Les col·lisions descrites es van publicar el 1997.

El 2004, es va demostrar que MD2 era vulnerable a un atac de preimatge amb una complexitat temporal equivalent a 2104 aplicacions de la funció de compressió. L'autor conclou: "MD2 ja no es pot considerar una funció hash unidireccional segura".

El 2008, MD2 va introduir millores addicionals en un atac de preimatge amb una complexitat temporal de 273 avaluacions de funcions de compressió i uns requisits de memòria de 273 blocs de missatges.

El 2009, es va demostrar que MD2 era vulnerable a un atac de col·lisió amb una complexitat temporal de 263.3 avaluacions de funcions de compressió i uns requisits de memòria de 252 valors hash. Això és lleugerament millor que l'atac d'aniversari, que s'espera que requereixi 2 avaluacions de funció de compressió 265.5.

El 2009, es van publicar actualitzacions de seguretat que desactivaven MD2 a OpenSSL, GnuTLS i Network Security Services.

Referències

[modifica]
  1. «The MD2 hash function» (en anglès). [Consulta: 9 maig 2025].
  2. «How is the MD2 hash function S-table constructed from Pi?» (en anglès). Cryptography Stack Exchange. Stack Exchange, 02-08-2014. [Consulta: 23 maig 2021].
  3. Muller, Frédéric «The MD2 Hash Function Is Not One-Way» (en anglès). springer.com. Springer [Berlin, Heidelberg], 2004, pàg. 214–229. DOI: 10.1007/978-3-540-30539-2_16.
  4. «MD2 Hash Online Generator | LambdaTest» (en anglès americà). [Consulta: 9 maig 2025].