is-Logo

Kryptographie
Elektronisches Geld - Digicash

S. Spolwig

[Home | Kryptographie]

page_dowm

Buchgeld gibt es schon lange. Aber kann man neben Münzen und Noten auch Bargeld herstellen, das nicht aus Metall oder Spezialpapier besteht, sondern aus Bitfolgen, die als Datei auf einem Computer gespeichert sind und mit denen man genauso bezahlen kann wie mit Bargeld? Ja man kann, aber es ist klar, dass die Anforderungen an die Sicherheit und der Schutz vor möglichem Missbrauch sehr hoch sein müssen. Das gewährleisten die kryptographischen Verfahren RSA und Signatur, die wir schon kennen, ergänzt um ein Anonymisierungsverfahren (Blind Signatur). Folgende Forderungen müssen erfüllt sein:

  • Authentizität: Nur autorisierte Instanzen (Banken) dürfen Geld herstellen. Es darf nicht möglich sein, die Bitfolge, die die Münze darstellt, zu raten.
     

  • Verifizierbarkeit: Der Zahlungsempfänger muss den Geldcharakter und die Echtheit einer Datei prüfen können.
     

  • Unikat: Banknoten fälschen ist ziemlich schwierig. Eine Datei kopieren kinderleicht. Es wird also ein Schutz gegen mehrfaches Einreichen der Münze (double spending protection) benötigt
     

  • Anonymität: Das freut nicht nur die Mafiosi, es gibt genügend gute Gründe für den ehrbaren Bürger, dass man seiner Zahlung z.B. nicht ansehen kann, was er bei wem gekauft hat.

Am Beispiel Digicash, das von David Chaum, dem Erfinder des Protokolls für digitales Bargeld, entwickelt wurde, kann man überprüfen, in wie weit diese Forderungen erfüllt werden. In einem stark reduzierten Modell gibt es drei Beteiligte: Käufer - Verkäufer - Bank.

 

Prinzipielle Darstellung Kryptographische Umsetzung
1.  Geld erzeugen

Käufer schreibt auf einen Zettel: Das sind 100 DM und fügt eine genügend große Seriennummer (z.B. 64 bit) hinzu.

(Bank hat öffentlichen Schlüssel e,n  und privaten Schlüssel d)
 
Zufällige Seriennummer M erzeugen, die einem bestimmten Muster genügt, an dem Beteiligte erkennen können, dass es sich um eine Geldzahl handelt.
2.  Blinding

Den Zettel legt er in einen Umschlag mit einem Kohlepapier darüber.

Die Bank signiert den Umschlag, ohne ihn zu öffnen. Die Seriennummer bleibt ihr also unbekannt. Die Signatur wird auf dem einliegenden Geldzettel abgedrückt.
Bank belastet Käuferkonto mit 100 DM und sendet den Geldbrief an Kunden zurück. (Damit ist auch klar, dass es sich im finanztechnischen Sinne nicht um eine Geldschöpfung handelt.)

Käufer öffnet den Umschlag und entnimmt den signierten Geldschein (unblinding).

Umschlag erzeugen mit einer Zufallszahl r zwischen 1 und n. Zum Verdecken M mit r multiplizieren:
U = M x r e mod n


U d = (M x r e) d mod n = M d x r mod n









Umschlag entfernen durch Multiplikation mit r -1, um Signatur s zu gewinnen.

s = U d x r -1 mod n
s = M d mod n

3.  Digitale Zahlung leisten

Käufer sendet den signierten Geldschein an Verkäufer.
Käufer prüft Echtheit des Schein.






Signatur mit öffentlichem Schüssel e prüfen
4.  Geldschein einlösen

Verkäufer sendet ihn an die Bank, die prüft, ob die Seriennummer schon einmal vorgelegt wurde. Sie weist zurück oder erteilt Gutschrift.





Double Spending Test, eine Online-Prüfprozedur.
Die Seriennummer jeder Münze, die bei der Bank eingelöst wird, ist in einer Datenbank vermerkt.

 

Eingesetzte kryptographische Verfahren:

768 Bit RSA, TripleDES und Hash-Funktionen (SHA-1).

Die verwendete Hash-Funktion SHA-1 berechnet aus einem beliebig langen Klartextstück eine Bitfolge mit fester Länge. Diese Bitfolge ist als einzigartig anzusehen. Sie wird verwendet um eine digitale Signatur zu erstellen.



 05. Oktober 2008   ©  Siegfried Spolwig

page_top