Vés al contingut

MD4

De la Viquipèdia, l'enciclopèdia lliure
MD4
General
DissenyadorsRonald Rivest
Data primera publicacióoctubre 1990
SeriesMD2, MD4, MD5, MD6
Detall de xifratge
Digest sizes128 bits
Mida del bloc512 bits
Rondes3

L'algoritme MD4 Message-Digest és una funció hash criptogràfica desenvolupada per Ronald Rivest el 1990.[1] La longitud del resum és de 128 bits. L'algoritme ha influït en dissenys posteriors, com ara els algoritmes MD5, SHA-1 i RIPEMD. Les sigles "MD" signifiquen "Message Digest".

La seguretat de l'MD4 s'ha vist greument compromesa. El primer atac de col·lisió complet contra MD4 es va publicar el 1995, i des de llavors s'han publicat diversos atacs més nous. A partir del 2007, un atac pot generar col·lisions en menys de dues operacions de hash MD4.[2] També existeix un atac teòric de preimatge.

Una variant de MD4 s'utilitza a l'esquema URI ed2k per proporcionar un identificador únic per a un fitxer a les populars xarxes P2P eDonkey2000 / eMule. MD4 també era utilitzat pel protocol rsync (abans de la versió 3.0.0).

MD4 s'utilitza per calcular resums de claus derivats de contrasenyes NTLM a Microsoft Windows NT, XP, Vista, 7, 8, 10 i 11.[3]

Una operació MD4. MD4 consta de 48 d'aquestes operacions, agrupades en tres rondes de 16 operacions. F és una funció no lineal; s'utilitza una funció a cada ronda. M i denota un bloc de 32 bits de l'entrada del missatge i K i denota una constant de 32 bits, diferent per a cada ronda.

Seguretat

[modifica]

Den Boer i Bosselaers van demostrar les debilitats de l'MD4 en un article publicat el 1991.[4] El primer atac de col·lisió amb MD4 de ronda completa va ser descobert per Hans Dobbertin el 1995, i en aquell moment només va trigar uns segons a dur-se a terme.[5] A l'agost de 2004, Wang et al. van trobar un atac de col·lisió molt eficient, juntament amb atacs a dissenys de funcions hash posteriors de la família MD4/MD5/SHA-1/RIPEMD. Aquest resultat va ser millorat posteriorment per Sasaki et al., i generar una col·lisió ara és tan barat com verificar-la (uns quants microsegons).[6]

El 2008, Gaëtan Leurent també va trencar la resistència de preimatge de MD4, amb un atac de 2102[7] El 2010, Guo et al. van publicar un atac de 299.7.[8]

El 2011, la RFC 6150 va declarar que la RFC 1320 (MD4) és històrica (obsoleta).

Hash MD4

[modifica]

Els hash MD4 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 MD4 corresponent:

MD4 ("La guineu marró, ràpida, salta per sobre del d mandrós") = 1bee69a46ba811185c194762abaeae90

Fins i tot un petit canvi en el missatge (amb una probabilitat aclaparadora) donarà lloc a un hash completament diferent, per exemple, canviant d per c :

MD4 ("La guineu marró, ràpida, salta per sobre del mandrós c ") = b86e130ce7028da59e672d56ad0113df

El hash de la cadena de longitud zero és:

MD4("") = 31d6cfe0d16ae931b73c59d7e0c089c0

Vectors de prova MD4

[modifica]

Els següents vectors de prova es defineixen a RFC 1320 (l'algoritme MD4 Message-Digest)

MD4 ("") = 31d6cfe0d16ae931b73c59d7e0c089c0 MD4 ("a") = bde52cb31de33e46245e05fbdbd6fb24 MD4 ("abc") = a448017aaf21d8525fc10ae87aa6729d MD4 ("resum del missatge") = d9130a8164549fe818874806e1c7014b MD4 ("abcdefghijklmnopqrstuvwxyz") = d79e1c308aa5bbcdeea8ed63df412da9 MD4 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = 043f8582f241db351ce627e153e7f0e4 MD4 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = e33b4ddc9c364f2b4ddc9c364f2

Exemple de col·lisió MD4

[modifica]

Sigui:

k1 = 839c7a4d7a92cb 5 d b 9eea5a7573c8a74deb366c3dc20a083b69f5d2a3bb3719dc69891e9f95e809fd7e8b8d3 45e51fe39708bf9427e9c3e8b9 k2 = 839c7a4d7a92cb d c 2 9eea5a7573c8a74deb366c3dc20a083b69f5d2a3bb3719dc69891e9f95e809fd7e8b8cba63182 45e51fe39708bf9427e9c3e8b9

MD4(k1) = MD4(k2) = 4d7e6a1defa93d2dde05b45d864c429b

Tingueu en compte que dos dígits hexadecimals de k1 i k2 defineixen un byte de la cadena d'entrada, la longitud de la qual és de 64 bytes.

Referències

[modifica]
  1. «What are MD2, MD4, and MD5?» (en anglès). Public-Key Cryptography Standards (PKCS): PKCS #7: Cryptographic Message Syntax Standard: 3.6 Other Cryptographic Techniques: 3.6.6 What are MD2, MD4, and MD5?. RSA Laboratories. Arxivat de l'original el 2011-09-01. [Consulta: 29 abril 2011].
  2. Yu Sasaki; etal https://www.iacr.org/, 2007.
  3. «5.1 Security Considerations for Implementors» (en anglès). [Consulta: 21 juliol 2011].
  4. Bert den Boer, Antoon Bosselaers «Còpia arxivada». https://web.archive.org/, 1991. Arxivat de l'original el 2003-05-23 [Consulta: 9 maig 2025].
  5. Hans Dobbertin Journal of Cryptology, 11, 4, 23-10-1995, pàg. 253–271. DOI: 10.1007/s001459900047 [Consulta: free].
  6. Yu Sasaki; etal https://www.iacr.org/, 2007.
  7. Gaëtan Leurent Fast Software Encryption, 15th International Workshop, FSE 2008, 5086, 10-02-2008, pàg. 412-428. DOI: 10.1007/978-3-540-71039-4_26.
  8. Guo, Jian. «Advanced Meet-in-the-Middle Preimage Attacks: First Results on Full Tiger, and Improved Results on MD4 and SHA-2». A: Advances in Cryptology - ASIACRYPT 2010 (en anglès). 6477, 2010, p. 56–75 (Lecture Notes in Computer Science). DOI 10.1007/978-3-642-17373-8_4. ISBN 978-3-642-17372-1.