Hash-Funktionen mit Emojis erklärt

Die Blockchain-Geschichte ist im Wesentlichen eine zehnjährige Liebesbeziehung zwischen Technologen und Hash-Funktionen.

Wenn Sie sich mit Hash-Funktionen auskennen, ist das Verständnis von Mining und Unveränderlichkeit in der Blockchain ein Kinderspiel! (Mehr dazu am Ende)

Git, das Versionskontroll-Code-Repository-System, das die Open-Source-Revolution ermöglichte, die von fast allen Entwicklern verwendet wird, ist stark von Hash-Funktionen abhängig.

Docusign, die eSignature-Software, basiert auf Hash-Funktionen.

Hash-Funktionen werden jedes Mal verwendet, wenn Sie Ihr Passwort in eine Website eingeben.

Der Zweck einer Hash-Funktion ist sehr einfach, aber ihre Eigenschaften sind so mächtig, dass sie in jeder Software in Bezug auf Versionierung, Sicherheit und Authentizität allgegenwärtig sind.

Was ist eine Hash-Funktion?

Hash-Funktionen waren für die jüngsten technologischen Fortschritte so wichtig. Meines Erachtens sollten wir alle zumindest ein grundlegendes Verständnis dafür haben, was sie sind und wie sie funktionieren.

Hash-Funktionen sind vielleicht nicht Ihr Ding. Deshalb möchte ich Ihnen hier erklären, warum sie so leistungsfähig sind, ohne auf allzu viele Details einzugehen. Bleiben Sie also bei mir!

Es gibt viele Erklärungen zu Hash-Funktionen im Internet, die sie sachlich beschreiben und entweder einschüchternd oder langweilig sind… oder beides. Hier erkläre ich ihnen, wie sie mit Emojis Farbe und Leben in die gewohnheitsmäßige Schwarz-Weiß-Welt der Kryptographie bringen. (Es mag verwirrender sein, sie so zu erklären, aber hey!)

Hash-Funktionen

Wir können uns eine Hash-Funktion als eine Emoji-Fabrik vorstellen, die Emojis in Reihen aufnimmt, aber die einzigen Emojis, die sie akzeptiert, sind Kiwi, Ananas, Aubergine, Pfeffer, Karotte und Mais.

Die 6 Emojis werden von der Fabrik angenommen und ausgegeben

Diese Factory gibt auch nur Zeilen der obigen Emojis aus, wenn sie die Eingabe verarbeitet haben.

Und diese Emoji-Fabrik ist aus mehreren Gründen etwas Besonderes:

1. Diese Factory gibt als Ausgabe weniger Emojis zurück, als sie als Eingabe akzeptiert

In jedem Fall nimmt die Fabrik eine Reihe von 8 Emojis auf, die aus den oben genannten 6 Auswahlmöglichkeiten ausgewählt wurden (es kann jeweils mehr als eine Auswahlmöglichkeit geben). Es verarbeitet sie und gibt eine Zeile mit 3 Emojis zurück, die wiederum aus den obigen 6 Auswahlmöglichkeiten stammen.

Wichtig ist, dass es weniger Emojis ausgibt, als es aufnimmt (8 wird zu 3).

Emoji-Hasch-Fabrik

2. Die Fabrik liefert immer den gleichen Ausgang für den gleichen Eingang

Wenn Sie zweimal dieselben 8 Emojis in derselben Reihenfolge in die Fabrik geben, werden beide Male dieselben 3 Emojis in derselben Reihenfolge zurückgegeben.

die Fabrik ist deterministisch.

In der obigen Abbildung sehen Sie, dass die Factory jedes Mal denselben Ausgang für denselben Eingang zurückgibt.

3. Diese Emoji-Fabrik ist eine Einbahnstraße

Wenn Sie 8 Emojis in einer Reihe in die Fabrik stellen, gibt die Fabrik sofort eine Ausgabe aus. Einfach!

Wenn ich Ihnen jedoch eine 3-Emoji-Ausgabe aus der Fabrik geben würde, aber nicht sagen würde, was die Eingabe ist, wären Sie nicht in der Lage, dies durch Analysieren der Fabrik und der Ausgabe herauszufinden. In der Tat wäre Versuch und Irrtum der schnellste Weg, um herauszufinden, was die Eingabe war.

Mit anderen Worten, der schnellste Weg, um herauszufinden, was die Eingabe für eine Ausgabe war, besteht darin, blind verschiedene Zeilen von Emojis als Eingaben auszuprobieren, bis Sie die richtige gefunden haben.

