Was ist eine extrem grundlegende asymmetrische Chiffre, die ich in der Kneipe präsentieren kann?


30

Ich versuche meinen Eltern die Grundlagen von Bitcoin zu erklären.

Eine der Kernkomponenten von Bitcoin ist das Signieren von Transaktionen, um sicherzustellen, dass Ihre Identität nicht imitiert werden kann, und damit die Notwendigkeit, eine vereinfachte asymmetrische Verschlüsselung zu erklären.

Was ist eine extrem einfache asymmetrische Chiffre, die ich als Beispiel verwenden kann?

Wie kann diese vereinfachte Chiffre zum Signieren verwendet werden?


17
Warum sollten Sie sich mit Kryptografie befassen, um in einem Pub über Bitcoin zu sprechen? Nach meinem Verständnis löst das Bitcoin das Problem der Aufrechterhaltung eines verteilten Hauptbuchs und vermeidet insbesondere das Problem der doppelten Ausgaben. Die Motivation besteht darin, keine zentrale Behörde zu haben, und dies kann erreicht werden, indem jedem Teilnehmer gestattet wird, eine Transaktion zu genehmigen (anstatt diese der Bank zu erteilen). Um zu vermeiden, dass gegnerische Teilnehmer ihre eigenen ungültigen Transaktionen genehmigen, wird das Konzept des Arbeitsnachweises eingeführt. Über Kryptografie mit öffentlichen Schlüsseln muss nicht gesprochen werden.
Ariel

@Ariel Public-Key-Kryptografie oder zumindest digitale Signaturen kommen zum Einsatz, wenn Sie wissen möchten, dass die Person, die 3 BTC von Ariel an Ryan sendet, tatsächlich Ariel ist.
Derek Elkins

1
Richtig, aber das ist nicht bitcoinspezifisch, so dass seine Eltern es nur verwirrend finden.
Ariel

1
Sie können asymmetrische Kryptografie, Block Chain oder Bitcoin erklären. Wähle eins.
Raphael

2
Diese Frage ist möglicherweise besser für die Kryptografie geeignet .
Raphael

Antworten:


28

Wenn Sie Ihren Eltern oder Freunden Kryptografie mit öffentlichen Schlüsseln präsentieren möchten, sollten Sie einige Richtlinien befolgen. Sprechen Sie zuerst nicht über bestimmte Funktionen, niemand kümmert sich um SHAxxx, halten Sie Ihr Gespräch konzeptionell. Das durch die Kryptografie mit öffentlichen Schlüsseln gelöste Problem besteht darin, dass zwei Parteien, die sich noch nie zuvor getroffen haben, sicher Informationen in einem öffentlichen Kanal austauschen können. Verwechseln Sie dies nicht mit anderen Anwendungen, die durch Verschlüsselung mit öffentlichen Schlüsseln wie digitale Signaturen oder Authentifizierung erreicht werden.

Ein anschauliches einfaches Beispiel dafür, das ich gesehen habe, ist das Folgende. Angenommen, zwei Parteien haben einen Eimer und mehrere Farben und wollen sich auf eine bestimmte geheime Verbindung einigen. Sie dürfen sich gegenseitig einen Eimer mit einer bestimmten Verbindung schicken, aber alles, was gesendet wird, ist einem bösen Gegner ausgesetzt. Die Grundannahme ist, dass das Mischen von Farben einfach ist, die Zersetzung einer Mischung in ihre Bestandteile jedoch schwierig ist. Diese Annahme (die leicht mit der formalen Seite der Dinge verbunden ist) ermöglicht es Ihnen, ihr Ziel zu erreichen. Wählen Sie eine öffentliche Farbe und erlauben Sie beiden Parteien, eine geheime Farbe auszuwählen. Bezeichnen Sie diese mit S 1 , S 2 . Der erste Teilnehmer sendet dann einen Eimer mit einer Mischung aus P , S 1PS1,S2P,S1. In ähnlicher Weise sendet die zweite Partei einen Eimer, der eine Mischung aus . Schließlich fügt jede Seite der Mischung, die er erhalten hat, ihre eigene Farbe hinzu, und jetzt haben beide Parteien eine Mischung aus P , S 1 , S 2 , die (nach unserer Annahme) vor jedem Lauscher geheim bleibt. Eine formale Version davon ist das Diffie-Hellman-Schlüsselaustauschprotokoll, das sich auf die Härte des diskreten Protokolls stützt.P,S2P,S1,S2

Mein Verständnis des Bitcoin-Protokolls ist begrenzt, aber wenn ich mit deinen Eltern darüber spreche, sehe ich keinen Grund, mich mit Kryptografie zu befassen. Die meisten der populären Erklärungen, die ich gesehen habe, befassen sich unnötigerweise mit Implementierungsdetails und beginnen damit, ein Vorabbild eines Hashs zu finden, sodass das Ergebnis Nullen hat und das eigentliche Problem aus den Augen verliert. Nach wie vor schlage ich vor, das Gespräch konzeptionell zu halten. Welches Problem versucht die Bitcoin zu lösen und warum ist das nicht trivial? Nach meinem Verständnis löst das Bitcoin das Problem, ein verteiltes Hauptbuch zu führen, und vermeidet insbesondere die doppelten AusgabenxProblem. Die Motivation besteht darin, keine zentrale Behörde zu haben, und dies kann erreicht werden, indem jedem Teilnehmer gestattet wird, eine Transaktion zu genehmigen (anstatt diese der Bank zu erteilen). Um zu vermeiden, dass gegnerische Teilnehmer ihre eigenen ungültigen Transaktionen genehmigen, wird das Konzept des Arbeitsnachweises eingeführt. POW verwendet den Hash als Black Box, sodass Sie bestimmte Kandidaten nicht erwähnen müssen.


