Woher weiß die Kette, wer gezahlt hat?
Eine digitale Signatur zeigt, dass eine Nachricht von der Person kommt, die den passenden privaten Schlüssel besitzt. In einer Blockchain beweist sie, dass Lena ihre Zahlung wirklich ausgelöst hat.
Ohne Signatur könnte jede Person „Lena zahlt Jonas 5“ in ein Hauptbuch schreiben. Der Name allein beweist nichts.
Am Ende dieser Lektion
Notiz
Ich kann erklären, wie eine Signatur zeigt, wer eine Zahlung ausgelöst hat.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Privater Schlüssel | ein Geheimnis, das nur die besitzende Person kennt |
| Öffentlicher Schlüssel | der Teil, den alle sehen und zum Prüfen benutzen |
| Signatur | ein Beweis, dass genau diese Nachricht mit dem privaten Schlüssel gezeichnet wurde |
| Einmalsignatur | ein Schlüsselpaar, das nur eine Nachricht signieren darf |
| Verifizieren | eine Signatur mit dem öffentlichen Schlüssel prüfen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Name allein beweist nicht, wer schreibt
Im Hauptbuch steht, wer zahlt und wer empfängt. Jede Person kann diese Zeile tippen. Es braucht einen Beweis, den nur die Besitzerin oder der Besitzer erzeugen kann.
Dafür gibt es ein Schlüsselpaar. Der private Schlüssel bleibt geheim und erzeugt die Signatur. Der öffentliche Schlüssel steht im Hauptbuch und prüft sie.
So signiert man nur mit Hashwerten
Im Labor steckt eine Einmalsignatur, die nur aus Hashwerten besteht. Der private Schlüssel sind 256 Paare von Geheimnissen. Der öffentliche Schlüssel ist der Hashwert jedes einzelnen Geheimnisses.
Zum Signieren hasht man die Nachricht und bekommt 256 Bits. Für jedes Bit deckt man aus dem Paar ein Geheimnis auf: bei einer 0 das erste, bei einer 1 das zweite.
Die drei Teile der Einmalsignatur
| Teil | Inhalt | Wer kennt ihn |
|---|---|---|
| Privater Schlüssel | 256 Paare von Geheimnissen | Nur die besitzende Person |
| Öffentlicher Schlüssel | Der Hashwert jedes Geheimnisses, ebenfalls 256 Paare | Alle |
| Signatur | 256 aufgedeckte Geheimnisse, eins je Paar | Alle, nachdem sie veröffentlicht ist |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Prüfen heißt jedes Geheimnis neu hashen
Wer prüft, hasht die Nachricht ebenfalls und kennt so die 256 Bits. Dann hasht sie jedes aufgedeckte Geheimnis und vergleicht es mit dem Eintrag im öffentlichen Schlüssel an der Stelle, die das Bit nennt.
Passt alles, kann nur jemand mit dem privaten Schlüssel signiert haben. Ändert sich die Nachricht, ändern sich die Bits, und aufgedeckt wäre das falsche Geheimnis.
Die Ausgabe des Labors ist englisch
Notiz
Das Skript sign.py gibt englische Wörter aus, zum Beispiel public key, signature und checks out. Wichtig sind die Zahlen 256 und die beiden Antworten True und False.
Eine Nachricht signieren und prüfen
docker exec jupyter python3 steps/sign.pyHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was die vier Zeilen sagen
Die ersten zwei Zeilen zählen: Der öffentliche Schlüssel hat 256 Paare von Hashwerten, die Signatur 256 aufgedeckte Geheimnisse. Die dritte Zeile endet mit True: Die signierte Nachricht besteht die Prüfung.
Die vierte Zeile prüft eine Nachricht, die sich in einem Zeichen unterscheidet, mit derselben Signatur. Sie endet mit False.
Ein Schlüsselpaar darf nur einmal signieren
Jede Signatur deckt die Hälfte der Geheimnisse auf. Eine zweite Signatur mit demselben Schlüssel deckt weitere auf. Wer beide sieht, kennt von manchen Paaren beide Geheimnisse.
Mit diesen Geheimnissen kann man eine dritte Nachricht fälschen, die zu den Bits passt. Darum benutzt man ein solches Paar genau einmal.
Ein häufiger Fehler
Warnung
Viele glauben, eine Signatur verschlüssele die Nachricht. Das stimmt nicht. Die Nachricht bleibt lesbar. Die Signatur beweist nur, wer sie gezeichnet hat und dass sie unverändert ist.
Das ist ein Lernbeispiel
Dieses Verfahren zeigt den Gedanken einer Signatur mit wenig Code. Es ist nicht dazu gedacht, echte Daten zu schützen. In Programmen nimmt man eine geprüfte Bibliothek und baut nie ein eigenes Verfahren.