Außerdem können Sie durch die Fabrik gehen und genau sehen, wie es funktioniert, aber Sie können immer noch keine Eingabe aus der Ausgabe herausarbeiten oder rückentwickeln! Es ist eine reine Einwegfabrik.

Jetzt weiß ich, dass das ein bisschen seltsam klingt. Hier ist eine Analogie, die vielleicht hilft.

Es ist wie ein Kuchen backen!

Wenn ich Ihnen die genauen Mengen an Zutaten für einen Kuchen und ein genaues Rezept geben würde und Sie das genaue Rezept für diese Zutaten ausführen würden, wäre der Kuchen in kürzester Zeit fertig.

Und wenn ich Sie auffordere, es mit denselben genauen Zutaten und demselben genauen Rezept noch einmal zu tun, dann würden Sie in kürzester Zeit einen identischen Kuchen herstellen. Backen ist deterministisch (theoretisch!).

Aber ... wenn ich Ihnen den Kuchen und das Rezept geben würde (das Rezept hier enthält nicht die Mengen der Zutaten, sondern nur die Rühr- und Kochschritte), dann wäre es wirklich schwierig, die genauen Mengen der Zutaten zu ermitteln, die in die Pfanne gingen Kuchen.

Und vielleicht ist das Backen von Kuchen mit Versuch und Irrtum und unterschiedlichen Zutatenmengen der beste Ansatz. (Professionelle Köche können mit mir in dieser Frage nicht einverstanden sein!)

Zurück zu den Eigenschaften der Emoji-Fabrik.

4. Wenn Sie die Eingabe nur um ein Emoji ändern, erhalten Sie eine völlig andere Ausgabe

In der obigen Back-Analogie können Sie mit der Zeit immer näher an die richtigen Mengen von Zutaten herankommen. Aber in der Emoji-Fabrik führt die kleinste Änderung an der Eingabe (sogar die Änderung eines Emoji) zu einer völlig unabhängigen Ausgabe!

Wenn Sie beispielsweise die erste Aubergine in der Eingabe des obigen Gifs gegen eine Karotte tauschen, erhalten Sie eine völlig andere 3-Emoji-Ausgabe.

Dies bedeutet, dass Sie der Suche nach dem richtigen Eingang für einen bestimmten Ausgang nicht näher kommen können. Sie müssen nur blind verschiedene Emojis probieren, bis Sie über die richtige stolpern.

Beim Mining in der Blockchain handelt es sich im Wesentlichen um Computer, die Trial-and-Error-Verfahren verwenden, um Eingaben in eine Emoji-Factory zu finden, die Ausgaben mit einer bestimmten Eigenschaft zurückgeben, z. B. Ausgaben, die mit zwei Auberginen beginnen.

5. Der schnellste Weg, um zwei Eingänge zu finden, die den gleichen Ausgang liefern, ist durch Ausprobieren

Jetzt bist du sicher, dass du schon nachdenkst ...

"Moment mal, wenn die Ausgänge kürzer sind als die Eingänge, gibt es doch mehr als einen Eingang für jeden Ausgang?"

… Und du hättest recht. Wenn Sie 8 Emojis in der Fabrik haben und nur 3 Emojis zurückerhalten, muss mehr als ein Eingang zum gleichen Ausgang führen.

Diese Emoji-Factory ist jedoch so gut konzipiert, dass Versuch und Irrtum, auch wenn Sie einen Eingang für einen bestimmten Ausgang kennen, leider immer noch die schnellste Möglichkeit ist, einen der anderen Eingänge zu ermitteln, die denselben Ausgang liefern.

Mit anderen Worten, der schnellste Weg, um zwei Eingaben zu finden, die dieselbe Ausgabe ergeben, besteht darin, erneut Versuch und Irrtum zu verwenden, bis Sie eine „Kollision“ finden.

Es ist jetzt an der Zeit, alle erstaunlichen Eigenschaften dieser Emoji-Fabrik zusammenzufassen!

Rekapitulieren

  1. Die Fabrik akzeptiert 8 Emojis und gibt 3 Emojis zurück. (Verkürzung)
  2. Eine bestimmte Eingabe gibt immer dieselbe Ausgabe zurück. (deterministisch)
  3. Eine geringfügige Änderung der Eingabe führt zu einer völlig anderen Ausgabe. (diffundierend)
  4. Angenommen, eine Ausgabe ist Versuch und Irrtum der schnellste Weg, um die entsprechenden Eingaben zu ermitteln. (Einweg)
  5. Versuch und Irrtum ist der schnellste Weg, zwei Eingaben zu finden, die dieselbe Ausgabe ergeben. (kollisionsfest)

