AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi MD5-128 bit Brute force moeglich? in einer woche?
Thema durchsuchen
Ansicht
Themen-Optionen

MD5-128 bit Brute force moeglich? in einer woche?

Ein Thema von richard_boderich · begonnen am 18. Feb 2005 · letzter Beitrag vom 11. Nov 2011
Antwort Antwort
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#1

Re: MD5-128 bit Brute force moeglich? in einer woche?

  Alt 28. Feb 2006, 11:37
Zitat:
2^1024 - 2^128 ist nicht 2^896
das wäre 2^1024 / 2^128 (soweit ich mich erinnern kann nann man das nicht weiter auflösen, ohne das auszurechnen, oder?)
Korrekt: 2^1024 / 2^128 ist 2^(1024 - 128) == 2^896. So war es gemeint und das - ist ein Tippfehler, sollte natürlich / sein.

Zitat:
zudem ist meiner meinung nach ein weiterer kleiner Denkfehler drin.
Nicht alle der 2^896 (bzw eben nicht 2^896) werte werden als kollisionen erkannt werden.
Doch, es gibt für jeden der 2^128 möglichen Hash exakt 2^896 Kollisionen um auf eine Gesamtmenge von 2^1024 zu kommen. Das sollte mathematisch vom Entwickler der Hashfunktion garantiert werden. Denn eine Hashfunktion ist per Definition nur dann eine gute Hashfunktion wenn sie diese Kollisionen exakt statistisch gleichmäßig aber nicht reproduzierbar verteilt. Exakt diese Eigenschaft ist es die es erlaubt eine Hashfunktion auch als Zufallsgenerator zu gebrauchen. Denn eine nicht reproduzierbare und gleichmäßige Bitfolge von 0 und 1 ist nichts anderes als zwei unendlich große Bitfolgen aus 0 und 1 die dann gleichmäßig aber unreproduzierbar verteilt wurden. Das "unreproduzierbar" bezieht sich immer aus Sicht vom erzeugten Output zum benutzten Input.

Ergo: nach 2^128 Trials hat man alle 2^128 Bit großen Hashinputs durchgetestet und dabei mit 100% zu einem gegebenen Hashdigest einen Input gefunden. Nur das Problem dabei ist das dieser EINE Input zu unserem Digest nur einer von 2^896 möglichen Inputs darstellt um auf 2^1024 zu kommen. Die Eingangsfrage war aber konkret so das ausgehend von einem Digest der exakte Input zu finden ist. Nicht irgendein passender Input, also irgendeine Kollision, sondern DER benutzte Input eines angreifbaren Users. Und DAS geht eben nicht weil die Menge der möglichen Inputs unendlich groß ist und beim Prozess des Hashziehens Unendlich/2^128 dieser Unendlich vielen Möglichkeiten einfach Informationstheoretisch verloren gehen. Man kann also aus dem 128 Bit Digest niemals mehr exakt auf einen ganz spezifischen Input zurück-brute-forcen, einfach weil wichtige Informationen=Bits fehlen.

Das ginge nur wenn eindeutig bekannt wäre das der Input <= Digestgröße ist.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz