SHA-256d
SHA-256d ist die Hash-Funktion, die den Kern von Bitcoin bildet.
Inhaltsverzeichnis
Über
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
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.