SHA-256d
SHA-256d ist die Hash-Funktion, die den Kern von Bitcoin bildet.
Inhaltsverzeichnis
Über[Bearbeiten]
SHA-256d wurde wie folgt in einem der Ferguson / Schneier-Bücher vorgeschlagen:
SHA-256d (x) = SHA-256 (SHA-256 (x))
Die Motivation für diese Konstruktion besteht darin, Längenausdehnungsangriffe zu vermeiden.
Beispiel[Bearbeiten]
Ein Beispiel ist dieses Protokoll, das den gegenseitigen Nachweis erbringen soll, dass jede Partei einige Mindestauswertungen für einige 256-Bit-Hashfunktionen H vorgenommen hat (Hinweis: Alice führt die ungeraden Schritte aus, und der nächste gerade Schritt wird von Bob mit umgekehrten Rollen ausgeführt.:
Wenn H SHA-256 ist, ist dieses Protokoll sowohl für Alice als auch für Bob sicher. Wenn H jedoch SHA-256d ist, definiert als x↦SHA-256 (SHA-256 (x)), gibt es einen einfachen "Spiegel" -Angriff für Bob:
Diese Strategie ermöglicht es Bob, seine Aufgaben scheinbar mit Rechenaufwand in Bezug auf eine einzige Bewertung von SHA-256d auszuüben, indem er die von Alice durchgeführten Tests in Schritt 5 umgeht. Dadurch soll verhindert werden, dass Bob B0 als einen der Aj-Modelle auswählt von seiner Arbeit könnte in der Tat von Alice gemacht werden.