El siguiente es un artículo que publicó sobre el principio de craqueo en la Sociedad Criptozoológica Internacional.
Conflicto de funciones hash
Conflicto de funciones hash
MD4, MD5, HAVAL-128 y RIPEMD
Wang Xiaoyun 1, Deng Guofeng2, Lai3, Yu Hongbo1
Escuela de Matemáticas y Ciencias de Sistemas, Universidad de Shandong, Jinan 250100, China1
Instituto de Software, Academia China de Ciencias, Beijing 100080
Departamento de Ingeniería y Ciencias de la Computación, Universidad Jiao Tong de Shanghai, Shanghai, China
xywang@sdu.edu.cn1
Revisado el 17 de agosto de 2004
1 conflicto MD5
MD5 es una función hash diseñada por Ron Rivest [9] y es una versión mejorada de MD4 [8]. En 1993, Boer y Antoon Bosselaers [1] descubrieron una pseudocolisión de MD5, que consta de dos mensajes idénticos con diferentes conjuntos de valores iniciales. H. Dobbertin[3] descubrió una colisión de inicio libre que constaba de dos mensajes diferentes de 512 bits con un valor inicial seleccionado de 0 V I.
ED BA x C B F x C B AC x A V I 763 4 0 D, 97 62 5 0, 341042 3 0x B, 2375 12 0: 0 0 0 0 0
Nuestro ataque Muchos Se pueden encontrar conflictos reales que consisten en dos mensajes de 1024 bits con el mensaje original
Valor inicial de MD5 0 IV:
10325476 0, 98 0, 89 0 67452301 0 0: 0 0 0 0 0 x D malo cfe x C xefcdab, B x A IV
) 0, 2,..., 2,..., 2, 0, 0, 0, 0 (, 31 15 31
1 1
) 0, 2,..., 2,..., 2, 0, 0, 0, 0 (, 31 15 31 p >
2 2 C C N N i i
(Valores distintos de cero en las posiciones 4, 11 y 14)
En la medida
), (5 ), (5 i i N M MD N M MD.
En el IBM P690, se tarda aproximadamente una hora en encontrar tales M y M, después de eso, solo se necesitan 15 segundos para llegar a 5
minutos para encontrar i N e i N, de modo que (i N M y), (i N M producirán el mismo hash con el mismo valor. Además,
Nuestro ataque es válido para cualquier inicial dado valor.
A continuación se muestran dos pares de mensajes conflictivos de 1024 bits; ambos ejemplos tienen la misma primera
mitad de 512 bits.
M
2dd 31d 1 C4 eee 6 c 5 69 a3d 69 5 cf 9 af 98 87 b5 ca 2f ab 7e 4612 3e 580440 897 ffbb 8
634 ad 55 2b3f 409 8388 e 483 5a 417125 e 8255108 9 fc9 CDF 7 f2bd 1dd 9 5b3c 3780
X1
N1
d 11d0b 96 9c7b 41dc f 497 d8e 4d 555655 a c79a 7335 cf debf 0 66f 12930 8fb 109d 1797 f 2775 eb5cd 530 baade 822 5c 15cc 79 ddcb 74 ed 6 DD 3c 55 f d 80 a 9 bb 1 E3 a7 cc 35< / p>
M0
2dd 31d 1 C4 eee 6 c 5 69 a3d 69 5 cf 9 af 98 7 b5 ca 2f ab 7e 4612 3e 580440 897 ffbb 8
634 ad 55 2b3f 409 8388 e 483 5a 41f 125 e 8255108 9 fc9 CDF 7 72bd 1dd 9 5b3c 3780
X1
N1
d 11d0b 96 9c7b 41dc f 497 d8e 4d 555655 a 479 a 7335 cf debf 0 66f 12930 8fb 109d 1797 f 2775 eb5cd 530 baade 822 5c 154 c 79 ddcb 74 ed 6 DD 3c 55 f 580 a9 bb 1 E3 a7 cc 35
h 9603161f f 41 fc 7 ef 9 f 65 ffbc a 30 f 9 DBF
M
2dd 31d 1 C4 eee 6 c 5 69 a3d 69 5 cf 9 af 98 87 b5 ca 2f ab 7e 4612 3e 580440 897 ffbb 8
634 ad 55 2b3f 409 8388 e 483 5a 417125 e 8255108 9 fc9 CDF 7 f2bd 1dd 9 5b3c 0
X2
N2
313 e82d 8 5b8f 3456 d4ac 6 DAE c 619c 936 b4e 253 DD FD 03 da 87 6633902 A0 CD 48d 2
42339 Fe 9 e 87 e 570 f 70 b 654 ce 1 e0da 880 aC 2198 c 6 9383 A8 b 6 2b 65 f 996 702 af 76f
M0
2dd 31d 1 C4 eee 6 c 5 69 a3d 69 5 cf 9 af 98 7 b5 ca 2f ab 7e 4612 3e 580440 897 ffbb 8
634 ad 55 2b3f 409 8388 e 483 5a
41f 125 e 8255108 9 fc9 CDF 7 72bd 1dd 9 5b3c 3780
313 e82d 8 5b8f 3456 d4ac 6 DAE c 619c 936 34e 253 DD FD 03 da 87 6633902 A0 CD 48d
42339 Fe 9 e87e 570 f 70 b 654 ce 1e0d 2880 BC 2198 c 6 9383 A8 b 6 ab65f 996 702 af 76f
h8 d5e 7019 6324 c 015 715 d6b 58 61804 e08 > Tabla 1 Dos pares de conflictos de MD5
Dos colisiones de Haval-128
Se planea que Haval esté en [10]. HAVAL es un algoritmo hash que puede comprimir 3,4
y producir huellas dactilares con una longitud de 128, 160, 192 o 224 bits.
P. R. Kasselman y W. T. Penz Horn[7] llevaron a cabo un ataque a una versión simplificada del Haval
que constaba de las rondas finales del Haval-128. Superamos los cálculos de Haval de que solo quedaban unas 26 personas a plena capacidad del Haval-128
. Aquí damos dos ejemplos de colisiones Harvard-128, entre las cuales
) 0,..., 0, 2,....2,0,0,0,2(,8 12 1
Tener valores distintos de cero en las posiciones 0, 11, 18 y 31,...2, 1, 0 i, such)()(MhaveMhave.
M1
6377448 b d 9 e 59 f 18 F2 aa 3c bb d6cb 92 ba ee 544 a 44 879 fa 576 1ca 34633 76 ca 5d 4 f
a 67 A8 a 42 8d 3 ADC 8 b b 6 e3d 814 5630998d 86 ea 5 DCD a 739 ae7b 54 fd8e 32 acbb2b 36
38183 c9a b67a 9289 c 47299 b 2 27039 ee5 DD 555 e 14 839018d 8 aa bbd 9 c 9d 78fc 632
fff 4b 3a 7 400000096 7 f 466 AAC fffffbc 0 5f 4016 D2 5f 4016d 0 12 e2b 0 f 4307 f 87
M1
6377488 b d 9 e 59 f 18 f 2 aa 3c bb d6cb 92 ba ee 544 a 44 879 fa 576 1ca 34633 76 ca 5d 4 f
a 67 A8 a 42 8d 3 ADC 8 b b 6 e3d 814d 630998d 86 ea 5 DCD a 739 ae7b 54 fd8e 32 acbb 2 b 36
38183 c9a b67a 9289 c 47299 ba 27039 ee5 DD 555 e 14 839018d 8 aa bbd 9 c 9d c 632
fff 4b 3a 7 400000096 7 f 466 AAC fffffbc 0 5f 4016 D2 5f 4016d 0 12 e2b 0 f 4307 f 87
h 95b 5621c ca 62817a a 48 dacd 8 6d2b 54 BF
Oferta monetaria dos
6377448 b d 9 e 59 f 18 F2 aa 3c bb d6cb 92 ba ee 544 a 44 879 fa 576 1ca 34633 76 ca 5d 4 f
a 67 A8 a 42 8d 3 ADC 8 b b 6 e3d 814 5630998d 86 ea 5 DCD a 739 ae7b 54 fd8e 32 acbb2b 36
38183 c9a b67a 9289 c 47299 b 2 27039 ee5 DD 555 e 14 018d 8aabbd 9c 9d 78fc 632
fff 4b 3a 7 400000096 7 f 466 AAC fffffbc 0 5f 4016 D2 5f 4016d 0 12 e2b 0 f5b 16963
6377488 b d 9 e 59 f 18 f 2 aa 3c bb d6cb 92 baee 544 a 44 879 fa 576 1ca 34633 76 ca 5d 4 f
a 67 A8 a 42 8d 3 ADC 8 b b 6 e3d 814d 630998d 86 ea 5 DCD a 739
ae7b 54 fd8e 32 acbb 2 b 36
38183 c9a b67a 9289 c 47299 ba 27039 ee5 DD 555 e 14 839018d 8 aa bbd 9 c 9d 78fc 632
fff 4b 3a 7 40 0096 7 f 466 AAC fffffbc 0 5f 4016 D2 5f 4016d 0 12 e2b 0 f5b 16963
h b0e 99492 d64eb 647 5149 ef 30 4293733 c
Tabla 2 Dos pares de colisiones, donde i =11 , estos dos ejemplos solo se diferencian en la última palabra
3 conflictos de MD4
MD4 fue diseñado por R. L. Rivest[8]. El ataque de H. Dobbertin en Eurocrypto'96[2] se puede encontrar con una probabilidad de 1/222. Nuestro ataque se puede calcular manualmente para encontrar la colisión, entonces
)0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2 2, 2, 0( ,16 31 28 31 C C M M
y) (4 ) ( 4 M MD M MD.
M1
4d 7 a9 c 83 56 CB 927 a b 9 d5a 578 57 a 7 a5 ee de 748 a3 c DCC 366 B3 b 683 a 020 3 B2 a5 d 9 f
c69d 71 B3 f9e 99198 d79f 805 e a 63 bb 2e 8 45 dd8e 31 97e 31 Fe 5 2794 bf08 b 9 E8 c3e 9
M1
4d 7 a9 C 83 D6CB 927 A 29 D5A 578 57 A7 A5 EE DE 748 A3 C DCC 366 B3 B683A 020 3 B2 A5 D 9 F
C69D 71 B3 F9E 99198 D79F 805 E A 63 BB 2E 8 45 DC8E 31 97E 31 Fe 5 2794 bf08 b 9e 8 c3e 9
h 5f5c 1a0d 71b 36046 1b 5435 da 9b0d 807 a
Oferta monetaria dos
4d 7 a9 c 83 56 CB 927 a b 9 d5a 578 57 a 7 a5 ee de 748 a3 c DCC 366 B3 b 683 a 020 3 B2 a5 d 9 f
c69d 71 B3 f9e 99198 d79f 805 e a 63 bb 2e 8 45 dd8e 31 97e 31 Fe 5 f 713c 240 a7b 8 cf 69
4d 7 a9 c 83 d6cb 927 a 29 d5a 578 57 a7 a5 ee de 748 a3 c DCC 366 B3 b683a 020 3 B2 a5 d 9 f
c69d 71 B3 f9e 99198 d79f 805 e a 63 bb 2e 8 45 dc8e 31 97e 31 Fe 5 f 713c 240 a7b 8 cf 69
h e0f 76122 c 429 c 56c reflujo 5 e 256 b 809793
Dos pares de colisiones en la tabla MD4
4 colisiones en RIPEMD
RIPEMD fue desarrollado para el proyecto RIPE (evaluación de primitivas de integridad RACE, 1988 -1992 ). En 1995, H. Dobbertin demostró que una versión reducida del RIPEMD con dos ruedas no está exenta de colisiones [4]. Mostramos
que el RIPEMD completo tampoco está libre de conflictos.
Los siguientes son dos pares de conflictos para RIPEMD:
)2,0,0,0,0,2 2,0,0,0,0,0,0,2,0,0,0 ,0 (, 31 31 1 20 ' C C M M I
M1
579 faf8e 9 ECF 579 574 a6 ABA 78413511 a2b 410 a4 ad 2 f 6 c 9 f b 56202 c 4d 757911
bde aae 7 78 BC 91 F2 47 BC 6d 7d 9 abdd 1 a45d 2015 817104 ff 264758 A8 61064 ea 5
M1
579 faf8e 9 ECF 579 574 a6 ABA 78513511 a2b 410 a4 ad 2 f 6 c 9 f b 56202 c 4d 757911
bde aae 7 78 BC 91 F2 c 7c 06d 7d 9 abdd 1 a45d 2015 817104 ff 8 A8 y 1064 ea 5
h 1 fab 152 1654 a 31b 7a 33776 a 9e 968 ba 7
Oferta monetaria dos
579 faf8e 9 ECF 579 574 a6 ABA 78413511 a2b 410 a4 ad 2 f 6 c 9 f b 56202 c 4d 757911
bde aae 7 78 aC 91 F2 47 aC 6d 7d 9 abdd 1 a45d 2015 a0a 504 ff b 18d 58 a 8 e 70 c 66 b 6
579 faf8e 9 ECF 579 574 a6 ABA 78513511 a2b 410 a4 ad 2 f 6 c 9 f b 56202 c 4d 757911
bde aae 7 78 BC 91 F2 c 7c 06d 7d 9 abdd 1 a45d 2015 a0a 504 ff b 18d 58 a 8 670 c66b 6
h 1f2c 159 f 569 b 31 a6 dfcaa 51a 25665 d24
Tabla de colisiones RIPEMD
5 Comentarios p>
Además de las funciones hash anteriores que desciframos, existen otras funciones hash que no tienen la seguridad ideal. Para
Por ejemplo, una colisión para SHA-0 [6] se puede encontrar con aproximadamente 240 cálculos del algoritmo SHA-0 y una colisión.
Para Haval-160 se puede encontrado con probabilidad 1/ 232 encontrado.
Tenga en cuenta que los mensajes y todos los demás valores de este artículo constan de palabras de 32 bits, siendo el byte más a la izquierda de cada palabra de 32 bits
el byte más significativo.
1 B. den Boer, Antoon Bosselaers, Colisión de funciones de compresión MD5, Eurocrypto, 93.
2 H. Dobbertin, Criptoanálisis de MD4, Fast Software Encryption, LNCS 1039, d., Springer-Verlag, 1996.
3 H. Dobbertin, Criptoanálisis de la compresión MD5, presentado en la conferencia final EurocrZpt'96.
4 Hans Dobbertin, RIPEMD con compresión de dos ruedas no está libre de colisiones, Journal of Cryptometry 10(1),
1997.
5 H. Dobbertin, A. Bosselaers, B. Preneel, "rip memd-160: una versión mejorada de rip mmd", Fast
Software Encryption, LNCS 1039, editado por D. Gollmann. , Springer-Verlag, 1996, págs. 71-82.
6 FIPS 180-1, Secure Hashing Standard, NIST, Departamento de Comercio de EE. UU., Washington, DC, 1995.
7 Wang Xiaoming, Wang Xiaoming, Li Xiaoming, Criptoanálisis informático, 2000, 11(2)
Correspondencia, 2000.
8 R. L. Rivest, Algoritmo de resumen de mensajes MD4, Solicitud de comentarios (RFC) 1320, Actividad en Internet
Comité del Grupo de Trabajo sobre Privacidad en Internet, abril de 1992.
9 R. L Rivest, Algoritmo de resumen de mensajes MD5, Solicitud de comentarios (RFC) 1321, Actividad en Internet
Junta directiva del Grupo de trabajo sobre privacidad en Internet, abril de 1992.3
10 Y. Zheng, J. Pieprzyk, J. Seberry, HAVAL - Un algoritmo hash unidireccional con longitud de salida variable,
Auscrypto '92.