Hash-Funktionen mit Emojis erklärt

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

Wenn Sie die Hash-Funktionen verstehen, 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 leistungsfähig, dass sie in jeder Software allgegenwärtig ist, was Versionierung, Sicherheit und Authentizität betrifft.

Was ist eine Hash-Funktion?

Hash-Funktionen waren für den jüngsten technologischen Fortschritt so wichtig. Ich denke, wir sollten alle zumindest ein grundlegendes Verständnis dafür haben, was sie sind und wie sie funktionieren.

Hash-Funktionen sind möglicherweise nicht Ihre Sache, daher möchte ich 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 Emoji-Fabrik vorstellen, die Emojis enthält, aber die einzigen Emojis, die akzeptiert werden, sind Kiwi, Ananas, Aubergine, Pfeffer, Karotte und Mais.

Die 6 Emojis werden von der Fabrik akzeptiert und ausgegeben

Diese Factory gibt auch erst Zeilen der oben genannten Emojis aus, wenn sie die Eingabe verarbeitet hat.

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 Durchgang 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 sein). Es verarbeitet sie und gibt eine Zeile mit 3 Emojis zurück, die wiederum aus den obigen 6 Auswahlmöglichkeiten entnommen wurden.

Wichtig ist, dass weniger Emojis ausgegeben werden als aufgenommen (8 wird 3).

Emoji Hash Fabrik

2. Die Fabrik gibt immer den gleichen Ausgang für den gleichen Eingang zurück

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

dh die Fabrik ist deterministisch.

Im obigen GIF sehen Sie, wie die Fabrik 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 einbauen, erhalten Sie sofort eine Ausgabe. Einfach!

Wenn ich Ihnen jedoch eine 3-Emoji-Ausgabe aus der Fabrik geben würde, Ihnen aber nicht sagen würde, was die Eingabe ist, könnten Sie dies nicht durch Analyse der Fabrik und der Ausgabe herausfinden. 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 Emojis-Zeilen als Eingaben auszuprobieren, bis Sie die richtige gefunden haben.

Außerdem können Sie in der Fabrik herumlaufen und genau sehen, wie es funktioniert, aber Sie können eine Eingabe von ihrer Ausgabe immer noch nicht ausarbeiten oder „rückentwickeln“! Es ist eine reine Einwegfabrik.

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

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 bitten würde, es noch einmal mit denselben genauen Zutaten und demselben genauen Rezept zu tun, 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 Misch- und Kochschritte), dann wäre es wirklich schwierig, die genauen Mengen der Zutaten herauszufinden, die in die Zutaten gingen Kuchen.

Und vielleicht wäre das Backen von Kuchen mit Versuch und Irrtum mit unterschiedlichen Mengen an Zutaten der beste Ansatz. (Professionelle Köche können mir in diesem Punkt nicht zustimmen!)

Zurück zu den Eigenschaften der Emoji-Fabrik.

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

In der obigen Backanalogie kommen Sie mit der Zeit möglicherweise immer näher an die richtigen Mengen an Zutaten heran. In der Emoji-Fabrik führt die kleinste Änderung 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 austauschen, erhalten Sie eine völlig andere 3-Emoji-Ausgabe.

Dies bedeutet, dass Sie dem Finden des richtigen Eingangs für einen bestimmten Ausgang nicht näher kommen können. Sie müssen nur blind verschiedene Emojis-Linien ausprobieren, bis Sie über die richtige stolpern.

Beim Mining in der Blockchain handelt es sich im Wesentlichen um Computer, die mithilfe von Versuch und Irrtum Eingaben in eine Emoji-Factory finden, die Ausgaben mit einer bestimmten Eigenschaft zurückgeben, z. B. Ausgaben, die mit zwei Auberginen beginnen.

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

Jetzt bin ich sicher, dass Sie bereits denken ...

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

… Und du hättest recht. Wenn Sie 8 Emojis in die Fabrik legen 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 selbst wenn Sie einen Eingang für einen bestimmten Ausgang kennen, Versuch und Irrtum leider immer noch der schnellste Weg ist, einen der anderen Eingänge zu ermitteln, die denselben Ausgang liefern.

Mit anderen Worten, der schnellste Weg, zwei Eingaben zu finden, die dieselbe Ausgabe liefern, 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. Wenn Sie den Eingang leicht ändern, wird der Ausgang völlig anders. (diffundierend)
  4. Bei einer Ausgabe ist Versuch und Irrtum der schnellste Weg, um die entsprechenden Eingaben zu ermitteln. (Einweg)
  5. Versuch und Irrtum ist der schnellste Weg, um zwei Eingänge zu finden, die den gleichen Ausgang liefern. (kollisionssicher)

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 haben alle, wenn es einen Datenverstoß gibt und jemand die persönlichen Daten der Website erhält, eine Reihe von Hashes, aber keine tatsächlichen Passwörter!

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

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

