DE60001630T2 - Sichere gegenseitige Netzwerkauthenifizierung und Schlüselaustauschprotokoll - Google Patents
Sichere gegenseitige Netzwerkauthenifizierung und SchlüselaustauschprotokollInfo
- Publication number
- DE60001630T2 DE60001630T2 DE60001630T DE60001630T DE60001630T2 DE 60001630 T2 DE60001630 T2 DE 60001630T2 DE 60001630 T DE60001630 T DE 60001630T DE 60001630 T DE60001630 T DE 60001630T DE 60001630 T2 DE60001630 T2 DE 60001630T2
- Authority
- DE
- Germany
- Prior art keywords
- participant
- password
- identifier
- function
- shared secret
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 53
- 238000012795 verification Methods 0.000 claims description 37
- 238000004891 communication Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 description 46
- 238000004364 calculation method Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Description
- Die vorliegende Erfindung betrifft allgemein die Netzauthentisierung und den Schlüsselaustausch und insbesondere ein sicheres gegenseitiges Nur-Paßwort- Netzauthentisierungs- und Schlüsselaustauschprotokoll.
- Die Authentisierung über ein Netzwerk ist ein wichtiger Teil der Sicherheit für Systeme, die fernen Clients einen Zugriff auf Netzserver erlauben. Die Authentisierung wird im allgemeinen durch Verifizieren eines oder mehrerer der folgenden Elemente erreicht:
- etwas, das ein Benutzer kennt, z. B. ein Paßwort;
- etwas, das ein Benutzer ist, d. h. biometrische Informationen wie zum Beispiel ein Fingerabdruck; und
- etwas, das ein Benutzer hat, d. h. ein bestimmtes Identifikations-Token, wie zum Beispiel eine Chipkarte.
- Zum Beispiel verifiziert ein Geldautomat (ATM) zwei davon: etwas, das ein Benutzer hat (die ATM-Karte), und etwas, das ein Benutzer kennt eine persönliche Geheimnummer (PIN). Die ATM-Authentisierung ist wesentlich einfacher als die Authentisierung über ein Datennetz, da der ATM selbst als vertrauenswürdige Hardware angesehen wird, so daß ihm vertraut wird, die Anwesenheit der ATM-Karte zu verifizieren und die korrekten Informationen sicher zu einem zentralen Transaktionsserver zu transferieren.
- Zusätzlich zu der Authentisierung ist der Schlüsselaustausch ein wichtiger Teil der Kommunikation über ein Datennetz. Nachdem ein Client und Server authentisiert wurden, muß zwischen ihnen ein sicherer Kommunikationskanal aufgebaut werden. Man erreicht dies im allgemeinen dadurch, daß der Client und Server einen als Sitzungsschlüssel bezeichneten Schlüssel zur Verwendung während der Kommunikation nach der Authentisierung austauschen.
- Die Authentisierung über ein Datennetz, insbesondere ein öffentliches Datennetz wie das Internet, ist schwierig, da die Kommunikation zwischen dem Client und dem Server gegenüber vielen verschiedenen Arten von Attacken anfällig ist. Zum Beispiel kann bei einer Lauschattacke ein Widersacher durch Abfangen der Kommunikation zwischen dem Client und dem Server geheime Informationen erfahren. Wenn der Widersacher Paßwortinformationen erfährt, kann der Widersacher diese Informationen dem Server zurückspielen, um sich bei einer sogenannten Zurückspielattacke bei dem Server als der rechtmäßige Client auszugeben. Zurückspielattacken sind sogar dann effektiv, wenn das von dem Client gesendete Paßwort verschlüsselt ist, da der Widersacher das tatsächliche Paßwort nicht kennen muß, sondern stattdessen dem Server etwas geben muß, das der Server von dem rechtmäßigen Client erwartet (in diesem Fall ein verschlüsseltes Paßwort). Eine andere Art von Attacke ist eine Parodieattacke, bei der sich ein Widersacher für den Server ausgibt, so daß der Client annimmt, daß er mit dem rechtmäßigen Server kommuniziert, stattdessen aber tatsächlich mit dem Widersacher kommuniziert. Bei einer solchen Attacke kann der Client dem Widersacher heikle Informationen geben.
- Außerdem gibt es bei jedem paßwortgestützten Authentisierungsprotokoll die Möglichkeit, daß Paßwörter schwach sind, so daß sie anfällig für Wörterbuchattacken sind. Eine Wörterbuchattacke ist eine Brute- Force-Attacke auf ein Paßwort, die durch Prüfen einer großen Anzahl möglicher Paßwörter (z. B. aller Wörter in einem englischen Wörterbuch) gegenüber bestimmten bekannten Informationen über das gewünschte Paßwort durchgeführt wird. Die bekannten Informationen können öffentlich verfügbar sein oder sie können vom Widersacher durch eine der oben beschriebenen Techniken erhalten werden. Wörterbuchattacken sind häufig effektiv, da Benutzer oft Paßwörter benutzen, die man sich leicht merken und leicht raten kann.
- Es gibt verschiedene bekannte Techniken für die Netzauthentisierung. Diese bekannten Techniken werden in zwei Klassifizierungen aufgeteilt. Die erste Klassifizierung enthält die Techniken, die anhaltend gespeicherte Daten auf dem Client-System erfordern. Die zweite Klassifizierung enthält die Techniken, die keine anhaltend gespeicherten Daten auf dem Client-System erfordern.
- In bezug auf die erste Klassifizierung können anhaltend gespeicherte Daten entweder geheime Daten enthalten (z. B. mit dem Authentisierungsserver geteilte Geheimschlüssel), die niemals enthüllt werden dürfen, oder nicht geheime, aber heikle Daten (z. B. den öffentlichen Schlüssel des Authentisierungsservers), die fälschungssicher sein müssen. Bei jedem Typ anhaltender Daten sind zusätzliche Sicherheitsanforderungen notwendig, um die Daten vor Attacken von einem Widersacher zu schützen. Bei Verwendung eines Authentisierungsprotokolls, das sowohl Paßwörter als auch anhaltend gespeicherte Daten verwendet, kann weiterhin eine Kompromittierung von einem zu einer Schwäche des anderen führen. Zum Beispiel kann eine Kompromittierung eines Geheimschlüssels zu einer möglichen Wörterbuchattacke auf das Paßwort führen. Ein anderes Problem bei dieser ersten Klasse von Protokollen besteht darin, daß anhaltend gespeicherte Daten die Erzeugung und Verteilung von Schlüsseln erfordern, was umständlich sein kann und im allgemeinen zu einem weniger flexiblen System führt.
- Die zweite Klassifizierung wird als Nur-Paßwort- Authentisierungsprotokolle bezeichnet, da keine Anforderung anhaltend gespeicherter Daten beim Client besteht. Der Client muß nur in der Lage sein, ein rechtmäßiges Paßwort anzugeben. Das Konzept der Bereitstellung einer starken Sicherheit und Authentisierung unter Verwendung potentiell schwächer Paßwörter scheint ein Widerspruch zu sein. Es gibt jedoch mehrere Nur- Paßwort-Benutzerauthentisierungs- und Schlüsselaustauschprotokolle, die sicher entworfen sind. Eine Beschreibung dieser Protokolle findet sich in D. Jablon, Strong Password-Only Authenticated Key Exchange, ACM Computer Communication Review, ACM SIGCOMM, 26(5): 5-20, 1996. Zu diesen Nur-Paßwort- Protokollen gehören insbesondere Encrypted Key Exchange (EKE), beschrieben in S. M. Bellovin und M. Merritt, Encrypted Key Exchange: Password-Based Protocols Secure Against Dictionary Attacks, Proceedings of the IEEE Symposium on Research in Security and Privacy, Seiten 72-84, 1992; Augmented-EKE (A-EKE), S. M. Bellovin und M. Merritt, Augmented Encrypted Key Exchange: A Password-Based Protocol Secure Against Dictionary Attacks and Password File Compromise, Proceedings of the First Annual Conference on Computer and Communications Security, 1993, Seiten 244-250; Modified EKE (M-EKE), M. Steiner, G. Tsudik und M. Waidner, Refinement and Extension of Encrypted Key Exchange, ACM Operating System Review, 29: 22-30, 1995; Simple Password EKE (SPEKE) und Diffie-Hellman EKE (DH-EKE), beide beschrieben in D. Jablon, Strong Password-Only Authenticated Key Exchange, ACM Computer Communication Review, ACM SIGCOMM, 26(5): 5-20, 1996; Secure Remote Password Protocol (SRP), T. Wu, The Secure Remote Password Protocol, Proceedings of the 1998 Internet Society Network and Distributed System Security Symposium, Seiten 97-111, 1998; und Open Key Exchange (OKE), Stefan Lucks, Open Key Exchange: How to Defeat Dictionary Attacks Without Encrypting Public Keys, Security Protocol Workshop, Ecole Normale Superieure, 7.-9.4.1997.
- Das Problem bei diesen bekannten Nur-Paßwort- Authentisierungsprotokollen ist, daß nicht erwiesen wurde, daß sie sicher sind. Tatsächlich kann das EKE- Protokoll gegenüber bestimmten zahlentheoretischen Attacken anfällig sein, wie in S. Patel, Number Theoretic Attacks an Secure Password Schemes, Proceedings of the IEEE Symposium on Research in Security and Privacy, Seiten 236-247, 1997, beschrieben wird. Im Hinblick auf die Bedeutung der Netzsicherheit wird ein Nur-Paßwort-Protokoll zur gegenseitigen Authentisierung benötigt, das nachweisbar sicher ist.
- EP-A-0 977 396 beschreibt ein Verfahren zur Festlegung eines Schlüssels unter Verwendung von Funkkommunikation und ein Paßwortprotokoll. Gemäß dem beschriebenen Protokoll tauschen die kommunizierenden Teilnehmer Berechnungsergebnisse aus, die jeweils eine Exponentialfunktion enthalten, um einen Schlüssel zu erzeugen. Wenn die zuvor von einem Teilnehmer gesendeten Authorisierungsinformationen für den anderen Teilnehmer akzeptabel sind, dann verwendet dieser andere Teilnehmer den gemäß dem Protokoll festgelegten Schlüssel. Bei der Erzeugung der Berechnungsergebnisse addiert jeder Teilnehmer das Paßwort zu seiner jeweiligen Exponentialfunktion.
- Aus EP-A-1 069 726 (veröffentlicht nach dem oben beanspruchten Prioritätsdatum der vorliegenden Anmeldung) ist ein sicheres Nur-Paßwort-Protokoll zur gegenseitigen Netzauthentisierung unter Verwendung eines Verschlüsselungsschemas mit öffentlichem Schlüssel bekannt. Dieses Protokoll hat sich so sicher wie das zugrundeliegende Verschlüsselungsschema mit öffentlichem Schlüssel erwiesen.
- Erfindungsgemäße Verfahren werden in den unabhängigen Ansprüchen dargelegt. Bevorzugte Formen werden in den abhängigen Ansprüchen dargelegt.
- Die vorliegende Erfindung liefert ein sicheres Nur- Paßwort-Protokoll zur gegenseitigen Netzauthentisierung, das nachweisbar sicher ist. Gemäß dem erfindungsgemäßen Protokoll erzeugen zwei Teilnehmer ein gemeinsames Geheimnis unter Verwendung eines Schlüsselaustauschs des Diffie-Hellman-Typs. Wie später ausführlicher beschrieben werden wird, existiert gemäß einem Schlüsselaustausch des Diffie-Hellman-Typs ein Gruppengenerator g für die bestimmte sogenannte Gruppe, ein einem Teilnehmer bekannter Index x, ein dem anderen Teilnehmer bekannter Index y und das gemeinsame Geheimnis gxy. Ein Teilnehmer erzeugt gx, der andere Teilnehmer gy und die Teilnehmer tauschen diese Werte aus, so daß jeder Teilnehmer nun das gemeinsame Geheimnis gxy erzeugen kann. Während Diffie-Hellman ein Schlüsselaustauschprotokoll definiert, hat das Protokoll keine Authentisierungsaspekte.
- Gemäß der vorliegenden Erfindung wird ein Protokoll bereitgestellt, das ein gemeinsames Geheimnis des Diffie-Hellman-Typs verwendet, das jedoch so modifiziert ist, daß die beiden Teilnehmer sich gegenseitig unter Verwendung eines gemeinsam benutzten Paßworts authentisieren können. Weiterhin und insbesondere haben die Verfasser bewiesen, daß dieses Protokoll sicher ist. Gemäß der Erfindung erzeugt ein Teilnehmer den Diffie-Hellman-Wert gx und kombiniert ihn mit einer Funktion mindestens des Paßworts unter Verwendung der sogenannten Gruppenoperation und sendet den resultierenden Wert zu dem anderen Teilnehmer. Die Gruppenoperation ist für die bestimmte verwendete Gruppe definiert und wird später ausführlicher beschrieben. Vorläufig reicht es aus, zu erkennen, daß jede Gruppe eine Gruppenoperation und eine entsprechende inverse Gruppenoperation aufweist. Nach dem Empfang des Werts führt der andere Teilnehmer die inverse Gruppenoperation an dem empfangenen Wert und der Funktion mindestens des Paßworts aus, um gx zu extrahieren, so daß der andere Teilnehmer dann unter Verwendung seiner Kenntnis von y das gemeinsame Geheimnis gxy erzeugen kann. Die Verwendung der Gruppenoperation und der inversen Gruppenoperation in Verbindung mit einem Schlüsselaustauschprotokoll des Diffie-Hellman-Typs, so wie sie hier beschrieben wird, liefert Vorteile gegenüber den Nur-Paßwort-Protokollen zur gegenseitigen Netzauthentisierung des Stands der Technik. Vielleicht am wichtigsten ist, daß sie ein Protokoll bereitstellt, von dem nachgewiesen werden kann, daß es gegenüber Attacken durch Widersacher, die Zugang zu dem Kommunikationskanal haben, sicher ist. Wie oben beschrieben, wird der Diffie-Hellman-Wert gx mit einer Funktion mindestens des Paßworts kombiniert. Der Ausdruck "mindestens" wird verwendet, weil bei verschiedenen Ausführungsformen gx mit einer Funktion nur des Paßworts oder einer Funktion des Paßworts zusammen mit Kennungen der Teilnehmer für das Protokoll kombiniert werden kann, um sicherzustellen, daß das Paßwort für ein beliebiges bestimmtes Paar von Teilnehmern einzigartig ist.
- Gemäß einer Ausführungsform der Erfindung können sich die Teilnehmer gegenseitig authentisieren, indem sie eine Funktion mindestens bestimmter Parameter berechnen, den berechneten Wert zu dem anderen Teilnehmer senden, und indem dann jeder Teilnehmer den empfangenen Wert mit seinem eigenen berechneten Wert vergleicht. Die für die Berechnung verwendeten Parameter können eine Teilnehmerkennung, der Diffie- Hellman-Wert (gx oder gy), das gemeinsame Geheimnis oder das gemeinsame Paßwort oder Kombinationen davon sein. Durch Berechnen einer Funktion mindestens eines dieser Werte können die Teilnehmer authentisieren, daß der andere Teilnehmer das gemeinsame Paßwort besitzt.
- Gemäß einer anderen Ausführungsform der Erfindung authentisieren sich die Teilnehmer gegenseitig nicht explizit, sondern die Teilnehmer authentisieren sich stattdessen implizit, indem jeder den gemeinsamen Geheimschlüssel erzeugt und diesen erzeugten gemeinsamen Geheimschlüssel als Sitzungsschlüssel für die Kommunikation verwendet. Wenn einer der Teilnehmer nicht das korrekte Paßwort besitzt, dann wäre dieser Teilnehmer nicht in der Lage, den korrekten Geheimsitzungsschlüssel zu erzeugen, und die Kommunikation zwischen den Teilnehmern wäre nicht möglich. Gemäß dieser Ausführungsform verwenden beide Teilnehmer die oben beschriebene Technik des Kombinierens ihrer Diffie-Hellman-Werte mit einer Funktion mindestens des Paßworts unter Verwendung der Gruppenoperation und Sendens des resultierenden Werts zu dem anderen Teilnehmer. Nach dem Empfang des Werts von dem anderen Teilnehmer extrahiert jeder Teilnehmer den Diffie- Hellman-Wert des anderen Teilnehmers unter Verwendung der inversen Gruppenoperation und berechnet dann den gemeinsamen Geheimschlüssel.
- Die beiden Teilnehmer an dem Kommunikationsprotokoll sind in den meisten Fällen ein Client-Computer und ein Server-Computer. Bei den oben beschriebenen Ausführungsformen speichern sowohl der Client als auch der Server das gemeinsame Paßwort. Als Schutz vor einer Sicherheitskompromittierung im Server besitzt bei anderen Ausführungsformen der Erfindung der Server nicht das Paßwort, sondern erhält und speichert stattdessen eine sogenannte Paßwortverifizierung, die, wie später ausführlicher beschrieben wird, eine Funktion des Paßworts ist. Das Paßwort selbst kann aus der Kenntnis der Paßwortverifizierung nicht bestimmt werden. Die Protokolle gemäß diesen Ausführungsformen der Erfindung sind den oben beschriebenen Ausführungsformen ähnlich, außer daß anstelle des tatsächlichen Paßworts im allgemeinen die Paßwortverifizierung verwendet wird. Da der Server das tatsächliche Paßwort nicht kennt, müssen die beiden Teilnehmer jedoch verschiedene Techniken verwenden, damit jeder Teilnehmer sicher authentisieren kann, daß der andere Teilnehmer tatsächlich die korrekte Paßwortverifizierung oder das tatsächliche Paßwort besitzt. Bei einer Ausführungsform authentisieren sich die Teilnehmer gegenseitig durch Verwendung einer auf der El-Gamal- Verschlüsselungstechnik basierenden Verschlüsselung.
- Diese und andere Vorteile der Erfindung werden Durchschnittsfachleuten bei Durchsicht der folgenden ausführlichen Beschreibung und der beigefügten Zeichnungen ersichtlich.
- Fig. 1 zeigt das Diffie-Hellman-Schlüsselaustauschprotokoll im Stand der Technik;
- Fig. 2 zeigt ein Kommunikationsprotokoll gemäß einer Ausführungsform der Erfindung mit expliziter Authentisierung, bei der beide Teilnehmer ein gemeinsames Paßwort besitzen;
- Fig. 3 zeigt ein Kommunikationsprotokoll gemäß einer Ausführungsform der Erfindung mit impliziter Authentisierung, bei der beide Teilnehmer ein gemeinsames Paßwort besitzen;
- Fig. 4 zeigt ein Kommunikationsprotokoll gemäß einer Ausführungsform der Erfindung mit expliziter Authentisierung, bei der ein Teilnehmer ein Paßwort und der andere Teilnehmer eine Paßwortverifizierung besitzt; und
- Fig. 5 zeigt ein Kommunikationsprotokoll gemäß einer anderen Ausführungsform der Erfindung mit expliziter Authentisierung, bei der ein Teilnehmer ein Paßwort besitzt und der andere Teilnehmer eine Paßwortverifizierung besitzt.
- Die Kryptographie ist eine wohlbekannte Technik zur Bereitstellung einer sicheren Kommunikation zwischen zwei Teilnehmern. Vor der Beschreibung der verschiedenen Ausführungsformen der vorliegenden Erfindung werden bestimmte Hintergrundinformationen und die grundlegende Terminologie angegeben.
- Leger ausgedrückt ist eine Funktion f von einer Menge S zu einer Menge T eine Einbahnfunktion, wenn f(x) für alle x in S leicht zu berechnen ist, es aber für die meisten y in T rechnerisch nicht gangbar ist, irgendwelche x in S zu finden, wofür f(x) = y gilt. Ein Beispiel für eine Einbahnfunktion ist das modulare Exponentiieren, Es sei p eine große Primzahl und g ein Generator der multiplikativen Gruppe mod p (das heißt der Zahlen in dem Umfang 1, ..., p-1). Dann wird im allgemeinen angenommen, daß f(x) = gx mod p eine Einbahnfunktion ist. Die inverse Funktion, die als diskrete log-Funktion bezeichnet wird, ist schwierig zu berechnen. Außerdem gibt es andere Gruppen, in denen die diskrete log-Funktion schwierig zu berechnen ist, wie zum Beispiel bestimmte Gruppen elliptischer Kurven.
- Es seien k und l Sicherheitsparameter, wobei k der Hauptsicherheitsparameter ist und als ein allgemeiner Sicherheitsparameter für Hash-Funktionen und Geheimschlüssel angesehen werden kann, und wobei l > k als ein Sicherheitsparameter für auf diskretem log basierende öffentliche Schlüssel angesehen werden kann. Es sei {0,1}* die Menge endlicher binärer Ketten und {0,1}n die Menge binärer Ketten der Längen. Eine reelwertige Funktion ε(n) ist vernachlässigbar, wenn es für jedes C > 0 nc > 0 gibt, so daß für alle n > nc ε(n) < 1/nc ist. Es sei q der Größe mindestens k und p der Größe l Primzahlen mit p = rq + 1 für einen bestimmten Wert r koprim zu q. Es sei g ein Generator einer Untergruppe von Z*p der Größe q. Diese Untergruppe heiße Gp,q.
- Ein als Diffie-Hellman-Schlüsselaustausch bezeichnetes Schlüsselaustauschprotokoll, das in W. Diffie und M. Hellman, New Directions in Cryptography, IEEE Transactions on Information Theory, Band 22, Nr. 6, 644-654, 1976, beschrieben wird, basiert auf der modularen Exponentiierungsfunktion. Genauer gesagt vereinbaren zwei Teilnehmer A und B einen Geheimschlüssel gemäß einem in Verbindung mit Fig. 1 beschriebenen Protokoll. Im Schritt 102 wählt A ein zufälliges x aus der Gruppe Zq, mit Zg = {0,1, ..., q-1} (oder einfach die ganzen Zahlen mod q). Im Schritt 104 berechnet A X = gx mod p. Im Schritt 106 sendet A X zu B. Im Schritt 108 wählt B ein zufälliges y aus Zq. Im Schritt 110 berechnet B Y = gy mod p und sendet Y zu A in 112. An diesem Punkt kann sowohl von A als auch von B ein gemeinsames Geheimnis gxy (d. h. ein Geheimschlüssel) berechnet werden. (Man beachte, daß im folgenden der Einfachheit halber die Notation mod p ignoriert wird, wenn klar ist, daß man in mod p arbeitet.) Da im Schritt 106 X = gx von A zu B gesendet wurde, kann B durch Berechnen von Xy im Schritt 116 das gemeinsame Geheimnis gxy berechnen. Da Y = gy im Schritt 112 von B zu A gesendet wurde, kann ähnlich A durch Berechnen von Yx im Schritt 114 das gemeinsame Geheimnis gxy berechnen. Das gemeinsame Geheimnis S kann nun von A und B als Sitzungsschlüssel zur sicheren Kommunikation verwendet werden.
- Der Diffie-Hellman-Schlüsselaustausch kann auch über anderen Gruppen durchgeführt werden, in denen die diskrete log-Funktion schwierig zu berechnen ist, wie zum Beispiel bestimmten Gruppen elliptischer Kurven. Gruppen sind in der Technik wohlbekannt, wie in I. N. Herstein, Topics in Algebra, 2. Auflage, John Wiley & Sons, New York, 1975, beschrieben wird, wie folgt. Eine nicht leere Menge von Elementen G wird als eine Gruppe bildend bezeichnet, wenn in G eine binäre Operation definiert ist, die Produkt genannt und mit bezeichnet wird, so daß
- 1. aus a,b G folgt, daß a.b G (abgeschlossen).
- 2. aus a,b,c G folgt, daß a.(b.c) = (a.b).c (Assoziativgesetz).
- 3. es ein Element e G gibt, so daß a.e = e.a = a für alle a G (Existenz eines Identitätselements in G)
- 4. es für jedes a G ein Element a&supmin;¹ G gibt, so daß a.a&supmin;¹ = a&supmin;¹.a = e (die Existenz von Inversen von G).
- Allgemeiner operiert der Diffie-Hellman-Schlüsselaustausch also in einer spezifischen Gruppe, in der die Geheimschlüssel x und y Indizes zu Elementen der Gruppe sind. Man betrachte also eine Gruppe G mit einem Gruppengenerator g G und G = {g,g.g,g.g.g,g.g.g.g, ...}, wobei . die Gruppenoperation ist. Wenn zum Beispiel die Gruppenoperation . für G Multiplikation ist, dann ist G = {g¹,g²,g³,g&sup4;, ...}. Wenn die Gruppenoperation . für G Addition ist, dann ist G = {1g,2g,3g,4g, ...}. Da die vorliegende Erfindung unter Verwendung verschiedener Gruppen implementiert werden kann, die im folgenden und in den Ansprüchen verwendet werden, bedeutet die Notation gx, daß die Gruppenoperation x-mal an dem Gruppengenerator g angewandt ,wird. Für jede Gruppe gibt es außerdem eine inverse Gruppenoperation, die hier als dargestellt wird. Im folgenden und in den Ansprüchen wird die inverse Gruppenoperation folgendermaßen definiert. Die inverse Gruppenoperation an x und y, d. h. x/y, wird definiert als x.y&supmin;¹.
- Ein Protokoll zur gegenseitigen Authentisierung und zum Schlüsselaustausch gemäß einer ersten Ausführungsform der Erfindung ist in Fig. 2 gezeigt. Auf der linken Seite der Figur gezeigte Schritte werden von einem ersten Teilnehmer A durchgeführt, und auf der rechten Seite der Figur gezeigte Schritte von einem zweiten Teilnehmer B. In der Regel ist A eine Client-Maschine und B eine Server-Maschine. Dies ist jedoch nicht notwendig, und A und B werden jeweils nur als Beispiel als Client und Server bezeichnet, um den typischen Fall zu zeigen, obwohl sich versteht, daß die Erfindung nicht auf den Fall beschränkt ist, daß A und B Client und Server sind, sondern stattdessen die Erfindung auf zwei beliebige Teilnehmer A und B anwendbar ist. Pfeile stellen eine Kommunikation zwischen den Teilnehmern dar. Gemäß dem Protokoll authentisiert sich der Server bei dem Client und der Client beim Server. Nachdem sich beide Seiten authentisiert haben, erzeugt jede einen geheimen Sitzungsschlüssel, der für die nachfolgende sichere Kommunikation verwendet werden kann.
- Vor der Einleitung des Protokolls wird angenommen, daß der Client und der Server ein Paßwort π besitzen, das der Client zur Authentisierung beim Server verwendet.
- Es wird angemerkt, daß das folgende Protokoll sowohl den Server als auch den Client authentisiert. Es wird also nicht angenommen, daß der Server oder der Client authentisch sind, und somit können entweder der Server oder auch der Client ein Widersacher sein. Der Client kann ein Widersacher sein, der versucht, sich selbst zu authentisieren und Zugang zu dem Server zu erhalten. Der Server kann ein Widersacher sein, der versucht, einen anderen authentischen Server zu parodieren, um zu versuchen, heikle Informationen von einem nichtsahnenden Client zu erhalten.
- Wie für Fachleute ohne weiteres erkennbar ist, können der - Server und der Client als programmierte Computer implementiert werden, die unter der Steuerung von Computerprogrammcode wirken. Der Computerprogrammcode würde in einem computerlesbaren Medium (z. B. einem Speicher) gespeichert, und der Code würde durch einen Prozessor des Computers ausgeführt. Anhand der vorliegenden Offenlegung der Erfindung könnten Fachleute ohne weiteres geeigneten Computerprogrammcode erstellen, um die hier beschriebenen Protokolle zu implementieren.
- Der Client und der Server kommunizieren über ein Datennetz miteinander. Solche vernetzten programmierten Computer sind in der Technik wohlbekannt und werden hier im einzelnen nicht weiter beschrieben.
- Wieder mit Bezug auf Fig. 2 wählt im Schritt 202 der Client einen Zufallswert für den Index x aus Zq. Im Schritt 204 berechnet der Client dann einen Parameter m als m = gx.(H&sub1;(A,B,π))r mod p, wobei A die eindeutige Kennung des Clients, B eine eindeutige Kennung des Servers, π das Paßwort des Client für diesen bestimmten Server und H&sub1; eine Zufalls-Hash-Funkaion ist und . die Gruppenoperation darstellt. H&sub1;(A,B,π) wird zur r-ten Potenz erhoben, um sicherzustellen, daß das Ergebnis innerhalb von G{p,q} liegt. Leger ausgedrückt wird eine Funktion H von einer Menge S zu einer Menge T als eine Zufalls-Hash-Funktion bezeichnet, wenn die Ausgabe von H zufällig aussieht oder zumindest unvorhersehbar ist, bis die Funktion mit einer Eingabe x in S berechnet wird. Da H&sub1; etwas ausgeben muß, das in Z*p, zufällig aussieht, sollte es p + sec Bit ausgeben (wobei p die Anzahl von Bit von p und sec der Sicherheitsparameter ist. Der Sicherheitsparameter kann zum Beispiel 160 sein. Bekannte Funktionen, die sich allgemein auf diese Weise verhalten, sind SHA-1, beschrieben in FIPS 180-1, Secure Hash Standard, Federal Information Processing Standards Publication 180-1, 1995; und RIPEMD-160, beschrieben in H. Dobbertin, A. Bosselaers, B. Preneel, RIPEMD-160: a strengthened version of RIPEMD, In Fast Software Encryption, 3rd Intl. Workshop, 71-82, 1996.
- Es wird das Tupel (A,B,π) anstelle nur des Paßworts verwendet, um sicherzustellen, daß es für jedes Client- Server-Paar einzigartig ist. Es scheint nur das Paßwort alleine für eine heuristische Sicherheit erforderlich zu sein, wie nachfolgend ausführlicher besprochen wird, scheinen aber die Namen des Clients und des Servers für einen formalen Beweis der Sicherheit notwendig zu sein. Gemäß einem Aspekt der Erfindung wird eine Funktion mindestens des Paßworts also mit dem Diffie-Hellman- Wert gx kombiniert, indem die Gruppenoperation an der Funktion mindestens des Paßworts und dem Diffie- Hellman-Wert gx durchgeführt wird. Dies ist ein wichtiger Schritt des Protokolls, da er sicherstellt, daß der Diffie-Hellman-Wert gx nur von einer Person, die Kenntnis von dem Paßwort hat, aus dem Parameter m extrahiert werden kann. Diese Extraktion des Diffie- Hellman-Werts gx wird nachfolgend ausführlicher in Verbindung mit Schritt 214 beschrieben. Im Schritt 206 sendet der Client den Parameter m zum Server.
- Nach dem Empfang des Parameters m prüft der Server im Schritt 208 den Parameterwert, um sicherzustellen, daß der Wert nicht Omod p ist. Wenn der Wert Omod p ist, beendet der Server das Protokoll, da 0 nicht in Z*p liegt. Andernfalls wählt der Server im Schritt 210 einen Zufallswert für den Index y aus Zq. Im Schritt 212 weist der Server dem Diffie-Hellman-Wert gy einen Parameter u zu. Als nächstes berechnet der Server im Schritt 214 das gemeinsame Diffie-Hellman-Geheimnis gxy (das in diesem Protokoll als σ bezeichnet wird) unter Verwendung des empfangenen Parameters m wie folgt:
- Dieser Schritt wird nun ausführlicher beschrieben (wobei die Notation mod p der Einfachheit halber ausgelassen wird). Erstens erinnere man sich, daß es, wie oben beschrieben, für jede Gruppenoperation eine inverse Gruppenoperation gibt, so daß die inverse Gruppenoperation an x und y, d.h. x/y, als x.y&supmin;¹ definiert ist. Für Fachleute ist also erkennbar, daß die Berechnung von
- im Schritt 214 die inverse Gruppenoperation an m und der Funktion mindestens des Paßworts durchführt. Durch Einsetzen des Werts von m aus Schritt 204 erhält man
- Wenn der Server das korrekte Paßwort π besitzt, kann der Server also den Diffie-Hellman-Wert gx aus dem Wert des empfangenen Parameters m extrahieren. Die Berechnung im Schritt 214 führt also dazu, daß der Server das gemeinsame Diffie-Hellman-Geheimnis gxy erzeugt.
- Als nächstes berechnet der Server im Schritt 216 k = H2a(A,B,m,u,σ,π), wobei H2a eine weitere Zufalls-Hash- Funktion ist, die sec Bit ausgeben muß, wobei sec der Sicherheitsparameter ist. Der Parameter k wird von dem Client A wie nachfolgend beschrieben benutzt, um zu authentisieren, daß der Server das korrekte Paßwort besitzt. Im Schritt 218 sendet der Server die Parameter u und k zum Client.
- Nach dem Empfang der Parameter u und k berechnet der Client σ = ux mod p im Schritt 220. Wegen u = gy ist ux = gxy, das das gemeinsame Diffie-Hellman-Geheimnis ist. Im Schritt 222 berechnet der Client H2a (A,B,m,u,σ,π) unter Verwendung seiner Kenntnis von n und prüft, ob das Ergebnis gleich dem Parameter k ist, der aus dem Server empfangen wird (Schritt 218). Wenn sie übereinstimmen, hat der Client den Server authentisiert. Wenn sie nicht übereinstimmen, beendet der Client das Protokoll, da sich der Server nicht authentisiert hat. Im Schritt 224 berechnet der Client k = H2b(A,B,m,u,σ,π), das von dem Server wie nachfolgend beschrieben zur Authentisierung des Clients verwendet wird. Im Schritt 226 erzeugt der Client den Sitzungsschlüssel K als K = H&sub3;(A,B,m,u,σ,π). Im Schritt 228 sendet der Client k' zum Server. Wiederum sind H2b und H&sub3; Zufalls-Hash- Funktionen, die sec Bit ausgeben müssen, wobei sec der Sicherheitsparameter ist.
- Im Schritt 230 berechnet der Server H2b (A,B,m,u,σ,π) unter Verwendung seiner eigenen Kenntnis von π und prüft, ob das Ergebnis gleich dem Parameter k' ist, der aus dem Client empfangen wird (Schritt 228). Wenn sie übereinstimmen, hat der Server den Client authentisiert. Wenn sie nicht übereinstimmen, beendet der Server das Protokoll, da sich der Client nicht authentisiert hat. Im Schritt 232 erzeugt der Server den Sitzungsschlüssel K als K = H&sub3;(A,B,m,u,σ,π).
- An diesem Punkt haben sich sowohl der Client als auch der Server einander authentisiert und sowohl der Client als auch der Server haben denselben sicheren Sitzungsschlüssel K erzeugt, der zur nachfolgenden sicheren Kommunikation zwischen dem Client und dem Server verwendet werden kann.
- Es wird nun eine zweite Ausführungsform der Erfindung in Verbindung mit Fig. 3 beschrieben. Bei dieser Ausführungsform ist die Authentisierung zwischen den Teilnehmern implizit, d. h. beide Teilnehmer unternehmen keine Schritte, um sich dem anderen Teilnehmer explizit zu authentisieren. Stattdessen versucht jeder Teilnehmer, den Sitzungsschlüssel zu erzeugen, wenn einer der Teilnehmer jedoch nicht das entsprechende Paßwort besitzt, dann ist dieser Teilnehmer nicht in der Lage, den korrekten Sitzungsschlüssel zu erzeugen, und die Kommunikation zwischen den Teilnehmern ist nicht möglich. Nunmehr mit Bezug auf Fig. 3 entsprechen die Schritte 302 bis 310 den Schritten 202 bis 210 von Fig. 2. Im Schritt 312 berechnet der Server den Parameter u als p = gy, (H&sub2;(A,B,π))r mod p, ähnlich dem Schritt 204, der oben in Verbindung mit Fig. 2 beschrieben wurde. Wie oben in Verbindung mit Schritt 204 beschrieben wurde, führt der Schritt 312 effektiv zu einer Kombination einer Funktion mindestens des Paßworts mit dem Diffie- Hellman-Wert gy durch Durchführen der Gruppenoperation an der Funktion mindestens des Paßworts und dem Diffie- Hellman-Wert gy.
- Als nächstes extrahiert der Server im Schritt 314 den Diffie-Hellman-Wert gx und berechnet das gemeinsame Diffie-Hellman-Geheimnis gxy, wie oben in Verbindung mit Schritt 214 beschrieben. Im Schritt. 316 berechnet der Server den Sitzungsschlüssel K als K = H&sub3;(A,B,m,u,σ,π). Im Schritt 318 sendet der Server den im Schritt 312 erzeugten Parameter u zum Client.
- Nach dem Empfang des Parameters u prüft der Client im Schritt 320 den Wert des Parameters u, um sicherzustellen, daß der Wert nicht Omod p ist. Wenn der Wert Omod p ist, beendet der Client das Protokoll. Andernfalls extrahiert der Client im Schritt 322 unter Verwendung des Werts von u den Diffie-Hellman-Wert gy und berechnet das gemeinsame Diffie-Hellman-Geheimnis gxy, wie oben beschrieben. Im Schritt 324 berechnet der Client den Sitzungsschlüssel K als K = H&sub3;(A,B,m,u,σ,π).
- An diesem Punkt haben sowohl der Client als auch der Server den Sitzungsschlüssel K auf der Grundlage ihrer Kenntnis des Paßworts erzeugt. Wenn sowohl der Client als auch der Server das korrekte Paßwort besäßen, dann erzeugen beide denselben Sitzungsschlüssel K, der zur sicheren Kommunikation verwendet werden kann. Wenn jedoch einer der Teilnehmer das korrekte Paßwort nicht besaß, dann hat dieser Teilnehmer nicht den korrekten Sitzungsschlüssel erzeugt und die Kommunikation zwischen den Teilnehmern ist nicht möglich.
- Die in Verbindung mit Fig. 2 und 3 beschriebenen Protokolle nahmen an, daß der Server das Paßwort π besaß und speicherte. Ein potentielles Problem bei solchen Protokollen besteht darin, daß es durch eine Sicherheitskompromittierung der Serverspeicherung einem Widersacher möglich werden kann, die. Paßwörter von Clients zu erhalten. Zum Schutz vor einem solchen Ereignis soll nun eine andere Ausführungsform der Erfindung beschrieben werden, bei der der Server nicht das Paßwort π besitzt, sondern stattdessen eine sogenannte Paßwortverifizierung V speichert. Eine Paßwortverifizierung ist hierbei ein Wert, der als Funktion des Paßworts berechnet werden kann, wobei das Paßwort aber aus der Kenntnis der Paßwortverifizierung nicht bestimmt werden kann. Bei den hier beschriebenen Ausführungsformen ist die Paßwortverifizierung V eine Funktion des Paßworts π mit V = gν und ν = H&sub0;(A,B,π) für einen bestimmten Client A und Server B, wobei H&sub0; eine Zufalls-Hash-Funktion ist, die q + sec Bit ausgeben muß. Da der Client πw kennt, kann der Client ν = H&sub0;(A,B,π) und dann aus ν die Verifizierung V = gν berechnen. Der Server kennt nur L und kann ν (den diskreten log von V) nicht berechnen. Das Protokoll gemäß dieser Ausführungsform der Erfindung ist in Fig. 4 gezeigt. Als erstes erzeugt der Client im Schritt 401 die Paßwortverifizierung V wie oben beschrieben. Die Schritte 402 bis 422 erfolgen dann wie oben in Verbindung mit den Schritten 202 bis 222 beschrieben, außer daß in den Schritten 402 bis 422 die Paßwortverifizierung V das Paßwort π ersetzt. Wenn an diesem Punkt die Prüfung im Schritt 422 wahr ist, dann hat der Client authentifiziert, daß der Server die korrekte Paßwortverifizierung V kennt, und der Client muß sich nun selbst dem Server authentifizieren, indem er beweist, daß er das korrekte Paßwort kennt.
- Im Schritt 424 wählt der Client einen Zufallswert für den Index c aus Zq. Im Schritt 426 berechnet der Client a = gc und berechnet e = H(A,B,m,u,σ,a,V) im Schritt 428. Als nächstes berechnet der Client im Schritt 430 S = c - eν. Im Schritt 432 sendet der Client S und a zu dem Server. Nach dem Empfang von S und a berechnet der Server im Schritt 434e = H(A,B,m,u,σ,a,V) unter Verwendung seiner Kenntnis von V. Im Schritt 436 berechnet der Server gSVe. Wenn der vom Server im Schritt 436 berechnete Wert mit dem Wert von a übereinstimmt, der im Schritt 432 vom Client empfangen wird, akzeptiert der Server den Client als authentisch. Als letztes berechnen der Client und der Server den Sitzungsschlüssel als K = H&sub3;(A,B,m,u,σ,a,V) in den Schritten 438 bzw. 440.
- Intuitiv authentifiziert die Prüfung im Schritt 436 den Client folgendermaßen. Mit Bezug auf die Berechnung des Servers im Schritt 436 von a = gSVe wird die Rechnung im Schritt 436 aufgrund von V = gν zu a = gS(gν)e = gSgeν = gS+eν = gc, da aus Schritt 430 hervorgeht, daß c = s + eν ist. Wenn die Berechnung von a durch den Server mit dem im Schritt 432 vom Client empfangenen a übereinstimmt, weiß der Server also, daß der Client ν kennt, das der Client nur mit der Kenntnis des Paßworts π berechnet haben konnte.
- Eine weitere Ausführungsform der Erfindung ist in Fig. 5 gezeigt, in der auch ein Protokoll gezeigt ist, bei dem der Server das Paßwort π nicht besitzt, sondern stattdessen eine Paßwortverifizierung V speichert. Die Schritte 501 bis 514 sind dieselben wie die Schritte 401 bis 414, die oben in Verbindung mit Fig. 4 beschrieben wurden. Im Schritt 516 wählt der Server ein zufälliges c aus Zq und berechnet a folgendermaßen: c , {0,1}k, α = gH'0(A,B,c) mod p, wobei H&sub0;' eine Zufalls-Hash- Funktion ist, die q + sec Bit ausgeben muß. Im Schritt 518 berechnet der Server, k c H2α(A,B,m,u,α,σ,VH'0(A,B,c)mod p,V), wobei das Exklusiv-Oder (XOR) darstellt. Im Schritt 520 sendet der Server u,a,k zum Client. Nach dem Empfang von u,a,k berechnet der Client σ = ux mod p im Schritt 522. An diesem Punkt besitzen sowohl der Client als auch der Server das gemeinsame Geheimnis σ. Im Schritt 524 berechnet der Client c = k® 2α(A,B,m,u,α,σ,αν,V). Im Schritt 526 berechnet der Client gH'0(A,B,c) mod p und prüft, ob der berechnete Wert derselbe wie der Wert von a ist, der im Schritt 520 vom Server empfangen wird. Wenn sie nicht dieselben sind, dann hat sich der Server nicht ordnungsgemäß bei dem Client authentisiert und der Client beendet das Protokoll. Wenn das berechnete a dasselbe wie der Wert von a ist, der im Schritt 520 aus dem Server empfangen wird, dann bestimmt der Client, daß der Server authentisch ist, und fährt mit dem Schritt 528 des Protokolls fort und berechnet k' = H2b(A,B,m,u,σ,a,k,c,V). Im Schritt 530 berechnet der Client den Sitzungsschlüssel K = H&sub3;(A,B,m,u,σ,a,k,c,V). Im Schritt 532 sendet der Client k' zum Server. Im Schritt 534 berechnet der Server H2b(A,B,m,u,σ,a,k,c,V) und bestimmt, ob der berechnete Wert derselbe wie der Wert k' ist, der im Schritt 532 aus dem Client empfangen wird. Wenn sie nicht übereinstimmen, dann hat der Client sich nicht bei dem Server authentisiert und der Server beendet das Protokoll. Wenn das berechnete k' mit dem Wert von k' übereinstimmt, der im Schritt 532 aus dem Client empfangen wird, dann bestimmt der Server, daß der Client authentisch ist und fährt mit dem Schritt 536 des Protokolls fort und berechnet den Sitzungsschlüssel K = H&sub3;(A,B,m,u,σ,c,V).
- Intuitiv basiert die Authentifizierung des Clients und des Servers auf der El-Gamal-Verschlüsselung, die hier nur kurz beschrieben wird, aber ausführlicher in T. ElGamal, A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms, IEEE Transactions on Information Theory, IT-31, 4, Seiten 469-472, 1985, beschrieben wird. Im allgemeinen wird eine Nachricht M gemäß der El-Gamal-Verschlüsselung als E(M) = (gr,yrM) verschlüsselt, wobei r ein Zufallswert, y der öffentliche Schlüssel, x der private Schlüssel und y = gx ist. Eine Verschlüsselung (A,B) wird als D(A,B) = B/Ax entschlüsselt. Durch Einsetzen von Werten erhält man
- Um eine mit der El-Gamal- Technik verschlüsselte Nachricht zu entschlüsseln, ist also der Geheimschlüssel erforderlich. Bei einer zweiten Version der El-Gamal-Verschlüsselung wird eine Nachricht M als E(M) = (gr,H(yr) M) verschlüsselt, wobei r ein Zufallswert, y der öffentliche Schlüssel, x der private Schlüssel und y = gx ist. Eine Verschlüsselung (A,B) wird gemäß dieser zweiten Technik als D(A,B) = H(Ax) B entschlüsselt. Durch Einsetzen von Werten erhält man H(Ax) H(yr) M = H(yr) H(yr) M = M. Um eine mit der zweiten El-Gamal-Technik verschlüsselte Nachricht zu entschlüsseln, ist also wieder der Geheimschlüssel erforderlich.
- Es wird nun eine "selbstzertifizierende El-Gamal- Verschlüsselung" definiert, bei der die zweite Version von El Gamal verwendet wird, aber mit r = H'(M), einem Zufalls-Hash des entschlüsselten Werts, anstelle nur eines rein zufälligen Werts. Wenn dann ein Teilnehmer eine Verschlüsselung (A,B) empfängt und sie entschlüsselt, um M zu erhalten, kann dieser Teilnehmer prüfen, ob A = gH'(M) gilt. Man beachte, daß jedes (A,B) eine Verschlüsselung von etwas definiert, aber die Selbstzertifizierung verifiziert, daß der Verschlüsseler genau weiß, was verschlüsselt wurde, und somit welcher Verschlüsselungsschlüssel verwendet wurde.
- Nunmehr mit Bezug auf das in Fig. 5 gezeigte Protokoll werden Fachleute erkennen, daß die Schritte 516 und 518 eine selbstzertifizierende El-Gamal-Verschlüsselung durchführen, wobei die verschlüsselte Nachricht ein Zufallswert c ist, und wobei der öffentliche Schlüssel die Paßwortverifizierung V und der Geheimschlüssel ν ist. Der Verschlüsselungswert wird dem Parameter k zugewiesen. Im Schritt 524 entschlüsselt der Client das verschlüsselte k, das aus dem Server empfangen wird, um c zu extrahieren, und führt dann die Prüfung des Schritts 526 durch. Wenn diese Prüfung wahr ist, dann zertifiziert sie, daß der Server die korrekte Paßwortverifizierung V besitzt. Im Schritt 528 verwendet der Client den berechneten Wert von c zur Erzeugung von k' und sendet k' im Schritt 532 zum Server. Wenn die Prüfung des Servers im Schritt 534 wahr ist, dann zertifiziert dies, daß der Client das korrekte ν besitzt, da der Client nur mit dem Geheimschlüssel ν die Entschlüsselung durchführen und das in die bei der Berechnung von k verwendete Hash-Funktion eingegebene c erhalten kann.
- Bei weiteren Ausführungsformen der Erfindung kann das in Fig. 2 gezeigte Protokoll so modifiziert werden, daß der Server nicht das Paßwort π, sondern stattdessen den Wert (H&sub1;(A,B,π))r speichert. Dies erfordert keine zusätzliche Berechnung und hat den Vorteil, daß ein naiver Benutzer, der π mit zwei Servern B&sub1; und B&sub2; benutzt, nicht trivial an B&sub2; anfällig ist, wenn B&sub1; kompromittiert wird.
- Die Erfinder haben bewiesen, daß ein Protokoll der gegenseitigen Authentifizierung und des Schlüsselaustauschs gemäß der vorliegenden Erfindung sicher ist. Es folgt ein Abriß der Intuition des Beweises. Intuitiv muß folgendes bewiesen werden:
- (1) Zwei Teilnehmer, die sich ein Paßwort teilen und dem Protokoll folgen, authentifizieren sich gegenseitig und resultieren mit einem langen gemeinsamen Geheimnis.
- (2) Vorausgesetzt, daß das Diffie-Hellman-Protokoll sicher ist, ist das erfindungsgemäße Protokoll so sicher wie ein "Idealfall-Protokoll" mit einem vertrauenswürdigen Teilnehmer, bei dem zwei ehrliche Teilnehmer einander Verbindungen öffnen können und wobei der vertrauenswürdige Teilnehmer ein langes gemeinsames Geheimnis für sie erzeugt, um die Verbindung zu sichern, wobei jedoch auch ein Widersacher den vertrauenswürdigen Teilnehmer einmal pro offener Verbindung (bevor sie gesichert ist) nach dem gemeinsamen Paßwort fragen kann. (Intuitiv modelliert dies ein zufälliges Raten des Paßworts durch den Widersacher und dessen Versuch, sich selbst zu authentifizieren.)
- Teil (1) ist aus dem Protokoll offensichtlich:
- Teil (2) ist schwieriger. Es wird gezeigt, daß man das echte Protokoll ohne Kenntnis der Paßwörter simulieren kann, wobei jedoch nur der vertrauenswürdige Teilnehmer im Idealfall verwendet wird, und dergestalt, daß ein Widersacher, der diese Simulation angreift, von einem Widersacher, der das reale Protokoll in der realen Welt angreift, ununterscheidbar ist. (Dies ist eine wohlbekannte kryptographische Beweistechnik, die Technik der "Mehrteilnehmer-Simulierbarkeit", die in D. Beaver, Secure Multiparty Protocols and Zero-Knowledge Proof Systems Tolerating a Faulty Minority, Journal of Cryptology, 4(2), Seiten 75-122, 1991, beschrieben wird).
- Technisch nimmt dieses Modell an, daß alle Hash- Funktionen völlig zufällig sind und also immer dann, wenn die Funktionen benutzt werden, der Simulator die Eingaben sehen und die Ausgaben setzen kann (solange diese Ausgaben auf zufällige Weise gesetzt werden).
- Das allgemeine Prinzip dieses Simulators besteht darin, einfach die langen gemeinsamen Geheimnisse zwischen zwei ehrlichen Teilnehmern, die miteinander kommunizieren, nachzuahmen und dann zu versuchen, Rateversuche an dem Paßwort (durch Untersuchen der Hash-Funktions- Anfragen des Widersachers) an allen anderen Konversationen zu erkennen, wodurch diese in "Prüfpaßwort"- Anfragen an den vertrauenswürdigen Teilnehmer umgewandelt werden. Der schwierige Teil ist dabei zu zeigen, daß der Widersacher mehr als einen Paßwort-Rateversuch pro offener Verbindung unternehmen kann. Um dies zu zeigen, wird gezeigt, daß, wenn es der Widersacher könnte, das Diffie-Hellman-Problem gelöst werden könnte. (Genauer gesagt könnte man Werte X, Y, Z G mit X = gx und Y = gy (für unbekannte x und y) nehmen und bestimmen, ob Z = gxy gilt.)
- Die obige ausführliche Beschreibung soll als in jeder Hinsicht beispielhaft und veranschaulichend, aber nicht einschränkend, aufgefaßt werden und der Schutzumfang der hier offengelegten Erfindung soll nicht aus der ausführlichen Beschreibung, sondern aus den Ansprüchen bestimmt werden, die gemäß der vollen durch die Patentgesetze zugelassenen Breite interpretiert werden. Es versteht sich, daß die hier gezeigten und beschriebenen Ausführungsformen lediglich die Prinzipien der vorliegenden Erfindung veranschaulichen, und daß Fachleute verschiedene Modifikationen implementieren können, ohne vom Schutzumfang der Erfindung abzuweichen. Zum Beispiel werden bei den oben beschriebenen Protokollen bestimmte Parameter bei der Auswertung der Hash- Funktionen verwendet. Es wird angemerkt, daß für heuristische Sicherheit nicht alle Parameter erforderlich sind, aber die zusätzlichen Parameter einen formalen Beweis der Sicherheit der Protokolle erlauben. Zum Beispiel scheint es, daß die Schritte 216, 222, 224, 230, 226 und 232 des in Fig. 2 gezeigten Protokolls, die Schritte 316 und 324 des in Fig. 3 gezeigten Protokolls, die Schritte 416, 422, 438 und 440 des in Fig. 4 gezeigten Protokolls und die Schritte 530 und 536 des in Fig. 5 gezeigten Protokolls nur den Parameter σ in den Hash-Funktionen benötigen, damit das Protokoll heuristisch sicher ist. Die oben gezeigte und beschriebene Verwendung der zusätzlichen Parameter ermöglicht jedoch einen formalen Beweis der Sicherheit der Protokolle. Ähnlich scheint es, daß die Schritte 420 und 434 des in Fig. 4 gezeigten Protokolls nur die Parameter σ und a in den Hash-Funktionen benötigen, damit das Protokoll heuristisch sicher wird. Die oben gezeigte und beschriebene Verwendung der zusätzlichen Parameter ermöglicht jedoch einen formalen Beweis der Sicherheit des Protokolls. Ähnlich scheint es, daß die Schritte 518 und 524 des in Fig. 5 gezeigten Protokolls nur die Parameter σ, a und VH'0(A,B,c) benötigen, damit das Protokoll heuristisch sicher wird. Die oben gezeigte und beschriebene Verwendung zusätzlicher Parameter ermöglicht jedoch einen formalen Beweis der Sicherheit des Protokolls. Schließlich scheint es, daß die Schritte 528 und 534 des in Fig. 5 gezeigten Protokolls nur die Parameter σ und c in den Hash-Funktionen benötigen, damit das Protokoll heuristisch sicher wird. Nochmals erlaubt die oben gezeigte und beschriebene Verwendung der zusätzlichen Parameter jedoch einen formalen Beweis der Sicherheit des Protokolls.
Claims (33)
1. Verfahren zur Kommunikation über ein Datennetz
zwischen zwei Teilnehmern, die sich ein Paßwort
teilen, unter Verwendung eines Schlüsselaustauschs
des Diffie-Hellman-Typs an einer bestimmten
Gruppe, um ein gemeinsames Geheimnis gxy zu
erzeugen, wobei g der beiden Teilnehmern bekannte
Gruppengenerator und x ein dem einen Teilnehmer
bekannter Index und y ein dem anderen Teilnehmer
bekannter Index ist, wobei die Gruppe eine
Gruppenoperation und eine inverse Gruppenoperation
aufweist, wobei das Verfahren dadurch
gekennzeichnet ist, daß
ein Teilnehmer einen Parameter m durch Durchführen
der Gruppenoperation an gx und einer Funktion
mindestens des Paßworts erzeugt und m zu dem
anderen Teilnehmer sendet, wodurch der andere
Teilnehmer die inverse Gruppenoperation an m und
der Funktion mindestens des Paßworts durchzuführen
in der Lage ist, um gx zu extrahieren und weiterhin
das gemeinsame Geheimnis gxy zu berechnen.
2. Verfahren nach Anspruch 1, wobei der eine
Teilnehmer ein Client und der andere Teilnehmer
ein Server ist.
3. Verfahren nach Anspruch 1, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer empfängt gy von dem anderen
Teilnehmer und erzeugt das gemeinsame Geheimnis
gxy.
4. Verfahren nach Anspruch 3, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer authentisiert den anderen
Teilnehmer durch Vergleichen eines empfangenen
Werts mit einer Funktion mindestens einer Kennung
des einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und des Paßworts.
5. Verfahren nach Anspruch 3, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer sendet eine Funktion einer
Kennung des einen Teilnehmers, einer Kennung des
anderen Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und des Paßworts zu dem anderen
Teilnehmer, wodurch der andere Teilnehmer den
einen Teilnehmer authentisieren kann.
6. Verfahren nach Anspruch 3, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer erzeugt einen
Sitzungsschlüssel als Funktion einer Kennung des
einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und des Paßworts.
7. Verfahren nach Anspruch 1, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer empfängt einen Parameter u von
dem anderen Teilnehmer, wobei u von dem anderen
Teilnehmer durch Durchführen der Gruppenoperation
an gy und einer Funktion mindestens des Paßworts
berechnet wurde;
wobei der eine Teilnehmer die inverse
Gruppenoperation an u und der Funktion mindestens
des Paßworts durchführt, um gy zu extrahieren; und
der eine Teilnehmer das gemeinsame Geheimnis gxy
berechnet.
8. Verfahren nach Anspruch 7, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer erzeugt einen
Sitzungsschlüssel als Funktion einer Kennung des
einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von u, des gemeinsamen
Geheimnisses oder/und des Paßworts.
9. Verfahren zur Kommunikation über ein Datennetz
zwischen zwei Teilnehmern unter Verwendung eines
Schlüsselaustauschs des Diffie-Hellman-Typs an
einer bestimmten Gruppe, um ein gemeinsames
Geheimnis gxy zu erzeugen, wobei g der beiden
Teilnehmern bekannte Gruppengenerator und x ein
dem einen Teilnehmer bekannter Index und y ein dem
anderen Teilnehmer bekannter Index ist, wobei die
Gruppe eine Gruppenoperation und eine inverse
Gruppenoperation aufweist, wobei das Verfahren
dadurch gekennzeichnet ist, daß
ein Teilnehmer einen Parameter m durch Durchführen
der Gruppenoperation an gx und einer Funktion
mindestens einer Paßwortverifizierung erzeugt und
m zu dem anderen Teilnehmer sendet, wodurch der
andere Teilnehmer die inverse Gruppenoperation an
m und der Funktion mindestens der
Paßwortverifizierung durchführen kann, um gx zu
extrahieren und weiterhin das gemeinsame Geheimnis
gxy zu berechnen.
10. Verfahren nach Anspruch 9, wobei der eine
Teilnehmer ein Client und der andere Teilnehmer
ein Server ist.
11. Verfahren nach Anspruch 9, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer empfängt gy von dem anderen
Teilnehmer und erzeugt das gemeinsame Geheimnis
gxy.
12. Verfahren nach Anspruch 11, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer authentisiert den anderen
Teilnehmer durch Vergleichen eines empfangenen
Werts mit einer Funktion einer Kennung des einen
Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und der Paßwortverifizierung.
13. Verfahren nach Anspruch 12, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer berechnet gc, wobei c ein dem
einen Teilnehmer bekannter Index ist;
wobei der eine Teilnehmer einen Parameter e als
Funktion mindestens von gc und einer Kennung des
einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und der Paßwortverifizierung
berechnet;
wobei der eine Teilnehmer einen Parameter S als
S = c - ev berechnet, wobei v der diskrete
Logarithmus der Paßwortverifizierung ist; und
wobei der eine Teilnehmer S und gc zu dem anderen
Teilnehmer sendet,
wodurch der andere Teilnehmer den ersten
Teilnehmer auf der mindestens teilweisen Basis der
Werte S und gc authentisieren kann.
14. Verfahren nach Anspruch 13, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer erzeugt einen
Sitzungsschlüssel als Funktion einer Kennung des
einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses, von gc oder/und der
Paßwortverifizierung.
15. Verfahren nach Anspruch 11, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer sendet eine Funktion einer
Kennung des einen Teilnehmers, einer Kennung des
anderen Teilnehmers, von m, gy, des gemeinsamen
Geheimnisses, des Zufallswerts oder/und der
Paßwortverifizierung zu dem anderen Teilnehmer,
wodurch der andere Teilnehmer den einen Teilnehmer
authentisieren kann.
16. Verfahren nach Anspruch 11, weiterhin mit den
folgenden Schritten:
der eine Teilnehmer authentisiert den anderen
Teilnehmer auf der Basis einer
selbstzertifizierenden El-Gamal-Verschlüsselung,
bei der unter Verwendung der Paßwortverifizierung
als der öffentliche Schlüssel und des diskreten
Logarithmus der Paßwortverifizierung als der
private Schlüssel einen Zufallswert erzeugt wird.
17. Verfahren nach Anspruch 16, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer erzeugt einen
Sitzungsschlüssel als Funktion einer Kennung des
einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses, des Zufallswerts oder/und der
Paßwortverifizierung.
18. Verfahren zur Kommunikation über ein Datennetz
zwischen zwei Teilnehmern, die sich ein Paßwort
teilen, unter Verwendung eines Schlüsselaustauschs
des Diffie-Hellman-Typs an einer bestimmten
Gruppe, um ein gemeinsames Geheimnis gxy zu
erzeugen, wobei g der beiden Teilnehmern bekannte
Gruppengenerator und y ein dem einen Teilnehmer
bekannter Index und x ein dem anderen Teilnehmer
bekannter Index ist, wobei die Gruppe eine
Gruppenoperation und eine inverse Gruppenoperation
aufweist, wobei das Verfahren dadurch
gekennzeichnet ist, daß
der eine Teilnehmer einen Parameter m von dem
anderen Teilnehmer empfängt, wobei m von dem
anderen Teilnehmer durch Durchführen der
Gruppenoperation an gx und einer Funktion
mindestens des Paßworts berechnet wurde; und
der andere Teilnehmer die inverse Gruppenoperation
an m und der Funktion mindestens des Paßworts
durchführt, um gx zu extrahieren und weiterhin das
gemeinsame Geheimnis gxy zu berechnen.
19. Verfahren nach Anspruch 18, wobei der eine
Teilnehmer das Paßwort speichert.
20. Verfahren nach Anspruch 18, wobei der eine
Teilnehmer einen Wert speichert, der die Funktion
mindestens des Paßworts darstellt, aber der eine
Teilnehmer das Paßwort nicht speichert.
21. Verfahren nach Anspruch 18, wobei der eine
Teilnehmer ein Server und der andere Teilnehmer
ein Client ist.
22. Verfahren nach Anspruch 18, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer sendet eine Funktion einer
Kennung des einen Teilnehmers, einer Kennung des
anderen Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und des Paßworts zu dem anderen
Teilnehmer.
23. Verfahren nach Anspruch 18, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer authentisiert den anderen
Teilnehmer durch Vergleichen eines empfangenen
Werts mit einer Funktion einer Kennung des einen
Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und des Paßworts.
24. Verfahren nach Anspruch 18, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer erzeugt einen
Sitzungsschlüssel als Funktion einer Kennung des
einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und des Paßworts.
25. Verfahren nach Anspruch 18, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer erzeugt einen Parameter u
durch Durchführen der Gruppenoperation an gy und
einer Funktion mindestens des Paßworts und sendet
u zu dem anderen Teilnehmer, wodurch der andere
Teilnehmer die inverse Gruppenoperation an u und
der Funktion mindestens des Paßworts durchführen
kann, um gy zu extrahieren und weiterhin das
gemeinsame Geheimnis gxy zu berechnen.
26. Verfahren zur Kommunikation über ein Datennetz
zwischen zwei Teilnehmern unter Verwendung eines
Schlüsselaustauschs des Diffie-Hellman-Typs an
einer bestimmten Gruppe, um ein gemeinsames
Geheimnis gxy zu erzeugen, wobei g der beiden
Teilnehmern bekannte Gruppengenerator und y ein
dem einen Teilnehmer bekannter Index und x ein dem
anderen Teilnehmer bekannter Index ist, wobei die
Gruppe eine Gruppenoperation und eine inverse
Gruppenoperation aufweist, wobei das Verfahren
dadurch gekennzeichnet ist, daß
der eine Teilnehmer einen Parameter m von dem
anderen Teilnehmer empfängt, wobei m von dem
anderen Teilnehmer durch Durchführen der
Gruppenoperation an gx und einer Funktion
mindestens einer Paßwortverifizierung berechnet
wurde; und
der andere Teilnehmer die inverse Gruppenoperation
an m und der Funktion mindestens der
Paßwortverifizierung durchführt, um gx zu
extrahieren und weiterhin das gemeinsame Geheimnis
gxy zu berechnen.
27. Verfahren nach Anspruch 26, wobei der eine
Teilnehmer ein Server und der andere Teilnehmer
ein Client ist.
28. Verfahren nach Anspruch 26, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer sendet eine Funktion einer
Kennung des einen Teilnehmers, einer Kennung des
anderen Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und der Paßwortverifizierung zu
dem anderen Teilnehmer.
29. Verfahren nach Anspruch 26, weiterhin mit den
folgenden Schritten:
der eine Teilnehmer authentisiert den anderen
Teilnehmer auf der mindestens teilweisen Basis der
von dem anderen Teilnehmer empfangenen Werte S und
gc, wobei
c ein Zufallswert ist;
S = c - ev ist, wobei v der diskrete Logarithmus
der Paßwortverifizierung ist; und
e eine Funktion mindestens von gc und einer Kennung
des einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses oder/und der Paßwortverifizierung
ist.
30. Verfahren nach Anspruch 29, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer erzeugt einen
Sitzungsschlüssel als Funktion einer Kennung des
einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses, gc oder/und der Paßwortverifizierung.
31. Verfahren nach Anspruch 26, weiterhin mit den
folgenden Schritten:
der eine Teilnehmer verschlüsselt einen
Zufallswert durch Verwendung einer
selbstzertifizierenden El-Gamal-Verschlüsselung
unter Verwendung der Paßwortverifizierung als der
öffentliche Schlüssel und des diskreten
Logarithmus der Paßwortverifizierung als der
geheime Schlüssel; und
Senden des verschlüsselten Zufallswerts zu dem
anderen Teilnehmer.
32. Verfahren nach Anspruch 26, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer authentisiert den anderen
Teilnehmer auf der Basis eines empfangenen Werts,
der von dem anderen Teilnehmer als Funktion einer
Kennung des einen Teilnehmers, einer Kennung des
anderen Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses, des Zufallswerts oder/und der
Paßwortverifizierung berechnet wurde.
33. Verfahren nach Anspruch 26, weiterhin mit dem
folgenden Schritt:
der eine Teilnehmer erzeugt einen
Sitzungsschlüssel als Funktion einer Kennung des
einen Teilnehmers, einer Kennung des anderen
Teilnehmers, von m, von gy, des gemeinsamen
Geheimnisses, des Zufallswerts oder/und der
Paßwortverifizierung.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19031800P | 2000-03-17 | 2000-03-17 | |
US09/638,320 US7047408B1 (en) | 2000-03-17 | 2000-08-14 | Secure mutual network authentication and key exchange protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60001630D1 DE60001630D1 (de) | 2003-04-17 |
DE60001630T2 true DE60001630T2 (de) | 2003-12-18 |
Family
ID=26885985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60001630T Expired - Lifetime DE60001630T2 (de) | 2000-03-17 | 2000-10-23 | Sichere gegenseitige Netzwerkauthenifizierung und Schlüselaustauschprotokoll |
Country Status (5)
Country | Link |
---|---|
US (1) | US7047408B1 (de) |
EP (1) | EP1134929B1 (de) |
JP (1) | JP2001313634A (de) |
CA (1) | CA2335172C (de) |
DE (1) | DE60001630T2 (de) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785813B1 (en) | 1997-11-07 | 2004-08-31 | Certicom Corp. | Key agreement and transport protocol with implicit signatures |
US7334127B2 (en) * | 1995-04-21 | 2008-02-19 | Certicom Corp. | Key agreement and transport protocol |
US6487661B2 (en) | 1995-04-21 | 2002-11-26 | Certicom Corp. | Key agreement and transport protocol |
US7290142B1 (en) * | 1999-09-28 | 2007-10-30 | Thomas Licensing | System and method for initializing a simple network management protocol (SNMP) agent |
US6732270B1 (en) * | 2000-10-23 | 2004-05-04 | Motorola, Inc. | Method to authenticate a network access server to an authentication server |
US7076656B2 (en) * | 2001-04-05 | 2006-07-11 | Lucent Technologies Inc. | Methods and apparatus for providing efficient password-authenticated key exchange |
US20030093680A1 (en) * | 2001-11-13 | 2003-05-15 | International Business Machines Corporation | Methods, apparatus and computer programs performing a mutual challenge-response authentication protocol using operating system capabilities |
KR100883648B1 (ko) * | 2002-03-16 | 2009-02-18 | 삼성전자주식회사 | 무선 환경에서의 네트웍 접근 통제 방법 및 이를 기록한기록매체 |
US7565537B2 (en) | 2002-06-10 | 2009-07-21 | Microsoft Corporation | Secure key exchange with mutual authentication |
US7840806B2 (en) * | 2002-10-16 | 2010-11-23 | Enterprise Information Management, Inc. | System and method of non-centralized zero knowledge authentication for a computer network |
US20040193923A1 (en) * | 2003-01-16 | 2004-09-30 | Hammond Frank J. | Systems and methods for enterprise security with collaborative peer to peer architecture |
US8239917B2 (en) * | 2002-10-16 | 2012-08-07 | Enterprise Information Management, Inc. | Systems and methods for enterprise security with collaborative peer to peer architecture |
US7284127B2 (en) * | 2002-10-24 | 2007-10-16 | Telefonktiebolaget Lm Ericsson (Publ) | Secure communications |
KR100545628B1 (ko) * | 2002-12-09 | 2006-01-24 | 한국전자통신연구원 | 보안연계 협상과 키교환 시스템 및 방법 |
JP2004272632A (ja) * | 2003-03-10 | 2004-09-30 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
KR100581590B1 (ko) | 2003-06-27 | 2006-05-22 | 주식회사 케이티 | 이중 요소 인증된 키 교환 방법 및 이를 이용한 인증방법과 그 방법을 포함하는 프로그램이 저장된 기록매체 |
JP3854954B2 (ja) * | 2003-09-05 | 2006-12-06 | キヤノン株式会社 | データ共有装置 |
GB2407236B (en) * | 2003-10-17 | 2006-04-05 | Toshiba Res Europ Ltd | Methods and apparatus for secure data communication links |
KR100571820B1 (ko) * | 2003-10-20 | 2006-04-17 | 삼성전자주식회사 | 신원 정보를 기반으로 하는 암호 시스템에서의 컨퍼런스세션 키 분배 방법 |
US7916868B1 (en) * | 2004-05-06 | 2011-03-29 | Verizon Data Services Llc | Quadratic residue based password authenticated key exchange method and system |
KR100612215B1 (ko) * | 2004-07-24 | 2006-08-16 | 삼성전자주식회사 | 비밀번호를 이용하는 데이터 기록/재생 장치 및 그 방법 |
US7941671B2 (en) * | 2004-10-14 | 2011-05-10 | Oracle International Corporation | Method and apparatus for accommodating multiple verifier types with limited storage space |
JP4719749B2 (ja) * | 2004-10-29 | 2011-07-06 | トムソン ライセンシング | セキュア認証チャネル |
DE602005020828D1 (de) * | 2004-11-08 | 2010-06-02 | Sony Corp | Informationsverarbeitungssystem und informationsverarbeitungseinrichtung |
US7363492B2 (en) * | 2005-02-25 | 2008-04-22 | Motorola, Inc. | Method for zero-knowledge authentication of a prover by a verifier providing a user-selectable confidence level and associated application devices |
US7861078B2 (en) * | 2005-10-14 | 2010-12-28 | Juniper Networks, Inc. | Password-authenticated asymmetric key exchange |
EP1926279A1 (de) * | 2006-11-21 | 2008-05-28 | Thomson Licensing | Method und eine erstes Gerät zur Assoziierung des ersten Gerätes mit einem zweiten Gerät |
JP2008269088A (ja) * | 2007-04-17 | 2008-11-06 | Toshiba Corp | プログラム情報提供システム、プログラム情報提供方法、プログラム情報提供方法に用いられる記録媒体 |
US8478988B2 (en) * | 2007-05-15 | 2013-07-02 | At&T Intellectual Property I, L.P. | System and method for authentication of a communication device |
GR1005832B (el) * | 2007-05-22 | 2008-02-27 | Περσεφονη Λαππα | Καθιερωση ισχυρων κρυπτογραφικων κλειδιων και εξασφαλιση των επικοινωνιων μεταξυ ασυρματων ή αλλων συσκευων |
US8689003B2 (en) | 2007-06-01 | 2014-04-01 | Adobe Systems Incorporated | System and method for secure password-based authentication |
KR101490687B1 (ko) * | 2007-08-20 | 2015-02-06 | 삼성전자주식회사 | 홈 네트워크에서 디바이스들이 비밀 정보를 공유하는 방법및 이를 위한 장치 |
JP4924943B2 (ja) * | 2007-09-04 | 2012-04-25 | Kddi株式会社 | 認証付鍵交換システム、認証付鍵交換方法およびプログラム |
KR100862050B1 (ko) | 2007-11-23 | 2008-10-09 | 한국정보보호진흥원 | VoIP 보안 통신을 제공하는 사용자 에이전트 및 이를이용한 보안 통신 제공 방법 |
WO2009078139A1 (ja) * | 2007-12-14 | 2009-06-25 | Nec Corporation | 署名生成装置および署名検証装置 |
US7522723B1 (en) | 2008-05-29 | 2009-04-21 | Cheman Shaik | Password self encryption method and system and encryption by keys generated from personal secret information |
JP5405057B2 (ja) * | 2008-06-19 | 2014-02-05 | 株式会社リコー | 情報通信装置および公開鍵認証方法 |
JP5224481B2 (ja) * | 2008-07-10 | 2013-07-03 | 独立行政法人産業技術総合研究所 | パスワード認証方法 |
KR101089889B1 (ko) * | 2008-11-21 | 2011-12-05 | 한국전자통신연구원 | 다운로더블 제한수신시스템 및 상기 다운로더블 제한수신시스템에서 인증 서버와 단말 간 암호화된 양방향 통신을 위한 세션 제어 방법 |
JP5101535B2 (ja) * | 2009-01-19 | 2012-12-19 | 日本電信電話株式会社 | 認証方法、認証システム、プログラムおよび共有鍵生成方法 |
US20110093714A1 (en) * | 2009-10-20 | 2011-04-21 | Infineon Technologies Ag | Systems and methods for asymmetric cryptographic accessory authentication |
US8621212B2 (en) * | 2009-12-22 | 2013-12-31 | Infineon Technologies Ag | Systems and methods for cryptographically enhanced automatic blacklist management and enforcement |
US8627088B2 (en) * | 2010-02-10 | 2014-01-07 | Authernative, Inc. | System and method for in- and out-of-band multi-factor server-to-user authentication |
JP5238045B2 (ja) * | 2011-02-02 | 2013-07-17 | トムソン ライセンシング | セキュア認証チャネル |
US8630411B2 (en) | 2011-02-17 | 2014-01-14 | Infineon Technologies Ag | Systems and methods for device and data authentication |
EP2905718A1 (de) | 2014-02-05 | 2015-08-12 | Thomson Licensing | Vorrichtung und Verfahrenszertifikaterzeugung |
US9628273B2 (en) | 2014-04-30 | 2017-04-18 | Thamir Alshammari | Cryptographic method and system for secure authentication and key exchange |
US10097544B2 (en) | 2016-06-01 | 2018-10-09 | International Business Machines Corporation | Protection and verification of user authentication credentials against server compromise |
US11012435B2 (en) * | 2017-12-19 | 2021-05-18 | International Business Machines Corporation | Multi factor authentication |
US11122033B2 (en) * | 2017-12-19 | 2021-09-14 | International Business Machines Corporation | Multi factor authentication |
CN113014534A (zh) * | 2019-12-21 | 2021-06-22 | 浙江宇视科技有限公司 | 一种用户登录与认证的方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4956863A (en) * | 1989-04-17 | 1990-09-11 | Trw Inc. | Cryptographic method and apparatus for public key exchange with authentication |
US5241599A (en) | 1991-10-02 | 1993-08-31 | At&T Bell Laboratories | Cryptographic protocol for secure communications |
US5351293A (en) * | 1993-02-01 | 1994-09-27 | Wave Systems Corp. | System method and apparatus for authenticating an encrypted signal |
US5440635A (en) | 1993-08-23 | 1995-08-08 | At&T Corp. | Cryptographic protocol for remote authentication |
US5450493A (en) * | 1993-12-29 | 1995-09-12 | At&T Corp. | Secure communication method and apparatus |
US5602917A (en) * | 1994-12-30 | 1997-02-11 | Lucent Technologies Inc. | Method for secure session key generation |
JP3541522B2 (ja) * | 1995-10-09 | 2004-07-14 | 松下電器産業株式会社 | 機器間通信保護システムおよび機器 |
US6226383B1 (en) * | 1996-04-17 | 2001-05-01 | Integrity Sciences, Inc. | Cryptographic methods for remote authentication |
US5953420A (en) * | 1996-10-25 | 1999-09-14 | International Business Machines Corporation | Method and apparatus for establishing an authenticated shared secret value between a pair of users |
US6539479B1 (en) * | 1997-07-15 | 2003-03-25 | The Board Of Trustees Of The Leland Stanford Junior University | System and method for securely logging onto a remotely located computer |
US6192474B1 (en) | 1998-07-31 | 2001-02-20 | Lucent Technologies Inc. | Method for establishing a key using over-the-air communication and password protocol and password protocol |
-
2000
- 2000-08-14 US US09/638,320 patent/US7047408B1/en not_active Expired - Lifetime
- 2000-10-23 EP EP00309331A patent/EP1134929B1/de not_active Expired - Lifetime
- 2000-10-23 DE DE60001630T patent/DE60001630T2/de not_active Expired - Lifetime
-
2001
- 2001-02-09 CA CA002335172A patent/CA2335172C/en not_active Expired - Fee Related
- 2001-03-14 JP JP2001071600A patent/JP2001313634A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CA2335172A1 (en) | 2001-09-17 |
DE60001630D1 (de) | 2003-04-17 |
EP1134929A1 (de) | 2001-09-19 |
US7047408B1 (en) | 2006-05-16 |
CA2335172C (en) | 2005-04-12 |
EP1134929B1 (de) | 2003-03-12 |
JP2001313634A (ja) | 2001-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60001630T2 (de) | Sichere gegenseitige Netzwerkauthenifizierung und Schlüselaustauschprotokoll | |
DE60200496T2 (de) | Verfahren und Vorrichtung zur Ausführung eines effizienten mittels Kennwort authentifizierten Schlüsselaustauschs | |
DE60036112T2 (de) | Serverunterstützte wiedergewinnung eines starken geheimnisses aus einem schwachen geheimnis | |
US11722305B2 (en) | Password based threshold token generation | |
DE69534192T2 (de) | Verfahren zur gemeinsamen Nutzung einer geheimen Information, zur Erzeugung einer digitalen Unterschrift und zur Ausführung einer Beglaubigung in einem Kommunikationssystem mit mehreren Informationsverarbeitungseinrichtungen und Kommunikationssystem zur Anwendung dieses Verfahrens | |
DE69834431T2 (de) | Leckresistentes kryptographisches verfahren und vorrichtung | |
DE69935469T2 (de) | Verfahren zur schnellen Ausführung einer Entschlüsselung oder einer Authentifizierung | |
EP0472714B1 (de) | Verfahren zur authentifizierung eines eine datenstation benutzenden anwenders | |
DE69233613T2 (de) | Kryptographisches Protokoll zur gesicherten Kommunikation | |
DE19804054B4 (de) | System zur Verifizierung von Datenkarten | |
DE69636815T2 (de) | Verfahren zur sitzungsschlüsselerzeugung mit impliziten unterschriften | |
DE69416809T2 (de) | Verbesserungen der Sicherheit in Datenverarbeitungssystemen | |
DE60031304T2 (de) | Verfahren zur authentifizierung von softwarebenutzern | |
DE69431426T2 (de) | System und Verfahren zur Nachrichtenauthentisierung in einem nicht-schmiedbaren Kryptosystem mit öffentlichen Schlüssel | |
US20030221102A1 (en) | Method and apparatus for performing multi-server threshold password-authenticated key exchange | |
CH711133B1 (de) | Protokoll zur Signaturerzeugung | |
DE102016210786A1 (de) | Komponente zur Anbindung an einen Datenbus und Verfahren zur Umsetzung einer kryptografischen Funktionalität in einer solchen Komponente | |
EP1368929B1 (de) | Verfahren zur authentikation | |
DE60109805T2 (de) | Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers | |
EP1423786A2 (de) | Vorrichtung und verfahren zum berechnen eines ergebnisses einer modularen exponentiation | |
DE60202149T2 (de) | Verfahren zur kryptographischen authentifizierung | |
DE60000649T2 (de) | Authentifizierungs- oder unterschriftsverfahren mit verringter zahl an berechnungen | |
DE69831792T2 (de) | Verfahren zur digitalen unterschrift | |
WO2021156005A1 (de) | Schlüsselgenerierung und pace mit sicherung gegen seitenkanalangriffe | |
Li et al. | A new fair multi-secret sharing scheme based on asymmetric bivariate polynomial |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |