-
Die
Erfindung betrifft ein Verfahren zur Erzeugung einer von einem Empfänger überprüfbaren digitalen
Signatur für eine vorgegebene Nachricht mit Hilfe eines
privaten und eines öffentlichen Schlüssels.
-
Ein
zuverlässiger Austausch von Informationen zwischen zwei
Beteiligten erfordert insbesondere bei Verwendung von Computern
oder vergleichbaren elektronischen Hilfsmitteln eine Möglichkeit,
anhand zusätzlicher Informationen die Integrität
der übermittelten Nachricht und deren Absender zuverlässig überprüfen
zu können. Sofern die übermittelte Nachricht für
Dritte nicht lesbar, beziehungsweise deren Inhalt nicht verständlich
sein soll, muss die Nachricht während der Übermittlung
zusätzlich verschlüsselt werden. Obwohl die vorliegende
Erfindung auch die Erkenntnisse der derzeit gängigen Verschlüsselungsverfahren
berücksichtigt, bezieht sich die vorliegende Erfindung
im Wesentlichen auf die Möglichkeit, elektronisch übermittelte
Nachrichten mit einer digitalen Signatur zu versehen, die von dem
Empfänger der Nachricht überprüft und
anhand derer festgestellt werden kann, ob die Nachricht vom angeblichen Absender
stammt und ob diese Nachricht während der Übermittlung
möglicherweise verändert wurde.
-
Das
nachfolgend beschriebene Verfahren zur Erzeugung einer überprüfbaren
digitalen Signatur beruht unter Anderem auf einem privaten Schlüssel, der
nur dem Absender bekannt ist, und einem öffentlichen Schlüssel,
der dem Empfänger der Nachricht mitgeteilt wird und diesem
eine Überprüfung der digitalen Signatur dieser
Nachricht ermöglicht.
-
Aus
der Praxis sind viele verschiedene Signaturverfahren bekannt. In
den meisten Fällen wird bei einer Implementierung der Signaturverfahren
ein Kompromiss eingegangen zwischen einer möglichst großen
Fälschungssicherheit der erzeugten digitalen Signatur einerseits
und einem möglichst geringen Rechen- und Speicheraufwand
andererseits, der für die Erzeugung der Signatur und deren
anschließende Überprüfung durch den Empfänger
erforderlich wird.
-
Bekannte
Signaturverfahren, die derzeit in der Praxis verwendet werden, betreffen
beispielsweise die RSA-Signatur, die DSA-Signatur oder die ECC-Signatur.
-
Ein
auf Ralph Merkle zurückgehendes Signaturverfahren (Ralph
C. Merkle, A certified digital signature, in Gilles Brassard, editor,
CRYPTO, volume 435 of Lecture Notes in Computer Science, 218–238, Springer,
1989) verwendet kollisionsresistente Hash-Funktionen und
Zufallszahlengeneratoren zur Erzeugung von Einmal-Signaturen, bei
denen jeder Signaturschlüssel nur ein einziges Mal verwendet wird.
Bei derartigen Verfahren sind die Erzeugung der Signaturschlüssel
und die Speicherung der privaten Schlüssel durch den Absender
sehr aufwändig, so dass derartige Verfahren derzeit in
der Praxis kaum Anwendung finden.
-
Auch
die bekannten Weiterentwicklungen des von Merkle entwickelten Signaturschemas,
die von Winternitz (Nigel P. Smart, editor, Cryptography and
Coding, 10th IMA International Conference, Cirencester, UK, December
19–21, 2005, Proceedings, volume 3796 of Lecture Notes
in Computer Science, Springer, 2005) sowie von Micciancio
und Lyubashevsky (Vadim Lyubashevsky und Daniele Micciancio,
Asymptotically efficient lattice-based digital signatures, in Ran
Canetti, editor, TCC, volume 4948 of Lecture Notes in Computer Science,
37–54, Springer, 2008) vorgeschlagen wurden, weisen
die bereits bekannten Nachteile einer ineffizienten Erzeugung der Einmal-Signaturen
sowie der unangemessen großen Signaturlänge auf,
die für eine möglichst fälschungssichere
digitale Signatur erforderlich erscheinen.
-
Aufgabe
der folgenden Erfindung ist es demzufolge, ein Verfahren zur Erzeugung
einer überprüfbaren Signatur so auszugestalten,
dass mit möglichst geringem Aufwand eine möglichst
fälschungssichere Signatur für beliebige Nachrichten
erzeugt werden kann.
-
Diese
Aufgabe wird erfindungsgemäß gelöst durch
ein Verfahren mit den folgenden Schritten:
- – Auswählen
eines privaten Schlüssels f'',
- – Erzeugung eines öffentlichen Schlüssels
h' aus dem privaten Schlüssel f'' mit Hilfe einer Einwegfunktion,
- – Auswählen von mindestens zwei Sitzungsschlüsseln
k'' und l'' und Erzeugung einer digitalen Signatur s'' für die
Nachricht m' unter Verwendung der mindestens zwei Sitzungsschlüssel
k'' und l'' und
- – Berechnung von mindestens zwei Signaturprüfwerten
h1 und h2 unter Verwendung des öffentlichen Schlüssels
h' und der mindestens zwei Sitzungsschlüssel k'' und l'',
- – wobei die Nachricht m' ein Element einer Teilmenge
R_dm des Rings R = Zq[X]/(Xn – 1)
mit verschiedenen Primzahlen n, q ist und die Teilmenge R_dm die
binären oder trinären Polynome des Rings R mit
einer vorgegebenen Quersumme dm umfasst, wobei der private Schlüssel
f'' sowie die Sitzungsschlüssel k'' und l'' jeweils Elemente
von (R_df)2 beziehungsweise (R_dk)2 mit einer vorgegebenen Quersumme df beziehungsweise
dk sind und wobei die Komponenten ki und
li der mindestens zwei Sitzungsschlüssel
k'' und l'' jeweils aus einer Teilmenge D von R ausgewählt
werden, deren Elemente d' ∊ D die Eigenschaft ||d'|| < d0 aufweisen, so
dass eine geeignete Norm ||d'|| kleiner als eine in geeigneter Weise
vorgegebenen Schranke d0 ist.
-
Dabei
werden im Folgenden die üblichen Konventionen und Notationen
weitgehend übernommen. Alle Elemente des Rings R, bzw.
der jeweiligen Teilmengen R_dm, R_df, R_dk oder D werden mit einem „'” gekennzeichnet,
während Elemente der Moduln (R_dm)2,
(R_df)2, (R_dk)2 oder
D2 jeweils mit „''” gekennzeichnet
sind. Es gelten die üblichen mengentheoretischen und algebraischen
Annahmen und Rechenvorschriften. Es können jeweils Quersummen der
Nachricht m', des privaten Schlüssels f'' sowie der Sitzungsschlüssel
k'' und l'' über die jeweiligen Teilmengen R_dm, (R_df)2,(R_dk)2 vorgegeben
werden, wobei die Quersummen jeweils ganze Zahlen modulo q sind.
Die für die Definition der Teilmenge D verwendete Vorschrift
einer Norm ||d'|| kann in Abhängigkeit von der gewünschten
Sicherheit und Rechengeschwindigkeit gewählt werden, wobei
erste Untersuchungen ergeben haben, dass beispielsweise eine sogenannte
Max-Norm oder insbesondere die Euklidische Norm besonders geeignet
erscheinen. Die Schranke d0 sollte entweder heuristisch bestimmt oder
mit geeigneten Annahmen so vorgegeben werden, dass eine geeignete
Beschränkung des Parameterraums D bewirkt wird.
-
Überlegungen
und Untersuchungen der Anmelderin haben ergeben, dass durch eine
geeignete Beschränkung des Parameterraums (R_df)2 für den privaten Schlüssel
f'' sowie des Parameterraums (R_dk)2 für
die Sitzungsschlüssel k'' und l'' auf ausgesuchte Elemente
des Polynomrings R über die ganzen Zahlen modulo q faktorisiert
nach (Xn – 1) einerseits ein geringer
Berechnungsaufwand und demzufolge eine kurze Rechenzeit für
die Erzeugung der digitalen Signatur erforderlich wird und andererseits eine
hinreichende Fälschungssicherheit der erzeugten digitalen
Signatur s'' in der Praxis gewährleistet ist.
-
Zu
diesem Zweck werden die einzelnen Komponenten des privaten Schlüssels
f'' jeweils aus der Teilmenge R_df der binären oder trinären
Polgnome des Rings R mit einer vorgegebenen Quersumme ds(f'') =
df ausgewählt. Die Komponenten der Sitzungsschlüssel
k'' und l'' werden aus der weiterhin eingeschränkten Teilmenge
R_dk ausgewählt, die ihrerseits eine Untermenge von D darstellt.
Die Quersummen der Sitzungsschlüssel ds(k'') = ds(l'')
= dk sind ebenfalls vorgegeben. Durch die Verwendung von binären
oder trinären Polynomen lassen sich auch große
Nachrichten schnell und effizient mit einer digitalen Signatur versehen.
-
Es
hat sich gezeigt, dass es für ausreichend kleine Werte
von d0 nahezu unmöglich ist, eine gefälschte Signatur
s'' zu erzeugen, die ebenfalls ein Element der Teilmenge D2 ist.
-
Die
Schranke d0 kann dabei heuristisch ermittelt oder für geeignete
Signaturfunktionen s'' = F(m') theoretisch vorgegeben werden, so
dass gültige Signaturen s'' grundsätzlich in der
Teilmenge D2 enthalten sind und gefälschte
Signaturen s'' jedenfalls mit großer Wahrscheinlichkeit
nicht der Teilmenge D2 angehören.
-
Die
Schranke d0, welche die Teilmenge D, sollte bei praktischen Anwendungen
in geeigneter Weise vorgegeben werden. Je kleiner die Schranke d0
vorgegeben wird, umso fälschungssicherer sind die auf diese
Weise erzeugten digitalen Signaturen. Gleichzeitig steigt mit einer
zunehmend kleiner werdenden Schranke d0 das Risiko, dass eine gültige
Signatur s'' außerhalb der durch d0 definierten Teilmenge
D2 liegt und die gültige Signatur
s'' als vermeintlich ungültige Signatur verworfen wird.
-
Die
Berechnung der Signaturprüfwerte h1 und h2, die dem Empfänger
der Nachricht m' übermittelt werden und von diesem zur
Verifikatikon der Signatur s'' verwendet werden, sollte möglichst
fälschungssicher sein. Vorzugsweise wird bei der Berechnung
der mindestens zwei Signaturprüfwerte eine Einweg-Funktion
verwendet. Als Einweg-Funktion wird dabei üblicherweise
und auch im Zusammenhang mit der vorliegenden Erfindung eine Funktion bezeichnet,
mittels derer ausgehend von einem Ausgangswert ein Funktionsergebnis
ermittelt werden kann, ohne dass dabei in Kenntnis von dem Ergebniswert
der Ausgangswert berechnet oder näher bestimmt werden könnte.
Geeignete Einweg-Funktionen sind insbesondere im Zusammenhang mit
Verschlüsselungsverfahren hinlänglich bekannt.
-
Einer
vorteilhaften Ausgestaltung des Erfindungsgedankens zufolge ist
vorgesehen, dass für die Berechnung der mindestens zwei
Signaturprüfwerte eine Falltürfunktion verwendet
wird. Insbesondere eine Falltürfunktion gemäß dem
beispielsweise in (Jeffrey Hoffstein, Jill Pipher, and Joseph
H. Silverman. NTRU: A ringbased public key cryptosystem. Algorithmic
Number Theory, ANIS-III, Lecture Notes in Computer Science, volume
1423, Springer-Verlag, 1998, Seiten 267–288) beschriebenen
NTRU-Verschlüsselungsverfahren erscheint besonders vorteilhaft,
da mit geringem Rechenaufwand eine äußerst zuverlässige
und fälschungssichere Signatur, beziehungsweise die zugeordneten
Signaturprüfwerte erzeugt werden können.
-
Einer
besonders vorteilhaften Ausgestaltung des Erfindungsgedankens zufolge
ist vorgesehen, dass ausschließlich private Schlüssel
f'' mit einer invertierbaren Komponente f1 verwendet werden und der öffentliche
Schlüssel h' aus dem privaten Schlüssel f'' gemäß der
Bildungsvorschrift h' = f1'–1 f2'
berechnet wird. Es sind demzufolge ausschließlich solche
privaten Schlüssel f'' aus der Teilmenge (R_df)2 der binären oder trinären
Polgnome mit einer vorgegebenen Quersumme df zulässig,
für welche die zufällig ausgewählte Komponente
f1' innerhalb der Teilmenge R_df invertierbar ist. Sollte der private Schlüssel
f'' zufälligerweise so ausgewählt worden sein, dass
die Komponente f1' nicht invertierbar ist, so muss dieser private
Schlüssel verworfen und ein neuer privater Schlüssel
f'' zufällig ausgewählt werden, der diese Bedingung
erfüllt.
-
Es
ist auch die Erzeugung anderer homomorpher Funktionen unter Verwendung
des öffentlichen Schlüssels h' zulässig
und möglich. Allerdings hat sich gezeigt, dass die Berechnung
des öffentlichen Schlüssels h' gemäß h'
= f1'–1 f2' vorteilhaft erscheint.
-
Ausgehend
von einem öffentlichen Schlüssel h', der gemäß den
vorangehend erörterten Bildungsvorschriften aus dem privaten
Schlüssel f'' erzeugt wurde, können im Anschluss
daran die Signaturprüfwerte h1 und h2 berechnet werden.
Zweckmäßigerweise wird ein beliebiger Signaturprüfwert
hi für einen beliebigen Ausgangswert x'' ∊ D2 gemäß hi = h' x1' + x2'
berechnet wird. Eine derartige Funktion kann beispielsweise als
NTRU-Funktion vorgegeben werden und entspricht als Spezialfall der
von Lyubashevsky und Micciancio beschriebenen Falltürfunktion.
Da der Ergebniswertebereich üblicherweise größer
als der zulässige Wertebereich für die Ausgangswerte
der Signaturprüfwerte ist, wird eine derartige Bildungsvorschrift
im vorliegenden Zusammenhang nicht als Hashfunktion, sondern zutreffender
als Falltürfunktion bezeichnet.
-
Ausgehend
von der Nachricht m' kann die Signatur s'' vergleichsweise schnell
beispielsweise als eine lineare Funktion s'' = Σ ai m'i mit den einzelnen Koeffizienten
ai als gewichtetes Produkt oder als gewichtete
Summe der Sitzungsschlüssel k'' und l'' berechnet werden.
Die Signaturprüfwerte h1 und h2 werden anschließend
als Funktion der einzelnen Koeffizienten hi = h(ai)
berechnet.
-
Gemäß einem
als besonders vorteilhaft erachteten Ausführungsbeispiel
des Erfindungsgedankens ist vorgesehen, dass die Signatur s'' aus
der Nachricht m' und dem Sitzungsschlüssel k'' und l''
berechnet wird gemäß s'' = k''·l'' – m'(k''
+ l'') und dass die Signaturprüfwerte h1 und h2 berechnet
werden gemäß h1 = h(k''·l'') und h2 =
h(k'' + l'').
-
Ein
wesentlicher Unterschied und Vorteil der vorangehend beschriebenen
Erfindung stellt die Beschränkung des zulässigen
Wertebereichs dar, aus welchem der private Schlüssel f''
sowie mit weiteren Einschränkungen die Sitzungsschlüssel
k'' und l'' ausgewählt werden. Durch die Beschränkung
auf binäre und trinäre Polgnome mit jeweils einer
vorgegebenen Quersumme lassen sich sowohl die Signatur s'' schnell
erzeugen als auch die einzelnen Signaturprüfwerte h1 und
h2 berechnen und anschließend von dem Empfänger
der Nachricht rasch und zuverlässig überprüfen.
-
Die
Erfindung betrifft auch ein Verfahren zur Überprüfung
einer Nachricht mit einer Signatur s'', die gemäß einem
der vorangehend beschriebenen Verfahren erzeugt wurde, mit den Schritten:
- – Verwerfen der Signatur s'', falls
s'' ∊ D2,
- – Verwerfen der Signatur s'', falls die Quersumme ds(s1) ≠ ds(s2) ≠ Σ ai dk dmi und
- – Verwerfen der Signatur s'', falls h(s'') ≠ Σ ai hi(m')i.
-
In
allen Fällen sollte auch ohne ausdrückliche Erwähnung
berücksichtigt werden, dass aufgrund der zugrunde liegenden
Ringstrukturen die jeweiligen Ergebniswerte auf Modulo q bestimmt
sind. Die einzelnen Koeffizienten ai dk
können dabei in Kenntnis der die Signatur s'' erzeugenden
Funktion ohne weiteres bestimmt und vorgegeben werden.
-
So
wird beispielsweise die gemäß s'' = k''·l'' – m'
(k'' + l'') erzeugte Signatur s'' verworfen, falls die Quersumme
ds(s1) ≠ ds(s2) ≠ dk2 – 2 dm dk ist.
-
Nachfolgend
wird ein Ausführungsbeispiel näher erläutert,
welches in der Zeichnung dargestellt ist. Es zeigt:
-
1 einen
schematisch dargestellten Verfahrensablauf für die Erzeugung
einer erfindungsgemäßen Signatur s'' einer Nachricht
m' durch den Absender und
-
2 einen
schematisch dargestellten Verfahrensablauf für die Überprüfung
der Signatur s'' der Nachricht m' durch den Empfänger.
-
Bei
dem in 1 schematisch dargestellten Verfahrensablauf werden
in einem ersten Verfahrensschritt 1 zunächst die folgenden
Ausgangswerte vorgegeben:
Verschiedene Primzahlen n und q,
Nachricht m' ∊ R_dm mit der Quersumme dm, Quersummen df
und dk und Schranke d0.
-
Mit
den Primzahlen n und q wird der diesem Verfahren zu Grunde liegende
Polynomring R über den ganzen Zahlen modulo q faktorisiert
nach dem Polynom (Xn – 1) definiert.
Die Teilmenge R_d enthält die binären oder trinären
Polgnome des Polynomrings R mit Quersumme d. Die Verwendung von
ausschließlich binären oder trinären
Polynomen kann dabei wahlweise vorgegeben werden. Über
die Schranke d0 wird eine Teilmenge D ⊆ R definiert, deren
Elemente d' jeweils eine Euklidische Norm kleiner d0 aufweisen.
-
In
einem anschließenden Verfahrensschritt 2 wird ein privater
Schlüssel f'' ∊ (R_df)2 mit
den Komponenten f1' und f2' und mit der Quersumme ds(f1') = ds(f2')
= df zufällig ausgewählt. Weiterhin werden zwei
Sitzungsschlüssel k'', l'' ∊ (R_dk)2 zufällig
ausgewählt.
-
In
einem nachfolgenden Verfahrensschritt 3 wird überprüft,
ob die Komponente f1' invertierbar in R ist. Falls nicht, wird der
zufällig ausgewählte private Schlüssel
f'' verworfen und ein neuer privater Schlüssel f'' zufällig
ausgewählt.
-
In
einem Verfahrensschritt 4 wird aus dem privaten Schlüssel
f'' der öffentliche Schlüssel h' gemäß h'
= f1'–1 f2' erzeugt.
-
In
einem anschließenden Verfahrensschritt 5 werden die Signatur
s'' gemäß s'' = k''·l'' – m'
(k'' + l'') sowie die Signaturprüfwerte h1 = h(k''·l'')
und h2 = h(k'' + l'') berechnet, wobei die Funktion h(x'') für
beliebige Elemente x'' ∊ D definiert ist als h(x'') = h'
x1 + x2.
-
Die
Nachricht m', die Signatur s'', sowie die Signaturprüfwerte
h1 und h2 müssen an einen Empfänger der Nachricht
m' übermittelt werden. Zudem müssen die Werte
für die Quersummen dm und dk, die zur Ermittlung der Signaturprüfwerte
verwendete Funktion h(x'') = h' x1 + x2 und die Schranke d0 dem Empfänger
oder der von ihm verwendeten Software bekannt sein oder ihm ebenfalls übermittelt
werden.
-
Der
Empfänger überprüft in einem ersten Verfahrensschritt
6 anhand des ihm bekannten öffentlichen Schlüssels
h', ob für den von Ihm zu berechnenden Signaturprüfwert
h(s'') = h1 – m' h2 erfüllt ist. Falls nicht,
so wird die Signatur s'' und damit die Nachricht m' als ungültig
verworfen.
-
In
einem weiteren Verfahrensschritt 7 prüft der Empfänger
dann, ob die Quersummen der Signatur s'' der folgenden Bedingung
genügen: ds(s1') = ds(s2') = dk2 – 2
dm dk. Falls nicht, so wird die Signatur s'' und damit die Nachricht
m' ebenfalls als ungültig verworfen.
-
In
einem weiteren Verfahrensschritt 8 prüft der Empfänger
schließlich auch, ob die Signatur s'' ein Element der mittels
der Schranke d0 beschränkten Teilmenge D2 ist
und würde die Signatur s'' als ungültig, bzw.
als gefälscht verwerfen, falls s'' kein Element von D2 wäre.
-
Nur
wenn die mit der Nachricht m' erhaltene Signatur s'' alle vorangehend
genannten Bedingungen erfüllt, wird die Signatur s'' als
gültiger Nachweis für die Authentizität
und die Integrität der Nachricht m' anerkannt und die Nachricht
m' in einem anschließenden Verfahrensschritt 9 ausgewertet.
Die Reihenfolge der einzelnen Verfahrensschritte 6 bis 8 ist für die
Auswertung im Ergebnis ohne Bedeutung und kann anhand praktischer
Erwägungen frei vorgegeben oder für jeden Einzelfall
gewählt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - Ralph C. Merkle,
A certified digital signature, in Gilles Brassard, editor, CRYPTO,
volume 435 of Lecture Notes in Computer Science, 218–238, Springer,
1989 [0006]
- - Nigel P. Smart, editor, Cryptography and Coding, 10th IMA
International Conference, Cirencester, UK, December 19–21,
2005, Proceedings, volume 3796 of Lecture Notes in Computer Science, Springer,
2005 [0007]
- - Vadim Lyubashevsky und Daniele Micciancio, Asymptotically
efficient lattice-based digital signatures, in Ran Canetti, editor,
TCC, volume 4948 of Lecture Notes in Computer Science, 37–54, Springer,
2008 [0007]
- - Jeffrey Hoffstein, Jill Pipher, and Joseph H. Silverman. NTRU:
A ringbased public key cryptosystem. Algorithmic Number Theory,
ANIS-III, Lecture Notes in Computer Science, volume 1423, Springer-Verlag,
1998, Seiten 267–288 [0017]