# Patent

## Title
Method of authentication and session key agreement for secure data transmission, a method for securely transmitting data, and an electronic data transmission system

## Abstract

The invention relates to a method of authentication and session key agreement for secure data transmission between a first and second data communication entity in an electronic data transmission system. Furthermore, the invention relates to an electronic transmission system to perform a method of authentication and session key agreement.

## Background
FIELD OF TECHNOLOGY
The present application refers to a method of authentication and session key agreement for secure data transmission between a first and a second data communication entity in an electronic data transmission system. Further, the application refers to a method for securely transmitting data, and an electronic data transmission system.
BACKGROUND
Password authentication protocols have been broadly deployed in client/server communication settings for its convenient usage and low costs of deployment. Nowadays peer-to-peer networks become increasingly popular, where the role of principals is symmetric (balanced), i.e. each principal acts not only as a client but also as a server.
Entity authentication that verifies the legitimacy of communication partners is indispensable for a secure communication. Basically there are two approaches for this in the network setting: relying on a PKI or using passwords. Usually the latter is preferred in practice, since authentication can be simply performed by using the human-memorable passwords without requiring the investment on the expensive PKI. Classic password authentication protocols, such as HTTP digest authentication protocol (Franks et al: HTTP Authentication: Basic and Digest Access Authentication. RFC 2617, June 1999) and Kerberos (Kohl et al.: The Kerberos Network Authentication Service (V5). RFC 1510, September 1993), are designed on the basis of the challenge-response mechanism, where the server presents the client a challenge (randomly-generated number), and the client responses to the server with a valid answer which is generated by encrypting the challenge with the password or hashing the challenge in conjunction with the password.
Although passwords are not transmitted in a clear form over the insecure network, an adversary is still able to acquire the correct password by using a special variant of the brute-force attack: the off-line dictionary attack (see Franks et al: HTTP Authentication: Basic and Digest Access Authentication. RFC 2617, June 1999; Wu: A Real-World Analysis of Kerberos Password Security. Proceedings of the ISOC Symposium on Network and Distributed System Security, 1999). This is due to the low entropy of a human-chosen password. The length of passwords mostly used in practice is rarely longer than 8 characters. It has merely about 30 bits of entropy (230) if the password is chosen by human (Burr et al.: Electronic Authentication Guideline. NIST Special publication 800-63, April 2006). Accordingly, the attacker can recover the password in a reasonable time from the recorded transcripts of a password authentication protocol.
There is password-based protocol, namely DH-EKE (“Diffie-Hellman Encrypted Key Exchange”) protocol (Bellovin et al.: Encrypted Key Exchange: Password-based Protocols Secure against Dictionary Attacks. Proceedings of the IEEE Symposium on Research in Security and Privacy, May 1992), proposed to foil off-line dictionary attacks. Its basic idea is that two parties exchange ephemeral DH public keys encrypted with a shared password. Only the parties who know the password are able to agree upon a session key for securing the communication. The protocol addresses a problem that seems to be intractable in the past: the establishment of a cryptographically strong session key from a shared short secret with low entropy.
Inspired by the DH-EKE protocol, numerous password-based authentication key agreement protocols have been developed, most of which follow the principle of DH-EKE protocol. They are distinguished in two categories: augmented and balanced password-authenticated key agreement protocols. The augmented password-authenticated key agreement protocols are mainly used in client/server settings, where the client (user) knows the password, whilst the server possesses only the password verifiers for authenticating clients. The SRP (“Secure Remote Password”) protocol (Wu: The Secure Remote Password Protocol. Proceedings of the 1998 Internet Society Network and Distributed System Security Symposium, San Diego, March 1998, pp. 97-111) and AMP (“Authentication via Memorable Password”) protocol (Kwon: Authentication and Key Agreement via Memorable Password. NDSS 2001 Symposium Conference Proceedings, February 2001) are typical examples.
The balanced password-authenticated key agreement (BPAKA) protocol is a symmetric authentication scheme, where both parties know a common password and negotiate a shared session key after the successful mutual authentication by using the password. This protocol is well suited for symmetric communication settings, where the roles of the principals are balanced like in peer-to-peer (P2P) communication, wireless mesh networks, and wireless ad-hoc networks. There are several representative protocols in this category. They are DH-EKE protocol, PAK (“Password Authenticated Key exchange”) protocol (MacKenzie: The PAK Suite: Protocols for Password-Authenticated Key Exchange DIMACS Technical Report 002-46, October 2002), SPEKE (“Secure Password Exponential Key Exchange”) protocol (Jablon: Strong Password-Only Authenticated Key Exchange Computer Communication Review, ACM SIGCOMM, vol. 26, no. 5, pp. 5-26, October 1996), as well as the newcomer J-PAKE (Hao et al.: Password Authenticated Key Exchange by Juggling. Proceedings of the 16th International Workshop on Security Protocols, 2008).
The DH-EKE protocol first demonstrated that it is feasible to withstand off-line dictionary attacks in an authenticated key agreement protocol. This has been achieved by symmetrically encrypting the exchanged DH public keys with the shared password. The only difference between the DH-EKE protocol and the basic Diffie-Hellman protocol is that the exchanged DH public keys are encrypted in the DH-EKE protocol with the password, whilst in the basic DH protocol they are not. The encryption of the exchanged DH public keys serves two purposes. First it provides an authentication function in the sense that only the parties who know the password can correctly decrypt the DH public keys and generate the session key according to the basic DH principle. Secondly it can foil off-line dictionary attacks because an attacker is unable to ascertain whether the decryption results are valid messages, when decrypting the encrypted DH public keys using a guessed password. However, as shown in (Patel: Number theoretic attacks on secure password schemes. Proceedings of the IEEE Symposium on Security and Privacy, May 1997; Patel: Information Leakage in Encrypted Key Exchange. Proceedings of the DIMACS Workshop on Network Threats, 1997), the DH-EKE protocol suffers from partition attacks due to information leakage. Assume that a DH public key gx mod p is encrypted with a password, where p is a prime number encoded with n bits so that p≦2n−1. An attacker can mount partition attacks to rule out the guessing password candidates which are used for decrypting the DH public keys, when the decryption results fall into the range [p, 2n−1]. To decrease the possibility of a partition attack, p should be slightly less than a power of 2, and a certain number of the most significant bits of p are set one. This implies that the domain parameters have to be carefully chosen in the discrete logarithm (DL) groups and specific finite groups needed to be defined. Another limitation of DH-EKE is that the use of the short exponents makes the scheme insecure (Hao: Password Authenticated Key Exchange by Juggling. Proceedings of the 16th International Workshop on Security Protocols, 2008). This makes the protocol much more inefficient than those protocols that can utilize short exponents.
Although the DH-EKE protocol has several security weaknesses and performance limitations, it creates a new concept to realize the password authentication key agreement protocol. This concept is generalized as follows: the parties can mutually authenticate each other and agree upon a shared key through exchanging the password-entangled public keys The protocol SPEKE (“secure password exponential key exchange”) instantiates the DH-EKE concept using a password-driven variable as generator of the public keys instead of a fixed one as in the basic DH protocol. However, such method allows an active attacker to test multiple passwords in one run of the protocol because some passwords are exponentially equivalent. It may become more serious that an attacker is possible to recover the password if the password is a Personal Identification Number (PIN). Like the DH-EKE protocol, the SPEKE protocol has to use long exponents (Hao: Password Authenticated Key Exchange by Juggling. Proceedings of the 16th International Workshop on Security Protocols, 2008). The password authenticated key (PAK) exchange protocol is another scheme following the generic concept. It employs the multiplication operation in the DL group to replace the symmetric encryption operation used in the DH-EKE protocol. The DH public keys in the PAK protocol are multiplied with a password-driven group element rather than are encrypted with a password before they are exchanged. The short exponents can be applied to the generation of the DH public keys in the PAK protocol. But an exponentiation with the long exponent is needed to convert the hash value of the password into the DL group element. This calculation is more expensive than the subsequent DH exchange computation.
Recently a new solution to the password authenticated key exchange called J-PAKE (Password Authenticated Key Exchange by Juggling) was proposed (Hao: Password Authenticated Key Exchange by Juggling. Proceedings of the 16th International Workshop on Security Protocols, 2008). Its design concept is completely different from the past password authenticated key exchange protocols. The J-PAKE protocol works like a juggling game between two players if we view a public key as a “ball”. In round one, each player throws two balls (ephemeral public keys) to each other. In round two, each player forms a new ball by combining the available public keys and the password, and throws it to each other. After that, two parties can compute a common session key if the same password is provided in the calculation of the session key. The J-PAKE imposes no constraints on the choice of finite groups and use of the short exponents. But the performance of the J-PAKE is merely comparable to that of the aforementioned protocols (DH-EKE, SPEKE, and PAK) because it needs 14 exponentiations using short exponents in each party to complete the protocol, whilst the previous protocols requires only two exponentiations with long exponents.
It is well-known that security protocols are difficult to design because they have to fulfill numerous security requirements and simultaneously to be efficient. They should possess the following security properties: key authentication, known-key security, forward secrecy, off-line dictionary at-tack resistance, partition attack resistance, on-line dictionary attack resistance. Although several BPAKA protocols are available, their weaknesses in terms of security and efficiency are gradually disclosed.
SUMMARY
It is an object of the invention to provide improved technologies, preferably, applicable to authentication and session key agreement for secure data transmission in an electronic data transmission system.
According to an aspect of the invention, a method of authentication and session key agreement for secure data transmission between a first and second data communication entity in an electronic data transmission system according to the independent claim 1 is provided. Further, a method for securely transmitting data according to claim 4, and an electronic data transmission system according to claim 5 are provided. Advantageous developments of the invention are disclosed in dependent claims.
By the invention, a robust and simple password authentication protocol is provided, since PKIs (“Public Key Infrastructures”) are not always available for authentication. The simple password-authenticated key agreement protocol may be used in peer-to-peer communication. It fulfils the security requirements on the password authentication protocols, and is resilient to passive and active attacks as well as dictionary attacks. The proposed scheme is more efficient than the well established protocols due to its simple design concept.
In a preferred embodiment, as the encryption algorithm an AES (AES—“Advanced Encryption Standard”) encryption is used.
In still another preferred embodiment, in the electronic data transmission system data are exchanged over a wireless data connection between the first and the second data communication entity.
Components and/or modules for implementing features of the technology proposed may provided by software and/or hardware. For example, certain features of the technology may be implemented by software application modules comprising program code configured to, when loaded into a processing device, perform steps of the respective method. In conclusion, a computer program product may be provided, comprising program instructions which when executed cause a processor to perform steps of the method proposed in one of the embodiments.