Bitcoin löst sowohl das Problem der doppelten Ausgaben (das es über die Blockchain erledigt, für das der von Ihnen beschriebene "Proof-of-Work" -Algorithmus von entscheidender Bedeutung ist) als auch die verteilte Authentifizierung von Übertragungsanforderungen (die weniger häufig diskutiert wird, da es sich lediglich um eine bereits erfolgte Authentifizierung handelt) -gelöstes Problem, dh Nachrichtenauthentifizierung über asymmetrische Schlüssel).
Jules

15

Eine verbreitete Metapher, von der ich höre, dass sie ein paar Vorhängeschlösser herstellt, alle Schlüssel aufbewahrt und offene Vorhängeschlösser an alle verschickt, die eines wollen. Dann kann jeder mit einem solchen Vorhängeschloss Ihnen geheime Nachrichten senden, indem er sie in eine Schachtel legt und dann eines Ihrer Vorhängeschlösser verwendet, um es zu sperren, bevor er es an Sie sendet. Da niemand außer Ihnen die Schlüssel besitzt, kann auch der Absender die gesperrte Box nicht mehr entsperren. Insbesondere kann der Postdienst Ihre Nachricht überhaupt nicht abhören. Sie haben vielleicht sogar ein Vorhängeschloss von Ihnen, aber das hilft ihnen nicht, die Schachtel aufzuschließen.

(Mit diesem Beispiel beantworte ich Ihre Frage wie angegeben, ohne eine bestimmte Meinung darüber zu haben, ob sie für die Bitcoin-Erklärung wirklich nützlich ist.)


1
Dies ist eine nützliche Erklärung für die asymmetrische Verschlüsselung, aber um zu erklären, wie Bitcoin funktioniert, ist die Signaturüberprüfung das Gegenteil: Sie haben eine Reihe von Vorhängeschlössern, die kaputt gehen, wenn Sie sie öffnen, und senden Schlüssel an alle, die sie benötigen Sie. Wenn Sie dann eine Nachricht senden, legen Sie sie in eine Schachtel und schließen sie mit einem Vorhängeschloss ab, sodass jeder mit dem Schlüssel erkennen kann, dass Sie die Nachricht gesendet haben.
Jules

@Jules Diese Erklärung gefällt mir sehr gut, da sie einem Originalitätsverschluss entspricht.
Ryan The Leach

7

Das Problem bei der Erklärung asymmetrischer Chiffren (und der Grund, warum die meisten Pop-Erklärungen eigentlich nichts erklären) besteht darin, dass sie mit der Idee verflochten sind, dass es Probleme gibt, die (vermeintlich) unlösbar sind, was eine der Ideen hinter der Komplexität von Berechnungen ist.

Sobald Sie diesen Punkt verdeutlicht haben, ist eine asymmetrische Chiffre "nur" eine Funktion, die einfach zu berechnen ist, aber als schwer zu invertieren angesehen wird. Sie könnten sogar Ihre eigenen erstellen und sich die ursprüngliche Implementierung des Diffie-Hellman-Schlüsselaustauschs als Referenz ansehen.


3
Das ist nicht die ganze Geschichte. Das Invertieren muss schwierig sein, es sei denn, Sie haben den privaten Schlüssel.
Ben Millwood

+1 für Diffie-Hellman. Es ist ein einfach zu erklärendes Protokoll, das dem Farbbeispiel entspricht.
Ariel

4

Ich glaube nicht, dass es ein leicht nachweisbares asymmetrisches Verschlüsselungssystem gibt. Beschreiben Sie stattdessen, was es tut, nicht wie es es tut. Tatsächlich musste ich dies kürzlich tun, um zu beschreiben, wie PGP funktioniert. Konzentrieren Sie sich bei BitCoin auf den zweiten Teil, das Signieren von Nachrichten.

Ich kann zwei verwandte Nummern erstellen. Man nennt das privater Schlüssel bezeichnet , der andere als öffentlicher Schlüssel . Ich halte das erste geheim und sage jedem das zweite. Jeder, der mir eine Nachricht senden möchte, nimmt meinen öffentlichen Schlüssel und verschlüsselt seine Nachricht damit. Sobald dies erledigt ist, kann niemand die Nachricht entschlüsseln, nicht einmal der Absender. Wenn ich die Nachricht erhalte, kann ich sie mit meinem privaten Schlüssel entschlüsseln.

Oder ich kann eine Nachricht mit meinem privaten Schlüssel verschlüsseln und sowohl die verschlüsselte als auch die unverschlüsselte Nachricht an eine zweite Person senden. Wenn sie meinen öffentlichen Schlüssel haben, können sie den verschlüsselten Teil der Nachricht entschlüsseln. Dieser Teil ist mit dem nicht verschlüsselten Teil identisch. Dies zeigt, dass ich die Person war, die die Nachricht verschlüsselt hat.

Wenn sie fragen, wie die Schlüssel generiert werden, sagen Sie

Ich denke an zwei sehr große Primzahlen und transformiere sie dann durch eine mathematische Funktion. Es spuckt den privaten und den öffentlichen Schlüssel aus.

Dies ist natürlich eine Verschleierung der Tatsache, dass die asymmetrische Verschlüsselung normalerweise nicht für die Nachricht selbst funktioniert, sondern für einen Sitzungsschlüssel (zur Verschlüsselung) oder für einen Hash (zur Signaturüberprüfung). Es wird auch die sehr wichtige Anforderung ignoriert, dass Sie Ihren privaten Schlüssel geheim halten müssen - jeder, der Zugriff darauf hat, kann sich als Sie ausgeben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.