Quelle est la différence entre md5 et sha1 dans cette situation?

on sait que

1.    if   ( md5(a)   == md5(b)   )
2.    then ( md5(a.z) == md5(b.z) )
3.    but  ( md5(z.a) != md5(z.b) )

où les points concaténent les cordes.

EDIT - - -

ici vous pouvez trouver a et b :

http://www.mscs.dal.ca / ~selinger / md5collision /

consultez ces liens:

hexpaste.com/qzNCBRYb/1 - c'est a.md5(a)."kutykurutty"

hexpaste.com/mSXMl13A/1 - c'est b.md5(b)."kutykurutty"

ils partagent le même hachage md5, mais ils sont différents. Mais vous pouvez appeler ces chaînes a' et b' , parce qu'elles ont le même md5.

- - - modifier

ce qui se passe dans la deuxième rangée si nous changeons tous les md5 en sha1 ? So:

1.    if   ( sha1(c)   == sha1(d)   )
2.    then ( sha1(c.z) ?= sha1(d.z) )

Je ne pouvais pas trouver deux cordes différentes avec le même sha1 , c'est pourquoi je demande ceci. Y a-t-il d'autres "règles" intéressantes à propos de sha1 ?

3
demandé sur Michael0x2a 2010-05-31 13:41:20

4 réponses

SHA1 se comportera exactement comme MD5 dans ce scénario.

les deux seules références que j'ai trouvées sont les suivantes -

  1. http://www.iaik.tugraz.at/content/research/krypto/sha1/MeaningfulCollisions.php
  2. http://www.schneier.com/blog/archives/2005/02/sha1_broken.html#c1654 (voir commentaire de David Schwartz)

de le site de L'IAIK -

noter que pour les paires de messages SHA-1 en collision (comme pour toutes les autres fonctions de hachage suivant un principe de conception similaire), il est toujours possible d'ajouter des suffixes aux deux messages tant qu'ils sont identiques.

Je ne pense pas que quelqu'un ait trouvé deux cordes contradictoires pour SHA1, donc c'est surtout une discussion académique. Mais d'après ce que j'ai compris, quand une collision est découverte, il devrait être possible de créer plusieurs autres collisions en utilisant cette propriété.

1
répondu Sripathi Krishnan 2010-06-15 09:34:56

le premier énoncé ne sera valable que pour z spécifiquement calculé pour a et b . Il est vrai que vous pouvez générer une collision MD5, mais ce n'est pas trivial - certains efforts de calcul est nécessaire et certainement vous ne pouvez pas vous attendre à ce que n'importe quel z fera.

actuellement SHA-1 est considéré comme étant cryptographiquement sûr, ce qui signifie que personne n'a trouvé un moyen de générer des collisions SHA-1. Il n'a pas signifie qu'il est vraiment sûr et la génération de collision n'est pas possible - peut-être Il ya une vulnérabilité encore non découverte. Même s'il y a une vulnérabilité, il est très peu probable que les mêmes chaînes forment à la fois une collision MD5 et une collision SHA-1.

1
répondu sharptooth 2010-05-31 10:50:23

Sha1 n'est pas aussi facilement fissuré que md5, mais ils y ont trouvé des vulnérabilités en 2005 je crois.

0
répondu Aaron Harun 2010-06-15 07:01:39

votre exemple est erroné à mon avis. Laissez-moi vous montrer pourquoi:

md5(a) == md5(b)

quand les deux hachages sont identiques, les chaînes correspondantes doivent être identiques (cela pourrait être des collisions, mais ce n'est pas important dans ma thèse), donc nous aurons:

a = b

quand vous concaténez maintenant les deux cordes avec une corde z, vous aurez un.z = b.z et leurs MD5-hashes seront les mêmes, parce qu'ils ont la même chaîne de caractères

md5(a.z) == md5(b.z)

et le hachage md5 sera une troisième fois égal alors que les deux entrées de chaîne sont les mêmes

md5(z.a) == md5(z.b)

et c'est vrai pour md5 et tous les autres algorithmes de hachage alors qu'ils doivent être déterministe et sans effet secondaire.


votre exemple n'aura de sens que si z est une chaîne spéciale qui entraînera une collision. Et donc le comportement de md5 et sha1 sera exactement le même: La chaîne de collision ajoutée entraînera une collision, mais prepended sera différent hashs (mais il ya vraiment très faible probabilité que vous trouvez une chaîne de collision qui sera prependend et ajouté résultat d'une collision, mais aucun exemple n'a encore été trouvé dans la réalité) Vous n'avez pas trouvé thwo chaîne différente avec même sha1 parce que les collisions sont plus difficiles à trouver comme expliqué par les gens avant moi.

0
répondu Tobias P. 2010-06-15 12:06:55