US20020194478A1 - Methods and apparatus for providing efficient password-authenticated key exchange - Google Patents

Methods and apparatus for providing efficient password-authenticated key exchange Download PDF

Info

Publication number
US20020194478A1
US20020194478A1 US09/827,227 US82722701A US2002194478A1 US 20020194478 A1 US20020194478 A1 US 20020194478A1 US 82722701 A US82722701 A US 82722701A US 2002194478 A1 US2002194478 A1 US 2002194478A1
Authority
US
United States
Prior art keywords
party
group
function
password
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.)
Granted
Application number
US09/827,227
Other versions
US7076656B2 (en
Inventor
Philip MacKenzie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Priority to US09/827,227 priority Critical patent/US7076656B2/en
Assigned to LUCENT TECHNOLOGIES INC. reassignment LUCENT TECHNOLOGIES INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MACKENZIE, PHILIP D.
Priority to CA002376947A priority patent/CA2376947C/en
Priority to EP02252083A priority patent/EP1248408B1/en
Priority to DE60200496T priority patent/DE60200496T2/en
Priority to JP2002083199A priority patent/JP4237970B2/en
Publication of US20020194478A1 publication Critical patent/US20020194478A1/en
Publication of US7076656B2 publication Critical patent/US7076656B2/en
Application granted granted Critical
Assigned to CREDIT SUISSE AG reassignment CREDIT SUISSE AG SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ALCATEL-LUCENT USA INC.
Assigned to ALCATEL-LUCENT USA INC. reassignment ALCATEL-LUCENT USA INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: LUCENT TECHNOLOGIES INC.
Assigned to ALCATEL-LUCENT USA INC. reassignment ALCATEL-LUCENT USA INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: CREDIT SUISSE AG
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0841Key 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/0844Key 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

Definitions

  • the present invention generally relates to techniques for providing network authentication and key exchange and, more particularly, to techniques for improving the computational efficiency associated with such network authentication and key exchange.
  • Authentication over a network is an important part of security for systems that allow remote clients to access network servers. Authentication is generally accomplished by verifying one or more of the following:
  • biometric information such as a fingerprint
  • ATM automatic teller machine
  • PIN personal identification number
  • Authentication over a data network is difficult because the communication between the client and server is susceptible to many different types of attacks.
  • an adversary may learn secret information by intercepting communication between the client and the server. If the adversary learns password information, the adversary may replay that information to the server to impersonate the legitimate client in what is called a replay attack.
  • Replay attacks are effective even if the password sent from the client is encrypted because the adversary does not need to know the actual password, but instead must provide something to the server that the server expects from the legitimate client (in this case, an encrypted password).
  • Another type of attack is a spoofing attack, in which an adversary impersonates the server, so that the client believes that it is communicating with the legitimate server, but instead is actually communicating with the adversary.
  • the client may provide sensitive information to the adversary.
  • a dictionary attack is a brute force attack on a password that is performed by testing a large number of likely passwords (e.g., all the words in an English dictionary) against some known information about the desired password.
  • the known information may be publicly available or may have been obtained by the adversary through one of the above-described techniques. Dictionary attacks are often effective because users often choose easily remembered, and easily guessed, passwords.
  • the first classification includes those techniques that require persistent stored data on the client system.
  • the second classification includes those techniques which do not require persistent stored data on the client system.
  • persistent stored data may include either secret data (e.g., secret keys shared with the authenticating server) which must never be revealed, or non-secret but sensitive data (e.g., the authenticating server's public key) which must be tamper-proof.
  • secret data e.g., secret keys shared with the authenticating server
  • non-secret but sensitive data e.g., the authenticating server's public key
  • a compromise of either may lead to a vulnerability of the other. For example, compromising a secret key may lead to a possible dictionary attack on the password.
  • Another problem with this first class of protocols is that persistent stored data requires generation and distribution of keys, which can be cumbersome, and generally provides a less flexible system.
  • the second classification is called password-only authentication protocols because there is no requirement of persistent stored data at the client. The client only needs to be able to provide a legitimate password. The notion of providing strong security and authentication using potentially weak passwords seems to be contradictory. However, there exist several password-only user authentication and key exchange protocols that are designed to be secure. A description of these protocols may be found in D. Jablon, Strong Password-Only Authenticated Key Exchange, ACM Computer Communication Review, ACM SIGCOMM, 26(5):5-20,1996, the disclosure of which is incorporated by reference herein. Some of the more notable of the password-only protocols include Encrypted Key Exchange (EKE) described in S. M. Bellovin and M.
  • EKE Encrypted Key Exchange
  • the present invention provides a secure password-only mutual network authentication protocol which is provably secure.
  • two parties generate a shared secret using a Diffie-Hellman type key exchange.
  • a Diffie-Hellman type key exchange there is a group generator g for a particular group, an index x known to one party, an index y known to the other party, and the shared secret g xy .
  • One party generates g x
  • the other party generates g y
  • the parties exchange these values so that each party may now generate the shared secret g xy .
  • Diffie-Hellman defines a key exchange protocol, the protocol has no authentication aspects.
  • a party generates the Diffie-Hellman value g x and combines it with a function of at least the password using a group operation, wherein any portion of a result associated with the function that is outside the group is randomized. The resulting value is transmitted to the other party.
  • the group operation is defined for the particular group being used, and will be described in further detail below. For present purposes, it is sufficient to recognize that every group has a group operation and a corresponding inverse group operation.
  • the other party Upon receipt of the value, the other party performs the inverse group operation on the received value and the function of at least the password, and removes the randomization of any portion of the result associated with the function that is outside the group, to extract g x such that the other party may then generate the shared secret g xy using its knowledge of y.
  • the use of the group operation and the inverse group operation in conjunction with a Diffie-Hellman type key exchange protocol as described herein provides benefits over password-only mutual network authentication protocols.
  • the randomization of any portion of the result associated with the function that is outside the group reduces the computational intensity associated with the operations performed by the one party.
  • the present invention provides a protocol which can be proven to be secure against attacks by adversaries which have access to the communication channel.
  • the Diffie-Hellman value g x is combined with a function of at least the password.
  • the term “at least” is used because, in various embodiments, g x may be combined with a function of the password alone, or a function of the password along with identifiers of the parties to the protocol in order to ensure that the password is unique for any particular pair of parties.
  • the parties may authenticate each other by computing a function of at least certain parameters, transmitting the computed value to the other party, and then each party checking the received value against its own computed value.
  • the parameters used for the computation may be at least one of a party identifier, the Diffie-Hellman value (g x or g y ), the shared secret, and the shared password.
  • the parties may authenticate that the other party is in possession of the shared password.
  • FIG. 1 illustrates the Diffie-Hellman key exchange protocol
  • FIG. 2 illustrates a mutual authentication and key exchange protocol in which both parties possess a shared password
  • FIG. 3 illustrates an improved efficiency mutual authentication and key exchange protocol in accordance with an embodiment of the present invention in which both parties possess a shared password
  • FIG. 4 illustrates a generalized hardware architecture of a data network and computer systems suitable for implementing one or more of the password-authenticated key exchange methodologies according to the present invention.
  • Cryptography is a well-known technique for providing secure communication between two parties. Prior to describing various embodiments of the present invention, some background and basic terminology will be provided.
  • the inverse function, called the discrete log function is difficult to compute. There are also other groups in which the discrete log function is difficult to compute, such as certain elliptic curve groups.
  • k and l denote security parameters, where k is the main security parameter and can be thought of as a general security parameter for hash functions and secret keys (e.g., 160 bits), and l>k can be thought of as a security parameter for discrete-log-based public keys (e.g., 1024 or 2048 bits).
  • ⁇ 0,1 ⁇ * denote the set of finite binary strings
  • ⁇ 0,1 ⁇ n denote the set of binary strings of length n.
  • a real-valued function ⁇ (n) is negligible if for every c>0, there exists n c >0 such that ⁇ (n) ⁇ 1/n c for all n>n c .
  • a key exchange protocol called Diffie-Hellman Key Exchange and described in W. Diffie and M. Hellman, New Directions in Cryptography, IEEE Transactions on Information Theory, vol. 22, no. 6, 644-654, 1976, the disclosure of which is incorporated by reference herein, is based on the modular exponentiation function. Specifically, two parties A and B agree on a secret key in accordance with the protocol described in conjunction with FIG. 1. In step 102 , A chooses a random x from the group Z q (i.e., x ⁇ R Z q ) where Z q ⁇ 0, 1, . . . , q-1 ⁇ (or simply the integers mod q).
  • step 106 A transmits X to B.
  • step 108 B chooses a random y from Z q (i.e., Y ⁇ R Z q )
  • a shared secret g xy i.e., a secret key
  • B can calculate the shared secret g xy by computing X y instep 116 .
  • A can calculate the shared secret g xy by computing Y x in step 114 .
  • the shared secret S can now be used by A and B as a session key for secure communication.
  • Diffie-Hellman key exchange can also be performed over other groups in which the discrete log function is difficult to compute, such as certain elliptic curve groups.
  • Groups are well-known in the art, as described in I. N. Herstein, Topics in Algebra, 2nd edition, John Wiley & Sons, New York, 1975, the disclosure of which is incorporated by reference herein, as follows.
  • a nonempty set of elements G is said to form a group if in G there is defined a binary operation, called the product and denoted by ⁇ , such that:
  • Diffie-Hellman key exchange operates in a specific group where the secret keys x and y are indices to elements of the group.
  • G ⁇ g 1 , g 2 , g 3 , g 4 . . . ⁇ .
  • G ⁇ 1g, 2g, 3g, 4g, . . . ⁇ .
  • the notation g x means that the group operation is applied x times on the group generator g. Further, for every group, there is also an inverse group operation represented herein as. As used herein below, the inverse group operation is defined as follows. The inverse group operation on x and y, i.e., x y ,
  • [0037] is defined as x ⁇ y ⁇ 1 .
  • FIG. 2 illustrates a mutual authentication and key exchange protocol in accordance with an explicit authentication approach in which both parties possess a shared password.
  • the communication protocol in FIG. 2 is disclosed in the above-referenced U.S. patent application identified by Ser. No. 09/638,320, filed on Aug. 14, 2000 in the name of V. V. Boyko et al. and entitled “Secure Mutual Network Authentication and Key Exchange Protocol.”
  • the communication protocol uses a Diffie-Hellman type shared secret, but modified such that the two parties may authenticate each other using a shared password. Further, it has been proven that this protocol is secure.
  • steps shown on the left side of the figure are performed by a first party A, and steps shown on the right side of the figure are performed by a second party B.
  • A is a client machine (computer system) and B is a server machine (computer system).
  • a and B are referred to as client and server, respectively, only as an example to show the typical case.
  • the approach shown in FIG. 2 is not limited to the case where A and B are client and server, but instead is applicable to any two parties A and B.
  • Arrows represent communication between the parties.
  • the server authenticates itself to the client and the client authenticates itself to the server. After both sides have authenticated, each generates a secret session key which may be used for subsequent secure communication.
  • the following protocol authenticates both the server and the client.
  • neither the server nor the client are assumed to be authentic, and thus either the server or the client may be an adversary.
  • the client may be an adversary attempting to authenticate itself and gain access to the server.
  • the server may be an adversary attempting to spoof another authentic server in an attempt to gain sensitive information from an unsuspecting client.
  • step 202 the client chooses a random value for the index x from Z q .
  • H 1 (A, B, ⁇ ) is raised to the r power in order to ensure that the result is within G ⁇ p,q ⁇ .
  • a function H from a set S to a set T will be called a random hash function if the output of H looks random or at least is unpredictable until the function is computed with an input x in S. Since H 1 must output something that looks random in Z p *, it should output
  • the security parameter may be, for example, 160.
  • SHA-1 described in FIPS 180-1, Secure Hash Standard, Federal Information Processing Standards Publication 180-1, 1995
  • the tuple (A, B, ⁇ ) is used, rather than only the password, in order to ensure that it is unique for each client-server pair.
  • the password alone is all that is required for heuristic security, but, as discussed in further detail below, the client and server names are used to ensure a formal proof of security.
  • a function of at least the password is combined with the Diffie-Hellman value g x by performing the group operation on the function of at least the password and the Diffie-Hellman value g x .
  • This is an important step of the protocol as it ensures that the Diffie-Hellman value g x may only be extracted from the parameter m by someone who has knowledge of the password. This extraction of the Diffie Hellman value g x will be described in further detail below in conjunction with step 214 .
  • the client transmits the parameter m to the server.
  • the server Upon receipt of the parameter m, the server tests the parameter value in step 208 to ensure that the value is not 0 mod p. If the value is 0 mod p, the server terminates the protocol because 0 is not in Z p *. Otherwise, in step 210 , the server chooses a random value for the index y from Z q . In step 212 , the server assigns a parameter ⁇ to the computed Diffie-Hellman value g y .
  • the server can extract the Diffie Hellman value g x from the value of the received parameter m.
  • the computation in step 214 results in the server generating the Diffie-Hellman shared secret g xy .
  • the parameter k will be used by the client A, as described below, to authenticate that the server is in possession of the correct password.
  • step 218 the server transmits parameters ⁇ and k to the client.
  • the client computes H 2a (A, B, m, ⁇ , ⁇ , ⁇ ) using its own knowledge of ⁇ and tests whether the result is equal to the parameter k received from the server in step 218 . If they are the same, then the client has authenticated the server. If they are not the same, then the client terminates the protocol as the server has not authenticated itself.
  • step 228 the client transmits k′ to the server.
  • H 2b and H 3 are random hash functions which must output sec bits, where sec is the security parameter.
  • step 230 the server computes H 2b (A, B, m, ⁇ , ⁇ , ⁇ ) using its own knowledge of ⁇ grand tests whether the result is equal to the parameter k′ received from the client in step 228 . If they are the same, then the server has authenticated the client. If they are not the same, then the server terminates the protocol as the client has not authenticated itself.
  • both the client and server have authenticated with each other, and both the client and the server have generated the same secure session key K, which may be used for subsequent secure communication between the client and the server.
  • the communication protocol of FIG. 2 provides the advantages of key exchange with password-based authentication
  • the generation of the parameter m as g x ⁇ (H 1 (A, B, ⁇ )) r mod p can be computationally intense. This can be problematic when the client device does not possess the computational resources to adequately perform this portion of the protocol. This maybe the case when the client A is a smaller, slower device such as an older generation personal computer, a smartcard, or a handheld personal digital assistant (PDA), to name a few examples.
  • PDA personal digital assistant
  • B may be a server and is assumed to be more computationally equipped than the client
  • the protocol may be performed between two client-type devices and thus computational efficiency is important on both sides of the protocol.
  • a solution which is able to reduce the client-side computation by at least a factor of two is provided in accordance with the present invention and illustrated in the context of FIG. 3.
  • the communication protocol is a secure password-authenticated key exchange protocol and assumes the hardness of the Decision Diffie-Hellman problem (DDH) in G p,q .
  • DDH Decision Diffie-Hellman problem
  • H 2a , H 2b , H 3 ⁇ 0,1 ⁇ * ⁇ 0, 1 ⁇ ⁇ and H 1 : ⁇ 0,1 ⁇ * ⁇ 0,1 ⁇ ⁇ , where ⁇ l+ ⁇ .
  • H 1 , H 2a , H 2b, and H 3 are independent random functions, as used above in the approach of FIG. 2. Note that while H 1 is described as returning a bit string, we operate on its output as a number modulo p.
  • the client performs two
  • the client only needs to perform three
  • the invention is able to provide such an advantage in the following manner.
  • steps shown on the left side of FIG. 3 are performed by a first party A, and steps shown on the right side of FIG. 3 are performed by a second party B.
  • A is referred to as a client machine (computer system) and B as a server machine (computer system) only as an example to show a typical case.
  • the protocol shown in FIG. 3 is applicable to any two entities or parties A and B.
  • arrows represent communication between the parties.
  • the server authenticates itself to the client and the client authenticates itself to the server.
  • neither the server nor the client are assumed to be authentic, and thus either the server or the client may be an adversary, as explained above.
  • each After both sides have authenticated, each generates a secret session key which may be used for subsequent secure communication.
  • step 302 the client chooses a random value for the index x from Z q (i.e., x ⁇ R Z q ).
  • step 304 the client chooses a random value h from the group Z p * (i.e., h ⁇ R Z p *).
  • H 1 (A, B, ⁇ ) is raised to the r power in order to ensure that the result is within G p,q .
  • the protocol of FIG. 3 allows the result of the hash function to be any element in Z p *, and randomizes that part of the hash function result outside of G p,q . This is accomplished via the randomization operation h q .
  • by raising the random parameter h to the exponent q everything in the result of the hash function outside of the subgroup G p,q is randomized.
  • a function H from a set S to a set Twill be called a random hash function if the output of H looks random or at least is unpredictable until the function is computed with an input x in S.
  • H 1 since H 1 must output something that looks random in Z p *, it should output
  • the security parameter may be, for example, 160.
  • the SHA-1 or the RIPEMD-160 are known functions that generally behave this way.
  • the tuple (A, B, ⁇ ) is used, rather than only the password, in order to ensure that it is unique for each client-server pair.
  • the password alone is all that is required for heuristic security, but the client and server names may be used to ensure a formal proof of security.
  • a function of at least the password is combined with the Diffie-Hellman value g x by performing the group operation on the function of at least the password and the Diffie-Hellman value g x .
  • step 308 the client transmits the parameter m to the server.
  • the server Upon receipt of the parameter m, the server tests the parameter value in step 310 to ensure that the value is not 0 mod p. If the value is 0 mod p, the server terminates the protocol because 0 is not in Z p *. Otherwise, in step 312 , the server chooses a random value for the index y from Z q . In step 314 , the server assigns a parameter ⁇ to the computed Diffie-Hellman value g y .
  • step 316 is performing the inverse group operation on m and the function of at least the password, as well as extracting the randomization associated with the client random operation h q . Substituting the value of m from step 306 , we get g x . Thus, if the server has possession of the correct password ⁇ , then the server can extract the Diffie Hellman value g x from the value of the received parameter m. Thus, the computation in step 316 results in the server generating the Diffie-Hellman shared secret g xy .
  • the parameter k will be used by the client A, as described below, to authenticate that the server is in possession of the correct password.
  • step 320 the server transmits parameters ⁇ and k to the client.
  • the client computes H 2a (A, B, m, ⁇ , ⁇ , ⁇ ) using its own knowledge of ⁇ and tests whether the result is equal to the parameter k received from the server in step 320 . If they are the same, then the client has authenticated the server. If they are not the same, then the client terminates the protocol as the server has not authenticated itself.
  • step 330 the client transmits k′ to the server.
  • H 2b and H 3 are random hash functions which must output sec bits, where sec is the security parameter.
  • step 332 the server computes H 2b (A, B, m, ⁇ , ⁇ , ⁇ ) using its own knowledge of ⁇ and tests whether the result is equal to the parameter k′ received from the client in step 330 . If they are the same, then the server has authenticated the client. If they are not the same, then the server terminates the protocol as the client has not authenticated itself.
  • both the client and server have authenticated with each other, and both the client and the server have generated the same secure session key K, which may be used for subsequent secure communication between the client and the server.
  • the communication protocol of the invention reduces the client-side computation by at least a factor of two, as compared to the protocol of FIG. 2.
  • p is a 1024 bit prime
  • q is a 160 bit prime
  • r is 864 bits. Every exponentiation in Z p * takes time proportional to the number of bits of the exponent.
  • this value (480) is less than half the value associated with the FIG. 2 protocol (1184).
  • FIG. 4 illustrates a generalized hardware architecture of a data network and computer systems suitable for implementing a password-authenticated key exchange methodology between two entities A and B according to the present invention.
  • entity A comprises a computer system 402
  • entity B comprises a computer system 404
  • the two computer systems 402 and 404 are coupled via a data network 406 .
  • the data network may be any data network across which A and B desire to communicate, e.g., the Internet.
  • the invention is not limited to a particular type of network.
  • A is a client machine and B is a server machine.
  • a and B are referred to as client and server, respectively, only as an example to show the typical case.
  • the communication protocol of the present invention is not limited to the case where A and B are client and server, but instead is applicable to any computing devices comprising A and B.
  • the server and client may be implemented as programmed computers operating under control of computer program code.
  • the computer program code would be stored in a computer readable medium (e.g., a memory) and the code would be executed by a processor of the computer.
  • a computer readable medium e.g., a memory
  • the code would be executed by a processor of the computer.
  • FIG. 4 generally illustrates an exemplary architecture for each computer system communicating over the network.
  • the client device comprises I/O devices 408 -A, processor 410 -A, and memory 412 -A.
  • the server system comprises I/O devices 408 -B, processor 410 -B, and memory 412 -B.
  • processor as used herein is intended to include one or more processing devices, including a central processing unit (CPU) or other processing circuitry.
  • memory as used herein is intended to include memory associated with a processor or CPU, such as RAM, ROM, a fixed memory device (e.g., hard drive), or a removable memory device (e.g., diskette or CDROM).
  • I/O devices as used herein is intended to include one or more input devices (e.g., keyboard, mouse) for inputting data to the processing unit, as well as one or more output devices (e.g., CRT display) for providing results associated with the processing unit.
  • software instructions or code for performing the methodologies of the invention, described herein may be stored in one or more of the associated memory devices, e.g., ROM, fixed or removable memory, and, when ready to be utilized, loaded into RAM and executed by the CPU.
  • the invention may be employed in accordance with the implicit authentication approach of the above-reference application, as well as with the password verifier approach described therein.
  • certain parameters are used in evaluating the hash functions of the communication protocol of the invention, it is to be understood that not all parameters are required for heuristic security. That is, additional parameters are used to allow the protocol to be formally proven secure. For example, in the hash functions used in steps 318 , 324 , 326 , 328 , 332 , and 334 , only the parameter ⁇ in the function may be needed to make the protocol heuristically secure.

Abstract

A secure protocol is provided which uses a Diffie-Hellman type shared secret, but modified such that the two parties may authenticate each other using a shared password. In accordance with the invention, a party generates the Diffie-Hellman value gx and combines it with a function of at least the password using a group operation, wherein any portion of a result associated with the function that is outside the group is randomized. The resulting value is transmitted to the other party. The group operation is defined for the particular group being used. Every group has a group operation and a corresponding inverse group operation. Upon receipt of the value, the other party performs the inverse group operation on the received value and the function of at least the password, and removes the randomization of any portion of the result associated with the function that is outside the group, to extract gx such that the other party may then generate the shared secret gxy using its knowledge of y.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • The present application is related to the commonly assigned U.S. patent application identified by Ser. No. 09/638,320, filed on Aug. 14, 2000 in the name of V. V. Boyko et al. and entitled “Secure Mutual Network Authentication and Key Exchange Protocol,” the disclosure of which is incorporated by reference herein.[0001]
  • FIELD OF THE INVENTION
  • The present invention generally relates to techniques for providing network authentication and key exchange and, more particularly, to techniques for improving the computational efficiency associated with such network authentication and key exchange. [0002]
  • BACKGROUND OF THE INVENTION
  • Authentication over a network is an important part of security for systems that allow remote clients to access network servers. Authentication is generally accomplished by verifying one or more of the following: [0003]
  • (i) something a user knows, e.g. a password; [0004]
  • (ii) something a user is, i.e., biometric information, such as a fingerprint; and [0005]
  • (iii) something a user has, i.e., some identification token, such as a smart-card. [0006]
  • For example, an automatic teller machine (ATM) verifies two of these: something a user has, the ATM card, and something a user knows, a personal identification number (PIN). ATM authentication is significantly easier than authentication over a data network because the ATM itself is considered trusted hardware, such that it is trusted to verify the presence of the ATM card and to transfer the correct information securely to a central transaction server. [0007]
  • In addition to authentication, key exchange is an important part of communication across a data network. Once a client and server have been authenticated, a secure communication channel must be set up between them. This is generally accomplished by the client and server exchanging a key, called a session key, for use during communication subsequent to authentication. [0008]
  • Authentication over a data network, especially a public data network like the Internet, is difficult because the communication between the client and server is susceptible to many different types of attacks. For example, in an eavesdropping attack, an adversary may learn secret information by intercepting communication between the client and the server. If the adversary learns password information, the adversary may replay that information to the server to impersonate the legitimate client in what is called a replay attack. Replay attacks are effective even if the password sent from the client is encrypted because the adversary does not need to know the actual password, but instead must provide something to the server that the server expects from the legitimate client (in this case, an encrypted password). Another type of attack is a spoofing attack, in which an adversary impersonates the server, so that the client believes that it is communicating with the legitimate server, but instead is actually communicating with the adversary. In such an attack, the client may provide sensitive information to the adversary. [0009]
  • Further, in any password-based authentication protocol, there exists the possibility that passwords will be weak such that they are susceptible to dictionary attacks. A dictionary attack is a brute force attack on a password that is performed by testing a large number of likely passwords (e.g., all the words in an English dictionary) against some known information about the desired password. The known information may be publicly available or may have been obtained by the adversary through one of the above-described techniques. Dictionary attacks are often effective because users often choose easily remembered, and easily guessed, passwords. [0010]
  • There are various known techniques for network authentication. These known techniques will be divided into two classifications. The first classification includes those techniques that require persistent stored data on the client system. The second classification includes those techniques which do not require persistent stored data on the client system. [0011]
  • With respect to the first classification, persistent stored data may include either secret data (e.g., secret keys shared with the authenticating server) which must never be revealed, or non-secret but sensitive data (e.g., the authenticating server's public key) which must be tamper-proof. With either type of persistent data, extra security requirements are necessary to secure the data from attack from an adversary. Further, when using an authentication protocol which relies on both passwords and persistent stored data, a compromise of either may lead to a vulnerability of the other. For example, compromising a secret key may lead to a possible dictionary attack on the password. Another problem with this first class of protocols is that persistent stored data requires generation and distribution of keys, which can be cumbersome, and generally provides a less flexible system. [0012]
  • The second classification is called password-only authentication protocols because there is no requirement of persistent stored data at the client. The client only needs to be able to provide a legitimate password. The notion of providing strong security and authentication using potentially weak passwords seems to be contradictory. However, there exist several password-only user authentication and key exchange protocols that are designed to be secure. A description of these protocols may be found in D. Jablon, [0013] Strong Password-Only Authenticated Key Exchange, ACM Computer Communication Review, ACM SIGCOMM, 26(5):5-20,1996, the disclosure of which is incorporated by reference herein. Some of the more notable of the password-only protocols include Encrypted Key Exchange (EKE) described in S. M. Bellovin and M. Merritt, Encrypted Key Exchange: Password-Based Protocols Secure Against Dictionary Attacks, Proceedings of the IEEE Symposium on Research in Security and Privacy, pp.72-84,1992; Augmented-EKE (A-EKE), S. M. Bellovin and 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, pages 244-250; Modified EKE (M-EKE), M. Steiner, G. Tsudik, and M. Waidner, Refinement and Extension of Encrypted Key Exchange, ACM Operating System Review, 29:22-30,1995; Simple Password EKE (SPEKE) and Diffie-Hellman EKE (DH-EKE), both described 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, pages 97-111, 1998; Open Key Exchange (OKE), Stefan Lucks, Open Key Exchange: How to Defeat Dictionary Attacks Without Encrypting Public Keys, Security Protocol Workshop, Ecole Normale Sup'erieure, Apr. 7-9, 1997; Authenticated Key Exchange (AKE), M. Bellare, D. Pointcheval, and P. Rogaway, Authenticated Key Exchange Secure Against Dictionary Attacks, Advances in Cryptology, pp.139-155, Eurocrypt 2000; and commonly assigned U.S. patent application identified by Ser. No. 09/353,468, filed on Jul. 13, 1999 in the name of P. D. MacKenzie et al. and entitled “Secure Mutual Network Authentication Protocol (SNAPI),” the disclosures of which are incorporated by reference herein.
  • The problem with most of the known password-only authentication protocols is that they have not been proven secure. In fact, the EKE protocol may be susceptible to a certain number of theoretic attacks as described in S. Patel, [0014] Number Theoretic Attacks on Secure Password Schemes, Proceedings of the IEEE Symposium on Research in Security and Privacy, pages 236-247,1997, the disclosure of which is incorporated by reference herein. While the AKE protocol has been proven secure, it requires strong assumptions to prove security. Further, while the SNAPI protocol has also been proven secure, the protocol is based on the RSA algorithm rather than Diffie-Hellman.
  • Commonly assigned U.S. patent application identified by Ser. No. 09/638,320, filed on Aug. 14, 2000 in the name of V. V. Boyko et al. and entitled “Secure Mutual Network Authentication and Key Exchange Protocol,” the disclosure of which is incorporated by reference herein, discloses a secure password-only mutual network authentication and key exchange protocol which is provably secure and uses a Diffie-Hellman type shared secret, but modified such that the two parties may authenticate each other using a shared password. [0015]
  • SUMMARY OF THE INVENTION
  • The present invention provides a secure password-only mutual network authentication protocol which is provably secure. In accordance with the inventive protocol, two parties generate a shared secret using a Diffie-Hellman type key exchange. As is known, in accordance with a Diffie-Hellman type key exchange, there is a group generator g for a particular group, an index x known to one party, an index y known to the other party, and the shared secret g[0016] xy. One party generates gx, the other party generates gy, and the parties exchange these values so that each party may now generate the shared secret gxy. While Diffie-Hellman defines a key exchange protocol, the protocol has no authentication aspects.
  • Thus, in accordance with the present invention, we provide a protocol which uses a Diffie-Hellman type shared secret, but modified such that the two parties may authenticate each other using a shared password. Further, we have proven that this protocol is secure. In accordance with the invention, a party generates the Diffie-Hellman value g[0017] x and combines it with a function of at least the password using a group operation, wherein any portion of a result associated with the function that is outside the group is randomized. The resulting value is transmitted to the other party. The group operation is defined for the particular group being used, and will be described in further detail below. For present purposes, it is sufficient to recognize that every group has a group operation and a corresponding inverse group operation.
  • Upon receipt of the value, the other party performs the inverse group operation on the received value and the function of at least the password, and removes the randomization of any portion of the result associated with the function that is outside the group, to extract g[0018] x such that the other party may then generate the shared secret gxy using its knowledge of y.
  • The use of the group operation and the inverse group operation in conjunction with a Diffie-Hellman type key exchange protocol as described herein provides benefits over password-only mutual network authentication protocols. The randomization of any portion of the result associated with the function that is outside the group reduces the computational intensity associated with the operations performed by the one party. Advantageously, the present invention provides a protocol which can be proven to be secure against attacks by adversaries which have access to the communication channel. [0019]
  • As described above, the Diffie-Hellman value g[0020] x is combined with a function of at least the password. The term “at least” is used because, in various embodiments, gx may be combined with a function of the password alone, or a function of the password along with identifiers of the parties to the protocol in order to ensure that the password is unique for any particular pair of parties.
  • In accordance with one embodiment of the invention, the parties may authenticate each other by computing a function of at least certain parameters, transmitting the computed value to the other party, and then each party checking the received value against its own computed value. The parameters used for the computation may be at least one of a party identifier, the Diffie-Hellman value (g[0021] x or gy), the shared secret, and the shared password. By computing a function of at least one of these values, the parties may authenticate that the other party is in possession of the shared password.
  • These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.[0022]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates the Diffie-Hellman key exchange protocol; [0023]
  • FIG. 2 illustrates a mutual authentication and key exchange protocol in which both parties possess a shared password; [0024]
  • FIG. 3 illustrates an improved efficiency mutual authentication and key exchange protocol in accordance with an embodiment of the present invention in which both parties possess a shared password; and [0025]
  • FIG. 4 illustrates a generalized hardware architecture of a data network and computer systems suitable for implementing one or more of the password-authenticated key exchange methodologies according to the present invention.[0026]
  • DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
  • Cryptography is a well-known technique for providing secure communication between two parties. Prior to describing various embodiments of the present invention, some background and basic terminology will be provided. [0027]
  • Informally, a function f from a set S to a set T is a one-way function if f (x) is easy to compute for all x in S but for most y in T, it is computationally infeasible to find any x in S where f (x)=y. One example of a one-way function is modular exponentiation. Let p be a large prime and g a generator of the multiplicative group mod p (that is, the numbers in the range 1, . . . , p-1). Then f (x)=g[0028] x mod p is generally assumed to be a one-way function. The inverse function, called the discrete log function, is difficult to compute. There are also other groups in which the discrete log function is difficult to compute, such as certain elliptic curve groups.
  • Let k and l denote security parameters, where k is the main security parameter and can be thought of as a general security parameter for hash functions and secret keys (e.g., 160 bits), and l>k can be thought of as a security parameter for discrete-log-based public keys (e.g., 1024 or 2048 bits). Let {0,1}* denote the set of finite binary strings and {0,1}[0029] n denote the set of binary strings of length n. A real-valued function ε(n) is negligible if for every c>0, there exists nc>0 such that ε(n)−1/nc for all n>nc. Let q of size at least k and p of size l be primes such that p=rq+1 for some value r co-prime to q. Let g be a generator of a subgroup of Zp* of size q. Call this subgroup Gp,q.
  • A key exchange protocol called Diffie-Hellman Key Exchange and described in W. Diffie and M. Hellman, [0030] New Directions in Cryptography, IEEE Transactions on Information Theory, vol. 22, no. 6, 644-654, 1976, the disclosure of which is incorporated by reference herein, is based on the modular exponentiation function. Specifically, two parties A and B agree on a secret key in accordance with the protocol described in conjunction with FIG. 1. In step 102, A chooses a random x from the group Zq (i.e., x εR Zq) where Zq={0, 1, . . . , q-1} (or simply the integers mod q). In step 104, A computes X=gx mod p. In step 106, A transmits X to B. In step 108, B chooses a random y from Zq (i.e., Y εR Zq) In step 110, B computes Y=gy mod p and transmits Y to A in step 112. At this point, a shared secret gxy (i.e., a secret key) can be computed by both A and B. Note that herein below we may ignore the mod p notation for notational simplicity if it is clear that we are working in mod p. Since X=gx was transmitted from A to B in step 106, B can calculate the shared secret gxy by computing Xy instep 116. Similarly, since Y=gy was transmitted from B to A in step 112, A can calculate the shared secret gxy by computing Yx in step 114. The shared secret S can now be used by A and B as a session key for secure communication.
  • Diffie-Hellman key exchange can also be performed over other groups in which the discrete log function is difficult to compute, such as certain elliptic curve groups. Groups are well-known in the art, as described in I. N. Herstein, Topics in Algebra, 2nd edition, John Wiley & Sons, New York, 1975, the disclosure of which is incorporated by reference herein, as follows. A nonempty set of elements G is said to form a group if in G there is defined a binary operation, called the product and denoted by·, such that: [0031]
  • 1. a, b ε G implies that a·b ε G (closed). [0032]
  • 2. a, b, c, ε G implies that a·(b·c)=(a·b)·c (associative law). [0033]
  • 3. There exists an element e ε G such that a·e=e·a=a for all a ε G (the existence of an identity element in G). [0034]
  • 4. For every a ε G there exists an element a[0035] −1 ε G such that a·a−1=a−1·a=e (the existence of inverses in G).
  • Thus, more generally, Diffie-Hellman key exchange operates in a specific group where the secret keys x and y are indices to elements of the group. Thus, consider a group G with a group generator g ε G and G={g, g·g, g·g·g, g·g·g·g, . . . } where·is the group operation. As examples, if the group operation·for G is multiplication, then G={g[0036] 1, g2, g3, g4. . . }. If the group operation·for G is addition, then G={1g, 2g, 3g, 4g, . . . }. Since the present invention may be implemented using different groups, as used herein below, the notation gx means that the group operation is applied x times on the group generator g. Further, for every group, there is also an inverse group operation represented herein as. As used herein below, the inverse group operation is defined as follows. The inverse group operation on x and y, i.e.,   x y ,
    Figure US20020194478A1-20021219-M00001
  • is defined as x·y[0037]   −1.
  • FIG. 2 illustrates a mutual authentication and key exchange protocol in accordance with an explicit authentication approach in which both parties possess a shared password. The communication protocol in FIG. 2 is disclosed in the above-referenced U.S. patent application identified by Ser. No. 09/638,320, filed on Aug. 14, 2000 in the name of V. V. Boyko et al. and entitled “Secure Mutual Network Authentication and Key Exchange Protocol.” In general, the communication protocol uses a Diffie-Hellman type shared secret, but modified such that the two parties may authenticate each other using a shared password. Further, it has been proven that this protocol is secure. [0038]
  • In accordance with FIG. 2, steps shown on the left side of the figure are performed by a first party A, and steps shown on the right side of the figure are performed by a second party B. Typically, A is a client machine (computer system) and B is a server machine (computer system). However, this is not required, and A and B are referred to as client and server, respectively, only as an example to show the typical case. Thus, it is to be understood that the approach shown in FIG. 2 is not limited to the case where A and B are client and server, but instead is applicable to any two parties A and B. Arrows represent communication between the parties. In accordance with the protocol, the server authenticates itself to the client and the client authenticates itself to the server. After both sides have authenticated, each generates a secret session key which may be used for subsequent secure communication. [0039]
  • Prior to initiation of the protocol, it is assumed that the client and the server are in possession of a password π which the client uses to authenticate with the server. [0040]
  • It is noted that the following protocol authenticates both the server and the client. Thus, neither the server nor the client are assumed to be authentic, and thus either the server or the client may be an adversary. The client may be an adversary attempting to authenticate itself and gain access to the server. The server may be an adversary attempting to spoof another authentic server in an attempt to gain sensitive information from an unsuspecting client. [0041]
  • Returning now to FIG. 2, in [0042] step 202, the client chooses a random value for the index x from Zq. Then, in step 204, the client computes a parameter m as m=gx·(H1(A, B, π))r mod p, where A is a unique identifier of the client, B is a unique identifier of the server, π is the client's password for this particular server, H1 is a random hash function, and·represents the group operation. H1(A, B,π) is raised to the r power in order to ensure that the result is within G{p,q}. Informally, a function H from a set S to a set T will be called a random hash function if the output of H looks random or at least is unpredictable until the function is computed with an input x in S. Since H1 must output something that looks random in Zp*, it should output |p |+sec bits (where |p | is the number of bits of p and sec is the security parameter. The security parameter may be, for example, 160. Known functions that generally behave this way are SHA-1, described in FIPS 180-1, Secure Hash Standard, Federal Information Processing Standards Publication 180-1, 1995; and RIPEMD-160, described in H. Dobbertin, A. Bosselaers, B. Preneel, RIPEMD-160: a strengthened version of RIPEMD, In Fast Software Encryption, 3rd Intl. Workshop, 71-82, 1996, the disclosures of which are incorporated by reference herein.
  • The tuple (A, B, π) is used, rather than only the password, in order to ensure that it is unique for each client-server pair. The password alone is all that is required for heuristic security, but, as discussed in further detail below, the client and server names are used to ensure a formal proof of security. Thus, in accordance with the protocol in FIG. 2, a function of at least the password is combined with the Diffie-Hellman value g[0043] x by performing the group operation on the function of at least the password and the Diffie-Hellman value gx. This is an important step of the protocol as it ensures that the Diffie-Hellman value gx may only be extracted from the parameter m by someone who has knowledge of the password. This extraction of the Diffie Hellman value gx will be described in further detail below in conjunction with step 214. In step 206, the client transmits the parameter m to the server.
  • Upon receipt of the parameter m, the server tests the parameter value in [0044] step 208 to ensure that the value is not 0 mod p. If the value is 0 mod p, the server terminates the protocol because 0 is not in Zp*. Otherwise, in step 210, the server chooses a random value for the index y from Zq. In step 212, the server assigns a parameter μ to the computed Diffie-Hellman value gy. Next, in step 214, the server computes the Diffie-Hellman shared secret gxy (referred to as σ in this protocol) using the received parameter m as follows: σ = ( m ( H 1 ( A , B , π ) ) r ) y
    Figure US20020194478A1-20021219-M00002
  • mod p. We will now describe this step in further detail (leaving out the mod p notation for notational simplicity). First, it should be recalled that, as described above, for every group operation, there is an inverse group operation such that the inverse group operation on x and y, i.e.   [0045] x y ,
    Figure US20020194478A1-20021219-M00003
  • is defined as x·y[0046]   −1. Thus, one skilled in the art would recognize that the calculation of m ( H 1 ( A , B , π ) ) r
    Figure US20020194478A1-20021219-M00004
  • in step [0047] 214 is performing the inverse group operation on m and the function of at least the password. Substituting the value of m from step 204, we have g x · ( H 1 ( A , B , π ) ) r ( H 1 ( A , B , π ) ) r = g x .
    Figure US20020194478A1-20021219-M00005
  • Thus, if the server has possession of the correct password π, then the server can extract the Diffie Hellman value g[0048] x from the value of the received parameter m. Thus, the computation in step 214 results in the server generating the Diffie-Hellman shared secret gxy.
  • Next, in [0049] step 216, the server computes k=H2a (A, B, m, μ, σ,π, where H2a is another random hash function which must output sec bits, where sec is the security parameter. The parameter k will be used by the client A, as described below, to authenticate that the server is in possession of the correct password. In step 218, the server transmits parameters μ and k to the client.
  • Upon receipt of parameters μ and k, the client computes σ=μ[0050] x mod p in step 220. Since μ=gy, μx=gxy, which is the Diffie-Hellman shared secret. In step 222, the client computes H2a (A, B, m, μ, σ, π) using its own knowledge of π and tests whether the result is equal to the parameter k received from the server in step 218. If they are the same, then the client has authenticated the server. If they are not the same, then the client terminates the protocol as the server has not authenticated itself. In step 224, the client computes k′=H2b (A, B, m, μ, σ, π) which will be used by the server to authenticate the client as described below. In step 226, the client generates session key K as K=H3(A, B, m, μ, σ, π). In step 228, the client transmits k′ to the server. Again, H2b and H3 are random hash functions which must output sec bits, where sec is the security parameter.
  • In [0051] step 230, the server computes H2b (A, B, m, μ, σ, π) using its own knowledge of π grand tests whether the result is equal to the parameter k′ received from the client in step 228. If they are the same, then the server has authenticated the client. If they are not the same, then the server terminates the protocol as the client has not authenticated itself. In step 232, the server generates session key K as K=H3 (A, B, m, μ, σ, π).
  • At this point, both the client and server have authenticated with each other, and both the client and the server have generated the same secure session key K, which may be used for subsequent secure communication between the client and the server. [0052]
  • Thus, while the communication protocol of FIG. 2 provides the advantages of key exchange with password-based authentication, the generation of the parameter m as g[0053] x·(H1 (A, B, π))r mod p can be computationally intense. This can be problematic when the client device does not possess the computational resources to adequately perform this portion of the protocol. This maybe the case when the client A is a smaller, slower device such as an older generation personal computer, a smartcard, or a handheld personal digital assistant (PDA), to name a few examples. Also, while B may be a server and is assumed to be more computationally equipped than the client, the protocol may be performed between two client-type devices and thus computational efficiency is important on both sides of the protocol. A solution which is able to reduce the client-side computation by at least a factor of two is provided in accordance with the present invention and illustrated in the context of FIG. 3.
  • Referring now to FIG. 3, an improved efficiency mutual authentication and key exchange protocol is provided in accordance with an embodiment of the present invention in which both parties possess a shared password. The communication protocol is a secure password-authenticated key exchange protocol and assumes the hardness of the Decision Diffie-Hellman problem (DDH) in G[0054] p,q. Let DH(X, Y) denote the Diffie-Hellman value gxy of X=gx and Y=gy, as described above. One formulation is that given g, X, Y, Z in Gp,q, where X=gx and Y=gy are chosen randomly, and Z is either DH(X, Y) or random, each with half probability, determine if Z=DH(X, Y). Breaking DDH implies constructing a polynomial-time adversary that distinguishes Z=DH(X, Y) from a random Z with non-negligible advantage over a random guess.
  • Further, we define hash functions H[0055] 2a, H2b, H3:{0,1}*→{0, 1}κ and H1:{0,1}*→{0,1}η, where η≧l+κ. We also assume that H1, H2a, H 2b, and H3 are independent random functions, as used above in the approach of FIG. 2. Note that while H1 is described as returning a bit string, we operate on its output as a number modulo p.
  • In accordance with the communication protocol of FIG. 2, note that the client performs two |q|-bit exponentiations ([0056] steps 204 and 220), and one |r|-bit exponentiation (step 204). As will be explained below in the context of FIG. 3, in accordance with a communication protocol of the present invention, the client only needs to perform three |q|-bit exponentiations, which generally require much less computation as compared with the protocol of FIG. 2. The invention is able to provide such an advantage in the following manner. Instead of forcing the result of the hash function used to generate parameter m to be in the group Gp,q, we allow the result of the hash function to be any element in Zp*, and randomize that part of the hash function result outside of Gpp,q. This makes the m value indistinguishable from a random value in Zp* (instead of a random value in Gp,q), but still allows one to extract the hash value and the extra randomization.
  • In this case, we have p=rq+1 in which gcd(r,q)=1 (where gcd stands for greatest common divisor), in order to extract the extra randomization. Of course, for randomly chosen q and p (for instance, using the NIST approved algorithm described in U.S. Department of Commerce/NIST, Springfield, Va., FIPS 186, “Digital Signature Standard,” Federal Information Processing Standards Publication 186, 1994, the disclosure of which is incorporated by reference herein), this relation may be satisfied with high probability. [0057]
  • As with FIG. 2, steps shown on the left side of FIG. 3 are performed by a first party A, and steps shown on the right side of FIG. 3 are performed by a second party B. Again, A is referred to as a client machine (computer system) and B as a server machine (computer system) only as an example to show a typical case. Thus, it is to be understood that the protocol shown in FIG. 3 is applicable to any two entities or parties A and B. Again, arrows represent communication between the parties. In accordance with the protocol of FIG. 3, the server authenticates itself to the client and the client authenticates itself to the server. Thus, neither the server nor the client are assumed to be authentic, and thus either the server or the client may be an adversary, as explained above. After both sides have authenticated, each generates a secret session key which may be used for subsequent secure communication. [0058]
  • As with the FIG. 2 protocol, prior to initiation of the FIG. 3 protocol of the invention, it is assumed that the client and the server are in possession of a password π which the client uses to authenticate with the server. [0059]
  • Returning now to FIG. 3, in [0060] step 302, the client chooses a random value for the index x from Zq (i.e., x εR Zq). In step 304, the client chooses a random value h from the group Zp* (i.e., h εR Zp*). Then, in step 306, the client computes a parameter m as m=gx·hq·H1(A, B, π) where A is a unique identifier of the client, B is a unique identifier of the server, H1 is the client's password for this particular server, H1 is a random hash function,·represents the group operation, and hq is a randomization operation. Recall that in the protocol of FIG. 2, H1 (A, B, π) is raised to the r power in order to ensure that the result is within Gp,q. However, in accordance with the present invention, instead of forcing the result of the hash function used to generate parameter m to be in the group Gp,q, the protocol of FIG. 3 allows the result of the hash function to be any element in Zp*, and randomizes that part of the hash function result outside of Gp,q. This is accomplished via the randomization operation hq. This makes the m value indistinguishable from a random value in instead of a random value in Gp,q, but still allows the server B to extract the hash value and the extra randomization. Advantageously, by raising the random parameter h to the exponent q, everything in the result of the hash function outside of the subgroup Gp,q is randomized.
  • As explained above, a function H from a set S to a set Twill be called a random hash function if the output of H looks random or at least is unpredictable until the function is computed with an input x in S. Thus, since H[0061] 1 must output something that looks random in Zp*, it should output |p|+sec bits (where |p|is the number of bits of p and sec is the security parameter. The security parameter may be, for example, 160. Again, the SHA-1 or the RIPEMD-160 are known functions that generally behave this way.
  • As in the protocol of FIG. 2, the tuple (A, B, π) is used, rather than only the password, in order to ensure that it is unique for each client-server pair. The password alone is all that is required for heuristic security, but the client and server names may be used to ensure a formal proof of security. Thus, in accordance with the protocol in FIG. 3, a function of at least the password is combined with the Diffie-Hellman value g[0062] x by performing the group operation on the function of at least the password and the Diffie-Hellman value gx. Again, this is an important step of the protocol as it ensures that the Diffie-Hellman value gx may only be extracted from the parameter m by someone who has knowledge of the password. In step 308, the client transmits the parameter m to the server.
  • Upon receipt of the parameter m, the server tests the parameter value in [0063] step 310 to ensure that the value is not 0 mod p. If the value is 0 mod p, the server terminates the protocol because 0 is not in Zp*. Otherwise, in step 312, the server chooses a random value for the index y from Zq. In step 314, the server assigns a parameter μ to the computed Diffie-Hellman value gy. Next, in step 316, the server computes the Diffie-Hellman shared secret gxy (referred to as σ in this protocol) using the received parameter m as follows: σ = ( ( m H 1 ( A , B , π ) ) r ) yr - 1 mod q .
    Figure US20020194478A1-20021219-M00006
  • We will now describe this step in further detail. First, it should be recalled that, as described above, for every group operation, there is an inverse group operation such that the inverse group operation on x and y, i.e. [0064] x y ,
    Figure US20020194478A1-20021219-M00007
  • is defined as x·y[0065] −1 Thus, one skilled in the art would recognize that the calculation of σ = ( ( m H 1 ( A , B , π ) ) r ) yr - 1 mod q
    Figure US20020194478A1-20021219-M00008
  • in step [0066] 316 is performing the inverse group operation on m and the function of at least the password, as well as extracting the randomization associated with the client random operation hq. Substituting the value of m from step 306, we get gx. Thus, if the server has possession of the correct password π, then the server can extract the Diffie Hellman value gx from the value of the received parameter m. Thus, the computation in step 316 results in the server generating the Diffie-Hellman shared secret gxy.
  • Next, in step [0067] 318, the server computes k=H2a (A, B, m, μ, σ, π) where H2a is another random hash function which must output sec bits, where sec is the security parameter. The parameter k will be used by the client A, as described below, to authenticate that the server is in possession of the correct password. In step 320, the server transmits parameters μ and k to the client.
  • Upon receipt of parameters μ and k, the client computes σ=μ[0068] x mod p in step 322. Since μ=gy, μx,=gxy, which is the Diffie-Hellman shared secret. In step 324, the client computes H2a (A, B, m, μ, σ, π) using its own knowledge of π and tests whether the result is equal to the parameter k received from the server in step 320. If they are the same, then the client has authenticated the server. If they are not the same, then the client terminates the protocol as the server has not authenticated itself. In step 326, the client computes k′=H2b (A, B, m, μ, σ, π) which will be used by the server to authenticate the client as described below. In step 328, the client generates session key K as K=H3 (A, B, m, μ, σ, π). In step 330, the client transmits k′ to the server. Again, H2b and H3 are random hash functions which must output sec bits, where sec is the security parameter.
  • In step [0069] 332, the server computes H2b (A, B, m, μ, σ, π) using its own knowledge of π and tests whether the result is equal to the parameter k′ received from the client in step 330. If they are the same, then the server has authenticated the client. If they are not the same, then the server terminates the protocol as the client has not authenticated itself. In step 334, the server generates session key K as K=H3 (A, B, m, μ, σ, π).
  • At this point, both the client and server have authenticated with each other, and both the client and the server have generated the same secure session key K, which may be used for subsequent secure communication between the client and the server. [0070]
  • As mentioned above, the communication protocol of the invention, as illustrated in the context of FIG. 3, reduces the client-side computation by at least a factor of two, as compared to the protocol of FIG. 2. This is evident from the following example. Assume p is a 1024 bit prime, and q is a 160 bit prime. Then, r is 864 bits. Every exponentiation in Z[0071] p* takes time proportional to the number of bits of the exponent. Then, in the protocol of FIG. 2, where two q-bit exponentiations and one r-bit exponentiation are performed, the time is proportional to 2*160+864=1184, while in the protocol of the invention (as illustrated in FIG. 3) where three q-bit exponentiations are performed, the time is proportional to 3* 160=480. Advantageously, this value (480) is less than half the value associated with the FIG. 2 protocol (1184).
  • FIG. 4 illustrates a generalized hardware architecture of a data network and computer systems suitable for implementing a password-authenticated key exchange methodology between two entities A and B according to the present invention. As shown, entity A comprises a [0072] computer system 402, while entity B comprises a computer system 404. The two computer systems 402 and 404 are coupled via a data network 406. The data network may be any data network across which A and B desire to communicate, e.g., the Internet. However, the invention is not limited to a particular type of network. Typically, and as labeled in FIG. 4, A is a client machine and B is a server machine. However, this is not required, and A and B are referred to as client and server, respectively, only as an example to show the typical case. Thus, it is to be understood that the communication protocol of the present invention is not limited to the case where A and B are client and server, but instead is applicable to any computing devices comprising A and B.
  • As would be readily apparent to one of ordinary skill in the art, the server and client may be implemented as programmed computers operating under control of computer program code. The computer program code would be stored in a computer readable medium (e.g., a memory) and the code would be executed by a processor of the computer. Given this disclosure of the invention, one skilled in the art could readily produce appropriate computer program code in order to implement the protocols described herein. [0073]
  • Nonetheless, FIG. 4 generally illustrates an exemplary architecture for each computer system communicating over the network. As shown, the client device comprises I/O devices [0074] 408-A, processor 410-A, and memory 412-A. The server system comprises I/O devices 408-B, processor 410-B, and memory 412-B. It should be understood that the term “processor” as used herein is intended to include one or more processing devices, including a central processing unit (CPU) or other processing circuitry. Also, the term “memory” as used herein is intended to include memory associated with a processor or CPU, such as RAM, ROM, a fixed memory device (e.g., hard drive), or a removable memory device (e.g., diskette or CDROM). In addition, the term “I/O devices” as used herein is intended to include one or more input devices (e.g., keyboard, mouse) for inputting data to the processing unit, as well as one or more output devices (e.g., CRT display) for providing results associated with the processing unit. Accordingly, software instructions or code for performing the methodologies of the invention, described herein, may be stored in one or more of the associated memory devices, e.g., ROM, fixed or removable memory, and, when ready to be utilized, loaded into RAM and executed by the CPU.
  • Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be affected therein by one skilled in the art without departing from the scope or spirit of the invention. For example, while the teachings of the invention have been illustrated in the context of a communication protocol which provides computational efficiencies over the communication protocol described above in FIG. 2, it is to be understood that the invention may be applied in the context of other communication protocols. For example, the randomization operation of the invention may be employed in accordance with other protocol embodiments described in the above-referenced U.S. patent application identified by Ser. No. 09/638,320, filed on Aug. 14, 2000 in the name of V. V. Boyko et al. and entitled “Secure Mutual Network Authentication and Key Exchange Protocol.” For example, the invention may be employed in accordance with the implicit authentication approach of the above-reference application, as well as with the password verifier approach described therein. Furthermore, while certain parameters are used in evaluating the hash functions of the communication protocol of the invention, it is to be understood that not all parameters are required for heuristic security. That is, additional parameters are used to allow the protocol to be formally proven secure. For example, in the hash functions used in [0075] steps 318, 324, 326, 328, 332, and 334, only the parameter σ in the function may be needed to make the protocol heuristically secure.

Claims (20)

What is claimed is:
1. A method for communication via a data network, between two parties that share a password, using a Diffie-Hellman type key exchange on a particular group to generate a shared secret gxy, where g is the group generator known to both parties and x is an index known to one party and y is an index known to the other party, the group having a group operation and an inverse group operation, the method comprising the steps of:
one party generating a parameter m by performing the group operation on gx and a function of at least the password, wherein any portion of a result associated with the function that is outside the group is randomized, and transmitting m to the other party, whereby the other party may perform the inverse group operation on m and the function of at least the password, and remove the randomization of any portion of the result associated with the function that is outside the group, to extract gx and calculate the shared secret gxy.
2. The method of claim 1, wherein the particular group, denoted as Gp,q, is a sub-group of a group Zp* where p and q are prime numbers such that p equals rq+1 for a value r co-prime to q, and wherein the step of randomizing any portion of a result associated with the function that is outside the group Gp,q is performed by computing a parameter h, randomly selected from the group Zp*, raising the parameter h to the exponent q and multiplying hq by the result associated with the function.
3. The method of claim 1, wherein the one party is a client and the other party is a server.
4. The method of claim 1, further comprising the step of:
the one party receiving gy from the other party and generating the shared secret gxy.
5. The method of claim 4, further comprising the step of:
the one party authenticating the other party by comparing a received value against a function of at least one of an identifier of the one party, an identifier of the other party, m, gy, the shared secret, and the password.
6. The method of claim 4, further comprising the step of:
the one party transmitting a function of at least one of an identifier of the one party, an identifier of the other party, m, gy, the shared secret, and the password, to the other party whereby the other party may authenticate the one party.
7. The method of claim 4 further comprising the step of:
the one party generating a session key as a function of at least one of an identifier of the one party, an identifier of the other party, m, gy, the shared secret, and the password.
8. A method for communication via a data network, between two parties that share a password, using a Diffie-Hellman type key exchange on a particular group to generate a shared secret gxy, where g is the group generator known to both parties and x is an index known to one party and y is an index known to the other party, the group having a group operation and an inverse group operation, the method comprising the steps of:
responsive to the one party generating a parameter m by performing the group operation on gx and a function of at least the password, wherein any portion of a result associated with the function that is outside the group is randomized, and transmitting m to the other party, the other party performing the inverse group operation on m and the function of at least the password, removing the randomization of any portion of the result associated with the function that is outside the group, extracting gx, and calculating the shared secret gxy.
9. The method of claim 8, wherein the particular group, denoted as Gp,q, is a sub-group of a group Zp* where p and q are prime numbers such that p equals rq+1 for a value r co-prime to q, and wherein the step of randomizing any portion of a result associated with the function that is outside the group Gp,q is performed by computing a parameter h, randomly selected from the group Zp* raising the parameter h to the exponent q and multiplying hq by the result associated with the function.
10. In accordance with a protocol for communication over a data network between two parties that share a password, using a Diffie-Hellman type key exchange on a particular group to generate a shared secret gxy, where g is the group generator known to both parties and x is an index known to one party and y is an index known to the other party, the group having a group operation and an inverse group operation, apparatus associated with the one party comprising:
at least one processor operative to: (i) generate a parameter m by performing the group operation on gx and a function of at least the password, wherein any portion of a result associated with the function that is outside the group is randomized; and (ii) transmit m to the other party, whereby the other party may perform the inverse group operation on m and the function of at least the password, and remove the randomization of any portion of the result associated with the function that is outside the group, to extract gx and calculate the shared secret gxy.
11. The apparatus of claim 10, wherein the particular group, denoted as Gp,q, is a sub-group of a group Zp* where p and q are prime numbers such that p equals rq+1 for a value r co-prime to q, and wherein the step of randomizing any portion of a result associated with the function that is outside the group Gp,q is performed by computing a parameter h, randomly selected from the group Zp*, raising the parameter h to the exponent q and multiplying hq by the result associated with the function.
12. The apparatus of claim 10, wherein the one party is a client and the other party is a server.
13. The apparatus of claim 10, wherein the at least one processor associated with the one party is further operative to receive gy from the other party and generate the shared secret gxy.
14. The apparatus of claim 13, wherein the at least one processor associated with the one party is further operative to authenticate the other party by comparing a received value against a function of at least one of an identifier of the one party, an identifier of the other party, m, gy, the shared secret, and the password.
15. The apparatus of claim 13, wherein the at least one processor associated with the one party is further operative to transmit a function of at least one of an identifier of the one party, an identifier of the other party, m, gy, the shared secret, and the password, to the other party whereby the other party may authenticate the one party.
16. The apparatus of claim 13, wherein the at least one processor associated with the one party is further operative to generate a session key as a function of at least one of an identifier of the one party, an identifier of the other party, m, gy, the shared secret, and the password.
17. In accordance with a protocol for communication over a data network between two parties that share a password, using a Diffie-Hellman type key exchange on a particular group to generate a shared secret gxy, where g is the group generator known to both parties and x is an index known to one party and y is an index known to the other party, the group having a group operation and an inverse group operation, apparatus associated with the other party comprising:
at least one processor operative to, in response to the one party generating a parameter m by performing the group operation on gx and a function of at least the password, wherein any portion of a result associated with the function that is outside the group is randomized, and transmitting m to the other party: (i) perform the inverse group operation on m and the function of at least the password; (ii) remove the randomization of any portion of the result associated with the function that is outside the group; (iii) extract gx; and (iv) calculate the shared secret gxy.
18. The apparatus of claim 17, wherein the particular group, denoted as Gp,q, is a sub-group of a group Zp* where p and q are prime numbers such that p equals rq+1 for a value r co-prime to q, and wherein the step of randomizing any portion of a result associated with the function that is outside the group Gp,q is performed by computing a parameter h, randomly selected from the group Zp*, raising the parameter h to the exponent q and multiplying hq by the result associated with the function.
19. An article of manufacture for communication via a data network, between two parties that share a password, using a Diffie-Hellman type key exchange on a particular group to generate a shared secret gxy, where g is the group generator known to both parties and x is an index known to one party and y is an index known to the other party, the group having a group operation and an inverse group operation, the article comprising a machine readable medium containing one or more programs which when executed implement the steps of:
one party generating a parameter m by performing the group operation on gx and a function of at least the password, wherein any portion of a result associated with the function that is outside the group is randomized, and transmitting m to the other party, whereby the other party may perform the inverse group operation on m and the function of at least the password, and remove the randomization of any portion of the result associated with the function that is outside the group, to extract gx and calculate the shared secret gxy.
20. An article of manufacture for communication via a data network, between two parties that share a password, using a Diffie-Hellman type key exchange on a particular group to generate a shared secret gxy, where g is the group generator known to both parties and x is an index known to one party and y is an index known to the other party, the group having a group operation and an inverse group operation, the article comprising a machine readable medium containing one or more programs which when executed implement the steps of:
responsive to the one party generating a parameter m by performing the group operation on gx and a function of at least the password, wherein any portion of a result associated with the function that is outside the group is randomized, and transmitting m to the other party, the other party performing the inverse group operation on m and the function of at least the password, removing the randomization of any portion of the result associated with the function that is outside the group, extracting g, and calculating the shared secret gxy.
US09/827,227 2001-04-05 2001-04-05 Methods and apparatus for providing efficient password-authenticated key exchange Expired - Lifetime US7076656B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US09/827,227 US7076656B2 (en) 2001-04-05 2001-04-05 Methods and apparatus for providing efficient password-authenticated key exchange
CA002376947A CA2376947C (en) 2001-04-05 2002-03-15 Methods and apparatus for providing efficient password-authenticated key exchange
EP02252083A EP1248408B1 (en) 2001-04-05 2002-03-22 Methods and apparatus for providing efficient password-authenticated key exchange
DE60200496T DE60200496T2 (en) 2001-04-05 2002-03-22 Method and apparatus for performing an efficient password-authenticated key exchange
JP2002083199A JP4237970B2 (en) 2001-04-05 2002-03-25 Communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/827,227 US7076656B2 (en) 2001-04-05 2001-04-05 Methods and apparatus for providing efficient password-authenticated key exchange

Publications (2)

Publication Number Publication Date
US20020194478A1 true US20020194478A1 (en) 2002-12-19
US7076656B2 US7076656B2 (en) 2006-07-11

Family

ID=25248630

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/827,227 Expired - Lifetime US7076656B2 (en) 2001-04-05 2001-04-05 Methods and apparatus for providing efficient password-authenticated key exchange

Country Status (5)

Country Link
US (1) US7076656B2 (en)
EP (1) EP1248408B1 (en)
JP (1) JP4237970B2 (en)
CA (1) CA2376947C (en)
DE (1) DE60200496T2 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102516A1 (en) * 2003-09-05 2005-05-12 Canon Kabushiki Kaisha Data sharing method, request processing method, program, and apparatus
US20060085643A1 (en) * 2004-10-20 2006-04-20 Oracle International Corporation Key-exchange protocol using a password-derived prime
US20060248079A1 (en) * 2005-04-28 2006-11-02 Freescale Semiconductor Incorporated Method and apparatus for finding a perfect hash function and making minimal hash table for a given set of keys
US20070067625A1 (en) * 2005-08-29 2007-03-22 Schweitzer Engineering Laboratories, Inc. System and method for enabling secure access to a program of a headless server device
US20070101140A1 (en) * 2003-07-31 2007-05-03 Thomas Licensing, Inc. Generation and validation of diffie-hellman digital signatures
US20090328165A1 (en) * 2007-04-03 2009-12-31 Cook Debra L Method and apparatus for generating one-time passwords
US20100042841A1 (en) * 2008-08-15 2010-02-18 Neal King Updating and Distributing Encryption Keys
US20100262825A1 (en) * 2007-09-18 2010-10-14 Electronics And Telecommunications Research Institute Security method of mobile internet protocol based server
US20100325435A1 (en) * 2003-06-27 2010-12-23 Young-Man Park Two-factor authenticated key exchange method and authentication method using the same, and recording medium storing program including the same
US7916868B1 (en) * 2004-05-06 2011-03-29 Verizon Data Services Llc Quadratic residue based password authenticated key exchange method and system
US20110145579A1 (en) * 2008-07-10 2011-06-16 National Institute Of Advanced Industrial Science And Technology Password authentication method
US8464058B1 (en) * 2008-04-08 2013-06-11 Hewlett-Packard Development Company, L.P. Password-based cryptographic method and apparatus
US8930704B2 (en) 2011-04-26 2015-01-06 Hewlett-Packard Development Company, L.P. Digital signature method and system
US9537857B1 (en) * 2015-12-22 2017-01-03 International Business Machines Corporation Distributed password verification
US10305864B2 (en) * 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
CN110519300A (en) * 2019-09-24 2019-11-29 杭州字节信息技术有限公司 Client key method for secure storing based on password bidirectional authentication

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6785813B1 (en) * 1997-11-07 2004-08-31 Certicom Corp. Key agreement and transport protocol with implicit signatures
US7076656B2 (en) * 2001-04-05 2006-07-11 Lucent Technologies Inc. Methods and apparatus for providing efficient password-authenticated key exchange
US7305556B2 (en) * 2001-12-05 2007-12-04 Canon Kabushiki Kaisha Secure printing with authenticated printer key
US20050089173A1 (en) * 2002-07-05 2005-04-28 Harrison Keith A. Trusted authority for identifier-based cryptography
GB0215590D0 (en) * 2002-07-05 2002-08-14 Hewlett Packard Co Method and apparatus for generating a cryptographic key
KR100489327B1 (en) * 2002-09-18 2005-05-12 학교법인 한국정보통신학원 Identification scheme based on the bilinear diffie-hellman problem
US7284127B2 (en) * 2002-10-24 2007-10-16 Telefonktiebolaget Lm Ericsson (Publ) Secure communications
WO2004093381A1 (en) * 2003-04-16 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Authentication method
KR100520116B1 (en) 2003-05-16 2005-10-10 삼성전자주식회사 A method for discributing the key to mutual nodes to code a key on mobile ad-hoc network and network device using thereof
US7814320B2 (en) * 2005-07-19 2010-10-12 Ntt Docomo, Inc. Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
US7783041B2 (en) * 2005-10-03 2010-08-24 Nokia Corporation System, method and computer program product for authenticating a data agreement between network entities
US20080263672A1 (en) * 2007-04-18 2008-10-23 Hewlett-Packard Development Company L.P. Protecting sensitive data intended for a remote application
JP4924943B2 (en) * 2007-09-04 2012-04-25 Kddi株式会社 Authenticated key exchange system, authenticated key exchange method and program
US20090070593A1 (en) * 2007-09-07 2009-03-12 Authentec, Inc. Finger sensing apparatus using unique session key and associated methods
TWI361610B (en) * 2007-12-03 2012-04-01 Ind Tech Res Inst Key establishing and event processing method and system for dual-mode wireless sensor network
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
US8433918B2 (en) * 2009-10-14 2013-04-30 Texas Instruments Incorporated Methods and systems for improving the security of password-based authentication protocols for IEEE 802.11 networks
EP2518932A3 (en) * 2010-10-05 2015-11-18 Brandenburgische Technische Universität Cottbus-Senftenberg A method of password-based authentication and session key agreement for secure data transmission, a method for securely transmitting data, and an electronic data transmission system
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US20170076106A1 (en) 2015-09-16 2017-03-16 Qualcomm Incorporated Apparatus and method to securely control a remote operation
US10397206B2 (en) 2016-01-26 2019-08-27 Red Hat, Inc. Symmetric encryption key generation/distribution
WO2023046294A1 (en) * 2021-09-24 2023-03-30 Huawei Technologies Co., Ltd. Method and device for establishing password based secure channel

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241599A (en) * 1991-10-02 1993-08-31 At&T Bell Laboratories Cryptographic protocol for secure communications
US5440635A (en) * 1993-08-23 1995-08-08 At&T Corp. Cryptographic protocol for remote authentication
US6226383B1 (en) * 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
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
US20040128517A1 (en) * 2002-12-31 2004-07-01 Drews Paul C. Methods and apparatus for finding a shared secret without compromising non-shared secrets
US6829356B1 (en) * 1999-06-29 2004-12-07 Verisign, Inc. Server-assisted regeneration of a strong secret from a weak secret
US6910129B1 (en) * 1999-12-24 2005-06-21 Kent Ridge Digital Labs Remote authentication based on exchanging signals representing biometrics information
US6993651B2 (en) * 1999-12-08 2006-01-31 Hewlett-Packard Development Company, L.P. Security protocol

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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
US5351293A (en) * 1993-02-01 1994-09-27 Wave Systems Corp. System method and apparatus for authenticating an encrypted signal
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 (en) * 1995-10-09 2004-07-14 松下電器産業株式会社 Communication protection system and equipment between devices
US7359507B2 (en) * 2000-03-10 2008-04-15 Rsa Security Inc. Server-assisted regeneration of a strong secret from a weak secret
US7047408B1 (en) 2000-03-17 2006-05-16 Lucent Technologies Inc. Secure mutual network authentication and key exchange protocol
US7076656B2 (en) * 2001-04-05 2006-07-11 Lucent Technologies Inc. Methods and apparatus for providing efficient password-authenticated key exchange
US20050157874A1 (en) * 2003-12-01 2005-07-21 The Regents Of The University Of California Cryptography for secure dynamic group communications

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241599A (en) * 1991-10-02 1993-08-31 At&T Bell Laboratories Cryptographic protocol for secure communications
US5440635A (en) * 1993-08-23 1995-08-08 At&T Corp. Cryptographic protocol for remote authentication
US6226383B1 (en) * 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
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
US6829356B1 (en) * 1999-06-29 2004-12-07 Verisign, Inc. Server-assisted regeneration of a strong secret from a weak secret
US6993651B2 (en) * 1999-12-08 2006-01-31 Hewlett-Packard Development Company, L.P. Security protocol
US6910129B1 (en) * 1999-12-24 2005-06-21 Kent Ridge Digital Labs Remote authentication based on exchanging signals representing biometrics information
US20040128517A1 (en) * 2002-12-31 2004-07-01 Drews Paul C. Methods and apparatus for finding a shared secret without compromising non-shared secrets

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100325435A1 (en) * 2003-06-27 2010-12-23 Young-Man Park Two-factor authenticated key exchange method and authentication method using the same, and recording medium storing program including the same
US8352739B2 (en) * 2003-06-27 2013-01-08 Kt Corporation Two-factor authenticated key exchange method and authentication method using the same, and recording medium storing program including the same
US20070101140A1 (en) * 2003-07-31 2007-05-03 Thomas Licensing, Inc. Generation and validation of diffie-hellman digital signatures
US7370070B2 (en) * 2003-09-05 2008-05-06 Canon Kabushiki Kaisha Data sharing method, request processing method, program, and apparatus
US20050102516A1 (en) * 2003-09-05 2005-05-12 Canon Kabushiki Kaisha Data sharing method, request processing method, program, and apparatus
US20110219233A1 (en) * 2004-05-06 2011-09-08 Verizon Data Services Llc Quadratic residue based password authenticated key exchange method and system
US7916868B1 (en) * 2004-05-06 2011-03-29 Verizon Data Services Llc Quadratic residue based password authenticated key exchange method and system
US8438393B2 (en) * 2004-05-06 2013-05-07 Verizon Data Services Llc Quadratic residue based password authenticated key exchange method and system
US7764795B2 (en) * 2004-10-20 2010-07-27 Oracle International Corporation Key-exchange protocol using a password-derived prime
US20060085643A1 (en) * 2004-10-20 2006-04-20 Oracle International Corporation Key-exchange protocol using a password-derived prime
US20060248079A1 (en) * 2005-04-28 2006-11-02 Freescale Semiconductor Incorporated Method and apparatus for finding a perfect hash function and making minimal hash table for a given set of keys
US7698555B2 (en) 2005-08-29 2010-04-13 Schweitzer Engineering Laboratories, Inc. System and method for enabling secure access to a program of a headless server device
US20070067625A1 (en) * 2005-08-29 2007-03-22 Schweitzer Engineering Laboratories, Inc. System and method for enabling secure access to a program of a headless server device
US8954745B2 (en) * 2007-04-03 2015-02-10 Alcatel Lucent Method and apparatus for generating one-time passwords
US20090328165A1 (en) * 2007-04-03 2009-12-31 Cook Debra L Method and apparatus for generating one-time passwords
US20100262825A1 (en) * 2007-09-18 2010-10-14 Electronics And Telecommunications Research Institute Security method of mobile internet protocol based server
US8925048B2 (en) 2007-09-18 2014-12-30 Electronics And Telecommunications Research Institute Security method of mobile internet protocol based server
US8464058B1 (en) * 2008-04-08 2013-06-11 Hewlett-Packard Development Company, L.P. Password-based cryptographic method and apparatus
US8422670B2 (en) 2008-07-10 2013-04-16 National Institute Of Advanced Industrial Science And Technology Password authentication method
US20110145579A1 (en) * 2008-07-10 2011-06-16 National Institute Of Advanced Industrial Science And Technology Password authentication method
US20100042841A1 (en) * 2008-08-15 2010-02-18 Neal King Updating and Distributing Encryption Keys
US8930704B2 (en) 2011-04-26 2015-01-06 Hewlett-Packard Development Company, L.P. Digital signature method and system
US9537857B1 (en) * 2015-12-22 2017-01-03 International Business Machines Corporation Distributed password verification
US9584507B1 (en) * 2015-12-22 2017-02-28 International Business Machines Corporation Distributed password verification
US9628472B1 (en) 2015-12-22 2017-04-18 International Business Machines Corporation Distributed password verification
US9876783B2 (en) 2015-12-22 2018-01-23 International Business Machines Corporation Distributed password verification
US10305864B2 (en) * 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
CN110519300A (en) * 2019-09-24 2019-11-29 杭州字节信息技术有限公司 Client key method for secure storing based on password bidirectional authentication

Also Published As

Publication number Publication date
DE60200496D1 (en) 2004-06-24
JP4237970B2 (en) 2009-03-11
EP1248408B1 (en) 2004-05-19
US7076656B2 (en) 2006-07-11
DE60200496T2 (en) 2005-06-23
JP2002335238A (en) 2002-11-22
CA2376947C (en) 2007-07-10
CA2376947A1 (en) 2002-10-05
EP1248408A2 (en) 2002-10-09
EP1248408A3 (en) 2002-11-27

Similar Documents

Publication Publication Date Title
US7076656B2 (en) Methods and apparatus for providing efficient password-authenticated key exchange
US6757825B1 (en) Secure mutual network authentication protocol
US7047408B1 (en) Secure mutual network authentication and key exchange protocol
US6792533B2 (en) Cryptographic methods for remote authentication
US7010692B2 (en) Cryptographic methods for remote authentication
US9071598B2 (en) Cryptographic authentication and/or establishment of shared cryptographic keys, including, but not limited to, password authenticated key exchange (PAKE)
Kwon Authentication and key agreement via memorable password
US7149311B2 (en) Methods and apparatus for providing networked cryptographic devices resilient to capture
Viet et al. Anonymous password-based authenticated key exchange
Tapiador et al. Cryptanalysis of Song's advanced smart card based password authentication protocol
Wan et al. Cryptanalysis of two password-authenticated key exchange protocols
Lo et al. An advanced password authenticated key exchange protocol for imbalanced wireless networks.
Shin et al. Efficient and leakage-resilient authenticated key transport protocol based on RSA
Lu Multi-party password-authenticated key exchange scheme with privacy preservation for mobile environment
Kwon et al. A study on the generalized key agreement and password authentication protocol
Yoon et al. Robust and simple authentication protocol for secure communication on the web
Yoon et al. New efficient simple authenticated key agreement protocol
Kwon Addendum to Summary of AMP
Lu et al. An improvement of a simple authenticated key agreement algorithm
Hankerson et al. Cryptographic protocols
Yoon et al. A new simple authenticated key agreement and protected password change protocol
Barmawi et al. Preserving Forward Anonymity on Dynamic ID based Remote User Authentication Scheme
Yoon et al. A secret-key exponential key agreement protocol with smart cards
Huang et al. An efficient three party authenticated key exchange for mobile communications
Stickel Public-Key Cryptography

Legal Events

Date Code Title Description
AS Assignment

Owner name: LUCENT TECHNOLOGIES INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MACKENZIE, PHILIP D.;REEL/FRAME:011927/0577

Effective date: 20010424

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: CREDIT SUISSE AG, NEW YORK

Free format text: SECURITY INTEREST;ASSIGNOR:ALCATEL-LUCENT USA INC.;REEL/FRAME:030510/0627

Effective date: 20130130

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: ALCATEL-LUCENT USA INC., NEW JERSEY

Free format text: MERGER;ASSIGNOR:LUCENT TECHNOLOGIES INC.;REEL/FRAME:032891/0562

Effective date: 20081101

AS Assignment

Owner name: ALCATEL-LUCENT USA INC., NEW JERSEY

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG;REEL/FRAME:033950/0261

Effective date: 20140819

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553)

Year of fee payment: 12