Diese Eigenschaften sind alle sehr interessant, aber warum sind sie so wichtig?

Nun wollen wir sehen, wie diese Fabrik in der Praxis eingesetzt werden kann.

Stellen Sie sich vor, Ihr Passwort wird durch eine Zeile mit 8 Emojis angegeben. Und jedes Mal, wenn Sie Ihr Passwort in eine Website eingeben, speichert die Website Ihr Passwort nicht. Stattdessen speichert es einen "Hash" Ihres Passworts (die 3-Emoji-Ausgabe Ihres Passworts, nachdem es die Emoji-Factory durchlaufen hat).

Auf diese Weise verfügt jemand bei einem Datenverstoß über eine Reihe von Hashes, jedoch keine tatsächlichen Passwörter, wenn er auf die persönlichen Daten der Website zugreift.

Und da es sich bei der Fabrik um eine Einbahnstraße handelt, kann der Kriminelle Ihr tatsächliches Passwort nur durch Ausprobieren aus dem Hash herausfinden.

Jetzt kann es für den Kriminellen nicht mehr lange dauern, wenn Ihr Passwort aus einer Reihe von 8 Emojis besteht (aus nur 6 verschiedenen Emojis ausgewählt).

Im wirklichen Leben wählen Sie Ihr Passwort aus einem viel größeren Satz möglicher Zeichen aus, und daher ist die Anzahl der verschiedenen möglichen Eingaben viel größer. Auch die Ausgaben einer echten Hash-Fabrik / Funktion sind viel länger als eine Zeile von nur 3.

Daher würde es in Wirklichkeit viele Jahre dauern, bis der Kriminelle Ihr Passwort tatsächlich aus seinem Hash herausgefunden hat!

Und in der Zwischenzeit können Sie, trotz der Datenschutzverletzung, jederzeit, wenn Sie sich wieder unschuldig auf der Website anmelden möchten, da Sie Ihr Kennwort kennen, es einfach eingeben.

An diesem Punkt wird es sofort durch eine Hash-Fabrik geschickt, die Ihren Passwort-Hash angibt. Und die Website kann sofort überprüfen, ob der von ihnen gespeicherte Hash mit Ihrem Namen übereinstimmt oder nicht, da die Hash-Factory immer dieselbe Ausgabe (deterministisch) zurückgibt und Sie entsprechend anmeldet.

Passwörter sind jedoch nicht immer 8 Emojis lang. Was ist, wenn ich eine längere Reihe von Emojis hashen möchte?

Ja, du kannst! Erstaunlicherweise können wir mit einer sehr einfachen Technik, die von zwei Kryptographen, Ralph Merkle und Ivan Damgård, angewendet wird, Emoji-Zeilen beliebiger Länge in einen Hash von 3 Emojis "hacken".

Merkle-Damgård-Bau

Wie können wir das machen?

Nun, angesichts einer längeren Reihe von Emojis erstellen wir tatsächlich eine Reihe von Fabriken, um sie zu verarbeiten. Hier ist was wir tun.

  1. Wir zerkleinern die längere Reihe von Emojis in einen Anfangsblock von 8 Emojis, gefolgt von Stücken von 5 Emojis. (Wenn der letzte Block nicht aus genau 5 Emojis besteht, können wir ihn mit einigen zusätzlichen Emojis auffüllen. Dieser zusätzliche Schritt ist jedoch etwas technischer. Nehmen wir also an, wir haben eine schöne Anzahl von Emojis in der Reihe!)
  2. Wir haben das Stück mit 8 Emojis durch die erste Fabrik geschickt.
  3. Wir nehmen die ausgegebenen 3 Emojis und platzieren sie in einer Linie mit dem ersten Teil von 5 Emojis und setzen sie durch die zweite Fabrik zusammen.
  4. Wir wiederholen diesen Vorgang, bis wir die gesamte Reihe von Emojis durch eine Fabrik geführt haben.
  5. Wir geben die Ausgabe der letzten Fabrik zurück.

Jetzt können wir also viel längere Emojis in nur 3 Emojis hacken!

Abwarten…

Nun, da die Eingaben viel länger sein können, können wir doch zwei Zeilen, die dieselbe Ausgabe (eine Kollision) erzeugen, viel leichter finden?

Intuitiv könnte man so denken. Erstaunlicherweise ist dies genauso schwierig wie das Auffinden einer „Kollision“ in einer Fabrik.

Argumentation

Angenommen, Sie haben zwei längere Zeilen von Emojis gefunden, die dieselbe Ausgabe (eine Kollision) mithilfe einer anderen Methode als "trial and error" erstellt haben.