Aber im wirklichen Leben wählen Sie Ihr Passwort aus einem viel größeren Satz möglicher Zeichen und daher ist die Anzahl der verschiedenen möglichen Eingaben so viel größer. Auch die Ausgänge einer realen 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 herausgearbeitet hat!

Und trotz der Datenverletzung können Sie es einfach eingeben, wenn Sie sich unschuldig wieder auf der Website anmelden möchten, da Sie Ihr Passwort kennen.

An diesem Punkt wird es sofort durch eine Hash-Factory geleitet, die Ihren Passwort-Hash gibt. Und die Website kann sofort überprüfen, ob sie mit dem von Ihnen gespeicherten Hash mit Ihrem Namen übereinstimmt oder nicht, da die Hash-Factory immer dieselbe Ausgabe zurückgibt (deterministisch) 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, verwendet wird, Emoji-Linien beliebiger Länge in einen Hash von 3 Emojis „hashen“.

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. Folgendes machen wir.

  1. Wir zerlegen die längere Reihe von Emojis in einen anfänglichen Teil von 8 Emojis, gefolgt von Teilen von 5 Emojis. (Wenn der letzte Block nicht genau 5 Emojis ist, können wir ihn mit einigen zusätzlichen Emojis auffüllen, aber dieser zusätzliche Schritt ist etwas technischer. Nehmen wir also einfach 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 gebracht.
  3. Wir nehmen die ausgegebenen 3 Emojis und platzieren sie in einer Linie mit dem ersten Stück von 5 Emojis und setzen sie durch die zweite Fabrik zusammen.
  4. Wir wiederholen diesen Vorgang, bis wir die gesamte Emojis-Linie durch eine Fabrik geführt haben.
  5. Wir geben die Ausgabe der letzten Fabrik zurück.

Jetzt können wir viel längere Emojis-Zeilen in nur 3 Emojis zerlegen!

Abwarten…

Jetzt, da die Eingaben viel länger sein können, können wir sicher zwei Linien finden, die dieselbe Ausgabe (eine Kollision) viel einfacher erzeugen?

Intuitiv könnte man so denken. Erstaunlicherweise ist dies genauso schwierig wie das Auffinden einer „Kollision“ in einer Fabrik, und die Argumentation lautet wie folgt.

Argumentation

Angenommen, Sie konnten zwei längere Emojis-Zeilen finden, die dieselbe Ausgabe (eine Kollision) mit einer anderen Methode als Versuch und Irrtum erstellt haben.

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

Dies bedeutet jedoch, dass Sie in einer Fabrik eine Kollision mit einer anderen Methode als Versuch und Irrtum gefunden haben. Dies ist ein Widerspruch, da wir davon ausgegangen sind, dass jede Fabrik kollisionsfest ist!

Und so…

… Mit einigen zusätzlichen Fabriken und einigen mathematischen Überlegungen haben wir einen Weg geschaffen, Emojis jeder Länge in nur drei Emojis zu zerlegen.

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 mit der Anzahl der verschiedenen Kombinationen, die im realen Hashing verwendet werden, kann Versuch und Irrtum viele Jahre dauern!

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

Was ist mit Blockchain?

Stellen Sie sich vor, Sie haben ein Dokument (voller Emojis). Vielleicht beschreibt das Dokument eine Finanztransaktion. Und Sie möchten den Menschen beweisen, dass sich dieses Dokument zu einem genauen Zeitpunkt (im letzten Emoji) in einem genauen Zustand befand.

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

Diese Leute können nicht herausfinden, was das Dokument ursprünglich gesagt hat, da die Fabrik einseitig 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 ohne Zweifel beweisen, dass sich das Dokument bis zum letzten Emoji (oder Buchstaben) auf der Seite in einem genauen Zustand befand. genau zu dem Zeitpunkt, als Sie es an ein dezentrales Netzwerk von Personen gesendet haben.

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

in Summe

Die Einweg- und kollisionssicheren Eigenschaften einer Hash-Funktion sind so stark, 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 gelten, ist das Innenleben der Fabrik irrelevant. Die Eigenschaften von Hash-Funktionen sind viel interessanter als ihre internen Funktionen (es sei denn, Sie sind Mathematiker / Kryptograf!).

Tatsächliche Hash-Funktionen akzeptieren hexadezimale Zeichenfolgen (keine Sixemojical-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 (oder 128 Zeichen für zusätzliche Sicherheit) zurück.

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 lesen Sie meinen neuesten Blog Das Rätsel des Königs: Wie das Problem von heute der Erfolg von morgen sein kann.

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

Diese Geschichte wird in The Startup veröffentlicht, der größten Publikation für unternehmerische Initiative von Medium, gefolgt von mehr als 298.432 Personen.

Abonnieren Sie, um unsere Top-Storys hier zu erhalten.