Elektronische Signaturen dienen der Authentifizierung – im Sinne dessen daß sie (vgl. Signaturgesetz):
Man unterscheidet Signaturen mit „Message Recovery” (siehe z. B. [ISO02a] oder [MvV92]) und Signaturen mit „Appendix”. In der Praxis werden Signaturen mit Anhang nach [IEE00, PKC02, NIS09, ANS05] wohl am häufigsten verwendet. Ihre Bildungsvorschrift kann man wiefolgt skizzieren (siehe auch Abbildung 4.4):
Die Integrität der empfangenen (und möglicherweise veränderten) Nachricht kann im weiteren mit
Hilfe der Signatur verifiziert werden. Dazu sind auf der Empfängerseite folgende Schritte
nötig:
Die RSA-Signatur über eine Nachricht wird berechnet, indem der Hash-Wert von
mit dem
privaten RSA-Schlüssel (vgl. Abschnitt 3.1) verschlüsselt wird. Auf der Empfangsseite muß der, mit
dem öffentlichen Schlüssel entschlüsselte Hash, mit dem berechneten Wert für die Nachricht
übereinstimmen.
RSA hat die für digitale Signaturen wichtige Eigenschaft, daß Ver- und Entschlüsselung vertauschbar sind.
Der Digital Signature Algorithm (DSA) wurde ursprünglich in [NIS94] standardisiert (dessen
Nomenklatur hier beibehalten wurde), ist mittlerweile aber in überarbeiteten Fassungen, z. B. [NIS13,
4] und [IEE00] zu finden. Auch hierbei wird das Problem des diskreten Logarithmus genutzt, um einen
öffentlichen und privaten Schlüssel zu definieren und mit dessen Hilfe eine Signatur zu berechnen bzw.
zu verifizieren. Wie bei Signaturen üblich wird der Hash (Digest, Fingerprint) einer Message
signiert bzw. verifiziert.
Ansatz
Wir wählen im Gegensatz zu der gewohnten Literatur einen etwas universelleren
Ansatz, welcher den ECDSA nach [NIS13, ANS05, IEE00] gleich mit
abdeckt.49
Dazu sei die jeweils typische Einweg-Funktionen folgendermaßen definiert:
wobei ein Element aus dem jeweiligen Körper
(
für DSA bzw.
für ECDSA)
und
einen Skalar (mit
) darstellt.
In beiden Fällen kann man bezüglich einer Operation , mit
![]() | (4.2) |
die Eigenschaft der Linearität festhalten. Konkret soll die Operation folgendes bezeichnen:
Außerdem wollen wir noch eine hilfreiche Abbildungsfunktion definieren, welche aus einem
Element
der jeweiligen Domäne (DLC/ECC) und dem Domain-Parameter
eine Langzahl
ableitet.
Das Ergebnis kann dann als eine Komponente der Signatur verwendet werden (Details dazu folgen).
Schlüsselgenerierung
Zuerst wird ein privater Schlüssel als Zufallszahl bestimmt. Aus diesem wird dann ein öffentlicher
Schlüssel
mit Hilfe der Einweg-Funktion
berechnet:
![]() | (4.3) |
Dabei sei ein Basiselement aus dem jeweiligen Körper, dessen Ordnung
eine Primzahl sein
muß.50 Der
private Schlüssel
muß im Intervall
liegen, d. h.
entstammt der multiplikativen Gruppe
.51
Interessanterweise gilt für den öffentlichen Schlüssel folgende Relation:
![]() | (4.4) |
welche eine wichtige Grundvoraussetzung für die Wirkungsweise des Algorithmus darstellt. Wir wollen Sie schnell noch überprüfen.
Signieren
Zum Signieren wählt man eine Zufallszahl , den privaten
„Einmal-Schlüssel” und berechnet damit zwei Zahlen
nach folgender
Vorschrift:52
Die Komponenten stellen eine DSA/ECDSA Signatur dar, welche später vom Empfänger
verifiziert wird.
Durch die Wahl des Basiselements bzw. die Größe von
kann man sehr gut die Länge der Signatur
beeinflussen.
Zur Bestimmung des inversen ist das Lösen der Kongruenz
notwendig.
Vorteilhaft können sowohl Gleichung 4.5 als auch
im Voraus (off-line) berechnet werden, falls
erlaubt53 .
und mit den beiden schon angedeuteten Variablen und
entsprechend [NIS13]:
![]() | (4.7) |
Verifizieren
Abgesehen von den Wertebereichsprüfungen und
erfolgt das Verifizieren vor
allem mit Hilfe der Formeln 4.3 und 4.4. Dies geschieht (siehe z. B. auch [NIS13, Appendix E])
indem zuerst aus der übermittelten Signatur
die Variablen
und
berechnet
werden.
Im nächsten großen Schritt wird dann berechnet, was nur im Fall
und
(bzw.
und
) sowie bei passenden Schlüsseln und Domain-Parametern zu
führt.
In den Einzelschritten wurden dabei die Formeln 4.4, 4.2, 4.7 und 4.5 angewendet (in genau dieser Reihenfolge).