-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf ein Einweg-Signatur-Authentifikations-Schema für drahtlose Kommunikation und insbesondere auf ein flexibles Authentifikationsschema zum Authentifizieren von Nachrichten, die drahtlos zwischen Fahrzeugen gesandt werden, welches eine Kombination von einem Winternitz-Einweg-Signatur-Schema und einem Hash-to-Obtain-Random-Subset-Einweg-Signatur-Schema ist, welches einen Kompromiss zwischen Kommunikationsaufwand und Rechenaufwand darstellt.
-
2. Diskussion des Standes der Technik
-
Drahtlose Fahrzeug-zu-Fahrzeug-Kommunikation (V2V-Kommunikation) wurde zur Verbesserung der Verkehrssicherheit vorgeschlagen. Bei diesen Anwendungen senden Fahrzeuge Informationen über das drahtlose Medium zueinander. V2V-Anwendungen haben als Ziel, Fahrzeugführer dabei zu unterstützen, Unfälle zu vermeiden durch das Bereitstellen frühzeitiger Warnungen und Hinweise über potentiell gefährliche Situationen, wobei Nachrichten über das drahtlose Medium ausgetauscht werden. Fahrzeug-zu-Fahrzeug-Sicherheitsanwendungen, wie zum Beispiel Tote-Winkel-Warnsysteme (BSW-Systeme) und Systeme zur kooperativen Kollisionswarnung (CCW-Systeme) beruhen auf periodischen V2V-Kommunikationen, beispielsweise nach dem drahtlosen Dedicated-Short-Range-Communications-Standard (DSRC). Die Hinweise beinhalten Nachrichten über den Straßenzustand, kooperative Kollisionswarnungen und dergleichen. Für V2V-Fahrassistenz-Anwendungen ist die Sicherheit entscheidend, da davon ausgegangen wird, dass Fahrzeugführer Fahrmanöver basierend auf den empfangenen Hinweisen ausführen werden.
-
Die drahtlosen Nachrichten werden typischerweise bei 10 Hz pro Fahrzeug übermittelt und werden typischerweise unter Verwendung von digitalen Signaturen basierend auf einer zugrunde liegenden öffentlichen Schlüsselinfrastruktur (PKI = Public Key Infrastructure) im Einklang mit den Standardspezifikationen nach IEEE 1609.2 authentifiziert. Jeder Auftraggeber in einem PKI-System besitzt ein Paar von Schlüsseln, nämlich einen privaten Schlüssel und einen öffentlichen Schlüssel. Der private Schlüssel ist nur dem Auftraggeber bekannt und der öffentliche Schlüssel kann mit anderen Einheiten in dem System ausgetauscht werden. Die Schlüssel können als ein Paar von Funktionen Pr und Pu dargestellt werden, die jeweils die privaten und öffentlichen Schlüssel darstellen und weisen die Eigenschaften M = Pr(Pu(M)) und M = Pu(Pr(M)) auf, wobei M die Nachricht ist, die mit Hilfe der Schlüssel gesichert werden soll. Um die Integrität der Nachricht zu sichern, signiert der Sender der Nachricht die Nachricht mit seinem privaten Schlüssel und fügt diese Signatur zu der Nachricht hinzu. Nach Empfang der Nachricht kann der Empfänger die Signatur der Nachricht verifizieren, indem er den öffentlichen Schlüssel des Senders verwendet.
-
Obwohl sich die hier geführte Diskussion auf V2V-Netzwerke bezieht, haben die verschiedenen Sende-Authentifikationstechniken eine viel breitere Anwendung. Abstrakt gesprochen finden die verschiedenen Sende-Authentifikationstechniken, die hier diskutiert werden, Anwendung auf Kommunikationsnetzwerke, wobei die Knoten Information zueinander in einer authentischen Art und Weise senden. In diesen Netzwerken ist jeder Knoten ein potentieller Sender und ein potentieller Empfänger. Dementsprechend würde ein gegebener Knoten seine Pakete an viele Knoten senden und er könnte genauso Pakete von vielen und möglicherweise verschiedenen Knoten empfangen. Es ist dabei wünschenswert, die Bandbreite bei diesen Arten von Kommunikationsnetzwerken zu schonen. Bandbreite wird verbraucht, sobald der öffentliche Schlüssel den Nachrichten oder Paketen vorausgeschickt wird. Zusätzliche Bandbreite wird verbraucht, sobald Signaturen an die Nachrichten oder Pakete angehängt werden. Es ist darüber hinaus wünschenswert, einen Fahrzeugrechner oder eine CPU zum Verifizieren der empfangenen Nachrichten sparsam zu verwenden. Falls alle Knoten Nachrichten mit der selben Rate senden, dann müsste ein Fahrzeug viel mehr Nachrichten empfangen, als es selber senden würde. Demzufolge, wenn man vom Rechenaufwand ausgeht, kann die Zeit, die zur Schlüsselgenerierung und zur Signaturgenerierung erforderlich ist, vernachlässigt werden, und das Verfahren würde sich nur auf die Zeit, die für die Signaturverifikation erforderlich ist, fokussieren.
-
Das Bereitstellen von Sicherheit in V2V-Fahrassistenz-Anwendungen trägt zum Gewährleisten von Authentizität und Integrität der Nachrichten, die über die Luft gesendet werden, bei. Mit anderen Worten, Sicherheit im Sinne der Sende-Authentifikation. Es gibt eine Anzahl von Herausforderungen beim Bereitstellen von Sicherheit für V2V-Kommunikation für die eingangs erwähnten Fahrassistenz-Anwendungen. Die Herausforderungen beinhalten (i) Ressourcenbeschränkte Rechenplattformen, (ii) Echtzeit-Latenzanforderungen für die V2V-Nachrichten, (iii) knappe Kommunikationsbandbreite und (iv) möglicherweise schnelle Wechsel in der Netzwerktopologie. Solche Forderungen benötigen verschiedene Algorithmen, um Sicherheit zu erzielen und gleichzeitig den Rechen- und Kommunikationsaufwand zu minimieren.
-
Für die hier erörterten Kommunikationsnetzwerke würden die Knoten typischerweise ein Authentifikationsprotokoll verwenden, um Sende-Authentifikation der Nachrichten zu erzielen. Ein Authentifikationsprotokoll zwischen einem Sender und einem Empfänger versetzt den Sender in die Lage, Information zum Empfänger in einer authentischen Weise zu senden. Das Authentifikationsprotokoll, das in einem Broadcast-Netzwerk verwendet wird, und hier erörtert wird, beinhaltet drei Schritte, nämlich die Schlüsselgenerierung und die öffentliche Schlüsselverteilung, die Signaturgenerierung und die Signaturverifikation. Für die Schlüsselgenerierung und öffentliche Schlüsselverteilung führt der Sender einen Schlüsselgenerierungs-Algorithmus für das Authentifikationsprotokoll aus und erzeugt den öffentlichen Schlüssel, den privaten Schlüssel und andere Variablen. Der Sender verbreitet dann den öffentlichen Schlüssel an die Empfänger.
-
Für die Schlüsselgenerierung erzeugt der Sender, wenn der Sender eine authentische Nachricht senden muss, die Nachricht und versieht diese mit der geeigneten Information und verwendet dann einen Signaturgenerierungsalgorithmus für das Authentifikationsprotokoll. Im Fall von digitalen Signaturalgorithmen kann ein Paar von öffentlichen/privaten Schlüsselpaaren verwendet werden, um eine theoretisch unbegrenzte Anzahl von Nachrichten zu signieren. Im Fall von Einweg-Signatur-Algorithmen kann, wie der Name schon sagt, ein öffentlich/privates Schlüsselpaar verwendet werden, um nur eine Nachricht zu signieren. Demzufolge muss der Sender, um eine Nachricht mit Hilfe einer Einweg-Signatur (OTS = One-Time-Signature) zu signieren, den Schlüsselgenerierungs-Algorithmus verwenden und den öffentlichen Schlüssel zeitlich davor verteilen. Der Signaturgenerierungsalgorithmus verwendet im allgemeinen das Hash-and-Sign-Paradigma. Das bedeutet, dass die Nachricht zuerst in Bit-Strings konstanter Länge gehasht wird. Die gehashte Version, die auch ”Message-Digest” genannt wird, wird dann unter Verwendung des Signaturgenerierungs-Algorithmus signiert.
-
Für die Signaturverifikation muss, sobald ein Empfänger die Authentizität einer empfangenen Nachricht verifizieren muss, man in Besitz des öffentlichen Schlüssels sein, der zu dem privaten Schlüssel, mit dem die Nachricht signiert wurde, korrespondiert. Unter der Annahme, dass der Empfänger keinen öffentlichen Schlüssel besitzt, verwendet man den Signaturverifikations-Algorithmus für das Authentifikationsprotokoll. Der Verifikations-Algorithmus hasht zuerst die Nachricht, um den ”Message-Digest” abzuleiten, welcher dann weiteren Verifikationsschritten unterworfen wird.
-
Das Problem der Broadcast-Authentifikation wurde in der Literatur gut untersucht. Allerdings existiert kein Schema, das all die gewünschten Eigenschaften erzielt. Beispielsweise erzielen digitale Signaturen eine Broadcast-Authentifikation mit einem vertretbaren Kommunikationsaufwand, beispielsweise einem Elliptischen-Kurven-Digitalen-Signatur-Algorithmus (ECDSA). Allerdings ist dies ziemlich rechenaufwändig. Einweg-Signatur-Schemata (OTS-Schemata) sind eine recheneffiziente Alternative dazu – allerdings auf Kosten eines gestiegenen Kommunikationsaufwandes.
-
ECDSA ist ein digitaler Signatur-Algorithmus, der dazu verwendet werden kann, eine theoretisch unbegrenzte Zahl von Nachrichten mit einem vorgegebenen öffentlich/privaten Schlüsselpaar zu signieren. Er ist sehr bandbreiteneffizient, da er eine kleine öffentliche Schlüsselgröße und Signaturgröße aufweist. Allerdings ist er extrem rechenintensiv. Eine einzelne Hash-Operation, welche der Grundblock eines Einweg-Signatur-Algorithmus ist, ist vier bis fünf Größenordnungen schneller auf einem generischen Prozessor auszuführen im Vergleich zu einer ECDSA-Signaturgenerierung oder Verifikation. Für eine spezielle Hardware kann der Unterschied noch größer sein.
-
Ein Hash-to-Obtain-Random-Subset (HORS) ist ein Einweg-Signatur-Algorithmus, der im allgemeinen dazu verwendet wird, um nur eine einzige Nachricht mit einem vorgegebenen öffentlich/privaten Schlüsselpaar zu signieren. Er kann dazu verwandt werden, mehrere Nachrichten zu signieren, aber die Sicherheit verschlechtert sich schnell. HORS dient als schnelles Authentifikationsschema. Dementsprechend ist es extrem recheneffizient, da es nur wenige Hash-Operationen benötigt. Sein Bandbreitenaufwand ist jedoch ziemlich überbordend, seine Signaturgröße ist moderat, aber die Größe seines öffentlichen Schlüssels ist extrem groß, das heißt sechs bis sieben Größenordnungen größer als bei ECDSA.
-
Das bekannte Winternitz-Einweg-Signatur-Schema kann nur dazu verwendet werden, eine einzige Nachricht für ein vorgegebenes öffentlich/privates Schlüsselpaar zu signieren. Es wurde auf Bandbreiteneffizienz hin entwickelt und seine Signaturgröße ist moderat und seine öffentliche Schlüsselgröße ist kleiner als bei ECDSA. Des Weiteren ist sein Rechenaufwand aber noch ein bis zwei Größenordnungen kleiner als der von ECDSA.
-
OTS-Schemata werden typischerweise entwickelt unter Verwendung der Grundblöcke einer Einweg-Hash-Funktion. Einweg-Hash-Funktionen sind Funktionen, die leicht zu berechnen sind, aber mit einem Rechner nicht invertiert werden können. Die Sicherheit von OTS-Schemata hängt von der Sicherheit der darunter liegenden Einweg-Hash-Funktion ab. Im allgemeinen werden OTS-Schemata unter Verwendung der folgenden allgemeinen Vorgehensweise aufgestellt. Eine Menge von privaten Werten (des öfteren auch Siegel genannt), werden zufällig ausgewählt. Diese dient als privater Schlüssel. Eine Menge von öffentlichen Schlüsseln (des öfteren Verifizierer genannt) werden dann durch die Anwendung von einer Einweg-Hash-Funktion auf die privaten Schlüssel berechnet. Die Menge von öffentlichen Schlüsseln wird authentisch an alle Empfänger gesendet. Beim Signieren einer Nachricht wird die Nachricht auf eine Untermenge von privaten Schlüsselwerten abgebildet und diese Untermenge wird als eine Signatur ausgegeben. Gewöhnlicherweise ist die Einweg-Hash-Funktion, die in dem OTS-Schema verwendet wird, öffentlich. Der Empfänger führt eine Sequenz von Einweg-Hash-Funktion-Rechnungen aus, die die ausgegebenen Signaturwerte in öffentliche Schlüsselwerte transformieren würden, welche zu einem früheren Zeitpunkt authentisch kommuniziert worden waren. Die Sicherheit der Signatur beruht auf der Tatsache, dass zum Fälschen einer Signatur ein Angreifer zumindest eine Inversion der zugrunde liegenden Einweg-Hash-Funktion ausführen müsste.
-
Diese Schritte werden im folgenden gezeigt:
- 1. Wähle eine Einweg-Hash-Funktion aus in der Art, H: {0, 1}* → {0, 1}L
- 2. Wähle zufällig eine Menge privater Werte mit der Länge L.
- 3. Generiere einen oder eine Menge von öffentlichen Werten durch Anwendung von H(.) auf die privaten Werte.
- 4. Die Menge der privaten Werte dienen als privater Schlüssel/Signierschlüssel.
- 5. Die Menge der öffentlichen Werte dienen als öffentlicher Schlüssel/Verifikationsschlüssel.
- 6. Bilde die zu signierende Nachricht auf die Untermenge von privaten Schlüsseln ab.
- 7. Gib die Untermenge von privaten Schlüsseln aus Schritt 6 als Signatur aus.
-
Aus der Druckschrift J. Buchmann u. a.: „CMSS- an Improved Merkle Signature Scherre” ist ein Verfahren für das Authentifizieren einer Nachricht, die drahtlos übermittelt wird, bekannt. Das Verfahren umfasst dabei ein Bereitstellen einer Matrix, die Zeilen von privaten Schlüsselworten und Spalten von privaten Schlüsselworten beinhaltet, ein Ausführen eines Schlüsselpaar-Generierungsverfahrens, das ein Schlüsselpaar bereitstellt, mit einem privaten Schlüssel und einem öffentlichen Schlüssel für jede Zeile in der Matrix, wobei der private Schlüssel die Menge von privaten Schlüsselwerten für eine Zeile ist und wobei das Ausführen des Schlüsselpaar-Generierungsverfahrens das Anwenden einer Vielzahl von Hash-Funktionen auf die privaten Schlüssel beinhaltet, sowie ein Ausführen eines Signaturverefekationsverfahrens, dass das Generieren eines Message-Digest durch Anwenden einer Hash-Funktion auf die zu signierende Nachricht beinhaltet. Weiter umfasst das Verfahren ein Ausführen eines Signatur-Authentefekationsverfahrens, das die Verwendung des Schlüsselpaares zum Authentifizieren der Nachricht beinhaltet.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Im Einklang mit den Lehren der vorliegenden Erfindung wird ein flexibles Authentifikationsschema offenbart, das eine Kombination von einem Winternitz-Einweg-Signatur-Schema und einem Hash-to-Obtain-Random-Subset Einweg-Signatur-Schema ist, um Kommunikationsaufwand und Rechenaufwand miteinander in Einklang zu bringen. In einer Ausführungsform stellt das flexible Authentifikationsschema eine Matrix bereit, die Zeilen von privaten Schlüsselwerten und Spalten von privaten Schlüsselwerten beinhaltet. Das Schema führt ein Schlüsselpaar-Generierungsverfahren aus, das ein Schlüsselpaar mit einem privaten Schlüssel und einem öffentlichen Schlüssel für jede Zeile in der Matrix bereitstellt, wobei der private Schlüssel eine Menge von privaten Schlüsselwerten für diese Zeile ist. Das Ausführen des Schlüsselpaar-Generierungsverfahrens beinhaltet das Anwenden einer Vielzahl von Hash-Funktionen auf die privaten Schlüsselwerte, wobei eine nachfolgende Hash-Funktion einen Hash der vorausgegangenen Hash-Funktion vornimmt. Das Schema verwendet einen Signaturgenerierungs-Algorithmus, der zuerst einen ”Message-Digest” durch Anwendung einer Hash-Funktion auf die Nachricht berechnet, die signiert werden soll, und dann diesen Message-Digest in zwei Teile bestehend aus Signierbits und Markierbits teilt. Die Markierbits markieren, welche Zeilen in der Matrix verwendet werden, um die Nachricht zu signieren, und die Signierbits werden durch einen Signieralgorithmus signiert, der die privaten Schlüsselwerte aus der markierten Zeile verwendet. Ein Empfänger verifiziert die Authentizität der empfangenen Nachricht mit Hilfe des öffentlichen Schlüssels und einem Signaturverifizierungs-Algorithmus.
-
Weitere Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung und den beigefügten Patentansprüchen in Verbindung mit den beigefügten Figuren offenbar.
-
KURZE BESCHREIBUNG DER FIGUREN
-
1 ist eine Draufsicht auf ein Fahrzeug mit einem Fahrzeug-zu-Fahrzeug-Kommunikationssystem;
-
2 ist eine Draufsicht auf ein Winternitz-Einweg-Signatur-Schema für die Authentifikation von Nachrichten;
-
3 ist eine Draufsicht auf ein HORS-Einweg-Signatur-Schema für die Authentifikation von Nachrichten;
-
4 ist eine Matrix von privaten Schlüsselwerten;
-
5 ist eine Draufsicht auf ein erstes flexibles Authentifikationsschema für die Authentifikation drahtlos gesendeter Nachrichten, welches die privaten Schlüsselwerte aus der 4 verwendet und eine Kombination der Schemata aus den 2 und 3 ist, wobei für jede Zeile der 4 ein korrespondierendes Schema für die 5 erhalten werden kann; und
-
6 ist eine Draufsicht auf ein zweites flexibles Authentifikationsschema, das eine Kombination der Schemata aus den 2 und 3 ist.
-
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Die folgende Diskussion der Ausführungsformen der Erfindung, die auf flexibles Authentifikationsschema für die Authentifikation drahtloser Nachrichten gerichtet ist, die eine Kombination von Winternitz- und HORS-Einweg-Signatur-Schemata ist, ist rein beispielhafter Natur und in keiner Weise dazu gedacht, die Erfindung oder ihre Anwendungen oder Verwendungen zu begrenzen.
-
OTS-Schemata sind eine Alternative zu konventionellen digitalen Signaturen, um Broadcast-Authentifikation in V2V-Systemen bereitzustellen. OTS-Schemata aus der Literatur, beispielsweise das Winternitz-Schema und das HORS-OTS-Schema stellen einen Kompromiss zwischen Kommunikationsaufwand und Rechenaufwand dar, welcher unbefriedigend ist, da eine lineare Abnahme bei dem einen Aufwand das Dulden einer exponentiellen Zunahme bei dem anderen Aufwand bewirkt. Im folgenden werden zwei flexible Authentifikationsschemata vorgeschlagen, die einen besseren Kompromiss zwischen den beiden Aufwänden darstellen, insbesondere eine exponentielle Reduktion des einen der beiden Aufwände im Gegenzug für den exponentiellen Zuwachs beim anderen Aufwand ergeben.
-
1 zeigt eine Draufsicht auf ein Fahrzeug 10 mit einer an Bord befindlichen Einheit 12 (OBU-Einheit) für ein V2X-drahtloses Kommunikationssystem. Die OBU-Einheit 12 empfängt eine Ortsinformation von einem GPS-Empfänger 14 und kann mit anderen OBU-Einheiten auf anderen Fahrzeugen innerhalb eines begrenzten Bereiches kommunizieren. Das Fahrzeug 10 beinhaltet darüber hinaus verschiedene Arten von Fahrzeugsensoren 16, so zum Beispiel Kameras, Beschleunigungssensoren, Temperatursensoren, etc., die eine Information an die OBU-Einheit 12 liefern. Die Fahrzeugsensorinformation kann von der OBU-Einheit 12 dazu verwendet werden, andere Fahrzeuge über verschiedene Straßen und andere Bedingungen, wie beispielsweise Eis, Ölpfützen, etc., zu informieren.
-
2 ist eine Draufsicht auf ein bekanntes Winternitz-OTS-Schema
20. Das Schema
20 beinhaltet eine Reihe von privaten Schlüsselwerten
22, die hier als s
0, s
1, ..., s
l, ---, s
n dargestellt werden. Die Menge von privaten Schlüsselwerten ist ein privater Schlüssel S. Eine Reihe von Hash-Funktionen
24,
26 und
28 werden auf die privaten Schlüsselwerte
22 angewandt, die hier als eine Hash-Funktion H, eine Hash-Funktion H
P und eine Hash-Funktion H
2 jeweils dargestellt werden, die nach vorbekannten und vordeterminierten Regeln aufgestellt sind. Die Ergebnisse der finalen Hash-Funktion
28 werden miteinander konkateniert, um zum Verifizierer
30 zu gelangen, der als ν dargestellt ist, welcher ein öffentlicher Schlüssel V ist, der zuvor an die Fahrzeuge verteilt wurde. In diesem Beispiel sind alle privaten Schlüsselwerte
22 -fach gehasht.
-
Der folgende Algorithmus 1 ist ein Algorithmus zur Schlüsselgenerierung und öffentlichen Schlüsselverteilung für das Authentifikationsprotokoll, das zeigt, wie das private und öffentliche Schlüsselpaar S und V für den privaten Schlüssel S und den öffentlichen Schlüssel V mit Hilfe der Hash-Funktionen aus den 2 erzeugt wird, wobei S die Menge der privaten Schlüsselwerte 22 und v der Verifizierer 30 ist. Der folgende Algorithmus 2 ist ein Signaturgenerierungs-Algorithmus für das Authentifikationsprotokoll, das zeigt, wie das Winternitz-OTS-Schema eine Signaturregenerierung mit Hilfe der gehashten Version oder dem ”Message-Digest” bewerkstelligt. Der folgende Algorithmus 3 ist ein Signatur-Verifikationsalgorithmus für das Authentifikationsprotokoll, das zeigt, wie das empfangende Fahrzeug eine Signaturverifikation der Signatur aus der Nachricht M vornimmt, nachdem es die Signatur σM und den Verifizierer v mit Hilfe der Hash-Funktionen H erlangt hat.
-
Algorithmus 1, Winternitz-Schlüsselpaargenerierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter k und n = L/k
- Ausgabe: Signaturschlüssel S, Verifikationsschlüssel V
- 1: Wähle n und k so dass L = n·k
- 2: Wähle s0, s1, ..., sn ∈R {0, 1}L zufällig mit gleicher Wahrscheinlichkeit, d. h. wähle n + 1 Zufallsvariablen der Länge L
- 3: Setze S = {s0, s1, ..., sn}
- 4: Berechnefür i = 1, 2, ... n
- 5: Berechne
- 6: Berechne V = H(y1∥y2∥...∥yn∥z), wobei ∥ eine Konkatenierung bedeutet
- 7: Privater Schlüssel ≔ S, Öffentlicher Schlüssel ≔ V
- 8: Ausgabe (S, V)
-
Algorithmus 2, Winternitz-Signaturgenerierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter k und n = L/k, Nachricht M, Signaturschlüssel S
- Ausgabe: Einweg-Signatur σM von M
- 1: Berechne H(M) aus M
- 2: Teile H(M) in 'n', k-bit Worte b1, b2, ..., bn
- 3: Berechne b0 = Σ n / i=1bi
- 4: Die Signatur von M ist
-
-
Algorithmus 3, Winternitz-Signaturverifizierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter k und n = L/k, Nachricht M, Signatur σM, Verifikationsschlüssel V
- Ausgabe: TRUE wenn die Signatur gültig ist, sonst FALSE
- 1: Berechne b1, b2, ..., bn, b0 wie im Algorithmus 2
- 2: σM sei aus h ^1∥h ^2∥...∥h ^n∥h ^0 zusammengesetzt
- 3: Berechnefor i = 1, 2, ..., n
- 4: Berechne
- 5: Berechne V' = H(x1∥x2∥...∥xn∥w)
- 6: Wenn V' = V, dann Ausgabe TRUE, sonst FALSE.
-
3 ist eine Draufsicht auf ein bekanntes HORS-OTS-Schema
40 zum Bereitstellen einer Nachrichtenverifikation. Das Schema
40 beinhaltet eine Reihe von privaten Schlüsselwerten
42, die als s
0, ..., s
m, ...,
dargestellt sind und eine Reihe von Hash-Funktionen
44, die dargestellt werden als H, für jeden privaten Schlüsselwert
42. Die Hash-Funktionen
44 generieren eine Reihe von öffentlichen Schlüsselwerten
46, die als Verifizierer v dargestellt sind. Die Menge von privaten Schlüsselwerten
42 ist ein privater Schlüssel S und die Menge von öffentlichen Schlüsselwerten
46 ist ein öffentlicher Schlüssel V.
-
Der folgende Algorithmus 4 ist ein Generierungs- und öffentlicher Schlüsselverteilungs-Algorithmus für das Authentifikationsprotokoll, das zeigt, wie die privaten und öffentlichen Schlüsselpaare S und V für den privaten Schlüssel S und den öffentlichen Schlüssel V mit Hilfe der Hash-Funktion H generiert wird. Der folgende Algorithmus 5 ist ein Signatur-Generierungsalgorithmus für das Authentifikationsprotokoll, das zeigt, wie das HORS-OTS-Schema eine Signaturgenerierung mit Hilfe der Hash-Version oder dem Message-Digest vornimmt. Der folgende Algorithmus 6 ist ein Signaturverifikations-Algorithmus für das Authentifikationsprotokoll, das zeigt, wie das empfangende Fahrzeug eine Signaturverifikation der Signatur bei der Nachricht M vornimmt, nachdem es die Signatur σM und den öffentlichen Schlüssel V mit Hilfe der Hash-Funktion H erlangt hat.
-
Algorithmus 4, HORS-Schlüsselpaargenerierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter j und n = L/j
- Ausgabe: Signaturschlüssel S, Verifikationsschlüssel P
- 1: Wähle n und j so dass L = n·j
- 2: Wählezufällig mit der gleichen Wahrscheinlichkeit, d. h. wähle 2j Zufallsvariablen der Länge L
- 3: Setze
- 4: Berechne pi = H(si) für i = 0, 1, ... 2j-1
- 5: Setze
- 6: Privater Schlüssel ≔ S, Öffentlicher Schlüssel ≔ P
- 7: Ausgabe (S, P)
-
Algorithmus 5, HORS-Signaturgenerierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter j und n = L/j, Nachricht M, Signaturschlüssel S
- Ausgabe: Einweg-Signatur HORS(M) für M
- 1: Berechne H(M) von M
- 2: Teile H(M) in 'n', j-bit Worte b1, b2, ..., bn
- 3: Interpretiere jedes bi als ganze Zahl zwischen 0 und 2j-1
- 4: Die Signatur von M ist
- 5: Ausgabe HORS(M)
-
Algorithmus 6, HORS-Signaturverifizierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter j und n = L/j, Nachricht M, Signaturschlüssel HORS(M), Verifikationsschlüssel P
- Ausgabe: TRUE wenn die Signatur gültig ist, sonst FALSE
- 1: Berechne b1, b2, ..., bn wie im Algorithmus 5
- 2: Interpretiere jedes bi als ganze Zahl zwischen 0 bis 2j-1
- 3: Ausgabe TRUE wenn für jedes i = 1, ..., n, H(si) = pi, sonst Ausgabe FALSE
-
Auf diese Weise wird vom Winternitz-OTS-Schema eine Signaturverifikation mit einer relativ geringen Zahl von öffentlichen Schlüsselwerten 22 aber einer großen Zahl von Hash-Funktionen 24, 26 und 28 durchgeführt und vom HORS OTS-Schema eine Signaturverifikation mit einer relativ großen Anzahl von privaten Schlüsselwerten 42 aber einer einzelnen Hash-Funktion 44 durchgeführt.
-
Der Kommunikationsaufwand und der Rechenaufwand, der mit dem Winternitz-OTS-Schema und dem HORS-OTS-Schema einhergeht, werden in der folgenden Tabelle 1 gezeigt.
-
Der Kommunikationsaufwand ist eine zusätzliche Anzahl von Bits b, die für die Übersendung jeder Nachricht M benötigt werden, die mit Hilfe des OTS-Schemas gesichert ist. Für jede zu sichernde Nachricht M muss der korrespondierende öffentliche Schlüssel V zuerst vorabverteilt werden und die Signatur σ muss an die Nachricht M angehängt werden. Demzufolge ist der Kommunikationsaufwand die Summe aus der Größe des öffentlichen Schlüssels in Bits und der Signaturgröße in Bits. Der Rechenaufwand ist die Zahl der Hash-Funktion-Rechnungen, die erforderlich werden, um die OTS zu verifizieren. Die Sicherheitsstufe ist die Schwierigkeit für das Brechen der OTS ausgedrückt in der Schlüssellänge (in Bit) einer gleich schwierigen symmetrischen Schlüsselziffer (egally hard symmetric key cipher). Tabelle 1
OTS Schema | Kommunikationskosten | Rechenkosten | Sicherheit |
Winternitz | (n + 2)L | n2k + 1 | L – 1 |
HORS | (n + 2j)L | n | L – nlog2n |
-
Die folgende Diskussion beschreibt zwei flexible Authentifikationsschemata, nämlich FAS-I und FAS-II, die eine Kombination des Winternitz-OTS-Schemas und des HORS-OTS-Schemas, wie oben erörtert, verwenden. Die flexiblen Authentifikationsschemata stellen einen Kompromiss zwischen Kommunikationsaufwand und Rechenaufwand dar. Demzufolge ist der Betrag an öffentlicher Information, der zur Verteilung beim Winternitz-OTS-Schema benötigt wird, und die Zahl der privaten Schlüsselwerte, die abgespeichert werden müssen, niedrig, aber der Rechenaufwand, der für verschiedene Layer der Hash-Funktionen verwendet wird, hoch. Allerdings ist der Betrag für die öffentliche Information, die vorab verteilt werden muss, und die Anzahl der privaten Schlüsselwerte, die abgespeichert werden müssen, für das HORS-OTS-Schema hoch, aber der Rechenaufwand dagegen niedrig. Die Sicherheitsstufe, die gewünscht wird, hängt davon ab, wie viel ”Hashing” im Winternitz-Schema ausgeführt wird und wie viele private Schlüsselwerte und Verifizierer im HORS-OTS-Schema benötigt werden. Mit anderen Worten ist beim Winternitz-OTS-Schema L = nk und der Kommunikationsaufwand ist linear in l und der Rechenaufwand ist exponentiell in k. Demzufolge müsste ein exponentieller Zuwachs im Rechenaufwand hingenommen werden, um eine lineare Abnahme im Kommunikationsaufwand zu gewinnen. Für das HORS OTS-Schema wiederum gilt L = nj, wobei der Rechenaufwand gerade n ist und der Kommunikationsaufwand bezüglich j exponentiell ist.
-
Die zwei folgenden diskutierten flexiblen Authentifikationsschemata gewährleisten einen besseren Kompromiss zwischen den zwei Arten von Aufwand. Beiden flexiblen Authentifikationsschemata (FAS), die hier diskutiert werden, liegt die Idee zu Grunde, einige Bits vom Hash der Nachricht zu verwenden, um eine zufällige Untermenge (a là HORS) auszuwählen und die anderen Bits, um Hash-Werte auszuwählen, die aus diesen Untermengen (a là Winternitz) abgeleitet wurden.
-
4 ist eine Matrix 50 von zufälligen privaten Schlüsselwerten 52 oder Siegeln, die gewählt wurden, um den privaten Schlüssel S zu bilden. Insbesondere stellt jede Zeile in der Matrix 50 eine Reihe von privaten Schlüsselwerten für ein Winternitz-OTS-Schema dar und jede Spalte in der Matrix 50 stellt eine Reihe von privaten Schlüsselwerten für ein HORS-OTS-Schema dar.
-
5 ist eine Draufsicht auf das FAS-I OTS-Schema, das eine Reihe von privaten Schlüsselwerten
62 beinhaltet, die als
s 0 / m, s 1 / m, ..., s l / m, ..., für die dritte Zeile der privaten Schlüsselwerte
52 aus der
4 dargestellt sind. Ein separates OTS-Schema würde für jede Zeile von privaten Schlüsselwerten
52 für die Matrix
50 vorliegen. Das OTS-Schema
60 stellt drei Hash-Funktionen
64,
66 und
68 dar, die als H, H
P und
bezeichnet sind, wobei die Hash-Funktion
68 für alle privaten Schlüsselwerte
62, die durch die Hash-Funktionen
64 und
66 gehasht wurden, in den Verifizierer
70 konkateniert sind, welcher als v
m bezeichnet wird. Demzufolge stellt jede Zeile in der Matrix
50 einen separaten Verifizierer b
m bereit.
-
Über jede Zeile der Matrix 50 läuft ein Winternitz-Schlüsselpaargenerierungs-Algorithmus, um den öffentlichen Schlüssel V für diese Zeile zu generieren. Die Menge von privaten Schlüsselwerten 52 aus jeder Zeile bildet die privaten Schlüssel S. Um eine Nachricht M zu signieren, wird die gehashte Version der Nachricht M in zwei Teile aufgeteilt, nämlich die Signierbits und die Markierbits. Die Markierbits markieren die Zeilen, die für das Signieren der Nachricht M verwendet werden, und die Signierbits werden durch den Winternitz-Signier-Algorithmus mit Hilfe der Werte aus dieser Zeile signiert.
-
Der folgende Algorithmus 7 ist ein Schlüsselgenerierungs- und öffentlicher Schlüsselverteilungs-Algorithmus für das Authentifikationsprotokoll, das zeigt, wie das FAS-I OTS-Schema das Schlüsselpaar S und V mit der Generierung der Matrix 50 generiert. Der folgende Algorithmus 8 ist ein Signaturgenerierungs-Algorithmus für das Authentifikationsprotokoll, das zeigt, wie das FAS-I OTS-Schema die Signaturgenerierung erzeugt mit Hilfe der Hash-Version oder dem Message Digest. Der folgende Algorithmus 9 ist ein Signatur-Verifikationsalgorithmus für das Authentifikationsprotokoll, das zeigt, wie das FAS-I OTS-Schema eine Signaturverifikation in dem Empfängerfahrzeug vornimmt.
-
Algorithmus 7, FAS-I Schlüsselpaargenerierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter n, n1, k und j
- Ausgabe: Signaturschlüssel S, Verifikationsschlüssel V
- 1: Wähle n, n1, k und j so dass L = n·n1·k + n·j
- 2: Wählezufällig mit gleicher Wahrscheinlichkeit, d. h. wähle (n1 + 1)2j Zufallsvariable der Länge L
- 3: Setze
- 4: Für jedes m ∈ {0:2j-1} wende die Winternitz-Schlüsselpaargenerierung an (Algorithmus 1) für s 0 / m, s 1 / m, ...,
- 5: Bezeichne die öffentlichen Werte jeder m – th Winternitz-Struktur als νm
- 6: Setzewobei ∥ Konkatenierung bedeutet
- 7: Privater Schlüssel ≔ S, Öffentlicher Schlüssel ≔ V
- 8: Ausgabe (S, V)
-
Algorithmus 8, FAS-I OTS Signaturgenerierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter n, n1, k und j, Nachricht M, Signaturschlüssel S
- Ausgabe: Einweg-Signatur σM von M
- 1: Berechne H(M) aus M
- 2: Teile H(M) in 'n' k Bit Datenworte und 'n' j Bit Datenworte
- 3: 'n' n1k Bit Datenworte werden zum Signieren verwendet. Sie werden als b 1 / 1, b 1 / 2, ..., b 2 / 1, b 2 / 2, ..., , ..., b n / 1, b n / 2, ..., bezeichnet
- 4: 'n' j Bit Datenworte bilden n Indizes in {1:2j} und werden zum Markieren verwendet. Sie werden als m1, m2, ..., mn bezeichnet
- 5: Berechnefür jedes i ∈ {1:n}
- 6: Für jedes mi signiere (b i / 0, b i / 1, ..., mittels der Winternitz-Signatur (Algorithmus 2) um zu generieren
- 7: Die Signatur von M ist
- 8: Ausgabe σM
-
Algorithmus 9, FAS-I OTS Signaturverifizierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter n, n1, k und j, Nachricht M, Signatur σM, Verifikationsschlüssel V
- Ausgabe: TRUE wenn die Signatur gültig ist, sonst FALSE
- 1: Berechne (b 1 / 1, b 1 / 2, ..., b 2 / 1, b 2 / 2, ..., ..., b n / 1, b n / 2, ..., und (m1, m2, mn) wie im Algorithmus 8
- 2: Verifiziere jedes νm mittels Winternitz-Verifizierung (Algorithmus 3)
- 3: Wenn Algorithmus 3 true für jedes νm ausgibt, dann Ausgabe TRUE, sonst FALSE
-
6 ist eine Draufsicht auf ein FAS-II OTS-Schema
80 mit einer Menge von privaten Schlüsselwerten
82, die als s
c, s
0, ..., s
m, ...,
bezeichnet sind, und einer Reihe von Hash-Funktionen
84,
86 und
88, die als H, H
p und
bezeichnet sind, wobei die Ergebnisse der Hash-Funktion
88 eine Reihe von Verifizierern
90 darstellt, die als b
c, b
0, b
n und
bezeichnet werden. Eine erste Menge von zufälligen Siegeln wird als private Schlüsselwerte
82 ausgewählt und Winternitzartige Hash-Ketten werden aufgestellt. Der öffentliche Schlüssel V besteht aus den finalen Werten aller Hash-Ketten und nicht aus dem Hash ihrer Konkatenierung. Um eine Nachricht zu signieren, wird die gehashte Version der Nachricht M in zwei Teile geteilt, nämlich Signierbits und Markierbits. Die Markierbits markieren, welcher der privaten Schlüsselwerte
82 für das Signieren verwendet wird, und die Signierbits werden dann analog zum Winternitz-Signier-Algorithmus signiert.
-
Der folgende Algorithmus 10 ist ein Schlüsselgenerierungs- und öffentlicher Schlüsselverteilungs-Algorithmus für das Authentifikationsprotokoll, das ein Verfahren für die Generierung des privaten und öffentlichen Schlüsselpaars S und V in dem FAS-II OTS-Schema zeigt. Der folgende Algorithmus 11 ist ein Signaturgenerierungs-Algorithmus für das Authentifikationsprotokoll, das ein Verfahren für die Signaturgenerierung für das FAS-II OTS-Schema zeigt, veranschaulicht mit Hilfe der gehashten Version oder des ”Message-Digest”. Der folgende Algorithmus 12 ist ein Signaturverifizierungs-Algorithmus für das Authentifikationsprotokoll, das ein Verfahren zeigt, wie die Signaturen in dem Empfänger für das FAS-II OTS-Schema verifiziert werden.
-
Algorithmus 10, FAS-II OTS-Schema Schlüsselpaargenerierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter n, k1 und k2
- Ausgabe: Signaturschlüssel S, Verifizierungsschlüssel V
- 1: Wähle n, k1, k2 und j so dass L = n(k + j)
- 2: Wählezufällig mit gleicher Wahrscheinlichkeit, d. h. wähle (2j + 1) Zufallsvariablen der Länge L
- 3: Setze
- 4: Berechnefür i = 0, 1, 2, ..., 2j-1
- 5: Berechne
- 6: Setzewobei ∥ eine Konkatenierung bezeichnet
- 7: Privater Schlüssel ≔ S, Öffentlicher Schlüssel ≔ V
- 8: Ausgabe (S, V)
-
Algorithmus 11, FAS-II OTS-Schema Signaturgenerierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter n, k und j, so dass L = n(k + j), Nachricht M, Signaturschlüssel S
- Ausgabe: Einweg-Signatur σM von M
- 1: Berechne H(M) aus M
- 2: Teile H(M) in n,k-Bit und n,j-Bit Datenworte
- 3: n,k-Bit Datenworte werden zum Signieren verwendet. Sie werden bezeichnet als b 1 / 1, b 1 / 2, ..., b 1 / n.
- 4: n,j-Bit Datenworte werden zur Auswahl verwendet. Sie werden bezeichnet als b 2 / 1, b 1 / 2, ..., b 2 / n
- 5: Berechne b0 = Σ n / i=lb 1 / i
- 6: Die Signatur von M ist
- 7: Ausgabe σM
-
Algorithmus 12, FAS-II OTS-Schema Signaturverifizierung:
-
- Eingabe: Hash-Funktion H: {0, 1}* → {0, 1}L, Block Parameter n, k und j, so dass L = n(k + j), Nachricht M, Signatur σM, Verifizierungsschlüssel V
- Ausgabe: TRUE wenn die Signatur gültig ist, sonst FALSE
- 1: Berechne b 1 / 1, b 1 / 2, ..., b 2 / 1, b 2 / 2, ..., b 2 / n wie im Algorithmus 11
- 2: σM sei auszusammengesetzt
- 3: Berechnefür i = 1, 2, ..., n
- 4: Berechne
- 5: Wennfür jedes i = 1, ..., n und w = z, dann Ausgabe TRUE, sonst Ausgabe FALSE
-
Die Kosten, die mit den FAS-I und FAS-II OTS-Schemata einhergehen, werden in der folgenden Tabelle 2 aufgeführt. Die Kommunikationskosten sind in der Anzahl von Bits dargestellt. Die Rechenkosten sind die Verifikationszeit und werden in der Anzahl von benötigten Hash-Operationen ausgedrückt. Die Sicherheitsstufe wird in der Anzahl der Bits angegeben. Die Sicherheitsanalyse, die durchgeführt wurde, um diese Tabelleneinträge abzuleiten, wird weiter unten erläutert. Tabelle 2
OTS Schema | Kommunikationskosten | Rechenkosten | Sicherheit |
FAS-I | (n(n1 + 1) + 2j)L | n(n12k + 1) | L – nlog2n |
FAS-II | (n + 2j + 2)L | n2k + 1 | L – nlog2n |
-
Die Sicherheitsanalysen für die FAS-I und FAS-II OTS-Schemata sind analog zu denen für das HORS-OTS-Schema. Das am OTS-Schema Interessante ist die Wahrscheinlichkeit, dass nach Anwendung der Hash-Funktion H auf eine einzelne Nachricht M, jemand eine Signatur auf der Nachricht M ohne Invertierung der Einweg-Hash-Funktion fälschen kann.
-
In dem FAS-I Schema wird der Hash der Nachricht M, die signiert werden soll, in 'n' j-Bit Datenworte aufgebrochen, welche zur Auswahl von n aus 2
j Zeilen und 'n'n
1 k-Bit Datenworten, die dazu verwendet werden, ein Winternitz-OTS-Schema für jede der n ausgewählten Zeilen zu erzeugen. Demzufolge würde das Vergeben einer Signatur bei einer vorgegebenen Nachricht M, die zu m hasht und deren Signatur σ ist, einen Angreifer erfordern, der eine andere Nachricht M' auffinden müsste, die zu m' hasht, so dass die letzten n.n
1.k Bits mit denen von m identisch sein müssten und dass die letzteren n.j Bits oder 'n'j-Bit Datenworte eine Permutation einer Untermenge der letzten 'n'j-Bit Datenworte von m sein müssten. Unter Annahme eines Zufälligkeitsmodells für die Hash-Funktion wäre die Wahrscheinlichkeit für ein solches Ereignis
was nichts anderes wäre als
-
In dem FAS-II-Schema wird der Hash der Nachricht M in 'n' Datenworte mit der Länge k + j aufgeteilt. Für jedes Datenwort werden die letzten j Bits für die Markierung einer Spalte verwendet. Demzufolge werden n Spalten markiert und dann die letzten k Bits aller n Datenworte mit Hilfe des Winternitz-Signier-Algorithmus signiert. Daher müsste, um eine Signatur zu umgehen, ein Angreifer eine andere Nachricht M' finden, die mit m' hasht, so dass wenn sie in 'n' Datenworte der Länge k + j aufgeteilt würde, sie eine Permutation von einer Untermenge von 'n' Datenworten der Länge k + j von m sein. Die Wahrscheinlichkeit für ein solches Ereignis ist wiederum unter der Annahme, das H ein Zufallsmodell ist,
was nichts anderes ist als
Demzufolge ist die Sicherheit für FAS-I und FAS-II L – nlog
2n Bits.
-
Die vorhergehende Diskussion offenbart und beschreibt rein beispielhafte Ausführungsformen der vorliegenden Erfindung. Ein Fachmann kann aus der Diskussion und den beigefügten Figuren und Patentansprüchen leicht erkennen, dass verschiedene Änderungen, Modifikationen und Variationen gemacht werden können, ohne dabei Geist und Schutzbereich der Erfindung, wie sie von den folgenden Patentansprüchen definiert wird, zu verlassen.