Mogę zmotywować dla ciebie różnicę za pomocą scenariuszy ataku.
W pierwszym ataku preimage prosimy przeciwnika, któremu podano tylko , aby znalazł m lub trochę m ′, tak aby H ( m ′ ) = H ( m ) . Że witryna przechowuje { ù s e r n o m e , H ( t y y W O R d ) } w swojej bazie danych zamiast { ù s eH.( m )mm′H.( m′)H.( m ){ u s e r n a m e , H( P y y W O r d) } . Witryna nadal może zweryfikować autentyczność użytkownika, akceptując hasło i porównując H ( i n p u t ) = ? H ( P y y W O r d ) (z prawdopodobieństwem 1 / 2 n niektórych dużych n fałszywie dodatnich). Załóżmy teraz, że ta baza danych wyciekła lub jest w inny sposób skompromitowana. ZA{ u s e r n a m e , p a s s w o r d}H.(input)=?H(password)1/2nnPierwszym atakiem na obraz jest sytuacja, w której przeciwnik ma dostęp tylko do podsumowania wiadomości i próbuje wygenerować wiadomość mieszającą się z tą wartością.
W drugim ataku preimage pozwalamy przeciwnikowi uzyskać więcej informacji. W szczególności nie tylko dajemy mu ale także dajemy mu m . Rozważ funkcję skrótu H ( m ) = m dH(m)m gdzie p i q są dużymi liczbami pierwszymi, a d jest stałą publiczną. Oczywiście w przypadkupierwszego ataku typu preimagestaje się to problemem RSA i uważa się go za trudny. Jednak w przypadkudrugiego ataku preimageznalezienie kolizji staje się łatwe. Jeśli ustawimy m ′ = m p q + m , H ( m p q + m ) = ( m p q + m ) dH(m)=mdmodpqpqdm′=mpq+m . I tak przeciwnik znalazł kolizję, w której obliczenia były niewielkie lub żadne.H(mpq+m)=(mpq+m)dmodpq=mdmodpq
Chcielibyśmy funkcja jednokierunkowa mieszania się odporne na drugi atak preimage ponieważ systemów podpisu cyfrowego, w którym to przypadku jest uważana informacja publiczna i przedostaje się (przez poziom pośredni) z każda kopia dokumentu. Tutaj atakującemu ma dostęp zarówno do d o, c U m e n t i H ( d o, c u m e n t )H(document)do c u m e n tH.( do c u m e n t ). Jeśli osoba atakująca może wymyślić wariant oryginalnego dokumentu (lub całkowicie nową wiadomość) taki że H ( d ′ ) = H ( d o c u m e n t )re′H.( d′) = H( do c u m e n t ) mógłby publikuje jego dokument, tak jakby oryginalny podpisujący.
Atak kolizji pozwala przeciwnik jeszcze więcej możliwości. W tym schemacie prosimy przeciwnika (czy mogę go nazwać Bobem), aby znalazł jakieś dwie wiadomości i m 2, takie, że H ( m 1 ) = H ( m 2 ) . Z uwagi na zasadę szufladki i paradoks urodzinowy nawet „idealne” funkcje skrótu są kwadratowo słabsze w przypadku ataków kolizyjnych niż ataki preimage. Innymi słowy, biorąc pod uwagę nieprzewidywalną i nieodwracalną funkcję podsumowania wiadomości f ( { 0 , 1 } ∗ ) = { 0m1m2)H.( m1) =H( m2)) który zajmuje czas O ( 2 n ) do brutalnej siły, kolizję zawsze można znaleźć w oczekiwanym czasie O ( s q r t ( 2 n ) ) = O ( 2 n / 2 ) .fa( { 0 , 1 }∗) = { 0 , 1 }nO ( 2n)O ( s qr t ( 2n) ) = O ( 2n / 2)
Bob może wykorzystać atak kolizyjny na wiele sposobów. Oto jeden z najprostszych: Bob znajduje kolizję między dwoma binariami i b ′ ( H ( b ) = H ( b ′ ) ) w taki sposób, że b jest prawidłową poprawką bezpieczeństwa systemu Microsoft Windows, a b ' jest złośliwym oprogramowaniem. (Bob działa w systemie Windows). Bob wysyła swoją łatkę bezpieczeństwa do łańcucha dowodzenia, gdzie za skarbcem podpisują kod i wysyłają plik binarny do użytkowników systemu Windows na całym świecie, aby naprawić błąd. Bob może teraz kontaktować się i infekować wszystkie komputery z systemem Windows na całym świecie za pomocą b ′ i podpisu, który Microsoft obliczył dla bbb′H.( b ) = H( b′)b′b′b. Poza tego rodzaju scenariuszami ataku, jeśli uważa się, że funkcja skrótu jest odporna na kolizję, to funkcja skrótu jest również bardziej odporna na preimage.