Dann würden Sie in einer Fabrik während des Merkle-Damgård-Prozesses zwei verschiedene Emojis-Zeilen eingeben und diese Fabrik würde für beide Zeilen die gleiche Ausgabe zurückgeben.

Dies bedeutet jedoch, dass Sie eine Kollision in einem Werk mit einer anderen Methode als durch Ausprobieren festgestellt haben. Dies ist ein Widerspruch, da wir davon ausgegangen sind, dass jedes Werk kollisionssicher ist!

Und so…

… Mit einigen zusätzlichen Fabriken und einigen mathematischen Überlegungen haben wir eine Möglichkeit geschaffen, Emojis-Zeilen beliebiger Länge in nur drei Emojis zu hacken.

Darüber hinaus kann jeder, der Zugriff auf eine Drei-Emoji-Ausgabe hat, keine entsprechenden Eingaben beliebiger Länge schneller als nur durch Ausprobieren ermitteln. Und bei der Anzahl der verschiedenen Kombinationen, die im echten Hashing verwendet werden, kann das Ausprobieren viele Jahre dauern!

Mit diesem einfachen Trick kann Ihr Emoji-Passwort nun beliebig lang und dennoch sicher sein, vorausgesetzt, eine einzelne Emoji-Factory ist kollisionssicher.

Was ist mit Blockchain?

Stellen Sie sich vor, Sie haben ein Dokument (voller Emojis), das möglicherweise eine finanzielle Transaktion beschreibt. Und Sie möchten den Menschen beweisen, dass sich dieses Dokument zu einem bestimmten Zeitpunkt in einem exakten Zustand befand (bis zum letzten Emoji).

Dann können Sie das gesamte Dokument mithilfe der Merkle-Damgård-Konstruktion durch die Hash-Fabrik schicken und die Ausgabe per E-Mail an 100 Personen senden.

Diese Leute können nicht herausfinden, was das Original besagt, da die Fabrik in eine Richtung ist. Und wenn jemand versucht, in Zukunft zu behaupten, dass Ihr Dokument ein Betrug ist oder dass Sie es geändert haben, können Sie zweifelsohne nachweisen, dass das Dokument bis zum letzten Emoji (oder Brief) auf der Seite in einem exakten Zustand war. Genau zu dem Zeitpunkt, als Sie es an ein dezentrales Netzwerk von Personen gesendet haben.

Und da die Hash-Fabrik kollisionssicher ist, glauben sie, dass Sie kein Betrug sind!

in Summe

Die unidirektionalen und kollisionssicheren Eigenschaften einer Hash-Funktion sind so mächtig, dass sie die Landschaft von Technologie und Wissenschaft verändern.

Aber was passiert eigentlich in der Emoji-Factory / Hash-Funktion?

Dies alles wird ziemlich technisch und wenn Sie sicher sind, dass die oben genannten Eigenschaften zutreffen, ist das Innenleben der Fabrik irrelevant. Die Eigenschaften von Hash-Funktionen sind viel interessanter als ihre internen Abläufe (es sei denn, Sie sind Mathematiker / Kryptograf!).

Aktuelle Hash-Funktionen akzeptieren hexadezimale Zeichenfolgen (nicht sechsmalige Zeichenfolgen). Hexadezimale Zeichenfolgen bestehen nur aus den Zeichen „0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f“. Sie nehmen Eingaben beliebiger Länge entgegen und geben 64 hexadezimale Zeichen zurück (oder 128 Zeichen für zusätzliche Sicherheit).

Eine häufig verwendete Hash-Funktion ist der SHA-256. Wenn Sie irgendwelche Gedanken zu diesem Blog haben, senden Sie mir bitte eine E-Mail, wenn Sie meine E-Mail-Adresse aus dem Hash herausfinden können! (Hinweis: In diesem Fall gibt es möglicherweise einen intelligenteren Ansatz als Versuch und Irrtum!)

Hash meiner E-Mail-Adresse: 8d935def1f9e0353b0f19f3c765bdeec151862a199084ae4f4b417ca42608914

Wenn Ihnen diese Geschichte gefallen hat, klatschen Sie bitte und schauen Sie sich meinen neuesten Blog an. Das Rätsel des Königs: Wie das Problem von heute der Erfolg von morgen sein kann.

Schauen Sie sich auch meine Firma unter www.pilcro.com an. Wir bieten Brand Identity Asset Management für G-Suite-Benutzer.

Diese Geschichte wurde in The Startup veröffentlicht, der größten Veröffentlichung zu Unternehmertum von Medium, gefolgt von mehr als 298.432 Personen.

Abonnieren Sie hier unsere Top Stories.