-
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. In Hoffstein, J., et. Al.: „NTRUSign: Digital Signatures Using the NTRU Lattice”. In: Proceedings of CT-RSA 2003 und
WO 03/050 998 A1 werden Signaturverfahren beschrieben, bei denen unter Verwendung von Operationen auf Polynomen mit ganzzahligen Koeffizienten vom Grad ≤ (N – 1) digitale Signaturen erzeugt und verifiziert werden. In
EP 1 873 965 A1 werden bezüglich dieser Signaturverfahren Beispiele von Parameterkombinationen aufgezeigt, bei denen die Verifikation der digitalen Signatur zum Verwerfen der Signatur und damit der signierten Nachricht führt, obwohl die Signatur und die Nachricht authentisch sind. Daher wird in
EP 1 873 965 A1 eine Weiterentwicklung der in Hoffstein, J., et. Al.: „NTRUSign: Digital Signatures Using the NTRU Lattice”. In: Proceedings of CT-RSA 2003 und
WO 03/050 998 A1 beschriebenen Signaturverfahren vorgeschlagen, mit der das fälschliche Verwerfen authentischer Signaturen verhindert werden soll.
-
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, welches unter Verwendung eines Computers durchgeführt wird, 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 der Moduln (R_df)2 beziehungsweise (R_dk)2 sind, wobei es sich bei R_dk beziehungsweise R_df um diejenigen Teilmengen handelt, welche die binären oder trinären Polynome des Rings R mit einer vorgegebenen Quersumme dk beziehungsweise df umfassen, 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, wobei d0 eine in geeigneter Weise heuristisch ermittelte oder theoretisch vorgegebene Schranke für die Norm der Teilmenge D von R darstellt, 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 Polynome 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 definiert, 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, ANTS-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'–1f2' berechnet wird. Es sind demzufolge ausschließlich solche privaten Schlüssel f'' aus der Teilmenge (R_df)2 der binären oder trinären Polynome 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'–1f2' 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'' = Σaim'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 Polynome 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äß dem zu vorletzt oder dem zu vorletzt und zu letzt beschriebenen Verfahren erzeugt wurde, und das unter Verwendung eines Computers durchgeführt wird, mit den Schritten:
- – Verwerfen der Signatur s'', falls s'' ∉̸ D2,
- – Verwerfender Signatur s'', falls die Quersumme ds(s1) ≠ ds(s2) ≠ Σaidkdmi und
- – Verwerfen der Signatur s'', falls h(s'') ≠ Σaihi(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 aidk 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 – 2dmdk 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 Polynome 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'–1f2' 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 – 2dmdk. 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.