-
Die vorliegende Erfindung betrifft ein Verfahren und eine Recheneinheit zur Bereitstellung einer digitalen Signatur für eine zu übermittelnde Nachricht m auf Basis einer elliptischen Kurve E über einem Körper K.
-
Digitale Signaturen wurden ursprünglich als kryptographisches Analogon zur persönlichen Unterschrift entwickelt. Aus implementierungstechnischer Sicht stand dabei im Vordergrund, den Prozess der Signaturerzeugung auf leistungsschwachen Rechnern, wie etwa Chipkarten-ICs, mit akzeptablen Leistungswerten durchführbar zu machen. Der Aufwand für die Signaturverifikation, die üblicherweise auf leistungsstärkeren Rechnern vorgenommen wird, beispielsweise auf Personalcomputern, ist dagegen vergleichsweise unproblematisch.
-
Inzwischen wird das Konzept der digitalen Signatur in vielen rein technischen Anwendungen, wie zum Beispiel Machine-to-Machine-Kommunikation, eingesetzt, beispielsweise im Rahmen sicherer Software-Aktualisierungen. Hierbei ist das Szenario genau umgekehrt wie im oben beschriebenen klassischen Fall: Von einem leistungsfähigen Rechner, beispielsweise einem Server, wird ein neuer Software-Stand digital signiert und an die empfangenden Geräte, beispielsweise Feldgeräte mit begrenzten Ressourcen, übermittelt. Diese überprüfen die digitale Signatur der empfangenen Software; wenn diese korrekt ist, wird der alte Software-Stand überschrieben.
-
Bei den empfangenden Geräten handelt sich häufig um leistungsschwache Embedded-Devices, zum Beispiel batteriebetriebene Sensoren in Netzwerken.
-
Bekannte Verfahren zur Erzeugung und Verifikation digitaler Signaturen basieren auf einer über einem geeigneten endlichen Körper definierten elliptischen Kurve. Eine elliptische Kurve E ist dabei definiert durch eine kubische Gleichung, die im allgemeinsten Fall von der folgenden Bauform ist: E: y2 + a1xy + a3y = x3 + a2x2 + a4x + a6
-
Die Koeffizienten a1, ..., a6 sind hierbei Elemente eines (endlichen) Körpers K.
-
Die Punktmenge der elliptischen Kurve E ist die Menge aller Paare (x, y) aus K × K, welche die definierende Gleichung von E erfüllen. Ist ein Punkt P der elliptischen Kurve E durch das Koordinatenpaar (x, y) gegeben, so sagt man, der Punkt P liege in affiner Darstellung vor.
-
Ein endlicher Körper K ist hierbei eine aus nur endlich vielen Objekten bestehende mathematische Struktur, in der es vier Rechenoperationen gibt, die man üblicherweise als Addition, Subtraktion, Multiplikation und Division bezeichnet, wobei die von den reellen Zahlen bekannten Rechenregeln für diese Operationen in formaler Weise gelten. Von besonderer praktischer Bedeutung in der Kryptographie sind elliptische Kurven, die über einem der beiden folgenden Typen von Körpern definiert sind:
K = GF(p), wobei p eine Primzahl ist: Die Objekte von GF(p) sind die ganzen Zahlen 0, 1, 2, ..., p – 1. Die Rechenoperationen sind Moduloaddition, Modulosubtraktion, Modulomultiplikation und Modulodivision.
-
K = GF(2n): Die Objekte sind in diesem Fall die Binärvektoren der Länge n. Die Addition ist die bitweise XOR-Funktion. Einen Unterschied zwischen Addition und Subtraktion gibt es nicht. Die Multiplikation kann mit Hilfe von Schieberegisteroperationen realisiert werden.
-
Eine gemeinsame Eigenschaft beider Typen von endlichen Körpern ist, dass die Division wesentlich rechenaufwändiger ist als die Multiplikation. Der Unterschied im Rechenaufwand ist in der Regel um mindestens eine Größenordnung höher.
-
Elliptische Kurven sind unter Hinzunahme eines unendlich fernen Punktes O als neutrales Element additive Gruppen, deren Gruppengesetz geometrisch interpretiert werden kann. Wesentlich sind dabei zwei Ergebnisse aus der algebraischen Geometrie: Jede Gerade schneidet eine elliptische Kurve in drei (nicht notwendigerweise verschiedenen) Punkten, und zu je zwei (nicht notwendigerweise verschiedenen) Punkten kann ein dritter Punkt berechnet werden, so dass die die Summe der drei Punkte das neutrale Element O ist.
-
Seien P und Q zwei Punkte mit P ± Q und g die Gerade durch P und Q. Im Fall P = Q ist die Gerade die Tangente an die Kurve im Punkt P. Diese Gerade schneidet die elliptische Kurve in einem dritten Punkt R. Durch Spiegeln von R an der x-Achse erhält man für Körper der Charakteristik größer 2 die Summe S = P + Q. Kurz erwähnt sei der Fall P = –Q. Dann ist die Steigung der Geraden g unendlich und der dritte Schnittpunkt ist der unendlich ferne Punkt O.
-
Sei P ein Punkt einer elliptischen Kurve E und k eine natürliche Zahl. Die skalare Multiplikation k·P ist definiert als k-malige Addition von P zu sich selbst. Diese skalare Multiplikation bildet den wesentlichen Baustein von Kryptosystemen basierend auf elliptischen Kurven. Bei kryptographisch starken elliptischen Kurven stellt die skalare Multiplikation eine Einwegfunktion dar. Das heißt, sie ist in polynomieller Zeit durchführbar, aber nach aktuellem Stand der Forschung nur in exponentieller Zeit invertierbar (jeweils als Funktion der Länge der verwendeten Parameter). Eine effiziente algorithmische Rekonstruktion des Skalars ist daher schon bei moderaten Parameterlängen undenkbar.
-
Es sind verschiedene Verfahren zum Erstellen und Prüfen elektronischer Unterschriften auf Basis elliptischer Kurven bekannt, wie beispielsweise Elliptic Curve Digital Signature Algorithmus (ECDSA), Elliptic Curve based German Digital Signature Algorithm (ECGDSA) oder EC-ElGamal. Alle diese Signaturverfahren sind Varianten eines ursprünglich von Taher ElGamal beschriebenen Protokolls. Zur Implementierung der Operationen in der Gruppe der Punkte auf der jeweiligen elliptischen Kurve ist normalerweise eine Arithmetik für das Rechnen in einem endlichen Körper, über welchem die elliptische Kurve definiert ist, notwendig. Bei solchen Implementierungen von Arithmetiken über endlichen Körpern ist im Allgemeinen die Division beziehungsweise Inversion deutlich langsamer als die Multiplikation und Quadrierung. Der Unterschied kann bei einer optimierten Implementierung bis zu einem Faktor 40 betragen, um den die Division im Vergleich zur Multiplikation langsamer ist.
-
Eine bekannte Implementierung eines Algorithmus zur Verifikation elektronischer Signaturen gemäß ECDSA ist im Folgenden erläutert.
-
Es seien im Folgenden K ein endlicher Körper, E eine elliptische Kurve über K, P ∈ E ein Punkt auf der Kurve, welcher eine zyklische Untergruppe von primer Ordnung erzeugt, und β = |<P>| die prime Ordnung der zyklischen Untergruppe von E.
-
Die Eingabewerte für den Algorithmus sind ein mittels einer Hash-Funktion H(m) ermittelter Hashwert h für eine Nachricht m, wobei h eine ganze Zahl ist, ein öffentlicher Schlüssel des Erstellers der Signatur Q ∈ E sowie ein Signaturwert (r, s), wobei r und s ganze Zahlen sind.
-
Ausgabewert des Algorithmus ist eine Information darüber, ob die Signatur gültig oder ungültig ist.
-
Der Algorithmus umfasst folgende Schritte:
- 1. prüfe, ob 0 ≤ h < β gilt; falls nicht, ist Signatur ungültig
- 2. prüfe, ob 0 < r < β gilt; falls nicht, ist Signatur ungültig
- 3. prüfe, ob 0 < s < β gilt; falls nicht, ist Signatur ungültig
- 4. berechne t = 1 / s mod β, u = h·t mod β und v = r·t mod β
- 5. berechne affine x-Koordinate w des Punktes u·P + v·Q mittels Arithmetik in E über K
- 6. bilde Körperelement w mittels einer geeigneten Injektion auf eine ganze Zahl z ab
- 7. prüfe, ob die Gleichung r = z mod β erfüllt ist; falls ja, ist die Signatur gültig, sonst ungültig
-
In Schritt 4 wird das bezüglich Multiplikation inverse Element von s modulo β berechnet. Mit Hilfe des inversen Elements werden dann zwei Skalare u und v für Punktmultiplikationen in Schritt 5 berechnet. Für diesen Schritt sind entweder eine Inversion und zwei Multiplikationen modulo β oder alternativ zwei Divisionen modulo β nötig.
-
Vor diesem Hintergrund besteht eine Aufgabe der vorliegenden Erfindung darin, die Bereitstellung einer digitalen Signatur derart zu verbessern, dass die oben dargestellten Nachteile vermieden werden.
-
Demgemäß wird eine Recheneinheit zur Bereitstellung einer digitalen Signatur für eine zu übermittelnde Nachricht m auf Basis einer elliptischen Kurve E über einem Körper K mit einem Punkt P auf der Kurve E vorgeschlagen. Dabei erzeugt ein Punkt P eine zyklische Untergruppe der elliptischen Kurve E, wobei die zyklische Untergruppe eine prime Ordnung β aufweist, mit β = |<P>|. Weitere Voraussetzungen sind ein privater Schlüssel d mit 0 < d < β und eine Hashfunktion H. Die Recheneinheit hat ein Auswahlmittel zum Auswählen einer Zufallszahl k mit 0 < k < β. Weiterhin hat die Recheneinheit ein erstes Berechnungsmittel zum Berechnen eines ganzzahligen Wertes r mit r = x1 mod β, wobei gilt: k·P = (x1, y1). Die Recheneinheit hat zudem ein zweites Berechnungsmittel zum Berechnen eines ganzzahligen Wertes s mit s = k–1(H(m) + d·r) sowie ein drittes Berechnungsmittel zum Berechnen eines ganzzahligen Wertes s', wobei der ganzzahlige Wert s' die Inverse des ganzzahligen Wertes s bildet mit s' = 1 / s mod β. Ferner hat die Recheneinheit ein Bereitstellungsmittel zum Bereitstellen der digitalen Signatur, wobei die bereitgestellte digitale Signatur die ganzzahligen Werte r und s' umfasst.
-
Auf diese Weise wird die Inversion des Signaturwertes s modulo β bereits bei der Erstellung der Signatur berechnet. Die so angepasste Signatur steht dann zur Übertragung an die verifizierende Instanz bereit und besteht aus einem Paar (r, s'), wobei gilt s' = 1 / s mod β.
-
Die Berechnung des bezüglich der Multiplikation inversen Elements s' wird somit auf die Seite der Signaturerstellung verschoben, das heißt von der Recheneinheit zur Bereitstellung der digitalen Signatur ausgeführt.
-
Dadurch ergibt sich bei der Implementierung der Prüfroutine einer ElGamal-artigen Signatur über elliptischen Kurven der Vorteil, dass keine Inversion oder Division modulo der Ordnung β notwendig ist. Dies führt zu einer Reduzierung der für die Implementierung notwendigen Code-Größe.
-
Die Performance der Signaturprüfung wird verbessert, weil Prozessoren üblicherweise Befehle bereitstellen, welche die Multiplikation modulo β besser unterstützen als die Inversion beziehungsweise die Division. Dies ist insbesondere unter Berücksichtigung üblicherweise begrenzter Ressourcen in Feldgeräten wie beispielsweise Sensoren in einem Automatisierungsnetzwerk, oder hinsichtlich Chipkarten-ICs mit begrenzter Leistungsfähigkeit von Vorteil.
-
Die Recheneinheit ermöglicht somit insgesamt eine verbesserte Bereitstellung einer digitalen Signatur unter Beibehaltung der Sicherheit des zugrunde liegenden Signaturverfahrens. Gemäß einer Ausführungsform stellt das Bereitstellungsmittel die digitale Signatur mit den ganzzahligen Werten r, s und s' bereit.
-
Durch ein Bereitstellen der digitalen Signatur als Tripel (r, s, s') und somit als redundante Langform der digitalen Signatur ist eine vollständige Abwärts-Kompatibilität mit bekannten Signaturverfahren gewährleistet.
-
Gemäß einer weiteren Ausführungsform ist der Körper K ein endlicher Körper GF(2n).
-
Die Objekte sind in diesem Fall die Binärvektoren der Länge n. Die Addition ist die bitweise XOR-Funktion. Einen Unterschied zwischen Addition und Subtraktion gibt es nicht. Die Multiplikation kann mit Hilfe von Schieberegisteroperationen realisiert werden.
-
Der Körper GF(2n) ermöglicht eine besonders effiziente Bereitstellung der digitalen Signatur.
-
Gemäß einer weiteren Ausführungsform ist der Körper K ein endlicher Körper GF(p), wobei p eine Primzahl ist.
-
Die Objekte von GF(p) sind die ganzen Zahlen 0, 1, 2, ..., p – 1. Die Rechenoperationen sind Moduloaddition, Modulosubtraktion, Modulomultiplikation und Modulodivision.
-
Der Körper GF(p) ermöglicht eine effiziente Bereitstellung der digitalen Signatur.
-
Weiterhin wird eine Sendevorrichtung zum Senden einer mit einer digitalen Signatur signierten Nachricht m vorgeschlagen. Die Sendevorrichtung umfasst eine wie oben beschriebene Recheneinheit zur Bereitstellung der digitalen Signatur für die Nachricht sowie ein Signiermittel zum Signieren der Nachricht mit der bereitgestellten digitalen Signatur und ein Sendemittel zum Senden der signierten Nachricht.
-
Die Sendevorrichtung ermöglicht eine verbesserte Bereitstellung einer digitalen Signatur unter Beibehaltung der Sicherheit des zugrunde liegenden Signaturverfahrens.
-
Weiterhin wird ein Verfahren zur Bereitstellung einer digitalen Signatur für eine zu übermittelnde Nachricht m auf Basis einer elliptischen Kurve E über einem Körper K mit einem Punkt P auf der Kurve E vorgeschlagen. Weitere Voraussetzungen sind eine durch den Punkt P erzeugte zyklische Untergruppe der elliptischen Kurve E, wobei die zyklische Untergruppe eine prime Ordnung β aufweist, mit β = |<P>|, sowie ein privater Schlüssel d mit 0 < d < β und eine Hashfunktion H. Das Verfahren umfasst die Schritte Auswählen einer Zufallszahl k mit 0 < k < β, Berechnen eines ganzzahligen Wertes r mit r = x1 mod β, wobei gilt: k·P = (x1, y1), Berechnen eines ganzzahligen Wertes s mit s = k–1(H(m) + d·r), Berechnen eines ganzzahligen Wertes s', wobei der ganzzahlige Wert s' die Inverse des ganzzahligen Wertes s bildet mit s' = 1 / s mod β, und Bereitstellen der digitalen Signatur, wobei die bereitgestellte digitale Signatur die ganzzahligen Werte r und s' umfasst.
-
Das Verfahren ermöglicht eine verbesserte Bereitstellung einer digitalen Signatur unter Beibehaltung der Sicherheit des zugrunde liegenden Signaturverfahrens, wenn es beispielsweise durch eine wie oben beschriebene Recheneinheit oder Sendevorrichtung ausgeführt wird.
-
Gemäß einer weiteren Ausführungsform wird die bereitgestellte digitale Signatur zum Signieren der Nachricht in einem Email-System mit einer Public-Key-Infrastruktur verwendet.
-
Dies ermöglicht einen sicheren Austausch von Email-Nachrichten.
-
Außerdem wird eine Recheneinheit zur Verifikation einer digitalen Signatur einer übermittelten Nachricht m vorgeschlagen. Die digitale Signatur ist auf Basis einer elliptischen Kurve E über einem Körper K erstellt unter Verwendung eines Punkts P auf der Kurve E, einer durch den Punkt P erzeugten zyklischen Untergruppe der elliptischen Kurve E, wobei die zyklische Untergruppe eine prime Ordnung β aufweist, mit β = |<P>|. Weitere Voraussetzungen sind ein öffentlicher Schlüssel Q einer Sendevorrichtung der digitalen Signatur, wobei Q ein Punkt auf der Kurve E ist, und eine Hashfunktion H. Die digitale Signatur umfasst zwei ganzzahlige Werte r, s'. Die Recheneinheit hat ein erstes Berechnungsmittel zum Berechnen von u und v mit u = H(m)·s' mod β und v = r·s' mod β, ein zweites Berechnungsmittel zum Berechnen eines Punktes X der Kurve E mit X = u·P + v. Q = (x0, y0) und ein Überprüfungsmittel zum Überprüfen der Gleichung r = x0 mod β und zum Erzeugen einer Entscheidung über die Gültigkeit der digitalen Signatur. Ein optionales Ausgabemittel dient zum Ausgeben der erzeugten Entscheidung.
-
Dabei ist die erzeugte Entscheidung positiv, wenn die Gleichung erfüllt ist, und negativ, wenn die Gleichung nicht erfüllt ist.
-
Die Recheneinheit ermöglicht eine verbesserte Verifikation einer digitalen Signatur unter Beibehaltung der Sicherheit des zugrunde liegenden Signaturverfahrens.
-
Gemäß einer weiteren Ausführungsform ist der Körper K ein endlicher Körper GF(2n).
-
Die Objekte sind in diesem Fall die Binärvektoren der Länge n. Die Addition ist die bitweise XOR-Funktion. Einen Unterschied zwischen Addition und Subtraktion gibt es nicht. Die Multiplikation kann mit Hilfe von Schieberegisteroperationen realisiert werden.
-
Der Körper GF(2n) ermöglicht eine besonders effiziente Bereitstellung der digitalen Signatur.
-
Gemäß einer weiteren Ausführungsform ist der Körper K ein endlicher Körper GF(p), wobei p eine Primzahl ist.
-
Die Objekte von GF(p) sind die ganzen Zahlen 0, 1, 2, ..., p – 1. Die Rechenoperationen sind Moduloaddition, Modulosubtraktion, Modulomultiplikation und Modulodivision.
-
Der Körper GF(p) ermöglicht eine effiziente Bereitstellung der digitalen Signatur.
-
Ferner wird eine Empfangsvorrichtung zum Empfangen einer mit einer digitalen Signatur signierten Nachricht m vorgeschlagen. Die Empfangsvorrichtung hat ein Empfangsmittel zum Empfangen der mit der digitalen Signatur signierten Nachricht und eine wie oben beschriebene Recheneinheit zur Verifikation der digitalen Signatur.
-
Die Empfangsvorrichtung ermöglicht eine verbesserte Verifikation einer digitalen Signatur unter Beibehaltung der Sicherheit des zugrunde liegenden Signaturverfahrens.
-
Weiterhin wird ein Verfahren zur Verifikation einer digitalen Signatur einer übermittelten Nachricht m vorgeschlagen. Die digitale Signatur ist auf Basis einer elliptischen Kurve E über einem Körper K unter Verwendung eines Punkts P auf der Kurve E einer durch den Punkt P erzeugten zyklischen Untergruppe der elliptischen Kurve E erstellt, wobei die zyklische Untergruppe eine prime Ordnung β aufweist, mit β = |<P>|. Weitere Voraussetzungen sind ein öffentlicher Schlüssel Q einer Sendevorrichtung der digitalen Signatur, wobei Q ein Punkt auf der Kurve E ist, sowie eine Hashfunktion H. Die digitale Signatur umfasst zwei ganzzahlige Werte r, s'. Das Verfahren hat die Schritte Berechnen von u und v mit u = H(m)·s' mod β und v = r·s' mod β, Berechnen eines Punktes X der Kurve E mit X = u·P + v·Q = (x0, y0) Überprüfen der Gleichung r = x0 mod β und Erzeugen einer Entscheidung über die Gültigkeit der digitalen Signatur.
-
Dabei ist die erzeugte Entscheidung positiv, wenn die Gleichung erfüllt ist, und negativ, wenn die Gleichung nicht erfüllt ist.
-
Das Verfahren ermöglicht eine verbesserte Verifikation einer digitalen Signatur unter Beibehaltung der Sicherheit des zugrunde liegenden Signaturverfahrens, wenn es beispielsweise durch eine wie oben beschriebene Recheneinheit oder Empfangsvorrichtung ausgeführt wird.
-
Gemäß einer weiteren Ausführungsform wird die bereitgestellte digitale Signatur zum Signieren der Nachricht in einem Email-System mit einer Public-Key-Infrastruktur verwendet.
-
Dies ermöglicht einen sicheren Austausch von Email-Nachrichten.
-
Des Weiteren wird eine Anordnung zur Bereitstellung und Verifikation einer digitalen Signatur einer Nachricht m mit einer wie oben beschriebenen Sendevorrichtung und einer wie oben beschriebenen Empfangsvorrichtung vorgeschlagen.
-
Eine derartige Anordnung ermöglicht eine verbesserte Bereitstellung und Verifikation einer digitalen Signatur unter Beibehaltung der Sicherheit des zugrunde liegenden Signaturverfahrens.
-
Außerdem wird eine Recheneinheit wie oben beschrieben vorgeschlagen, wobei die Recheneinheit als eine Smartcard, ein Personalcomputer, eine anwendungsspezifische integrierte Schaltung (ASIC), ein Field-Programmable-Gate-Array (FPGA) oder ein in ein Gerät eingebettetes System ausgebildet ist.
-
Auf diese Weise ist die vorgeschlagene Recheneinheit in vielfältiger Weise und in unterschiedlichen Systemen zur verbesserten Bereitstellung und Verifikation einer digitalen Signatur unter Beibehaltung der Sicherheit des zugrunde liegenden Signaturverfahrens einsetzbar.
-
Weiterhin wird ein Computerprogrammprodukt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung des wie oben erläuterten Verfahrens veranlasst.
-
Ein Computerprogrammprodukt, wie z. B. ein Computerprogramm-Mittel, kann beispielsweise als Speichermedium, wie z. B. Speicherkarte, USB-Stick, CD-ROM, DVD, oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogrammprodukt oder dem Computerprogramm-Mittel erfolgen.
-
Das jeweilige Mittel, Auswahlmittel, Berechnungsmittel, Signiermittel, Sendemittel, Überprüfungsmittel, Ausgabemittel, Empfangsmittel und Bereitstellungsmittel, kann hardwaretechnisch und/oder auch softwaretechnisch implementiert sein. Bei einer hardwaretechnischen Implementierung kann das jeweilige Mittel als Vorrichtung oder als Teil einer Vorrichtung, zum Beispiel als Computer oder als Mikroprozessor ausgebildet sein. Bei einer softwaretechnischen Implementierung kann das jeweilige Mittel als Computerprogrammprodukt, als eine Funktion, als eine Routine, als Teil eines Programmcodes oder als ausführbares Objekt ausgebildet sein.
-
Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen.
-
Weitere vorteilhafte Ausgestaltungen und Aspekte der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschriebenen Ausführungsbeispiele der Erfindung. Im Weiteren wird die Erfindung anhand von bevorzugten Ausführungsformen unter Bezugnahme auf die beigelegten Figuren näher erläutert.
-
1 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer Sendevorrichtung zum Senden einer mit einer digitalen Signatur signierten Nachricht m;
-
2 zeigt ein Ablaufdiagramm eines Ausführungsbeispiels eines Verfahrens zur Bereitstellung einer digitalen Signatur für eine zu übermittelnde Nachricht m;
-
3 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer Empfangsvorrichtung zum Empfangen einer mit einer digitalen Signatur signierten Nachricht m;
-
4 zeigt ein Ablaufdiagramm eines Ausführungsbeispiels eines Verfahrens zur Verifikation einer digitalen Signatur einer übermittelten Nachricht m; und
-
5 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer Anordnung zur Bereitstellung und Verifikation einer digitalen Signatur einer Nachricht m.
-
In den Figuren sind gleiche oder funktionsgleiche Elemente mit denselben Bezugszeichen versehen worden, sofern nichts anderes angegeben ist.
-
In 1 ist ein Blockschaltbild eines Ausführungsbeispiels einer Sendevorrichtung 20 zum Senden einer mit einer digitalen Signatur signierten Nachricht m dargestellt.
-
Die Sendevorrichtung 20 umfasst eine Recheneinheit 10 zur Bereitstellung der digitalen Signatur für die Nachricht m sowie ein Signiermittel 201 zum Signieren der Nachricht m mit der bereitgestellten digitalen Signatur und ein Sendemittel 202 zum Senden der signierten Nachricht m.
-
Die Recheneinheit 10 dient zur Bereitstellung der digitalen Signatur auf Basis einer elliptischen Kurve E über einem Körper K mit einem Punkt P auf der Kurve E. Dabei erzeugt ein Punkt P eine zyklische Untergruppe der elliptischen Kurve E, wobei die zyklische Untergruppe eine prime Ordnung β aufweist. Es gilt ferner β = |<P>|. Weitere Voraussetzungen sind ein privater Schlüssel d mit 0 < d < β und eine Hashfunktion H.
-
Die Recheneinheit 10 hat ein Auswahlmittel 101 zum Auswählen einer Zufallszahl k, mit 0 < k < β. Weiterhin hat die Recheneinheit 10 ein erstes Berechnungsmittel 102 zum Berechnen eines ganzzahligen Wertes r mit r = x1 mod β, wobei gilt: k·P = (x1, y1) Die Recheneinheit 10 hat zudem ein zweites Berechnungsmittel 103 zum Berechnen eines ganzzahligen Wertes s mit s = k–1(H(m) + d·r) sowie ein drittes Berechnungsmittel 104 zum Berechnen eines ganzzahligen Wertes s', wobei der ganzzahlige Wert s' die Inverse des ganzzahligen Wertes s bildet mit s' = 1 / s mod β.
-
Zudem hat die Recheneinheit 10 ein Bereitstellungsmittel 105 zum Bereitstellen der digitalen Signatur, wobei die bereitgestellte digitale Signatur die ganzzahligen Werte r und s' umfasst.
-
2 zeigt ein Ablaufdiagramm eines Ausführungsbeispiels eines Verfahrens zur Bereitstellung der digitalen Signatur für die zu übermittelnde Nachricht m. Das Verfahren ist beispielsweise durch die in 1 dargestellte Recheneinheit 10 ausführbar.
-
In Schritt S101 wird eine Zufallszahl k mit 0 < k < β ausgewählt.
-
In Schritt S102 wird ein ganzzahliger Wert r mit r = x1 mod β berechnet, wobei gilt: k·P = (x1, y1).
-
In Schritt S103 wird ein ganzzahliger Wert s berechnet mit s = k–1(H(m) + d·r).
-
In Schritt S104 wird ein ganzzahliger Wert s' berechnet, wobei der ganzzahlige Wert s' die Inverse des ganzzahligen Wertes s bildet mit s' = 1 / s mod β.
-
In Schritt S105 wird die digitale Signatur bereitgestellt, wobei die bereitgestellte digitale Signatur die ganzzahligen Werte r und s' umfasst.
-
3 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer Empfangsvorrichtung 40 zum Empfangen einer mit einer digitalen Signatur signierten Nachricht m.
-
Die Empfangsvorrichtung 40 umfasst ein Empfangsmittel 401 zum Empfangen der mit der digitalen Signatur signierten Nachricht m und eine Recheneinheit 30 zur Verifikation der digitalen Signatur.
-
Die digitale Signatur ist auf Basis einer elliptischen Kurve E über einem Körper K erstellt unter Verwendung eines Punkts P auf der Kurve E, einer durch den Punkt P erzeugten zyklischen Untergruppe der elliptischen Kurve E, wobei die zyklische Untergruppe eine prime Ordnung β aufweist, mit β = |<P>|.
-
Weitere Voraussetzungen sind ein öffentlicher Schlüssel Q einer Sendevorrichtung 20 der digitalen Signatur, wobei Q ein Punkt auf der Kurve E ist, und eine Hashfunktion H. Die digitale Signatur umfasst zwei ganzzahlige Werte r, s'.
-
Die Recheneinheit 30 umfasst ein erstes Berechnungsmittel 301 zum Berechnen von u und v mit u = H(m)·s' mod β und v = r·s' mod β.
-
Weiterhin umfasst die Recheneinheit 30 ein zweites Berechnungsmittel 302 zum Berechnen eines Punktes X der Kurve E mit X = u·P + v·Q = (x0, y0) sowie ein Überprüfungsmittel 303 zum Überprüfen der Gleichung r = x0 mod β und zum Erzeugen einer Entscheidung über die Gültigkeit der digitalen Signatur.
-
Ein optionales Ausgabemittel 304, in 3 gestrichelt dargestellt, dient zum Ausgeben der erzeugten Entscheidung.
-
4 zeigt ein Ablaufdiagramm eines Ausführungsbeispiels eines Verfahrens zur Verifikation einer digitalen Signatur einer übermittelten Nachricht m.
-
In Schritt S301 werden u und v berechnet mit
u = H(m)·s' mod β und v = r·s' mod β.
-
In Schritt S302 wird ein Punkt X der Kurve E berechnet mit
X = u·P + v·Q = (x0, y0).
-
In Schritt S303 wird die Gleichung r = x0 mod β überprüft. Weiterhin wird eine Entscheidung über die Gültigkeit der digitalen Signatur erzeugt. Dabei ist die erzeugte Entscheidung positiv, wenn die Gleichung erfüllt ist, und negativ, wenn die Gleichung nicht erfüllt ist.
-
5 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer Anordnung 50 zur Bereitstellung und Verifikation einer digitalen Signatur einer Nachricht m.
-
Die Anordnung 50 umfasst eine Sendevorrichtung 20 wie in 1 dargestellt sowie eine Empfangsvorrichtung 40 wie in 3 dargestellt.
-
Obwohl die vorliegende Erfindung anhand von Ausführungsbeispielen basierend auf dem ECDSA-Signaturalgorithmus und der zugehörigen Signaturgleichung s = k–1(H(m) + d·r) beschrieben wurde, ist sie vielfältig modifizierbar. Insbesondere ist die Erfindung auch anwendbar auf das ECGDSA-Verfahren und andere ElGamal-artige Signaturverfahren, bei denen die Signaturkomponente s nach einer anderen Formel berechnet wird als beim ECDSA-Algorithmus.