9
votes

Est-il possible de créer un fichier forgé qui a les mêmes checksums utilisant deux algorithmes différents?

J'étais un peu inspiré de cette entrée de blog http://blogs.technet.com/dmelanchthon/archive/2009/07/23/windows-7-rtm.aspx (allemand)

La notion actuelle est que MD5 et SHA1 sont les deux un peu cassés . Pas facilement et rapide, mais au moins pour MD5 dans la gamme d'une possibilité pratique. (Je ne suis pas du tout un expert crypto, alors peut-être que je me trompe dans des choses comme ça).

Alors je me suis demandé s'il serait possible de créer un fichier A 'qui a le Même taille , la même somme MD5 MD5 , et la même somme SHA1 SHA1 comme fichier original A.

premier, serait-ce que ce serait possible du tout?

second, serait-il possible en réalité, avec le matériel / logiciel actuel?

sinon, ne serait pas le moyen le plus simple de fournir l'assurance de l'intégrité de l'intégrité de l'intégrité de l'intégrité de l'intégrité de l'intégrité de l'intégrité un fichier à utiliser toujours deux algorithmes différents, même s'ils ont une sorte de faiblesse?

Mise à jour :

juste pour clarifier: l'idée est d'avoir Un fichier A et un fichier A 'qui remplie les conditions: xxx


2 commentaires

C'est actuellement une idée intéressante, semblable au raisonnement original derrière Des3. MD5 est quelque peu cassé, SHA1 est quelque peu cassé, la probabilité de trouver une collision jointe serait p (md5sum (a) == md5sum (A ')) * P (Sha1sum (a) == Sha1sum (A ')) Comme ils sont mutuelles indépendants, ce qui signifie vraiment petit. Mais pour le partage de fichiers, je suppose que c'est trop de travail pour trop d'un petit gain, comme vous pouvez le télécharger le fichier de la source officielle. Pour une vérification rapide MD5 est assez bon.


Hélas, les deux algorithmes proviennent de la même famille et ne sont donc pas indépendants.


5 Réponses :


-2
votes

En théorie, vous pourriez faire cela. En pratique, si vous avez commencé à partir des deux checksums fournis par MD5 et SHA1 et essayé de créer un fichier qui produisait les deux mêmes checksums - il serait très difficile (plusieurs fois plus difficiles que la création d'un fichier qui produisait la même somme de contrôle MD5, ou Sha1 Checksum en isolement).


0 commentaires

8
votes

"Serait-il possible du tout?" - Oui, si la taille totale des checksums est inférieure à la taille totale du fichier, il est impossible d'éviter les collisions.

"Serait-il possible en réalité, avec le matériel / logiciel actuel?" - S'il est possible de construire un texte pour correspondre à une somme de contrôle donnée pour chacun des checksums utilisés, alors oui.

voir Wikipedia sur la concaténation des fonctions de hachage cryptographique , qui est également un terme utile à Google pour.

de cette page:

"Cependant, pour Merkle-Damgård hachage Fonctions, la fonction concaténée est seulement aussi fort que le meilleur composant, pas plus fort. Joux noté que 2 collisions mènent à n-collisions: si cela est réalisable de Trouvez deux messages avec le même MD5 hachage, c'est effectivement plus difficile de trouver autant de messages que L'attaquant désire avec identique MD5 hachage. Parmi les n messages avec le même hachage de MD5, il est susceptible de Soyez une collision dans SHA-1. Les travail supplémentaire nécessaire pour trouver le SHA-1 collision (au-delà de la recherche d'anniversaire exponentielle) est polynôme. Cet argument est résumée par Finney. "


2 commentaires

Je n'aurais pas cherché la concaténation à terme dans ce contexte, mais je suppose que c'est la réponse à ma question. Cela ne laisse que la question de la probabilité de faire quelque chose comme celui-ci en réalité.


Moonshadow aussi, cette dernière question est également répondue à la citation: utiliser les deux ensemble n'est pas sensiblement plus difficile que d'utiliser le meilleur des deux seuls.



-1
votes

Alors je me suis demandé si ce serait possible de créer un fichier a 'qui a la même taille, la même somme MD5, et la même somme SHA1 que le fichier d'origine Une.

Oui, faites une copie du fichier.

autre que cela, pas sans de grandes quantités de ressources informatiques pour vérifier des tonnes de permutations (en supposant que la taille du fichier n'est pas triviale).

Vous pouvez y penser comme ceci:

Si la taille du fichier augmente par N, la probabilité d'une éventuelle fausse augmente, mais les coûts informatiques nécessaires pour tester les combinaisons augmentent de manière exponentielle par 2 ^ n.

Donc, plus votre fichier est plus grand, plus il est probable que est une dupe, mais moins vous êtes susceptible de le trouver.


2 commentaires

-1 pour son son autoritaire sans être un cryptographe (voir la réponse de Moonshadow pour l'évaluation correcte de la sécurité des deux concaténées)


@Nick: Je suis tout à fait d'accord. À Crypto, il y a beaucoup de résultats surprenants et non intuitiers. La concaténation des hachages est l'une d'entre elles et une simple devinette ne fonctionne pas ici.



-1
votes

En théorie Oui, vous pouvez l'avoir, en pratique, c'est l'enfer d'une collusion. Dans la pratique, personne ne peut même créer une collusion SHA1, sans parler de la taille MD5 + SHA1 +. Cette combinaison est tout simplement impossible en ce moment sans avoir la puissance informatique entière dans le monde et le gérer pendant un moment.

Bien que dans le futur proche, nous puissions voir plus de vulnérabilités dans SHA1 et MD5. Et avec le soutien d'un meilleur matériel (en particulier du GPU), pourquoi pas.


0 commentaires

0
votes

Pour une réponse naïve, nous aurions des hypothèses (incorrectes):

  • Les algorithmes de hachage SHA1 et MD5 aboutissent à une distribution uniforme de valeurs de hachage pour un ensemble d'entrées aléatoires
  • Détails de l'algorithme à part - une chaîne d'entrée aléatoire a une chance également probable de produire n'importe quelle valeur de hachage

    (essentiellement, pas de domaines tremblotés et bien distribués.)

    Si la probabilité de découvrir une chaîne qui collecte avec le hachage SHA1 d'un autre est P1, et de la même manière p2 pour MD5, la réponse naïve est la probabilité de trouver un qui collide avec les deux est P1 * P2.

    Cependant, les hachages sont cassés, nous savons donc que nos hypothèses sont erronées.

    Les hachages ont déclenché, sont plus sensibles aux changements avec certaines données que d'autres, et autrement dit, ne sont pas parfaites. D'autre part, un algorithme de hachage parfait et non cassé aura les propriétés ci-dessus, et c'est exactement ce qui rend difficile de trouver des collisions. Ils sont aléatoires.

    La probabilité dépend de manière intrinsèquement des propriétés de l'algorithme - essentiellement, car nos hypothèses ne sont pas valides, nous ne pouvons pas "facilement" déterminer à quel point il est difficile. En fait, il est difficile de trouver une contribution qui, en collision, dépend probablement très fortement des caractéristiques de la chaîne d'entrée elle-même. Certains peuvent être relativement faciles (mais toujours probablement irréalisables sur le matériel d'aujourd'hui) et en raison de la nature différente des deux algorithmes, certains peuvent être impossibles.


0 commentaires