BRIEF DESCRIPTION
FIG. 1 shows a schematic representation of the procedure of a method of authentication and session key agreement for secure data transmission between a first and second data communication entity in an electronic data transmission system.



DESCRIPTION
Following the invention will be described in further detail, by way of example, with reference to certain embodiments.
There are security requirements related to password-based authentication key agreement protocols.
Like other security protocols, the password-based authentication key agreement protocols are prone to passive and active attacks from the network. An adversary attempts to derive the useful information (e.g. passwords) from the recorded transcripts of a protocol (passive attacks). Alternatively, an adversary tries to prevent a protocol from achieving its goal by impersonating the communication partner or modifying the messages transmitted over the network (active attacks).
There exists a special attack against password protocols, called dictionary attack, where the attacker wants to determine the correct password from a relatively small dictionary containing frequently used passwords. It can be further distinguished between on-line and off-line dictionary attacks. In an on-line dictionary attack, the adversary picks a password from the dictionary and initiates the protocol with an honest entity. If the protocol terminates abnormally he/she can ascertain that the guessed password is incorrect. This attack is trivial to prevent by limiting the number of failed runs of the protocol. In contrast, the off-line dictionary attack is difficult to detect and foil because the adversary just passively eavesdrops the protocol messages and searches for a password matching in the recorded communication. There is a special variant of the off-line dictionary attack, called partition attack (Bellovin: Encrypted Key Exchange: Password-based Protocols Secure against Dictionary Attacks. Proceedings of the IEEE Symposium on Research in Security and Privacy, May 1992), where an attacker can partition the password space into a valid part and an invalid part by analyzing the captured protocol messages.
To mitigate the above mentioned attacks the password-based authentication key agreement protocols should meet the following security requirements:

    
    
        Key authentication: The agreed session key is known only to the mutually trusted parties.
        Known-key security: The disclosure of past session keys will not help the adversary to get the future session keys and to derive the password.
        Forward secrecy: A compromised password does not affect the secrecy of previous session keys.
        Off-line dictionary attack resistance: The adversary can not perform the off-line exhaustive search of the password by using the eavesdropped messages of one or more sessions.
        Partition attack resistance: The adversary can not eliminate a significant number of possible passwords with each protocol run.
        On-line dictionary attack resistance: Ideally the active adversary can eliminate only one password per protocol run.
    
    


