-
Diese Erfindung erfolgte mit Unterstützung der Regierung der USA unter dem Vertrag Nr. FA8750-08-2-0091, der durch das Department of Interior vergeben wurde. Die Regierung der USA besitzt gewisse Rechte an dieser Erfindung.
-
TECHNISCHES GEBIET
-
Die vorliegende Anmeldung betrifft sichere Datenübertragung und genauer das Ermöglichen sicherer Datenübertragung durch passwortgestützten Einzelrunden-Schlüsselaustausch.
-
HINTERGRUND
-
Die auf Passwörtern beruhende Überprüfung der Identität stellt ein wichtiges Sicherheitsmodell dar. Sicherheit ist in diesem Szenario ein großes Problem, da Passwörter üblicherweise von Domänen mit niedriger Entropie und unzureichender Zufälligkeit beim Erzeugen kryptografisch sicherer Schlüssel stammen.
-
Um Datenübertragungen vor Angriffen zu schützen, wurden Modelle entwickelt, bei denen Peers Passwörter gemeinsam nutzen. Alle derzeitigen passwortgestützten Schlüsselaustauschprotokolle folgen einem Modell einer nicht veränderbaren Übermittlung (non-malleable commitment), z.B. dem Verschlüsselungsmodell des „Chosen Ciphertext Adversary Model“ CCA2 zusammen mit zugehörigen Hash-Beweissystemen. Diese Protokolle verwenden zudem glatte Hash-Projektionsfunktionen, die denen in den CCA2-Verschlüsselungsschemata gleichen. Hier beinhalten die Verfahren zum Erhalten von Hash-Beweisen üblicherweise mehrere Runden des Austausches zwischen den Peers zusammen mit simulationsverlässlichen, kenntnisfreien Beweisen (simulation sound zero knowledge proofs).
-
Katz, Jonathan und Vaikuntanathan, Vinod: „Round-Optimal Password-Based Authenticated Key Exchange“, beschreibt einen allgemeinen Rahmen zum Konstruieren eines kennwortbasierten authentifizierten Schlüsselaustauschprotokolls mit optimaler Rundenkomplexität - d.h. eine Nachricht pro Teilnehmer, gleichzeitig gesendet - im Standardmodell unter der Annahme der Existenz einer gemeinsamen Referenzzeichenkette. Der entsprechende Rahmen wird unter Verwendung von Krytosystemen basierend auf bilinearen Abbildungen instanziiert und kann so angepasst werden, dass sich Protokolle im Standardmodell ergeben, die universell zusammensetzbar sind, während sie nach wie vor nur eine simultane Runde verwenden
-
KURZZUSAMMENFASSUNG
-
Gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung beinhaltet ein Verfahren ein Ermitteln eines verallgemeinerten Diffie-Hellman-Tupels, ein Erzeugen eines einmaligen simulationsverlässlichen, kenntnisfreien Beweises, der die Konsistenz des verallgemeinerten Diffie-Hellman-Tupels beweist, und ein Verschlüsseln einer Nachricht gemäß dem verallgemeinerten Diffie-Hellman-Tupel.
-
Gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung beinhaltet ein Verfahren zum Durchführen verschlüsselter Datenübertragung unter Verwendung einer gemeinsamen Referenzzeichenkette und eines gemeinsam genutzten Passwortes ein Ermitteln eines geheimen Schlüssels unter Verwendung einer ersten an einen Peer gesendeten Nachricht, einer zweiten vom Peer empfangenen Nachricht und der gemeinsamen Referenzzeichenkette, wobei die erste Nachricht und die zweite Nachricht jeweils ein Tupel von Elementen einer zyklischen Gruppe G der Primordnung p, eine Blinding-Verschlüsselung des gemeinsam genutzten Passworts und einen Hash-Projektionsschlüssel aufweisen.
-
Gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung beinhaltet ein Verfahren zum Initialisieren sicherer Datenübertragung unter Verwendung einer gemeinsamen Referenzzeichenkette und eines gemeinsam genutzten Passwortes ein Ermitteln eines geheimen Schlüssels eines Peer unter Verwendung einer ersten Nachricht, einer zweiten Nachricht und der gemeinsamen Referenzzeichenkette, wobei die erste Nachricht und die zweite Nachricht jeweils ein Tupel von Elementen einer zyklischen Gruppe G der Primordnung p, eine Blinding-Verschlüsselung des gemeinsam genutzten Passworts und einen Hash-Projektionsschlüssel aufweisen.
-
Gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung beinhaltet ein Verfahren zum Initialisieren sicherer Datenübertragung unter Verwendung einer gemeinsamen Referenzzeichenkette und eines gemeinsam genutzten Passwortes Senden einer ersten Nachricht an einen Peer, Empfangen einer zweiten Nachricht von dem Peer und Ermitteln eines geheimen Schlüssels des Peer unter Verwendung der ersten Nachricht, der zweiten Nachricht und der gemeinsamen Referenzzeichenkette, wobei die erste Nachricht und die zweite Nachricht jeweils ein verallgemeinertes Diffie-Hellman-Tupel, eine Blinding-Verschlüsselung des gemeinsam genutzten Passworts, einen Hash-Projektionsschlüssel und einen einmaligen simulationsverlässlichen, kenntnisfreien Beweis aufweisen, der die Konsistenz des verallgemeinerten Diffie-Hellman-Tupels beweist.
-
Figurenliste
-
Bevorzugte Ausführungsformen der vorliegenden Offenbarung werden nachstehend unter Bezugnahme auf die begleitenden Zeichnungen detaillierter beschrieben:
- 1 zeigt eine Abbildung eines Protokolls für einen passwortgestützten Schlüsselaustausch gemäß einer Ausführungsform der vorliegenden Offenbarung;
- 2 zeigt eine Abbildung, die eine Nachrichtenerzeugung gemäß einer Ausführungsform der vorliegenden Offenbarung veranschaulicht;
- 3 zeigt eine Abbildung einer empfangenen Nachricht gemäß einer Ausführungsform der vorliegenden Offenbarung;
- 4 zeigt einen Ablaufplan für ein beispielhaftes Verfahren zum Erzeugen eines gemeinsam genutzten Schlüssels gemäß einer Ausführungsform der vorliegenden Offenbarung;
- 5 zeigt eine Abbildung einer gemeinsamen Referenzzeichenkette gemäß einer Ausführungsform der vorliegenden Offenbarung;
- 6 zeigt eine Abbildung eines Diffie-Hellman-Tupels gemäß einer Ausführungsform der vorliegenden Offenbarung;
- 7 zeigt eine Abbildung eines verschlüsselten Passworts gemäß einer Ausführungsform der vorliegenden Offenbarung;
- 8 zeigt eine Abbildung eines Hash-Projektionsschlüssels gemäß einer Ausführungsform der vorliegenden Offenbarung; und
- 9 zeigt ein beispielhaftes System zum Ausführen eines Verfahrens gemäß einer Ausführungsform der vorliegenden Offenbarung.
-
DETAILLIERTE BESCHREIBUNG
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung ermöglicht ein passwortgestützter Einzelrunden-Schlüsselaustausch sichere Datenübertragung. Der passwortgestützte Einzelrunden-Schlüsselaustausch kann für unterschiedliche Modelle sicherer Datenübertragung verwendet werden. Zum Beispiel kann der passwortgestützte Einzelrunden-Schlüsselaustausch bei einem „Password-Authentication Key“- (PAK-) Sicherheitsmodell oder einem „Universally Composable“ (UC)-Modell verwendet werden. Der passwortgestützte Einzelrunden-Schlüsselaustausch umgeht das Modell der nicht veränderbaren Übermittlung, auf dem herkömmliche passwortgestützte Einzelrunden-Schlüsselaustauschprotokolle aufgebaut worden sind. Durch Vermeiden des Modells nicht veränderbarer Übermittlung des CCA-2-Verschlüsselungsmodells können Verfahren sowohl im Hinblick auf die Datenübertragungskosten als auch auf die Berechnung eines endgültigen Schlüssels effizient gestaltet werden.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung können Hash-Beweissysteme im passwortgestützten Schlüsselaustauschprotokoll realisiert werden. Genauer kann ein geheimer Schlüssel als Produkt zweier Projektions-Hashfunktionen, einer ersten Projektions-Hashfunktion, die einer gültigen Verschlüsselungen eines Passworts zugehörigen Sprache entspricht, und einer zweiten Projektions-Hashfunktion, die der Unversehrtheit von verschlüsselten Texten im Verschlüsselungsschema entspricht, ermittelt werden. Bei der zweiten Projektions-Hashfunktion muss es sich nicht um die bei CCA2-Verschlüsselungsschemata verwendete universelle 2-Projektions-Hashfunktion handeln. Um Sicherheit nur auf einer Diffie-Hellman-Enscheidungs- (decisional Diffie-Hellman (DDH-)) Annahme zu beweisen, wird bei einer Hintertür (trapdoor) einer gemeinsamen Referenzzeichenkette eine weitere (paarweise unabhängige) Redundanz benötigt.
-
Der passwortgestützte Einzelrunden-Schlüsselaustausch ist effizient, wobei simulationsverlässliche nichtinteraktive Kenntnisfreiheit (Simulation-Sound Non-Interactive Zero-Knowledge (NIZK)) für den Beweis der Kenntnis geheimer Hash-Schlüssel und nicht notwendigerweise für das Aufbauen einer sicheren CCA2-Verschlüsselung verwendet wird. Beim passwortgestützten Einzelrunden-Schlüsselaustausch wird ein Mehrfachtheorem-NIZK-Beweissystem verwendet. Beim passwortgestützten Einzelrunden-Schlüsselaustausch können Mehrfachtheorem-NIZK-Beweissysteme verwendet werden.
-
Die hierin verwendete Terminologie dient lediglich dem Zwecke des Beschreibens besonderer Ausführungsformen und ist nicht als die Erfindung einschränkend aufzufassen. Die hierin verwendeten Singularformen „ein“, „eine“ und „der“, „die“, „das“ sowie deren Deklinationen sollen ebenso die Pluralformen einschließen, es sei denn dies ist im Kontext deutlich anderweitig angegeben. Es versteht sich weiterhin, dass die Begriffe „aufweist“ und/oder „aufweisend“ in diesem Dokument das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder Hinzufügen eines oder mehrerer Merkmale, ganzer Zahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon ausschließen.
-
Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritte sowie Funktionselemente in den nachfolgenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen, wie sie im Einzelnen beansprucht sind, einschließen. Die Beschreibung der vorliegenden Offenbarung wurde zum Zwecke der Veranschaulichung und Beschreibung vorgelegt, ist jedoch nicht als erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt aufzufassen. Viele Änderungen und Variationen sind für den Fachmann naheliegend, ohne vom Umfang und Geist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Offenbarung und die praktische Anwendung am besten zu erklären und anderen Fachleuten ein Verständnis der Offenbarung für vielfältige Ausführungsformen mit vielfältigen Änderungen, wie sie für den besonderen betrachteten Gebrauch geeignet sind, zu ermöglichen.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Hash-Beweissystem verwendet, bei dem Peers ein Passwort gemeinsam nutzen. Wenn das gemeinsam genutzte Passwort falsch ist, leiten die Peers unverbundene geheime Schlüssel ab. Weiterhin besitzt ein passiver oder aktiver Abhörer keinen Vorteil beim Erraten des endgültigen Schlüssels, auf den sich die rechtmäßigen Peers geeinigt haben, selbst wenn das Startpasswort schwach war. Für ein Passwort mit einer Länge von 4 Dezimalzahlen kann der Abhörer das Passwort zum Beispiel mit einer Wahrscheinlichkeit von 1 aus 9999 mit einem einzigen Versuch erraten, was einem zufälligen Raten entspricht. Das heißt, der Abhörer besitzt keinen zusätzlichen Vorteil gegenüber einem zufälligen Raten.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung handelt es sich bei der gemeinsamen Referenzzeichenkette (common reference string (CRS)) um einen global herausgegeben zufälligen Wert, der allen Peers zugänglich ist, z.B. die letzte Stelle des „Dow Jones Average“ (DJIA) an einem bestimmten Tag. Ein weiteres Beispiel stellt eine durch eine Organisation wie dem NIST (National Institute of Standards Technology) herausgegebene zufällige Zeichenkette dar.
-
Wenn unter Bezugnahme auf 1 zwei Peers A und B, 101a und 101b, und unabhängige Zufallswerte, welche die Peers als r_A und r_B (104a und 104b) gewählt haben, gegeben sind, können sowohl Peer A als auch Peer B mithilfe dieser Zufallswerte eine Funktion F ihrer jeweiligen Zufallswerte, die gemeinsame CRS 105 und ihr Passwort (103a und 103b) bestimmen. Die Funktion F kann durch das Protokoll festgelegt werden. Der sich ergebende Wert (106a und 106b) wird an den anderen Peer gesendet. Bei Empfangen der jeweiligen Werte vom anderen Peer in den Blöcken 107a und 107b ermitteln dann beide Peers beruhend auf dem, was sie vom anderen Peer empfangen haben, ihrem Passwort, der CRS und ihrem Zufallswert einen endgültigen Schlüssel, um eine jeweilige Nachricht zu erzeugen (108a und 108b).
-
Die zwei Peers ermitteln dann und nur dann denselben Schlüssel, wenn sie dasselbe Passwort (103a und 103b) verwendet haben. Wenn sich darüber hinaus die Passwörter auch nur in einem Bit unterscheiden würden, wären die zwei Werte zufällig und voneinander unabhängig. Dasselbe gilt, wenn ein Dritter (z.B. ein „Mittelsmann“ („man in the middle“)) mit inkorrekter Kenntnis des Passwortes versucht, einen aktiven oder passiven Abhörangriff zu starten; dies bedeutet, der erzeugte Wert wird zufällig und unabhängig von den durch die Peers erhaltenen Werten sein.
-
In der Beschreibung und den Zeichnungen werden zyklische Gruppen G1 und G2 verwendet, die beide von der Primordnung p sind, so dass sie die symmetrische externe Diffie-Hellman- (Symmetric External Diffie-Hellman (SXDH-)) Annahme erfüllen.
-
Die SXDH-Annahme enthält eine zugrundeliegende algebraische Struktur, die zwei unterschiedliche zyklische Gruppen G1 und G2 verwendet, die jeweils die Primordnung p besitzen. Eine bilineare Zuordnung nimmt ein Paar von Elementen aus jeweils G1 bzw. G2 und ordnet sie einer dritten, „Zielgruppe“ genannten, Gruppe G3 zu. Die SXDH-Annahme besagt, dass die zwei Gruppen G1 und G2 so inkompatibel sind, dass die Diffie-Hellman-Annahme in jeder dieser beiden Gruppen für sich gilt. Somit kann bei einem gegebenen Erzeuger g der zyklischen Gruppe G1 und zwei Elementen g hoch a, und g hoch b, wobei a und b zufällig gewählt sind, kein Polynomialzeitwidersacher g hoch a mal b von einem zufälligen Element der Gruppe G1 unterscheiden. Eine gleiche Annahme wird als für die Gruppe G2 geltend gefordert.
-
Das Protokoll von 1 geht davon aus, dass eine feste CRS 100 allen Peers bekannt ist. Das Protokoll ist symmetrisch und asynchron, wobei jede Partei eine zu sendende Nachricht bestimmt, eine entsprechende Nachricht empfängt und einen Schlüssel ermittelt. Daher erfolgt die folgende Beschreibung aus Sicht eines der Peers, der andere ist symmetrisch.
-
Die CRS (siehe 5) enthält drei Gruppenelemente g, A und K (301 bis 303), die gleichverteilt zufällig aus G gewählt sind; und eine CRS für NIZK-Beweise (304).
-
Es werden die am Protokoll beteiligten Parteien Pi und Pj betrachtet, die ein Passwort pw gemeinsam nutzen. In 2, erzeugt die Partei Pi Zufallszahlen x, η1 und η1' gleichverteilt zufällig von 1 bis p und bestimmt die Nachrichtenkomponenten 106, zu denen zählt: ein Diffie-Hellman-Tupel: = (gx,Ax) (201 und 6), eine Verschlüsselung des Passworts: = Kx·ssid · ρw (202, 7) (wobei es sich bei ssid um eine Identifikation der Untersitzung handelt), einen Hash-Projektionsschlüssel: gη
1 Kn
1‘ (203 und 8) und einen NIZK-Beweis der Existenz von x so, dass das Diffie-Hellman-Tupel in 6 tatsächlich die Form (gx,A x) 204 aufweist.
-
Der NIZK-Beweis der Konsistenz des Diffie-Hellman-Tupels 〈ρ1,ρ1'〉 erfüllt die folgende Eigenschaft:
Es gibt ein x derart, dass ρ1 = gx und ρ1'= Ax.
-
Der NIZK-Beweis kann mithilfe bekannter Techniken aufgebaut werden. Zum Beispiel kann ein kenntnisfreies Protokoll (z.B. erfährt ein Überprüfer nicht mehr aus einem Beweis als die Wahrheit der Aussage) als einmalig simulationsverlässlich (one-time simulation sound) bezeichnet werden, wenn ein Polynomialzeitwidersacher eine falsche Aussage auch dann nicht beweisen kann, wenn ein Transskript einer falschen Aussage gegeben ist, die im Protokoll durch Ersetzen einer ununterscheidbaren Zeichenkette durch Verwenden einer zugrundeliegenden Härteannahme bewiesen ist. Dies kann durch die bilineare Paarbildung und die SXDH-Annahme ermöglicht werden. Der Beweis ist einmalig simulationsverlässlich, so dass in einem Protokoll mit einmaligem simulationsverlässlichem, kenntnisfreiem Beweis kein Widersacher einen gegeben Beweis einer Aussage verändern kann, um einen gültigen Beweis einer anderen Aussage zu erhalten.
-
Es wird betrachtet, dass (NIZK [1, 2]) Π = (l, P, V, S) = (S1,S2) ein Mehrfachtheorem-NIZK-Beweissystem (bzw. Argument) für die Sprache L ∈ NP mit Zeugenbeziehung R sein kann, wenn: / ein Polynom ist und P, V, S1, S2 alle probabilistische Polyzeit-Maschinen sind, so dass es eine vernachlässigbare Funktion α gibt, so dass für alle k gilt:
Vollständigkeit: Für alle x ∈ L der Länge k und alle w so, dass R(x, w) = wahr , gilt für alle Zeichenketten σ der Länge l(k), dass V(x,P(x,w,σ),σ) = wahr.
-
Verlässlichkeit: Wenn für alle unbeschränkten (bzw. Polyzeit-) Widersacher A σ ∈ {0,1}l(k) zufällig gewählt wird, ist die Wahrscheinlichkeit, dass A(σ) (x,p) ergibt, so dass x ∉ L, aber V(x, p, σ) = wahr , kleiner als a(k) ist.
-
Nach Bestimmen der Nachrichtenkomponenten 106 versendet Pi eine einzelne die Nachrichtenkomponenten enthaltende Nachricht über einen Datenübertragungskanal (sicher oder unsicher). Dies ist in 1 als starker Schlüssel abgebildet, der durch Pi versendet wird (101a).
-
Pi empfängt einen Schlüssel vom Netzwerk, z.B. von Pj. Unter Bezugnahme auf 4 wird erwartet, dass der empfangene Schlüssel (siehe107, 3) dasselbe Format besitzt wie die Nachricht, die durch den Peer Pi versendet wurde (401). Wenn das Format nicht syntaktisch ordnungsgemäß geformt ist oder dasselbe Diffie-Hellman-Tupel besitzt wie die Nachricht, die durch den Peer Pi versendet wurde (402), endet das Protokoll mit einem Fehler (403). Wenn weiterhin der NIZK-Beweis kein gültiger Beweis der Konsistenz des empfangenen Diffie-Hellman-Tupels ist (402), endet das Protokoll mit einem Fehler (403). Die empfangene Nachricht ohne den NIZK-Beweis kann als (r2,r'2, e2, ρ2) notiert werden.
-
4 veranschaulicht ein Erzeugen des starken Schlüssels nachdem die Konsistenzprüfungen erfolgreich waren. Es sei CRH eine kollisionsresistente HashFunktion, und es sei H = CRH(ρ
2). Teil
1 des Schlüssels des Peer
404 kann ermittelt werden zu:
Teil
2 des Schlüssels des Peer
405 kann ermittelt werden zu: sk
2 = (p
2)
x
1 . Der starke Schlüssel des Peer
406 kann ermittelt werden zu: sk = sk
1 · sk
2.
-
Hierin beschriebene Techniken können in allgemeineren kryptographischen Anwendungen verwendet werden. Ein veranschaulichendes Beispiel stellt der Fall eines gegen Angriffe mit gewähltem verschlüsseltem Text resistenten (chosenciphertext attack resistant CCA2) Verschlüsselungsschemas mit öffentlichem Schlüssel dar. Ein CCA2-Verschlüsselungsschema mit öffentlichem Schlüssel beinhaltet ein Erzeugen eines öffentlichen Schlüssels und eines privaten Schlüssels und ein Verbreiten des öffentlichen Schlüssels, ein Verschlüsseln mithilfe dieses öffentlichen Schlüssels und ein Entschlüsseln mithilfe des privaten Schlüssels. Ein solches CCA2-Verschlüsselungsschema kann wie folgt mittels eines gegen Angriffe mit gewähltem Volltext resistenten (chosen-plaintext attack resistant (CPA)) Verschlüsselungsschemas und eines einmaligen simulationsverlässlichen, nichtinteraktiven, kenntnisfreien Beweises aufgebaut werden.
-
Das Verschlüsselungsverfahren erzeugt einen verschlüsselten Text, was ein Erzeugen eines verallgemeinerten Diffie-Hellman-Tupels, ein Verschlüsseln der Nachricht unter dem CPA-Verschlüsselungsschema, einen gekennzeichneten einmaligen simulationsverlässlichen nichtinteraktiven kenntnisfreien Beweis beinhaltet, der die Konsistenz des verallgemeinerten Diffie-Hellman-Tupels beweist, wobei die Kennzeichnung die verschlüsselte Nachricht unter dem CPA-Verschlüsselungsschema darstellt.
-
CPA stellt ein Beispiel eines Blinding-Verschlüsselungsverfahrens dar, bei dem eine Nachricht codiert werden kann, um eine dritte Partei im Wesentlichen von der Kenntnisnahme des Inhaltes abzuhalten. Gemäß einer Ausführungsform der vorliegenden Offenbarung kann dem Peer beim Blinding-Verschlüsselungsverfahren die Nachricht, z.B. das gemeinsam genutzte Passwort, bekannt sein.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann eine lineare Entscheidungsannahme (Decisional Linear Assumption (DLIN)) verwendet werden, um den NIZK-Beweis zu ermöglichen. Bei der DLIN gibt es eine bilineare Zuordnung zu zwei Elementen von jeweils derselben Gruppe G. Genauer besagt die DLIN, dass bei einem gegebenen Erzeuger g für die zyklische Gruppe G der Primordnung p und den Elementen g hoch a, g hoch b, g hoch a mal r, g hoch b mal s, wobei a, b, r, und s zufällig zwischen 0 und p-1 gewählt sind, kein Polynomialzeitwidersacher g hoch (r+s) von einem zufälligen Element der Gruppe unterscheiden kann.
-
Zum Zwecke der Verwendung einer DLIN enthält das verallgemeinerte Diffie-Hellman-Tupel drei Elemente 〈U,V,W〉, wobei U von der Form g hoch x, V von der Form A hoch y und W von der Form B hoch x plus y ist. Hier können A und B zuvor festgelegt sein, z.B. als Teil der gemeinsamen Referenzzeichenkette.
-
Somit kann das Protokoll wie folgt beschrieben werden: Die gemeinsame Referenzzeichenkette (CRS) enthält eine Vielzahl von Elementen aus der zyklischen Gruppe G der Primordnung p. Diese Elemente der CRS sind zufällig aus der Gruppe gewählt und können als g, A, B, K1 und K2 bezeichnet werden.
-
Ein erster Peer, der an einem passwortgestützten Schlüsselaustausch mit einem zweiten Peer teilnimmt, kann eine an den Peer zu sendende Nachricht wie folgt erzeugen: Der erste Peer wählt eine zufällige ganze Zahl x und eine weitere zufällige ganze Zahl y aus, um ein verallgemeinertes Diffie-Hellman-Tupel zu g hoch x, A hoch y und B hoch x plus y zu erzeugen. Hier erfolgen die Potenzierungen und die Produktberechnungen in der zyklischen Gruppe G.
-
Der erste Peer kann zwei Hash-Projektionsschlüssel wie folgt erzeugen: Der erste Peer wählt drei Zufallszahlen I, m und n aus. Der erste Peer erhält den ersten Hash-Projektionsschlüssel als ein Produkt aus g hoch I und K1 hoch n. Der erste Peer erhält den zweiten Hash-Projektionsschlüssel als ein Produkt aus A hoch m und K2 hoch n.
-
Der erste Peer verschlüsselt das Passwort, indem er zuerst K1 mit x und K2 mit y potenziert, und multipliziert die zwei Ergebnisse miteinander. Der erste Peer kann das sich ergebende Produkt optional mit einer zusätzlichen Hochzahl potenzieren, die aus den zuvor bestimmten zwei Hash-Projektionsschlüsseln ermittelt wird. Zum Beispiel kann diese Ermittlung erfolgen, indem eine Kollisionsresistenzfunktion, wie beispielsweise der sichere Hash-Algorithmus (Secure Hash Algorithm (SHA)) auf das Paar von Hash-Projektionsschlüsseln angewandt wird. Dann multipliziert er das Ergebnis mit dem Produkt, um die Verschlüsselung des Passwortes zu erhalten. Wie zuvor erfolgen alle Potenzierungen und Multiplikationen in der zyklischen Gruppe G.
-
Der erste Peer kann den einmaligen simulationsverlässlichen, nichtinteraktiven, kenntnisfreien Beweis bestimmen, um die Konsistenz des verallgemeinerten Diffie-Hellman-Tupels zu beweisen, das heißt zu beweisen, dass das Tripel die Form g hoch eine ganze Zahl x, A hoch eine andere ganze Zahl y und B hoch x plus y besitzt.
-
Der erste Peer kann dann die das verallgemeinerte Diffie-Hellman-Tupel, die Verschlüsselung des Passwortes, das Paar von Hash-Projektionsschlüsseln und den kenntnisfreien Beweis enthaltende Nachricht an den zweiten Peer senden. Es seien die Elemente im Diffie-Hellman-Tupel S, T, U. Weiterhin wird die Verschlüsselung mit E bezeichnet. Die zwei Hash-Projektionsschlüssel werden jeweils mit R bzw. F und der kenntnisfreie Beweis mit P bezeichnet.
-
Der erste Peer speichert alle temporäre Variablen, die er zum Bestimmen der ausgehenden Nachricht verwendet hat, in seinem lokalen Speicher.
-
Der erste Peer kann eine Nachricht vom zweiten Peer erhalten, die angeblich dieselbe Form besitzt, die er an den zweiten Peer gesendet hat. Die empfangenen Elemente seien als S', T', U', E', R', F' und P' bezeichnet.
-
Der erste Peer geht wie folgt vor, um den geheimen Schlüssel zu bestimmen, wobei geprüft wird, dass der empfangene Beweis P' mit S', T', U' und der CRS konsistent ist. Wenn der Beweis gültig ist, wird der geheime Schlüssel ermittelt, indem ein Element aus der Gruppe G zufällig ausgewählt wird.
-
Wenn der Beweis tatsächlich gültig ist, kann der geheime Schlüssel als ein Produkt von drei Größen H1 und H2 und H3 ermittelt werden. Die Größe H1 ergibt sich als Produkt von R' hoch I und F' hoch m. Beachte, dass I, m und n durch den ersten Peer ausgewählt wurden, um die Hash-Projektionsschlüssel R und F zu ermitteln, und diese Werte im lokalen Speicher gespeichert wurden.
-
Die Größe H2 kann erhalten werden, indem zunächst eine Größe d wie folgt erhalten wird. Die Größe d kann erhalten werden, indem n durch einen Wert geteilt wird, der aus dem empfangenen Paar von Hash-Projektionsschlüsseln R' und F' ermittelt wird. Dieses Ermitteln kann auf dieselbe Weise erfolgen, wie dies beim Ermitteln des ausgehenden Nachrichtenelements E geschieht. Zum Beispiel kann d als n geteilt durch den SHA angewandt auf das Paar R' und F' ermittelt werden. Diese spezielle Division kann Modulo p sein, wobei p die Ordnung der Gruppe P ist.
-
Die Größe H2 kann erhalten werden, indem E' durch das Passwort geteilt und das Ergebnis mit d potenziert wird. Wie zuvor erfolgen alle Multiplikationen, Divisionen und Potenzierungen in der zyklischen Gruppe G.
-
Die Menge H3 kann als das Produkt von R' hoch x und F' hoch y erhalten werden. Beachte, dass x und y verwendet wurden, um S und T in der ausgehenden Nachricht zu erhalten, und x und y durch die Partei im lokalen Speicher gespeichert wurden.
-
Wie zuvor erwähnt, kann der geheime Schlüssel als das Produkt von H1, H2 und H3 in der zyklischen Gruppe G ermittelt werden.
-
Die Verfahrensweisen von Ausführungsformen der Erfindung können insbesondere zur Verwendung in einer elektronischen Einheit oder alternativen System geeignet sein. Dementsprechend können Ausführungsformen der vorliegenden Offenbarung in Form einer vollständigen Hardwareausführungsform oder in einer Ausführungsform ausgebildet werden, die Software- und Hardwareaspekte kombiniert, was hierin sämtlich allgemein als „Prozessor“ „Schaltung“, „Modul“ oder „System“ bezeichnet sein kann. Weiterhin können Ausführungsformen der vorliegenden Offenbarung in Form eines Computerprogrammprodukts ausgebildet werden, das in einem oder mehreren computerlesbaren Medien mit darauf gespeichertem computerlesbarem Programmcode enthalten sein kann.
-
Jede beliebige Kombination aus einem oder mehreren von Computern verwendbaren oder computerlesbaren Medien kann verwendet werden. Bei dem durch Computer verwendbaren oder computerlesbaren Medium kann es sich um ein computerlesbares Speichermedium handeln. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein System, eine Vorrichtung, eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer oder Infrarot oder Halbleiter verwendender Art sowie eine beliebige geeignete Kombination des zuvor Genannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium kann Folgendes gehören (nicht erschöpfende Liste): eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (random access memory (RAM)), ein Nur-Lese-Speicher (read-only memory (ROM)), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Nur-Lese-Compact-Disk-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des zuvor Genannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes gegenständliche Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen beinhalten oder speichern kann.
-
Computerprogrammcode zum Ausführen von Operationen für Ausführungsformen der vorliegenden Offenbarung kann in jeder Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf einem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, wie beispielsweise ein lokales Netzwerk (local area network (LAN)) oder ein Weitverkehrsnetzwerk (wide area network (WAN)) verbunden sein, oder es kann eine Verbindung mit einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden.
-
Ausführungsformen der vorliegenden Offenbarung sind vorstehend unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen realisiert werden kann.
-
Diese Computerprogrammanweisungen können in einem computerlesbaren Medium gespeichert sein, der einen Computer oder eine andere Datenverarbeitungsvorrichtung anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich eines Anweisungsmittels erzeugen, welches die im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen ausführt.
-
Die Computerprogrammanweisungen können in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung ausführen.
-
Zum Beispiel zeigt 9 ein Blockschaubild, das ein beispielhaftes System für einen einmaligen passwortgestützten Schlüsselaustausch darstellt, der sichere Datenübertragung ermöglicht. Das System 901 kann einen Prozessor 902, einen mit dem Prozessor (z.B. über einen Bus 904 oder ein alternatives Verbindungsmittel) verbundenen Speicher 903 sowie Eingabe/Ausgabe- (E/A-) Schaltungen 905 bis 906 enthalten, die in der Lage sind, eine Schnittstelle zum Prozessor 902 zu bilden. Der Prozessor 902 kann so eingerichtet sein, dass er eine oder mehrere in der vorliegenden Offenbarung beschriebene Verfahrensweisen durchführen kann, von denen veranschaulichende Ausführungsformen in den vorstehenden Figuren gezeigt und hierein beschrieben sind
-
Es ist ersichtlich, dass der hierin verwendete Begriff „Prozessor“ jede Verarbeitungseinheit einschließen soll wie zum Beispiel eine Verarbeitungseinheit, die eine Zentraleinheit (central processing unit (CPU)) und/oder andere Verarbeitungsschaltungen (z.B. einen digitalen Signalverarbeiter (digital signal processor (DSP)), Mikroprozessor usw.) enthält. Es versteht sich ebenfalls, dass sich der Begriff „Prozessor“ auf mehr als eine Verarbeitungseinheit beziehen kann und dass zahlreiche Elemente in Verbindung mit einer Verarbeitungseinheit auch mit anderen Verarbeitungseinheiten geteilt werden können. Der hierin verwendete Begriff „Speicher“ soll Speicher und andere computerlesbare Medien einschließen, die einem Prozessor oder einer CPU zugehörig sind, wie zum Beispiel Speicher mit wahlfreiem Zugriff (random access memory (RAM)), Nur-Lese-Speicher (read only memory (ROM)), fest eingebaute Speichermedien (z.B. ein Festplattenlaufwerk), Wechselspeichermedien (z.B. eine Diskette), Flash-Speicher usw. Des Weiteren soll der hierein verwendete Begriff „Eingabe/Ausgabe-Schaltung“ zum Beispiel eine oder mehrere Eingabeeinheiten (z.B. Tastatur, Maus usw.) zum Eingeben von Daten in den Prozessor und/oder eine oder mehrere Ausgabeeinheiten (z.B. Drucker, Bildschirm usw.) zur Darstellung der Ergebnissen in Verbindung mit dem Prozessor einschließen.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In dieser Hinsicht kann jeder Block im Ablaufplan oder den Blockschaubildern für ein Modul, ein Segment oder einen Codeabschnitt stehen, der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion(en) aufweist. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die im Block angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinanderfolgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Abbildung von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder der Abbildung von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.
-
Zwar werden veranschaulichende Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, es versteht sich jedoch, dass die Erfindung nicht auf genau diese Ausführungsformen beschränkt ist und dass durch den Fachmann vielfältige weitere Änderungen und Modifikationen daran vorgenommen werden können, ohne vom Umfang oder Geist der angehängten Ansprüche abzuweichen.