Was ist hashing?

By Anycoin Direct

In dieser Lektion werden wir über Hashing sprechen. Es ist sicherlich nicht einfach, aber wir werden uns davon nicht abschrecken lassen. Los geht's.

Kurze Zusammenfassung

✔️ Hashing ist die Umwandlung einer Datensammlung in einen Code, den Hash, mit Hilfe einer vorher festgelegten Berechnung.

✔️ Hashing wird oft verwendet, um Passwörter so zu sichern, dass nur der Nutzer sie lesen kann, und um Prüfsummen beim Herunterladen von Dateien zu vergleichen.

✔️ Digitale Signaturen verwenden Hashing zur Authentifizierung, wobei der Empfänger den privaten Schlüssel benötigt, um die Nachricht zu entschlüsseln.

✔️ Kryptowährungen nutzen Hashing für das Mining, bei dem Computer ihre Rechenleistung einsetzen müssen, um Rätsel zu lösen und Belohnungen zu erhalten.

Hashing

Definition:

Hashing ist der Prozess, bei dem ein Datensatz durch eine Funktion in einen Code, den Hash, umgewandelt wird. Was sagt ihr dazu?

Erklären wir also zunächst, was ein Hash ist. Ein Hash ist das Ergebnis einer Berechnung, die auf vordefinierten Bedingungen basiert. Ein Hash besteht aus einer Reihe von Zahlen und Buchstaben.

Beispiel für Hashing

Um das Ganze etwas anschaulicher zu machen, geben wir ein Beispiel für Hashing. Mit SHA (Secure Hashing Algorithm) 256 kannst du einen Hash für jede Art von Textinformation erhalten. Ich werde zwei Sätze erstellen, die sich sehr ähnlich sind, deren Ergebnis (der Hash) aber sehr unterschiedlich aussieht.

Der Satz "what is hashing" (die Eingabe) ergibt den folgenden hash:

a85eaf708bd0da1c0b7206ab8d69c30403b34be19588b71702d420ff9b21f09c (die Ausgabe)

Der Satz "Was ist Hashing" ergibt einen ganz anderen hash:

4bc6139ce79a8c6aeca74cd9397259fb54d4ea4fc7b930bb74404cfe94c34bcd

SHA-256 erzeugt einen 256 Bit langen Hash (64 Zeichen).

Hashing Richtung und Sicherheit

Übrigens funktionieren Hashes nur in eine Richtung. Du kannst den Hash eines Satzes erstellen, aber du kannst einen Satz nicht aus dem Hash rekonstruieren.

Ein Hash sollte so aufgebaut sein, dass es einen unzumutbaren Aufwand erfordert, den Hash mit roher Gewalt zu erraten (einfach alle Möglichkeiten 1 zu 1 überprüfen). Je mehr Zeichen eine Hash-Funktion generiert, desto schwieriger ist eine Eingabe zu knacken.

Jetzt muss die Idee des Hashings in deiner Vorstellung Gestalt angenommen haben.

Wofür wird Hashing verwendet?

Schön, so ein Hascherl von Hashing. Aber was kann man damit eigentlich machen?

Generell kann man sagen, dass Hashing dazu dient, Daten zu sichern. Am häufigsten wird es in der IT verwendet, um Passwörter zu sichern.

Passwort hashen

Angenommen, du denkst dir ein Passwort aus und musst es über das Internet verschicken, indem du es irgendwo eingibst. Wenn es im Klartext ohne Verschlüsselung oder Hash gesendet wird, können Hacker lesen, was du dort eingibst. Deshalb werden Passwörter heutzutage in einen Hash umgewandelt, so dass nur der Benutzer lesen kann, was er eingibt.

Datei hasht

Hashing kann auch beim Herunterladen von Dateien verwendet werden. Du berechnest zunächst den Hash-Wert der Datei, bevor du sie herunterlädst, und überprüfst dann, ob die sogenannte Prüfsumme gleich ist. Wenn beide Werte gleich sind, ist die Datei das Original. Sehr praktisch, wenn du nicht willst, dass Viren oder Trojaner über die Ports eingeschleust werden.

Hashing und Kryptografie

Ein bekanntes Phänomen aus der Kryptowelt ist die digitale Signatur. Dabei gibt es einen Absender und einen Empfänger. Von einer Nachricht wird ein Hash erstellt. Ohne den privaten Schlüssel kann die Nachricht nicht gelesen werden. Der Empfänger der Nachricht braucht dann den geheimen Schlüssel, um die Nachricht zu entschlüsseln. Wenn der Hash der Nachricht mit dem Hash übereinstimmt, der mit diesem Schlüssel berechnet werden kann, ist die Nachricht identisch mit der ursprünglichen Nachricht.

