Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Digitale Signaturen und Besitz

Nach dieser Lektion: Ich kann erklären, wie eine Signatur zeigt, wer eine Zahlung ausgelöst hat.

Lektion, 65 Min.1 BefehlBlockchain-Lab: eine Spielzeugkette in Python zum Lesen, Brechen, Minen und Signieren

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

BegriffWas er bedeutet
Privater Schlüsselein Geheimnis, das nur die besitzende Person kennt
Öffentlicher Schlüsselder Teil, den alle sehen und zum Prüfen benutzen
Signaturein Beweis, dass genau diese Nachricht mit dem privaten Schlüssel gezeichnet wurde
Einmalsignaturein Schlüsselpaar, das nur eine Nachricht signieren darf
Verifiziereneine 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

TeilInhaltWer kennt ihn
Privater Schlüssel256 Paare von GeheimnissenNur die besitzende Person
Öffentlicher SchlüsselDer Hashwert jedes Geheimnisses, ebenfalls 256 PaareAlle
Signatur256 aufgedeckte Geheimnisse, eins je PaarAlle, 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

Befehl
docker exec jupyter python3 steps/sign.py

Hier 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.

Über dieses Lab und seinen Quellcode: Blockchain-Lab: eine Spielzeugkette in Python zum Lesen, Brechen, Minen und Signieren

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.