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).