Je peux motiver la différence pour vous avec des scénarios d'attaque.
Dans une première attaque de pré-image , nous demandons à un adversaire, ne que de , de trouver ou quelques tels que = . Supposons qu'un site Web stocke dans ses bases de données au lieu de . Le site Web peut toujours vérifier l'authenticité de l'utilisateur en acceptant son mot de passe et en comparant (avec une probabilité de pour certains grands pour les faux positifs). Supposons maintenant que cette base de données soit divulguée ou soit autrement comprimée. Une première attaque pré-imagem m ′ H ( m ′ ) H ( m ) { u s e r n a m e , H ( p a s s w o r d ) } { u s e r n a m e , p a s s w o r d } H ( i nH( m )mm′H( m′)H( m ){ u s e r n a m e , H( p a s s w o r d) }{ u s e r n a m e , p a s s w o r d}une / deux n nH( i n p u t ) = ? H( p a s s w o r d)1 / 2nnest la situation où un adversaire n'a accès qu'à un résumé de message et essaie de générer un message qui hache à cette valeur.
Lors d'une deuxième attaque pré-image , nous permettons à l'adversaire d'avoir plus d'informations. Plus précisément, non seulement nous lui donnons mais nous lui donnons également . Considérons la fonction de hachage où et sont de grands nombres premiers et est une constante publique. Évidemment, pour une première attaque de pré-image, cela devient le problème RSA et on pense qu'il est difficile. Cependant, dans le cas de la deuxième attaque de pré-image, trouver une collision devient facile. Si l'on fixe ,m H ( m ) = m dH( m )mp q d m ′ = m p q + m H ( m p q + m ) = ( m p q + m ) dH( m ) = mrémodp qpqrém′= m p q+ mH( m p q+ m ) = ( m p q+ m )rémodp q= mrémodp q. Et donc l'adversaire a trouvé une collision avec peu ou pas de calcul.
Nous aimerions que les fonctions de hachage unidirectionnelles soient résistantes aux attaques de deuxième image avant en raison des schémas de signature numérique, auquel cas est considéré comme une information publique et est transmis (via un niveau d'indirection) avec chaque copie du document. Ici, un attaquant a accès à la fois au et à . Si l'attaquant peut proposer une variation du document d'origine (ou un message entièrement nouveau) tel que il pourrait publier son document comme s'il était le signataire d'origine.d o c u m e n t H ( d o c u m e n t ) d ′ H ( d ′ ) = H ( d o c u m e n t )H( do c u m e n t )réo c u m e n tH( do c u m e n t )ré′H( d′) = H( do c u m e n t )
Une attaque par collision offre à l'adversaire encore plus de possibilités. Dans ce schéma, nous demandons à l'adversaire (puis-je l'appeler Bob?) De trouver deux messages et tels que . En raison du principe du pigeonhole et du paradoxe d'anniversaire, même les fonctions de hachage «parfaites» sont quadratiques plus faibles aux attaques par collision que les attaques de pré-image. En d'autres termes, étant donné une fonction de résumé de message imprévisible et irréversible qui met à la force brute, une collision peut toujours être trouvé dans le temps prévu .m 2 H ( m 1 ) = H ( m 2 ) f ( { 0 , 1 } ∗ ) = { 0 , 1 } n O ( 2 n ) O ( s q r t ( 2 n ) ) = O ( 2 n / 2 )m1m2H( m1) = H( m2)F( { 0 , 1 }∗) = { 0 , 1 }nO ( 2n)O ( s qr t ( 2n) ) = O ( 2n / 2)
Bob peut utiliser une attaque par collision à son avantage de plusieurs façons. Voici l'un des plus simples: Bob trouve une collision entre deux binaires et ( ) de telle sorte que b est un correctif de sécurité Microsoft Windows valide et est un malware. (Bob fonctionne pour Windows). Bob envoie son correctif de sécurité en haut de la chaîne de commandement, où derrière un coffre-fort, ils signent le code et expédient le binaire aux utilisateurs Windows du monde entier pour corriger une faille. Bob peut désormais contacter et infecter tous les ordinateurs Windows du monde entier avec et la signature que Microsoft a calculée pourb ′ H ( b ) = H ( b ′ ) b ′ b ′ bbb′H( b ) = H( b′)b′b′b. Au-delà de ces types de scénarios d'attaque, si une fonction de hachage est considérée comme résistante aux collisions, cette fonction de hachage est également plus susceptible d'être résistante à la pré-image.