3.13
Realisierung des Beta-Systems
Für das Beta-System verwenden wir das blinde Schnorr-Signaturschema
(Stadler, 1996, S. 35).
3.13.1 Blindes
Schnorr-Signaturprotokoll
Die Parameter entsprechen dem Schnorr-Signaturschema.
Schlüsselerzeugungs-Algorithmus
-
Wähle einen zufälligen Schlüssel
und
berechne
und
liefere als Ausgabeparameter das Paar 
Blinde Signatur-Algorithmus 
Zunächst erzeugt Server einen zufälligen geheimen
Schlüssel
aus
und
berechnet den zugehörigen öffentlichen Zufallsschlüssel
-
Der Client verdeckt a, indem er zwei zufällige
Transformationsschlüssel
und
aus
auswählt
und
berechnet,
woraus Client die blinden Wert
gewinnt.
-
Der Client berechnet seine Signatur
und
sendet das authentifizierte Datenpaket
zum
Server.
-
Der Server führt Wahlbedingungen(
)
aus und antwortet daraufhin mit dem 
-
Client überprüft nun ob,
gilt.
-
Anschließend transformiert Client

-
Nach Ablauf des Protokolls liefert Client
wobei
ist.
Verifikations-Algorithmus
-

-
Falls
ist, dann liefert die Ausgabe GÜLTIG, sonst UNGÜLTIG.
Außerdem publiziert der Server für jeden Teilnehmer
den Nachweis
mit
seiner Signatur im BBS. Dadurch existiert ein öffentlicher
Nachweis, daß der Server tatsächlich eine blinde Signatur leistete.
Als Alternative zum blinden Schnorr-Signaturschema wäre
beispielsweise eine blinde RSA-Variante durchführbar.
3.13.2 RSA-Verschlüsselungsschema
Das populärste asymmetrische Codierungsverfahren
RSA wurde von Ron Rivest, Adi Shamir und Leonard Adleman 1978 publiziert
(Rivest/Shamir/Adleman, 1978) und hielt jahrelanger Kryptoanalyse stand.
Die Systemparameter bestehen aus dem öffentlichen
Schlüssel
und
dem geheimen Schlüssel
Jeder
Inhaber eines geheimen Schlüssels benötigt einen eindeutigen
Modulus
Außerdem
müssen die beiden Primzahlen p und q geheim bleiben.
Das RSA Verschlüsselungsschema besteht aus drei Algorithmen:
Schlüsselerzeugungs-Algorithmus
-
Wähle zwei zufällige und gleichlange Primzahlen
p
und
q,
.
Der Wert t dient als Sicherheitsparameter.
-
Berechne die Eulersche Phi-Funktion
und
Modulus
.
-
Wähle einen Codierungsschlüssel e, der zu
relativ
prim ist, d.h. es gilt
.
-
Berechne

-
Ausgabeparameter: Schlüsselpaar

Verschlüsselungs-Algorithmus
-
Ausgabeparameter:

Entschlüsselungs-Algorithmus
-
Ausgabeparameter:

Die Sicherheitsannahme des RSA-Systems beruht darauf, daß
die Wiederherstellung des Klartextes bei gegebenem öffentlichen Schlüssel
und Chiffretext der Faktorisierung des Produkts beider Primzahlen (p,q)
entspricht (Faktorisierungsproblem). Seit Jahrhunderten versuchten Mathematiker
erfolglos, Algorithmen zur schnellen Primfaktorzerlegung zu finden. Ein
Brute-Force-Angriff, der jeden möglichen geheimen Schlüssel ausprobiert,
gilt als ineffizienter als der Versuch, M zu faktorisieren (Schneier,
1996).
3.13.3 RSA-Signaturschema
Das RSA-Signaturschema hat die gleichen Parameter wie
das RSA-Codierungsschema.
Schlüsselerzeugungs-Algorithmus
Siehe RSA-Verschlüsselungschema.
Signatur-Algorithmus
-
Berechne

-
Ausgabeparameter: Signatur s.
Verifikations-Algorithmus
-
Berechne die Hash-Summe

-
Berechne

-
Falls

dann liefere den Ausgabewert GÜLTIG, sonst UNGÜLTIG.
3.13.4 Blindes
RSA-Signaturschema
Das blinde RSA-Signaturschema basiert auf den Parametern
des RSA-Kryptosystems. Die erste RSA-Implementierung stammt von David Chaum
(Chaum, 1985). Eine RSA-Variante wird auch für E-Cash eingesetzt.
Schlüsselerzeugungs-Algorithmus
Der Schlüsselerzeugungs-Algorithmus ist analog zum
RSA-Codierungsschema. Der Algorithmus liefert als Ausgabeparameter das
Paar
Blinde Signatur-Algorithmus 
-
Client erzeugt einen zufälligen Transformationsschlüssel
camoufliert
m
und erhält
.
Dann signiert er
und
sendet
zum
Server.
-
Der Server überprüft Wahlbedingungen(
)unterzeichnet
mit
seinem Signaturschlüssel
,
und sendet das Resultat
zum
Client zurück.
-
Der Client entfernt den Transformationsschlüssel
durch
Anwendung der Rücktransformation
und
erlangt eine gültige Signatur
zu m.
Verifikations-Algorithmus
Dieser funktioniert analog zum RSA-Signaturverifikations-Algorithmus.
Außerdem publiziert der Server für jeden Teilnehmer
den Nachweis
mit
seiner Signatur im BBS.
3.13.5 Erweiterter
blinder Schnorr-Signatur-Algorithmus
In diesem Abschnitt definieren wir eine Implementierung
des erweiterten Schnorr-Signatur-Algorithmus, um das parallele Ausstellen
von Zertifikaten zu erreichen. Dieser Algorithmus wurde bisher noch nicht
publiziert.
Erweiterter blinder Schnorr-Signatur-Algorithmus
-
Der Server erzeugt EMAX zufällige geheime Schlüssel
aus
und
berechnet die öffentlichen Zufallsschlüssel


und
sendet
zum
Client.
-
Der Client verdeckt
indem
er zwei zufällige Transformationsschlüssel
und
aus
auswählt
und 

berechnet,
woraus Client die blinden Werte
gewinnt
.