In cryptocurrency arbeiten sie mit dem privaten Schlüssel und den öffentlichen Schlüssel um deine Adresse anzuzeigen (öffentlich) oder zu bestimmen, ob du diesen Geldbetrag ausgeben kannst (privater Schlüssel).

Kommerzielles Hashing

Es wird auch für persönliche Daten verwendet. Wenn du online in einem Geschäft etwas bestellst, erstellst du zunächst ein Konto. Die meisten deiner Daten werden gehasht, damit du anonym bestellen kannst, aber die Lieferung kann an deine Adresse erfolgen.

Das Hashing kann durch Techniken namens Salt und Pepper weiter abgesichert werden. Mit Salt kannst du dem Hash eine zufällig generierte Zahl hinzufügen, aus der dann ein neuer Hash erstellt wird, wodurch es für Hacker noch schwieriger wird, den Code zu knacken.

Mit pepper fügst du allen Datensätzen dieselbe Zeichenkette aus 32 zufälligen Zeichen hinzu, wodurch ein Brute-Force-Angriff praktisch ausgeschlossen ist.

Bitcoin Hashing

Beim Minen von Bitcoin spricht man oft von der Hashrate. Vielleicht kannst du jetzt erraten, was damit gemeint ist.

Die Hashrate eines Computers ist die Rechenleistung, die er besitzt, um eine schwierige kryptografisch Rätsel zu lösen. Bei diesem schwierigen Rätsel geht es darum, die Eingabe eines Hashs zu erraten. Wer ihn zuerst errät, darf einen neuen Block zur Blockchain hinzufügen und erhält die Belohnung in Form von Transaktionsgebühren und neuen Bitcoins.

Die Hashrate der Bitcoin Netzwerk ist die Gesamtrechenleistung aller Computer, die Bitcoin minen. Je höher sie ist, desto schwieriger muss das Rätsel werden. Tatsache ist, dass etwa alle 10 Minuten ein neuer Block gefunden werden muss, je nach Satoshi Nakamoto. Wenn die Rechenleistung nachlässt, z. B. wenn viele Miner aufhören, muss das Rätsel einfacher werden, sonst werden aus den 10 Minuten schnell 11 oder 12 Minuten, was das Ganze verkompliziert.

Bestandteile eines Bitcoin-Blocks

Wenn ein neuer Block in Bitcoin erstellt wird, besteht er aus einer Reihe von Abschnitten. Jeder Block enthält einen Hash des vorherigen Blocks. So wird sichergestellt, dass alle Blöcke der Reihe nach gespeichert werden.

Als Nächstes kommt tx_root, der Root-Hash-Wert des Merkle tree, der alle Transaktionen enthält. Einen Merkle tree kann man sich als eine Sammlung von Hashes vorstellen. Er ist ein Baumdiagramm, in dem alle Transaktionen mit einem Hash versehen und zusammengeführt werden, bis nur noch ein Datensatz mit allen Transaktionen (Hashes) in einem einzigen Hash übrig bleibt, die Merkle-Wurzel oder auch Root-Hash genannt. Mit dieser Methode wird ein Block viel weniger bevölkert, als wenn du alle Transaktionen in ihn hineinschreiben müsstest, was die Geschwindigkeit erhöht.

Darauf folgt der timestamp. Dieser enthält den Zeitpunkt, zu dem der Block erstellt wurde. Auf diese Weise kannst du nur Blöcke vorwärts in der Zeit erstellen.

Dann kommt die Nonce. Das ist ein Hash, den der Miner erraten muss, um einen neuen Block schürfen zu dürfen.

Die Zukunft des Hashings

In cryptocurrency wird das Hashing verwendet, weil es so gut und schnell funktioniert. Hashing leistet auch einen wichtigen Beitrag zur Sicherheit, weil es ein Einwegsystem ist. Man kann einen Hash sehr leicht erzeugen, aber die Eingabe aus dem Hash zu erraten, ist fast unmöglich.

Da Hashing für die Sicherheit unerlässlich ist, wird es noch lange Zeit eingesetzt werden. Mit dem Aufkommen von Quantencomputern wird jedoch ein neuer Trick erfunden werden müssen.

Testen dein Wissen

Frage: 1/5Wie nennen Sie das, was Sie in eine hash umwandeln wollen?
AInput
BOutput
CInfo
DKryptografische