Zur Hauptseite  ..\..\..\                                                                       Zur Themenliste ..\..\                                                         Zur Bitcoin Übersicht ..\



Bitcoin Transaktionen

Moderne Verschlüsselungsverfahren: ECDSA

ECDSA wird von Bitcoin verwendet. Es ist die Abkürzung für  Elliptic Curve Digital Signature Algorithm.
Dieser Algorithmus verwendet eine elliptische Funktion zur Erzeugung von Schlüsselpaaren.


Grundprinzip moderner Verschlüsselungsverfahren.

Moderne Verschlüsselungsverfahren basieren auf Schlüsselpaaren. Beide Schlüssel eines Paares sind grundsätzlich gleichwertig, d.h., sie verfügen über denselben "Funktionsumfang", und sind daher grundsätzlich vertauschbar. Erst durch die praktische Umsetzung in der kryptographischen Anwendung werden den Schlüsseln unterschiedliche Funktionen zuteil, was sich schliesslich in unterschiedliche Bezeichnungen widerspiegelt. Die Tatsache, dass die Schlüssel meistens "öffentlicher Schlüssel" und "privater Schlüssel" genannt werden, bedeutet also nicht, dass sie unterschiedlich funktionieren, sondern dass ihnen unterschiedliche praktische Aufgaben zugeteilt worden sind. "Privater Schlüssel" und "Öffentlicher Schlüssel" bedeuten also nur, dass in der gegebenen kryptographischen Anwendung der eine Schlüssel geheimgehalten werden muss, und der andere öffentlich verteilt werden kann, nicht mehr und nicht weniger. Welcher Schlüssel welche Rolle bekommt, ist egal.

Einführendes Beispiel

a) Verschlüsseln

Angenommen, ich möchte, dass mir eine bestimmte Person eine Nachricht schickt, deren Inhalt nur ich selbst erfahren soll. Diese Person kann nicht zu mir kommen, und es ist davon auszugehen, dass die Nachricht auf dem Weg zu mir abgehört wird. Ich erzeuge ein Schlüsselpaar, bestehend aus privatem Schlüssel und öffentlichem Schlüssel. Den öffentlichen Schlüssel könnte ich z.B. per E-Mail an die Zielperson schicken, oder ich mache ihn sprichwörtlich öffentlich, indem ich ihn z.B. auf einer Internetseite darstelle, etc. Entscheidend ist nur:
Die Zielperson, schliesslich im Besitz des öffentlichen Schlüssels, verfasst die Nachricht, und verschlüsselt sie. Die unverschlüsselte Originalnachricht wird sie ggfs. umgehend vernichten.
Ab diesem Zeitpunkt kann niemand mehr die Nachricht entschlüsseln, ausser mir selbst. Die Zielperson muss nun dafür sorgen, dass mich die Nachricht erreicht. Das kann sie z.B. per E-Mail tun, sie auf einer Internetseite veröffentlichen, etc. Jetzt ist folgendes entscheidend:
Sobald die Nachricht mich erreicht hat, entschlüssele ich sie mit meinem privaten Schlüssel.

b) Signieren

Das Ganze funktioniert auch mit vertauschten Rollen, denn beide Schlüssel sind ja funktional gleich: 
Ich schicke der Zielperson eine
mit meinem privaten Schlüssel verschlüsselte Nachricht, die die Zielperson dann mit dem öffentlichen Schlüssel entschlüsseln wird. 
Das mag auf den ersten Blick witzlos erscheinen, weil ja jeder, der im Besitz des öffentlichen Schlüssels ist, die Nachricht entschlüsseln kann. Der Austausch geheimer Informationen funktioniert demnach nur in eine Richtung, nämlich zu der Partei, die den (einzigen!) privaten Schlüssel hat. Doch eine wichtige Information kann ich der Zielperson auf diese Weise dennoch zukommen lassen:
Diese Nachricht stammt von mir selbst, und nicht von jemand anderem! Durch die Verschlüsselung habe ich die Nachricht signiert, d.h., für jeden, der den öffentlichen Schlüssel besitzt, kenntlich gemacht, dass die Nachricht nur von demjenigen kommen kann, der den dazu passenden privaten Schlüssel hat. (Hinweis: Signieren funktioniert etwas anders, aber das Prinzip stimmt)
Der Wert der Signierung tritt in dem geschilderten Beispiel leider nicht so richtig hervor, doch im Bitcoin Kontext wird er es.

Beispiel: Transfer sensibler Daten

Ein weniger dramatischer, dafür alltäglicher Anwendungsfall geht so:
Ich möchte sensible Daten von meinem Computer (C) an einen entfernten Server (S) schicken.

  1. C fordert bei S eine verschlüsselte Transaktion an.
  2. S erzeugt ein Schlüsselpaar, und schickt an C folgendes:
  3. C empfängt beides. Dadurch, dass C das Zertifikat entschlüsseln und sichtbar machen kann, weiss C nun folgendes:
  4. C verschlüsselt die Daten, und schickt sie an S
  5. S empfängt die Daten, entschlüsselt sie mit dem privaten Schlüssel, und speichert sie ab.
Auf Bitcoin übertragen wird die Bedeutung der Signierung besser hervortreten (folgt später).

Weiter

Datenschutzhinweise
September 2020