MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.

________________________________________________________________________________

 

Inhalt....: Digitales Geld

Kategorie.: Arbeitsblatt

Mathematik: Kryptographie, Zahlentheorie

MuPAD.....: 3.0.0

Datum.....: 2003-06-23

Autoren...: Julia Faflek <faflek@mupad.de>

Funktionen: nextprime, random, igcd, powermod

________________________________________________________________________________

 

Blinde Signaturen und digitales Geld

 

Das Bezahlen im Internet mittels Kreditkartennummer etc. ist  immer noch recht unsicher.

Daher ist es sinnvoll, eine interneteigene Währung, sogenanntes digitales Geld, einzuführen.

 

 

Wie soll digitales Geld im Internet realisiert werden? Da man durch das Inter-

net nur Nullen und Einsen schicken kann, muss eine Geldmünze durch einen

Bitstring repräsentiert werden, der als Zahl aufgefasst wird. Die Bank vergibt

also irgendwie einen autorisierten Bitstring an uns, im Gegenzug wird der

Wert dieser Münze von unserem Konto abgebucht. Nun können wir zu einem

Händler gehen und einkaufen. Nachdem der Händler überprüft hat, ob es sich

auch wirklich um "echtes" Geld handelt, schickt er die Münze zur Bank. Diese

wiederum wird testen, dass die Münze auch nicht schon einmal zur Bezahlung

benutzt wurde. Wir merken, dass bei diesem Vorgehen viele Faktoren zu be-

rücksichtigen sind, z.B. die eben angesprochene Einmaligkeit des Geldes oder

die Wahrung der Anonymität der Beteiligten. Eine große Hilfe zur Erreichung

der Ziele bietet die blinde Unterschrift, die auf David Chaum zurückgeht und

stark auf RSA beruht. Diese Art von Unterschrift kann man sich wie folgt vor-

stellen: In einem Briefumschlag befinden sich ein Dokument und ein Kohle-

papier. Nun kann die Bank durch den Umschlag hindurch das Dokument sig-

nieren, ohne es gesehen zu haben. Man muss jetzt nur noch das unterschrie-

bene Dokument aus dem Umschlag herausnehmen.

 

Schauen wir uns das Ganze nun im Detail an.

 

Als erstes wird der RSA-Modul N erzeugt, sowie die Schlüssel der Bank, e

ist der öffentliche und d der private Schlüssel für die 10€-Münzenerstellung.

 

p := nextprime(2^600);

q := nextprime(p + 2^16);

N := p*q;

e := random(1..N)():

while (igcd(e, (p-1)*(q-1)) > 1) do

    e := random(1..N)()

end_while:

e;

d := powermod(e, -1, (p-1)*(q-1));

math

math

math

math

math

 

Wir wollen von der Bank eine 10€-Münze bekommen. Zunächst müssen wir

eine Zahl m < N erzeugen, die einer bestimmten Regel entspricht, die allen

Beteiligten bekannt ist. Die Zahl muss redundant sein, z.B. hier abcdabcdabcdabcd.

Dieses m soll von der Bank unterschrieben werden und damit eine gültige

10€-Münze werden.

 

m := 1234123412341234

math

Die Zahl m muss jetzt "geblendet" werden, also in einen Briefumschlag getan

werden. Dazu wählen wir eine modulo N invertierbare Zahl z, die dem Um-

schlag entspricht.

 

z := random(1..N)():

while (igcd(z, N) > 1) do

   z := random(1..N)()

end_while:

z

math

Nun wird ein r mit Hilfe des öffentlichen Schlüssels e der Bank berechnet,

welches den Briefumschlag mit dem Kohlepapier repräsentiert.

 

r := powermod(z, e, N)

math

Abschließend wird die geblendete Nachricht berechnet, die dem kompletten

Brief entspricht.

 

c := m * r mod N

math

Der Brief, also das c, wird an die Bank geschickt. Diese soll daraus eine 10€-

Münze erstellen, indem sie ihren geheimen Schlüssel verwendet.

 

s := powermod(c, d, N)

math

Dieses s wird an uns zurückgeschickt und fungiert als unterschriebenes Doku-

ment in dem Umschlag. Aber dies ist noch nicht die gewünschte Münze. Wir

müssen das Dokument noch aus dem Umschlag herausnehmen. Dazu über-

legen wir folgendes:

image

image

image

image

Wir wollten aber doch die unterschriebene Münze bekommen. Also berechnen

wir:

image

 

Muenze := s*1/z mod N

math

Wir überprüfen noch kurz, ob die erhaltene Münze auch wirklich das von der

Bank unterschriebene m ist:

 

is(Muenze - powermod(m, d, N) = 0)

math

Es hat also geklappt, die Bank hat das m unterschrieben, ohne es überhaupt

gesehen zu haben. Die Zahl z diente nur zum Verschleiern von m. Wir haben

nun eine autorisierte 10€-Münze und können bei einem Händler damit ein-

kaufen. Wie funktioniert denn das genau? Der Händler überprüft mit dem

öffentlichen 10€-Schlüssel der Bank:

 

m1 := powermod(Muenze, e, N)

math

Wenn die so errechnete Zahl das vorgegebene Redundanzmuster erfüllt, dann

weiß der Händler, dass die Münze echt ist. Anschließend schickt er die Münze

an die Bank, diese muss noch irgendwie überprüfen, ob mit der Münze schon

bezahlt wurde. Dieses System ist absolut anonym. Niemand kann von der Münze

auf unsere Identität schließen. Aber wie man leicht vermuten kann, gibt es doch

weitere Probleme. Wie will die Bank feststellen, dass wir die Münze nicht mehr-

mals verwenden? Über all diese Sachen muss man sich Gedanken machen,

wenn man elektronisches Geld benutzen will.

 

_____________________________________________________________________________________

 

Anmerkungen:

 

1.  Weitere Anregungen finden Sie unter: http://schule.mupad.de bzw. http://studium.mupad.de

 

_____________________________________________________________________________________

 

 

 

MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.