SHA-256 und Bitcoin – feat. Stableblocks

0
37

Heute präsentieren wir Euch unseren ersten Gastbeitrag. Dieser wurde freundlicherweise zur Verfügung gestellt von Stable Blocks.

Bitcoin und SHA

Das Bitcoin-Protokoll gilt als sicher. Zu verdanken hat das Protokoll diese Eigenschaft unter anderem einem speziellen Algorithmus. Bitcoin verwendet für den Miningprozess, das Kreieren von Adressen und der Verifikation von Transaktionen eine Sha-256 Funktion. Das Bitcoin-Protokoll nutzt eine doppelte SHA-256 Funktion, was bedeutet, die Funktion wird auf die Ausgabe der Funktion angewandt. SHA-256 findet jedoch auch Anwendung in manchen der meistgenutzten Authentifizierung und Sicherheitsprotokollen wie SSL, TLS, IPsec, SSH und PGP. Auch in Unix und Linux wird der Algorithmus zum hashen von Passwörtern genutzt. Wie der Name vermuten lässt, ist der Output der Funktion 256 Bits lang.

Eine kurze Historie zu SHA-256

SHA-256 wurde 2002 als Reaktion auf erfolgreiche Angriffe auf die SHA-1 Hashfunktionen von der NSA entwickelt und vorgestellt. Auf einer National Institute of Standards and Technology (NIST) Konferenz im Jahr 2005 wurde die Umstellung von SHA-1 auf SHA-2 empfohlen und als Standard etabliert. Im Jahr 2012 wurde Keccak zum SHA-3 Algorithmus gewählt. SHA-256 sowie einige andere Algorithmen der SHA-2 Familie werden vom Bundesamt für Sicherheit in der Informationstechnik (BSI) jedoch immer noch als sicher eingestuft.

Die Eigenschaften von SHA-256

Es gibt 3 Eigenschaften welche den Grundstein des SHA-256 Algorithmus und seiner Sicherheit liefern. Um die nachfolgenden Eigenschaften einzuordnen, hilft es sich zu verdeutlichen, dass 2256 mehr ist als die Anzahl der Atome in dem uns bekannten Universum.

  1. Es ist nahezu unmöglich die ursprünglichen Daten aus dem Hashwert zu rekonstruieren. Angenommen dies wäre das Ziel eines Angreifers, so müsste dieser mit einer Exhaustionsmethode (Bute-Force Attack) 2256 Versuche durchführen. Die Anzahl der benötigten Versuche ist schier zu groß, um dies überhaupt in Erwägung zu ziehen.
  2. Es ist äußerst unwahrscheinlich zweimal denselben Hashwert zu erhalten, da es 2256 verschiedene Möglichkeiten gibt.
  3. Eine minimale Veränderung der Daten verändert den Hashwert so, dass nicht ersichtlich ist, dass der neue Hashwert aus einem ähnlichen Datensatz kreiert wurde.

Beispiel Output der SHA-256 Funktion

Um die Funktionsweise und Punkt 3 zu verdeutlichen ein Nehmen wir die Wörter „Beispiel“ und „Beispiele“.

Der Output der SHA-256 Funktion als Hexadezimal von „Beispiel“ ist: 2071c7736acd16f6cea3727d3b7ecde53f4c2e97b421f3550248e19d7309c636

Der Output der SHA-256 Funktion als Hexadezimal von „Beispiele“ ist: 147790983143d584d88c22ad1a14f128c3d55e3dea3d92ec400e930a04031fb9

Es lässt sich offensichtlich, anhand der Hashwerte, kein Rückschluss auf die Daten ziehen.

SHA Funktionen bilden das Fundament einer Vielzahl von Authentifizierung und Sicherheitsprotokollen.

Auch Blockchain Protokolle wie z.B. Bitcoin nutzen diese und ähnliche Algorithmen, um Sicherheit Ihrer Transaktionen und des Miningprozesses zu gewährleisten. Die SHA-256 Funktion bietet eine optimale Balance zwischen Kollisionsresistenz und Effizienz für das Bitcoin Protokoll. Die Länge der Daten welche gehasht werden ist für die Länge des Outputs irrelevant. Dieser beträgt immer 256 bits. Der 64 Zeichen lange Hexadezimalwert, welcher z.B. einen Block der Bitcoin Blockchain repräsentiert eignet sich somit optimal um zu gewährleisten das die Daten eines Blocks unverändert sind. Jeder Knotenpunkt (Node) kann somit die Integrität eines Blockes validieren. Da eine Blockchain neue Blöcke chronologisch ankettet und der Hash des aktuellen Blocks auf dem vorhergehenden Block basiert, sind Daten unveränderbar auf der Blockchain gespeichert.

Hat Euch dieser Beitrag gefallen? Lasst uns und dem Auto Stable Blocks ein Like da und kommentiert was das Zeug hält!

HINTERLASSEN SIE EINE ANTWORT

Bitte geben Sie Ihren Kommentar ein
Bitte geben Sie Ihren Namen ein