In general, the robustness of password based authentication key agreement protocols to a great extend relies on mathematically hard problems in the working group as well as the security strength of the used cryptographic functions. The security assumptions of the method proposed here are detailed as follows.
In a certain embodiment, the method proposed here is performed over a finite cyclic group G with the large prime order p, i.e. G={gr mod p: 1≦r<p}, where p is a safe prime to defend against the Pohling-Hellman attacks (van Oorschot et al.: On Diffie-Hellman Key Agreement with Short Exponents. Proceedings of Eurocrypt'96, LNCS 1070, Springer, pp. 332-343, May 1996), g is a primitive root modulo p in the G so that for any xε [1, p−1], there always exists a value r to meet the formula gr mod p=x. Usually gr mod p and r are called public key and private key, respectively, in the DH key agreement protocol. For simplicity, gr mod p is expressed as gr in the rest of the paper. In the group G the security of the method proposed here depends on the hardness of the discrete logarithm problem (DLP) and the computational Diffie-Hellman (CDH) problem. Given the domain parameters (g, p) and the public key gr, it is computationally infeasible to find the private key r (DLP problem). Knowing the domain parameters and exchanged public keys gra and grb, an attacker cannot compute the shared secret grarb (CDH problem).
The method proposed here applies the symmetric encryption function Ek(r)=C to encrypting the random number r, where k and r are the inputted key and plaintext, respectively, and C represents the output (i.e. ciphertext) of the function E. The symmetric encryption function is usually treated as a random permutation. It should be secure against the ciphertext only attacks at least. In other words, an adversary cannot deduce k and r from the known ciphertext C. Basically all standard block ciphers meet this requirement. The standard AES algorithm (NIST: ADVANCED ENCRYPTION STANDARD (AES). Processing Standards Publication 197, November 2001) is used in the protocol provided in the present application.
The method proposed, in a certain embodiment, employs a cryptographic strong hash function H(m)=h to compute the verification tag and session key, where m is the message as input and h is the output of the function. The hash function H should possess the following features. Knowing a hash value h, it is computationally infeasible to find any message m such that h=H(m) (pre-image resistance). Given an input m1, it is computationally infeasible to find another message m2≠m1 such that H(m1)=H(m2) (second pre-image resistance). It is computationally infeasible to find two different message m1 and m2 such that H(m1)=H(m2) (Collision resistance).
Following, for certain embodiments of the method proposed here principles and procedures are introduced.
Two parties exchange password-masked public keys to authenticate each other and agree upon a session key for securing their communication. At the beginning each party generates two kinds of private keys: a temporary private key and a shadow private key, and correspondingly computes the respective temporary and shadow public key. The shadow public key is used to mask the temporary public key in the protocol. This is achieved by computing the modular sum of both public keys. The computing result is called password-masked public key. The temporary public key is not bound to the password, while the shadow public key is indirectly connected to the password because the shadow private key is encrypted with the password. After exchanging the password-masked public keys and the encrypted shadow private keys, each party can obtain the communicating partner's temporary public key by subtracting the shadow public key from the received password-masked public key. Each party performs the modular exponentiation operation to derive the shared session key by using the recovered temporary public key and its own temporary private key.
A difference between the method proposed here and the previous password protocols discussed above is that the method proposed here exchanges the password-masked public keys instead of the password-entangled public keys. In the known protocols, the password directly manipulates the public keys: public keys are encrypted with the password in the DH-EKE protocol; password derived group elements multiply with the public keys in the PAK protocol; and password derived elements are used as the generator (base) of the public keys in the SPEKE protocol. On the contrary, in the method proposed here the password does not manipulate the exchanged public keys directly. It is used for only encrypting the private key associated with the shadow public key. In this way, the proposed method can avoid the possible partition attacks.
Referring the only FIGURE, there two phases: a commitment and a confirmation phase. In the commitment phase both parties exchange the password-masked public keys and the shadow private keys encrypted with the password in order to generate the shared secret. In the confirmation phase both parties exchange the verification data and validate the received verification data to confirm that the communication partner knows the password.
Assume that Alice with the identity IDa and Bob with the identity IDb are engaged in the protocol. They know a common password pw used for authentication and the DL domain parameters (g, p). The procedure of the method proposed here is detailed as follows.
First, there is a commitment phase as follows.
In a certain embodiment, Alice initiates the protocol and computes the symmetric encryption key pwa using the hash function H(pw| IDa), where | denotes a message concatenation.
Then, Alice generates two random numbers raεR [1,p−1] and saεR[1, 2L-1] which are denoted as the temporary and the shadow private key, respectively, and L is the block size of the AES encryption. Accordingly, she computes the temporary public key ta=gra, and the shadow public key ua=gsa. Further she makes a modular sum of the temporary public key and shadow public key to get the password-masked public key Wa=ta+ua.
Following, Alice encrypts the shadow private key sa with the key pwa using AES, i.e. ESa=Epwa{sa}. Finally she sends the commitment message which consists of IDa, Wa, and ESa to Bob.
After receiving Alice's commitment message, Bob forms his commitment message in the same way as Alice did and sends it as acknowledgement to Alice.
Following, the confirmation phase is described.
In a certain embodiment, upon receipt of Bob's commitment message, Alice first checks whether Wb is equivalent to zero or not. If Wb=0, Alice aborts the procedure of the protocol. This can prevent a dictionary attack that may be launched by an adversary impersonating Bob. If Wb≠0, she decrypts the ESb with the key pwb, and gets the Bob's shadow private key sb.
Then, Alice computes the Bob's shadow public key gsb, and calculates the common confirmation key CKa=(Wb-gsb)ra=grbra using her private key ra. Then she generates the tag Va=H(CKa|IDa|IDb|Wa|Wb|ESa|ESb|pwa|0), and sends it to Bob. The verification tag Va ensures that the messages exchanged between Alice and Bob are not altered in transition and proofs that Alice knows the password and the confirmation key grbra simultaneously.
Bob computes the common confirmation key CKb=grarb like Alice does. To check the received verification tag Va, the tag Va′=H(CKb|IDa|IDb|Wa|Wb|ESa|ESb|pwa|0) is computed. If Va′=Va he ensures that Alice knows the password pw as well as the shared secret grarb the exchanged messages in the committing phase are not altered during transition. Bob yields the verification tag Vb=H(CKb|IDb|IDa|Wb|Wa|ESb|ESa|pwb|1) and delivers it to Alice. Finally Bob computes the shared session key SK=H(CKb|IDa|IDb|Wa|Wb|ESa|ESb).
After receiving the verification tag Vb, Alice checks its validity like Bob did. If the check passes Alice yields the shared key SK=H(CKa|IDa|IDb|Wa|Wb|ESa|ESb).
Note that Alice and Bob apply different keys (i.e. pwa, pwb) to encrypt the shadow private key in the committing phase, and the verification tags Va and Vb in the confirming phase are not symmetric. So the possible reflection attacks can be prevented.
In the following a security analysis is discussed. Especially, it is examined whether the method proposed here fulfills the security requirements on the password protocols that are introduced above.
Key Authentication
Only the participants who know the password can compute the shared session key SK. This is ensured by exchanging and checking the verification tags Va and Vb between Alice and Bob in the confirming phase of the protocol. The generation of Va and Vb requires the knowledge of both the common confirmation key CK and the password. The possibility to construct the correct verification tags Va and Vb without knowing CK and the password is negligible. We assume that an adversary named Eve sitting in the middle of Alice and Bob wants to talk to them separately using the forged verification tags Va′ and Vb′. It is trivial for Alice and Bob to detect this attack by checking the received verification tag. So the method proposed here ensures that only the trusted parties are able to gain access to the shared session key.
Known-Key Security
The shared session key SK is generated by hashing the common key CK as well as the messages exchanged in the commit phase. The common key CK is a shared DH secret which is determined by the random values ra and rb contributed by Alice and Bob, respectively. The values of ra and rb vary from session to session. Consequently, the common key CK is distinguished for each session. This implies that the generation of one session key is independent of other sessions. So the disclosure of past session keys has no impact on the security of the future session keys. Further a compromised session key SK does not help an attacker to deduce the password. With SK, the attacker is unable to gain access to the common key CK due to the one-way property of the hash function H. So an attacker has no way to determine whether a guessed password is valid or not by observing the verification tags Va and Vb, since they contain two unknown components, i.e. CK and password, to the attacker. The method proposed here is therefore resistant to known-key attacks.
Forward Secrecy
A compromised password allows an adversary to recover the past temporary public keys ta and tb. However he/she is unable to obtain the past temporary private keys ra and rb due to the hardness of the DLP problem, and compute the past common key CK due to the intractable CDH problem in the DL field. Thus, the attacker cannot recover the past session key SK without knowing the past common key CK.
Off-Line Dictionary Attack Resistance
The messages exchanged in the protocol are usually available to an eavesdropper, including user's identity ID, password-masked public key W, encrypted shadow private key ES, and verification tag V. From ES, an attacker cannot derive the password, and recover the shadow private keys sa and sb according to the assumption to the encryption function E. Based on W, an attacker cannot determined the correct temporary public keys ta and tb because they are shielded in the public key W using the shadow public keys ua and ub, respectively. Moreover, the temporary private keys ra and rb are secrets to the eavesdropper. He/she is therefore unable to compute the common key CK. Without the knowledge of CK, the eavesdropper cannot deduce the password from the verification tag V. So the method proposed here withstands off-line dictionary attacks.
Partition Attack Resistance
Password-masked public key W and encrypted shadow private key ES exchanged in the protocol leak no information to attackers. ES is the output of encrypting the shadow private key s that is uniformly distributed in [1,2L-1]. It should be still uniformly distributed in [1,2L-1], since we assume that the encryption function is a random permutation. The attacker therefore cannot exclude any password when decrypting ES. An attacker may obtain a candidate temporary public key t′ by modular subtracting W with a guessing shadow public key u′ that is computed in a way that g is raised to the result of decrypting ES with a guessing password pw′, i.e. t′=W−u′=W−gDpw′{ES}. The value of t′ ranges in [1, p−1] since all operations (addition, substraction and exponentiation) are performed modulo p. So t′ is always a valid public key since there is an integer r such that gr mod p=t′ when g is primitive root modulo p in the DL group. In other words, the attacker can not eliminate any password from the password dictionary with the candidate temporary public key t′. Thus partition attacks are infeasible to the method proposed here.
On-Line Dictionary Attack Resistance
An adversary launches on-line dictionary attacks by running the protocol with an honest party using a guessed password. Each time the active adversary can eliminate one password. The attack itself is not a great threat to the use of the protocol, since such active attack is trivial to detect in the confirming phase by checking the verification tags. But, it may lead to the disclosure of the password, when the attacker further mounts the off-line dictionary attack by using the known protocol messages acquired in the on-line dictionary attack. The protocol should guard against this complex attack which combines the on-line and off-line dictionary attacks. In an active attack, the honest party Alice or Bob may be impersonated by the attacker Eve. Who is impersonated is not a concern in the security analysis due to the symmetric nature of the method proposed here. Here we assume Bob is impersonated by Eve and Alice is an honest party. Eve acts the same as Bob except that she applies a guessed password pw′ in the protocol. After running the protocol, Eve knows the following information from Alice: identity IDa, password-masked public key Wa, encrypted shadow private key ESa, and verification tag Va. Eve can derive the correct password pw by comparing the verification tag Va if the value of CKa is known to her. Eve knows CKa≠CKb as pw′≠pw, but she knows the way how CKa is computed:

CKa=(Wb−gsb)ra 

In this formula, Eve knows Wb and sb, but she cannot compute CKa, since the value ra is secret to her. Moreover, it is computationally infeasible to guess the correct value ra since it is a large random number. Without the knowledge of CKa, Eve is unable to mount the off-line dictionary attacks. Thus the method proposed here is resistant against the attacks that combine on-line and off-line dictionary attacks.
The above discussions show that the method proposed is a robust password authentication protocol. It ensures that passwords and shared session keys are not disclosed to an adversary under various kinds of attacks
Following, a comparison between the method proposed here and the known protocols with respect to efficiency is presented.
It is well known that the computational cost of password-based authentication protocols is usually dominated by the exponentiation operations. So it only needs to account the number of the exponentiation operations when comparing the method proposed here with the well-known protocols introduced above with respect to the computational complexity.
Assume that two parties want to agree up a 128-bit symmetric key used for a communication session, the prime modulus p has to be at least 3072-bit long as required in the NIST standard (NIST: Recommendation for Key Management—Part 1: General. Special Publication 800-57, March, 2007). If a short exponent is allowed to be applied in the protocol its length should be longer than 256 bits (van Oorschot et al.: On Diffie-Hellman Key Agreement with Short Exponents. Proceedings of Eurocrypt'96, LNCS 1070, Springer, pp. 332-343, May 1996). A 384-bit long exponent is applied in the method proposed here for a fair comparison, since the PAK protocol requires the length of the exponent should be at least 384 bits (MacKenzie: The PAK Suite: Protocols for Password-Authenticated Key Exchange. DIMACS Technical Report 002-46, October 2002) for agreeing upon a 128-bit symmetric key. In the method proposed here, the length of the tiny exponent is fixed to 128 bits because the dictionary space of the password pw is usually less than 230. The following table shows the computational cost of the method proposed here and other four compared protocols for each communicating party.







TABLE 1







Computational lost













128-bit
384-bit
2698-bit
3072-bit
Total cost


Protocol
EXP.
EXP.
EXP.
EXP.
(No. of 384-bit EXP.)















Method
2
2


2.66


proposed


DH-EKE



2
16


SPEKE



2
16


PAK

2
1

10


J-PAKE

14


14





Note:


EXP. is the abbreviation of exponentiation.






As shown in Table 1, the method proposed here is most efficient among all compared protocols with respect to the total computational cost. Note that we convert the total computational cost into the number of the 384-bit exponentiation for a clear comparison. So a 3072-bit exponentiation is equivalent to eight 384-bit exponentiations. Such conversion is reasonable, since the cost of exponentiation is linear with the bit-length of the exponent. The DH-EKE and SPEKE protocol are the most expensive ones, since they require a full length exponent rather than a short exponent when performing an exponentiation operation. Although there are only two 384-bit exponentiations needed for the generation of the password-entangled public key and compute the shared session key in the PAK protocol, a 2698-bit exponentiation has to be performed to force the hash value of the password to be in the DL group. Thus, the PAK protocol is not as efficient as expected.
A secure and simple password authentication protocol which may also be referred to as SPAKA is provided for use in symmetric communication scenarios, such as in wireless mesh networks and ad-hoc networks. It has demonstrated that the computational overhead of the method proposed here is lower than that of several known protocols. The security analysis has shown the method proposed here is robust to defend against the commonly-known attacks on password authentication protocols.
The features disclosed in this specification, the FIGURE and/or the claims may be material for the realization of the invention in its various embodiments, taken in isolation or in various combinations thereof.

## Claims

1. A method of authentication and session key agreement for secure data transmission between a first data communication entity and a second data communication entity in an electronic data transmission system, the method comprising:
in a commitment phase in both the first data communication entity and the second data communication entity, providing a password pw, and parameters g, p, and q with G={gr mod p: 1≦r<p}, where G is a finite cyclic group with a large prime order p, g is a primitive root modulo p in G so that, for any xY [1, p−1], there always exists a value r to meet the formula gr mod p=x;
in the first data communication entity,
generating a first symmetric encryption key by applying a hash function to the password: pwa=H(pw |IDa), wherein IDa is an identity of a first user using the first data communication entity;
generating a first temporary private key raεR [1,p−1] and a first shadow private key saεR[1, 2L-1], where L is a block size of an encryption algorithm;
generating a first temporary public key ta=gra and a first shadow public ua=gsa;
generating a first modular sum: Wa=ta+ua;
encrypting the first shadow private key with the first symmetric encryption key using the encryption algorithm: ESa=Epwa{sa}; and
transmitting the identity of the first user, the first modular sum, and the encrypted first shadow private key from the first data communication entity to the second data communication entity over a communication channel provided in the electronic data transmission system;

in the second data communication entity,
generating a second symmetric encryption key by applying the hash function to the password: pwb=H(pw | IDb), wherein IDb is an identity of a second user using the second data communication entity;
generating a second temporary private key rbεR [1,p−1] and a second shadow private key sbεR[1, 2L-1], where L is a block size of the encryption algorithm;
generating a second temporary public key tb=grb and a second shadow public ub=gsb;
generating a second modular sum: Wb=tb+ub;
encrypting the second shadow private key with the second symmetric encryption key using an AES encryption: ESb=Epwb{sb}; and
transmitting the identity of the second user, the second modular sum, and the encrypted second shadow private key from the second data communication entity to the first data communication entity over the communication channel provided in the electronic data transmission system; and


in a confirmation phase,
in the first data communication entity,
if for the second modular sum Wb≠0, decrypting the second shadow private key by using the second symmetric encryption key: sb=Dpwb{ESb};
generating a first confirmation key by using the following formula: CKa=(Wb−gsb)ra=grbra;
generating a first verification tag: Va=H(CKa | IDa | IDb | Wa | Wb | ESa | ESb | pwa | 0); and
transmitting the first verification tag from the first data communication entity to the second data communication entity over the communication channel provided in the electronic data transmission system, and

in the second data communication entity,
verifying the first verification tag;
decrypting the first shadow private key by using the first temporary private key: sa=Dpwa{ESa};
generating a second confirm key by using the following formula: CKb=(Wa−gsa)rb=grarb;
generating a second verification tag: Vb=H(CKb | IDa | IDb | Wa | Wb | ESa | ESb | pwb | 1); and
transmitting the second verification tag from the second data communication entity to the first data communication entity over the communication channel provided in the electronic data transmission system, and

in the first data communication entity, verifying the second verification tag; and
generating a shared session key in the first and second data communication entity: SK=H(CKa | IDa | IDb | Wa | Wb |1 ESa | ESb) and SK=H(CKb | IDa | IDb | Wa | Wb | ESa | ESb).

2. The method according to claim 1, wherein the encryption algorithm is an AES encryption.

3. The method according to claim 1, wherein in the electronic data transmission system, data are exchanged over a wireless data connection between the first data communication entity and the second data communication entity.

4. A method of securely transmitting electronic data between a first data communication entity and a second data communication entity in an electronic data transmission system, the method comprising:
providing a data transmission channel between the first data communication entity and the second data communication entity in the electronic data transmission system,
performing an authentication and a session key agreement for secure data transmission between the first data communication entity and the second data communication entity according to the method of claim 1; and
transmitting electronic data between the first data communication entity and the second data communication entity using a shared session key in the first and second data communication entities.

5. An electronic data transmission system, comprising:
a first data communication entity;
a second data communication entity; and
a data transmission channel connecting the first a data communication entity and the second data communication entity;
wherein the first data communication entity and the second data communication entity are configured, by at least one of software and hardware modules, to perform an authentication and a session key agreement for secure data transmission according to the method in claim 1.