Abstract
Recently, Lu et al. claimed that Xie et al.’s three-party password-authenticated key agreement protocol (3PAKA) using chaotic maps has three security vulnerabilities; in particular, it cannot resist offline password guessing attack, Bergamo et al.’s attack and impersonation attack, and then they proposed an improved protocol. However, we demonstrate that Lu et al.’s attacks on Xie et al.’s scheme are unworkable, and their improved protocol is insecure against stolen-verifier attack and off-line password guessing attack. Furthermore, we propose a novel scheme with enhanced security and efficiency. We use formal verification tool ProVerif, which is based on pi calculus, to prove security and authentication of our scheme. The efficiency of the proposed scheme is higher than other related schemes.
1 Introduction
Nowadays it is very common to use mobile devices to conduct transactions via insecure wireless networks [1–2], therefore, how to design secure, efficient and convenient 3PAKA scheme has become an urgent issue for researchers to solve it. Utilizing the semi-group property of Chebyshev polynomial, many extended chaotic maps based 3PAKA protocols were proposed in recent years. However, most of them suffer from security vulnerabilities and low computational efficiency.
In 1995, Steiner et al. [3] extended two-party password-authenticated key agreement to 3PAKA protocol. However, Ding and Horster [4] and Lin et al. [5] demonstrated that their scheme is vulnerable to undetectable online password guessing attack, and Lin et al. [5] further showed that their protocol suffers from offline password guessing attack. To remedy those weaknesses, they proposed an improved 3PAKA protocol, but the server needs to keep a long-term secret key and the parties have to verify server’s public key beforehand. To improve the efficiency, Lin et al. [6] introduced another 3PAKA protocol without using server’s public key. Unfortunately, Chang and Chang [7] pointed out that their improved scheme needs more rounds of communication, and they proposed an ECC-based 3PAKA scheme with better round efficiency. However, Yoon et al. [8] commented that Chang and Chang’s scheme is still insecure against online password guessing attack, and presented an improvement to overcome the weaknesses. But Lo and Yeh [9] commented that Yoon et al.’s protocol is also insecure against undetectable online password guessing attack. Therefore, they developped a secure 3PAKA protocol to eliminate these flaws. Lee et al. [10] and Lu et al. [11] also introduced two enhanced 3PAKA protocols without using server’s public key. Their protocols require multiple modular exponentiation operations to negotiate a session key. Nevertheless, Guo et al. [12] and Phan et al. [13] demonstrated that Lu et al.’s scheme is susceptible to undetectable online dictionary attack, man-in-the-middle attack, and unknown key-share attack, respectively. Then they proposed a scheme with enhanced security, but it requires for more computational cost. In 2014, based on elliptic curve cryptosystems, Xie et al.’s proposed the first secure 3PAKA protocol with user anonymity [14].
Wang et al. [15] proposed the first 3PAKA protocol using chaotic maps (CM-3PAKA) in 2010. Unfortunately, Yoon et al. [16] claimed that their scheme suffers from illegal message modification attack and some other disadvantages. Then Yoon et al. designed a novel 3PAKA protocol to resolve these problems. However, both schemes are inconvenient to use in practice, because these schemes need a trusted third party to pre-share and protect a different long-term secret key. Lee et al. [17] presented an anonymous CM-3PAKA protocol using timestamp in 2013. Unfortunately, Hu and Zhang [18] demonstrated that Lee et al.’s scheme is susceptible to user anonymity attack and man-in-the-middle attack. Moreover, they presented an improved protocol to overcome the weaknesses. In their protocol, the secret session key is established upon Chebyshe chaotic map, which heads from Chebyshev polynomial has the excellent semi-group property. Xie et al. [19] introduced the first extended CM-3PAKA protocol without using timestamp. Later on, Lee et al. [20] showed that Xie et al.’s protocol might suffer from detectable online password guessing attack. Then they proposed a new CM-3PAKA scheme without using password. Unfortunately, their scheme is insecure against impersonation attack [21].
In 2014, Farash and Attari [22] designed a CM-3PAKA scheme without using smart card and server’s public key. The advantage of their scheme is that users only use their passwords to authenticate each other and establish the session key, which can reduce computational costs and avoid public key directory management. Unfortunately, Xie et al. [23] demonstrated that Farash and Attari’s protocol is susceptible to offline password guessing attack and impersonation attack. Then, an improved CM-3PAKA protocol with the same advantage is proposed. The improved scheme is suitable for mobile applications.
In 2016, Lu et al. [24] claimed that Xie et al.’s protocol [23] is susceptible to Bergamo et al.’s attack [25], offline password guessing attack and impersonation attack, and then they proposed an improved scheme to solve these security vulnerabilities. Owing to biometric keys have many advantages compared with single keys, many researchers have attempted to combine password and biometrics keys to provide strong security [26–30]. In this paper, we first discusses Lu et al.’s attacks on Xie et al.’s protocol, and then shows the weaknesses of Lu et al.’s improved protocol, after that, a new protocol based on biometrics is proposed to solve their security vulnerabilities.
Our security goals are as follows:
User anonymity: The real identity of each user must be protected during authenticated and key agreement stage.
Known-key security: The session key is secure even if the current session key is compromised.
Resistant to impersonation attack: The legal user must not be masqueraded by the unauthorized entities.
Resistant to password guessing attacks: The password of each user is secure even if the leakage of user’s memory.
Resistant to replay attack: The improvement should be able to security against the reusage of the transmitted messages.
Resistant to privileged-insider attack: The privileged-insider must not be obtained the plaintext password of each user.
Resistant to man-in-the-middle attack: The improvement can withstand this attack if it will not be compromised under impersonation attack and replay attack.
The rest of paper is organized as follows. Sections 2 and 3 present brief review of Xie et al.’s protocol, Lu et al.’s attacks on Xie et al.’s protocol and. Then, Sections 4 and 5 present brief review of Lu et al.’s improved protocol and our security analysis on it. After that, an improved protocol is introduced in Section 6. Security analysis and computation comparisons are presented in Sections 7 and 8. Section 9 concludes the paper.
2 Review of Xie et al.’s scheme
Xie et al.’s protocol [23] has four phases: system initialization phase, user registration phase, authenticated key agreement phase, and password change phase. The first three phases are as follows.
2.1 System initialization
Let s be the secret key of the server S, p be a large prime number, h() be a secure one-way hash function, H() be a chaotic maps based one-way hash function, and x∈Zp, the parameters {p, h(), x, H()} are published and s is kept secret.
2.2 User registration
Let UIDi and upwi be user i’s identity and password. User i computes , and sends {UIDi,UPWi} to S through a secure channel.
When the server S receives {UIDi,UPWi}, it computes VUPWi = h(UIDi,s)+UPWi, and stores {UIDi,VUPWi} in its database.
2.3 Authenticated key agreement
In this phase, both user A and user B are authenticated and the session key is established.
Step 1: User A selects a random number ua∈[1,p+1], and computes URA = Tua(x)mod p, and sends {UIDA,UIDB,URA} to S.
Step 2: When S receives {UIDA,UIDB,URA}, it chooses c,d∈[1,p+1], computes
Then it sends {UIDA,SRd} to B, and sends {UIDB,SRc} to A.
Step 3: On receiving {UIDA,SRd}, B chooses ub∈[1,p+1], computes:
and sends {URB,BSZBS} to S.
On receiving {UIDB,SRc}, A computes:
Then, A sends {ASZAS} to S.
Step 4: On receiving {URB,BSZBS} from B and {ASZAS} from A, S computes BSKSB = Td(URB) = Tdub(x)mod p and verifies the correctness of BSZBS = H(0,UIDB,UIDA,URB,SRd,BSKSB). If it is not correct, S terminates the request. Otherwise, user B is authenticated. After that S computes ASKSA = Tc(URA) = Tcua(x)mod p, and verifies the correctness of ASZAS = H(0,UIDA,UIDB,URA,SRc,ASKSA). If it is not correct, S rejects the request. Otherwise, user A is authenticated.
After that, S computes SZAB = H(1,UIDA,UIDB,URA,URB,ASKSA), SZBA = H(1,UIDB,UIDA,URB,URA,BSKSB), and responds {URB,SZAB} and {URA,SZBA} to A and B, respectively.
Step 5: After receiving {URB,SZAB}, A verifies the correctness of SZAB = H(1,UIDA,UIDB,URA,URB,ASKAS). If it is not correct, A rejects it. Otherwise, A computes KAB = Tua(URB) = Tuaub(x)mod p and SKAB = H(2,UIDA,UIDB,URA,URB,KAB) is the session key shared with user B.
When B receives {URA,SZBA}, he verifies the correctness of SZBA = H(1,UIDB,UIDA,URB,URA,BSKBS). If it is not correct, B rejects it. Otherwise, B computes KBA = Tub(URA) = Tubua(x)mod p and SKBA = H(2,UIDA,UIDB,URA,URB,KBA) is the session key shared with user A.
3 Comments on Lu et al.’s attacks on Xie et al.’s scheme
Lu et al. claimed that Xie et al.’s CM-3PAKA protocol is vulnerable to Bergamo et al.’s attack, off line password guessing attack and impersonation attack. We will show that their claimed three security vulnerabilities are untenable.
3.1 Bergamo et al.’s attack
Lu et al. claimed that Xie et al.’s protocol suffers from Bergamo et al.’s attack, because an adversary can get Tua(x) and Tub(x) from the public network, and can compute
such as Tua′(x) = Tua(x) and Tub′(x) = Tub(x). Therefore, the adversary can compute KBA = Tubua(x)mod p and the session key SKAB = H(2,UIDA,UIDB,URA,URB,KAB) shared between users A and B.
However, this attack actually cannot happen. The reason is that Zhang [31] pointed out that Chebyshev polynomials Ta(x) has semi-group property, where x∈[−∞,+∞]. In Xie et al.’s protocol, because x∈Zp, ua∈[1,p+1] and ub∈[1,p+1], so they use Chebyshev polynomials defined on [−∞,+∞] to design 3PAKA protocol to avoid Bergamo et al.’s attack. That is, Xie et al.’s protocol does not meet the condition of Bergamo et al.’s attack.
3.2 Off line password guessing attack and impersonation attack
Lu et al. claimed that Xie et al.’s scheme suffers from offline password guessing attack, because an adversary can select ua∈[1,p+1], compute URA = Tua(x)mod p and send {UIDA,UIDB,URA} to S.
When S receives {UIDA,UIDB,URA} from the adversary, it chooses c,d∈[1,p+1], computes
Then it sends {UIDB,SRc} to the adversary.
The adversary guesses a password UPWA′ and computes ASKAS′ = Tua(SRc + UPWA′, and checks whether ASZAS = H(0,UIDA,UIDB,URA,SRc,ASKAS′) is correct or not. If so, the guessed UPWA′ is correct.
Unfortunately, this attack cannot work against our scheme. The reason is that the adversary cannot know the correct ASZAS, and cannot check whether ASZAS = H(0,UIDA,UIDB,URA,SRc,ASKAS′) is correct or not. In Xie et al.’s protocol, ASZAS should be generated by user A, that is to say, if an adversary impersonates A, then he can not compute the correct ASZAS because he does not know the correct ASKAS′. If the adversary intercepts and gets {UIDA,UIDB,URA} and ASZAS generated by A, then he cannot compute ASKAS′ without knowing the correct ua chosen by t A, so he cannot compute H(0,UIDA,UIDB,URA,SRc,ASKAS′), not to say checking the equation ASZAS = H(0,UIDA,UIDB,URA,SRc,ASKAS′).
Since Lu et al.’s off-line password guessing attack is not correct, so their impersonation attack on Xie et al.’s scheme is also invalid.
4 Review of Lu et al.’s protocol
Lu et al.’s improved protocol has the same four phases as that of Xie et al.’s protocol. Since we only discuss the weaknesses of Lu et al.’s protocol, so the password change phase is omitted.
4.1 System initialization
Let p be a large prime number, Sk∈[1,p+1] and TSk(x)mod p be the private and public keys of the server S, where x∈Zp. Let h1() be a secure one-way hash function and h() be a chaotic maps based one-way hash function. S keeps Sk secret and publishes the parameters {p,x,h1(),h(),TSk(x)mod p}.
4.2 User registration
User i chooses his identity UIDi, a random number ri and password upwi, and computes VGi = h1(upwi,ri), and sends {UIDi,VGi} to S through a private channel.
When the server S receives{UIDi,VGi} from the user i, it computes VUPWi = h1(UIDi,Sk)+VGi, and randomly chooses di, stores {di⊕Sk,VUPWi} in its database, sends {di,VUPWi}to user i through a private channel. user i stores {ri,di} in his memory.
4.3 Authenticated key agreement
In this phase, both A and B are authenticated and the session key is established.
Step 1: User A selects ua∈[1,p+1], computes , VGA = h1(upwA,rA), FVA = h(UIDA,UIDB,Tua(x),VGA), CVA = EKAS(UIDA,UIDB,Tua(x),FVA), and then he sends CVA to S.
Step 2: S computes dA⊕Sk⊕Sk = dA, , (UIDA,UIDB,Tua(x)FVA) = DKAS(CVA), VGA = VUPWA−h1(UIDA,Sk), and checks whether FVA = h(UIDA,UIDB,Tua(x),VGA) is correct or not. If not correct, reject it. Otherwise, S computes FVB = h(Tua(x),UIDB), VGB = VUPWB−h1(UIDB,Sk), , and sends CVB to B.
Step 3: User B uses VGB to decrypt CVB and get (Tua(x),FVB,UIDA,UIDB), then checks the validity of FVB. After that, B chooses ub∈[1,p+1], computes HVB = h(UIDB,Tub(x)), , and sends PVB to S.
Step 4: S decrypts PVB, gets (Tub(x),HVB), and checks if HVB = h(UIDB,Tub(x)). If not, reject it. Otherwise, S chooses C1,C2∈[1,p+1] and computes ZVAS = h(UIDA,UIDB,Tub(x),TC1(x)), , RVAS = EKAS(TC1(x),Tub(x),UIDA,ZVAS), ZVBS = h(UIDA,UIDB,Tua(x),TC2(x)), KBS = TSk(Tub(x)), RVBS = EKBS(TC2(x),Tua(x),UIDB,ZVBS), and returns RVAS to A, RVBS to B.
Step 5: When A obtains RVAS, he decrypts RVAS and gets (TC1(x),Tub(x),UIDA,ZVAS), then verifies whether ZVAS = h(UIDA,UIDB,Tub(x),TC1(x)) is correct or not. If yes, A computes SKAB = Tua(Tub(x))mod p, VAB = h(UIDA,SKAB), and sends VAB to B.
B verifies the validity of ZVBS = h(UIDA,UIDB,Tua(x),TC2(x)), and computes SKAB = Tub(Tua(x))mod p, VBA = h(UIDB,SKAB), and sends VBA to A.
Step 6: A and B check the validity of VBA and VAB, respectively. If the checking holds, SKAB = Tua(Tub(x))mod p is the shared session key between A and B.
5 Analysis on Lu et al.’s protocol
In this section, we show that Lu et al.’s claims are not correct.
5.1 Off line password guessing attack
In Lu et al.’s protocol, an adversary can get the verification parameters {ri,di} stored in users’ mobile terminals by side-channel attack [32–34], then he can do offline password guessing attack.
When S receives CVA from A, it computes FVB = h(Tua(x),UIDB), VGB = VUPWB−h1(UIDB,Sk), , and sends CVB to B. The adversary intercepts and gets CVB from public network, guesses user B’s password PWB and computes VGB′ = h1(PWB,rB), uses VGB′ to decrypt CVB and get (Tua(x)′,FVB′,UIDA′,UIDB′), then he computes h(Tua(x)′,UIDB′) and checks whether it is equal to FVB′. If yes, the guessed password is correct. Otherwise, the adversary can do it again untill he gets the correct password.
The adversary can obtain user A’s password by using the above method. Therefore, Lu et al.’s protocol is vulnerable to offline password guessing attack.
5.2 Stolen-verifier attack
In Lu et al.’s protocol, the server needs to store the verifier messages {di⊕Sk,VUPWi} for each user i. Obviously, the registered adversary C has his/her own {dC,VUPWC}. If he/she obtains the verifier messages {di⊕Sk,VUPWi} from the database of the server, then he/she can launch stolen-verifier attack. That is to say, the adversary can find dC⊕Sk from VUPWC, then he/she can compute server’s private key Sk = dC⊕Sk⊕dC. After this, the adversary can compute each user’s message and launch server impersonation attack.
6 Improved scheme
Our improved protocol also has four phases: system initialization, user registration, authenticated key agreement, and password change.
6.1 System initialization
The parameters {Sk,p,x,h1(),h(),TSk(x)mod p} are the same as that of Lu et al.’s scheme, and let H() be biological information hash function.
6.2 User registration
User i chooses his identity UIDi, a random number ri and password upwi, and computes VGi = h1(upwi,ri), and sends {UIDi,VGi} to S through a private channel.
When the server S receives {UIDi,VGi} from the user i, it computes VUPWi = h1(UIDi,Sk)+VGi, and stores {UIDi,VUPWi} in its database, sends VUPWi to user i through a private channel.
User i inputs his biometrics UBIOi, and computes di = H(UBIOi,upwi), VRi = H(UBIOi)⊕ri, stores {VRi,di} in his memory.
6.3 Authenticated key agreement
In this phase, both A and B are authenticated and the session key is established (Please see Algorithm 1).
Step 1: User A enters his or her biometrics UBIOA and upwA, computes H(UBIOA,upwA) and checks if it equals to dA. If not, repeat this process. A selects Ua∈[1,p+1], computes TUa(x), KAS = TUa(TSk(x)), rA = H(UBIOA)⊕VRA, VGA = h1(upwA,rA), FVA = h(UIDA,UIDB,TUa(x),VGA), CVA = EKAS(UIDA,UIDB,TUa(x),FVA), and then he sends {CVA,TUa(x)} to S.
| User A | The server S | User B |
|---|---|---|
| Check if NB = h(UIDB,SKAB) | Check if NA = h(UIDA,SKBA) |
The session key is SKAB = TUa(TUb(x))mod p
Algorithm 1: The proposed 3PAKA protocol
Step 2: S computes KAS = TSk(TUa(x)), (UIDA,UIDB,TUa(x),FVA) = DKAS(CVA), VGA = VUPWA−h1(UIDA,Sk), and checks if FVA = h(UIDA,UIDB,TUa(x),VGA) is correct or not. If not, reject it. Otherwise, S computes FVB = h(TUa(x),UIDB), VGB = VUPWB−h1(UIDB,Sk), , and sends { CVB} to B.
Step 3: User B enters his or her biometrics UBIOB and upwB, computes H(UBIOB,upwB) and checks if it equals to dB. If not, repeat this process. B computes rB = H(UBIOB)⊕VRB, VGB = h1(upwB,rB), and uses VGB to decrypt CVB and get (TUa(x),FVB,UIDA,UIDB), then checks the validity of FVB. After that, B chooses Ub∈[1,p+1], computes HVB = h(UIDB,TUb(x)), , and sends {CVB,PVB} to S.
Step 4: After receiving {CVB,PVB}, S can know it is the response from B according to CVB and decrypts PVB to get (TUb(x),HVB,CVB, and checks if HVB = h(UIDB,TUb(x)). If not, reject it. Otherwise, S chooses S1,S2∈[1,p+1] and computes ZVAS = h(UIDA,UIDB,TUb(x),S1), RVAS = EKAS(S1,TUb(x),UIDA,ZVAS), ZVBS = h(UIDA,UIDB,TUa(x),S2), , and returns {RVAS} to A, {RVBS} to B.
Step 5: When A obtains {RVAS}, he decrypts RVAS and gets (S1,TUb(x),UIDA,ZVAS), then verifies whether ZVAS = h(UIDA,UIDB,TUb(x),S1) is correct or not. If yes, A computes SKAB = TUa(TUb(x))mod p, NA = h(UIDA,SKAB), and sends {NA} to B.
B decrypts RVBS and gets (S2,TUa(x),UIDB,ZVBS), and verifies the validity of ZVBS = h(UIDA,UIDB,TUa(x),S2). If yes, he computes SKBA = TUb(TUa(x))mod p, NB = h(UIDB,SKBA), and sends {NB} to A.
Step 6: A and B check the validity of NB and NA, respectively. If the checking holds, SKAB = TUa(TUb(x))mod p is the shared session key between A and B.
6.4 Password change phase
Each user can update his password as follows.
Step 1: User i enters his/her biometrics UBIOi and upwi, computes and checks whether H(UBIOi,upwi) = dA. If not, repeat this process. Otherwise, User i enters a new password , chooses c∈[1,p+1], and computes Tc(x), KiS = Tc(TSk(x)), ri = H(UBIOi)⊕VRi, VGi = h1(upwi,ri), , Mi = {Password change request}, , , and then he sends {Ci,Tc(x)} to S.
Step 2: S computes KiS = TSk(Tc(x)), , VGi = VUPWi−h1(UIDi,Sk), and checks whether is correct or not. If not, S computes RS1 = {Reject}, , and sends {RS1,MS1} to user i. Otherwise, S computes RS2 = {Accept}, , , updates {UIDi,VUPWi} with {UIDi, }, and sends {RS2,MS2} to user i.
Step 3: If user i receives {RS2,MS2}, he verifies if holds or not. If yes, user i uses the new password next time. Otherwise, he verifies and goes back to Step 1.
7 Security analysis
We first use formal tool ProVerif [35] based on applied pi calculus [36], to prove that our protocol satisfies mutual authentication and session key security. Then, we use security analysis to demonstrate that the proposed scheme not only provides common security features, but also is secure against various attacks.
7.1 Formal verification
The formal proof has three different parts: the declaration part, the process part and the security property part.
The declaration includes the definition of the components used in the protocol, such as communication channels, variables and constants, functions, etc. Two kinds of channels are used in the scheme: private channel used in the user registration phase, and public channel used in the authenticated key exchange phase, we define them as below:
free sch: channel [private].
free cch: channel.
The constants and variables in the scheme are defined as follows:
const Sk: bitstring [private].
const x: bitstring.
const p: bitstring.
const UBIOA: bitstring [private].
const UBIOB: bitstring [private].
free UIDA: bitstring [private].
free UIDB: bitstring [private].
free upwA: bitstring [private].
free upwB: bitstring [private].
free SKAB: bitstring [private].
free SKBA: bitstring [private].
We define functions for the scheme as follow:
fun h(bitstring): bitstring.
fun h1(bitstring): bitstring.
fun H(bitstring): bitstring.
fun add(bitstring, bitstring): bitstring.
fun xor(bitstring, bitstring): bitstring.
fun T(bitstring, bitstring): bitstring.
fun senc(bitstring, bitstring): bitstring.
fun VUPW(bitstring): bitstring [data].
The functions h, h1, H represent chaotic map hash function, one-way hash function, biometric based hash function, respectively. The function T represents the Chebyshev chaotic maps, and the function VUPW appended by [data] represents VUPWi in the scheme. The algebraic characteristics of the above functions are modeled as the following reduction and equations:
reduc forall a: bitstring, b: bitstring; sub(add(a, b), b) = a.
equation forall a: bitstring, b: bitstring; xor(a, xor(a, b)) = b.
equation forall a: bitstring, b: bitstring; T(a, T(b, x)) = T(b, T(a, x)).
reduc forall m: bitstring, k: bitstring; sdec(senc(m, k), k) = m.
We defined the following four events to prove the authentication property:
event UserAAuthed(bitstring).
event UserARequest(bitstring).
event UserBAuthed(bitstring).
event UserBResponse(bitstring).
The process models every participant’s actions and defines the scheme as parallel execution of actions. The scheme’s message sequences are described as below, where messages 6 and 7, messages 8 and 9 are sent in parallel.
Registration:
Message 1: Useri − − > Server: {UIDi,VGi}
Message 2: Server − − > Useri: {VUPWi}
Authenticated key agreement:
Message 3: UserA − − > Server: {CVA,TUa(x)}
Message 4: Server − − > UserB: {CVB}
Message 5: UserB − − > Server: {CVB,PVB}
Message 6: Server − − > UserA: {RVAS}
Message 7: Server − − > UserB: {RVBS}
Message 8: UserA − − > UserB: {NA}
Message 9: UserB − − > UserA: {NB}
User A’s actions are divided into two parts. In the registration phase, she sends {UIDA,VGA} to the server, then receives {VUPWA} from it. All communications in this phase are carried out over secure channel sch. In authenticated key agreement phase, user A sends message 3 to remote server, and wait for message 6 from remote server, after that she computes session key SKAB and the authenticate message NA, and sends it to user B. This phase can run more than once. User A is defined as:
let UserA =
new rA: bitstring;
let VGA = h1((upwA, rA)) in
out(sch, (UIDA, VGA));
in(sch, xVUPWA: bitstring);
let dA = H((UBIOA, upwA)) in
let VRA = xor(H(UBIOA), rA) in
!(
let dA' = H((UBIOA, upwA)) in
if dA' = dA then
new Ua: bitstring;
let TUA = T(Ua, x) in
let KAS = T(Ua, T(Sk, x)) in
let rA = xor(H(UBIOA), VRA) in
let VGA = h1((upwA, rA)) in
let FVA = h((UIDA, UIDB, T(Ua, x), VGA)) in
let CVA = senc((UIDA, UIDB, T(Ua, x), FVA), KAS) in
event UserARequest(UIDA);
out(cch, (CVA, T(Ua, x)));
in(cch, xRVAS: bitstring);
let (xS1: bitstring, xTUB: bitstring, xUIDA: bitstring, xZVAS: bitstring) = sdec(xRVAS, KAS) in
if xZVAS = h((UIDA, UIDB, xTUB, xS1)) then
let SKAB = T(Ua, xTUB) in
let NA = h((UIDA, SKAB)) in
out(cch, NA);
in(cch, xNB: bitstring);
if xNB = h((UIDB, SKAB)) then
event UserBAuthed(UIDB)
).
User B is defined as:
let UserB =
new rB: bitstring;
let VGB = h1((upwB, rB)) in
out(sch, (UIDB, VGB));
in(sch, xVUPWB: bitstring);
let dB = H((UBIOB, upwB)) in
let VRB = xor(H(UBIOB), rB) in
!(
let dB' = H((UBIOB, upwB)) in
if dB' = dB then
in(cch, xCVB: bitstring);
let rB = xor(H(UBIOB), VRB) in
let VGB = h1((upwB, rB)) in
let (xTUA: bitstring, xFVB: bitstring, xUIDA: bitstring, xUIDB: bitstring) = sdec(xCVB, VGB) in
if xFVB = h((xTUA, UIDB)) then
new Ub: bitstring;
let HVB = h((UIDB, T(Ub, x))) in
let PVB = senc((T(Ub, x), HVB, xCVB), VGB) in
event UserBResponse(UIDB);
out(cch, (xCVB, PVB));
in(cch, xRVBS: bitstring);
let (xS2: bitstring, xTUA: bitstring, xUIDB: bitstring, xZVBS: bitstring) = sdec(xRVBS, VGB) in
if xZVBS = h((xUIDA, UIDB, xTUA, xS2)) then
let SKBA = T(Ub, xTUA) in
let NB = h((UIDB, SKBA)) in
out(cch, NB);
in(cch, xNA: bitstring);
if xNA = h((xUIDA, SKBA)) then
event UserAAuthed(xUIDA)
).
The remote server includes two components which run in parallel. The first component represents registration request from new users. We define this component as:
let RegS =
in(sch, (sUIDI: bitstring, sVGI: bitstring));
let VUPWI = add(h1((sUIDI, Sk)), sVGI) in
let VUPW(sUIDI) = VUPWI in
out(sch, VUPWI).
The second one represents the registered users’ authentication key agreement request. When the remote server receives message 3, he computes CVB and sends message 4 to user B. After receives message 5 from user B, he computes RVAS, RVBS and sends message 6, 7 respectively to user A, user B. We define this component as:
let AuthS =
in(cch, (sCVA: bitstring, sTUA: bitstring));
let sKAS = T(Sk, sTUA) in
let (sUIDA: bitstring, sUIDB: bitstring, sTUA': bitstring, sFVA: bitstring) = sdec(sCVA, sKAS) in
let sVGA = sub(VUPW(sUIDA), h1((sUIDA, Sk))) in
if sFVA = h((sUIDA, sUIDB, sTUA', sVGA)) then
let FVB = h((sTUA', sUIDB)) in
let sVGB = sub(VUPW(sUIDB), h1((sUIDB, Sk))) in
let CVB = senc((sTUA', FVB, sUIDA, sUIDB), sVGB) in
out(cch, CVB);
in(cch, (sCVB: bitstring, sPVB: bitstring));
let (sTUB: bitstring, sHVB: bitstring, sCVB': bitstring) = sdec(sPVB, sVGB) in
if sHVB = h((sUIDB, sTUB)) then
new S1: bitstring;
new S2: bitstring;
let ZVAS = h((sUIDA, sUIDB, sTUB, S1)) in
let RVAS = senc((S1, sTUB, sUIDA, ZVAS), sKAS) in
let ZVBS = h((sUIDA, sUIDB, sTUA', S2)) in
let RVBS = senc((S2, sTUA', sUIDB, ZVBS), sVGB) in
out(cch, RVAS);
out(cch, RVBS).
The Server is defined as a parallel execution of its two components:
let Server =
(!(RegS)|!(AuthS)).
The protocol is the parallel execution of the above parts:
process !UserA|!UserB|Server
The third part formalizes the security property, in particular, it defines the queries that the ProVerif tool will validate. ProVerif verifies the security attributes by checking assertions according to the query statements. It verifies session key security by checking the attacker query. The session key security verification code is shown below. where attacker(SKAB) means that the attacker can eavesdrop or calculate user A’s session keySKAB.
query attacker(SKAB).
query attacker(SKBA).
Proverif verifies the authentication attribute by checking the corresponding assertion of the event. An event is an indicator used specifically for authentication validation in Proverif. In the formal model, the authentications processes are modeled as two relations: one relation for user A to authenticate user B and another for user B to authenticate user A. The formal relations are defined as:
query id: bitstring; inj-event(UserAAuthed(id)) = = > inj-event(UserARequest(id)).
query id: bitstring; inj-event(UserBAuthed(id)) = = > inj-event(UserBResponse(id)).
We perform the above process in the ProVerif version 1.95. Fig 1 demonstrates that the correspondence queries are true, and the attacker queries are not true. The first result implies that the authentication attribute is satisfied in the presented protocol. The latter result means that the attackers can’t gain the session key, therefore the session key is safe.
Fig 1. Verification result of the protocol’s authentication and key security property.
7.2 Informal analysis
In this section, we discuss that the proposed protocol can resist various known attacks.
7.2.1 User anonymity
In the proposed scheme, the users’ identities are are protected by symmetric cryptographic algorithms and hash functions. Therefore, the adversary can not obtain users’ identities without knowing the secret keys. So the proposed protocol can provide user anonymity.
7.2.2 Password guessing attacks
In the proposed protocol, the users’ passwords are contained in VGi = h1(upwi,ri), and ri = H(UBIOi)⊕VRi, where ri is protected by users’ biometrics UBIOi, therefore, even if an adversary can obtains {VRi,di} stored in users’ memory, he/she still can not get users’ passwords.
7.2.3 Known-key security
In our scheme, the session key SKAB = TUa(TUb(x))mod p depends on two random numbers Ua and Ub, which varies in different sessions. Thus, the attacker cannot compute previous or future session keys even if he knows the current session key.
7.2.4 Replay attack
Assume the adversary intercepts user A’s message {CVA,TUa(x)} and replays it to server. However, upon receiving the message {RVAS}, the adversary cannot decrypt RVAS and compute the correct message NA to user B, since the attacker cannot compute the decryption key KAS, where KAS = TSk(TUa(x)). If the attacker replays user B’s message {PVB} to server, as the attacker does not know the random number Ub, he cannot compute the decryption key KBS = Tub(TSk(x)), when receive the server’s message {RVBS}. If the attacker replays the server’s messages {CVB} to user B, he cannot generate the valid message {RVBS}, since he cannot decrypt user B’s response message {PVB}.
7.2.5 Privileged-insider attack
In the registration phase of our protocol, user i sends {UIDi,VGi} to the remote server, where VGi = h1(upwi,ri). The privileged-insider attacker cannot guess the user i’s password upwi, as it is protected by the random number ri.
7.2.6 Impersonation attack
If the attacker impersonates user A or user B and sends the message {CVA,TUa(x)} or {PVB,CVB} to the server, he needs to compute the valid FVA = h(UIDA,UIDB,TUa(x),VGA) or . However, the attacker does not know user A’s password upwA or user B’s password upwB, hence, he cannot compute the valid message to pass through the server’s authentication. If the attacker wants to impersonate the remote server, he needs the server’s secret key Sk, the verifier messages VUPWA and VUPWB, which are unaccessable to him.
7.2.7 Man-in-the-middle attack
According to the above analysis, it is impossible for the adversary to launch impersonation attack and replay attack on our protocol. As a result, our protocol can resist the man-in-the-middle attack.
8 Security and computation comparisons
Tables 1 and 2 show the security and computational cost comparison between our scheme and some related protocols. For convenience, some notations are used here: let T be the unit time for performing one Chebyshev polynomial computation, E be the unit time for one symmetric encryption/decryption and H be the unit time for one hashing.
Table 1. Security comparison between our scheme and other schemes.
| Security attributes\Schemes | [20] | [21] | [22] | [23] | [24] | Ours |
|---|---|---|---|---|---|---|
| Biometric keys | N | Y | N | N | N | Y |
| Provide user anonymity | Y | Y | N | N | Y | Y |
| Perfect forward secrecy | Y | Y | Y | Y | Y | Y |
| Known key security | Y | Y | Y | Y | Y | Y |
| Replay attack | Y | Y | Y | Y | Y | Y |
| Password guessing attack | Y | Y | N | Y | N | Y |
| Stolen smart card attack | Y | Y | Y | Y | Y | Y |
| Privileged-insider attack | Y | Y | Y | Y | Y | Y |
| Impersonation attack | N | Y | N | Y | N | Y |
| Stolen-verifier attack | Y | Y | Y | Y | N | Y |
| Man-in-the-middle attack | Y | Y | Y | Y | Y | Y |
If the scheme can prevent the attack or satisfy the property, the symbol ‘Y’ is used. Otherwise, ‘N’ is used.
Table 2. Performance comparison of authenticated key agreement.
| User A | User B | Server S | Total | Estimated time | |
|---|---|---|---|---|---|
| Lee et al. [20] | 4T+2E+4H | 3T+2E+4H | 4T+4E+4H | 11T+8E+12H | 360.2ms |
| Xie et al. [21] | 3T+2E+7H | 3T+2E+7H | 2T+4E+6H | 8T+8E+20H | 265.2ms |
| Farash et al. [22] | 4T+5H | 4T+5H | 4T+6H | 12T+16H | 389.6ms |
| Xie et al. [23] | 4T+3H | 4T+3H | 4T+6H | 12T+12H | 388.8ms |
| Lu et al. [24] | 3T+2E+5H | 3T+3E+6H | 5T+5E+7H | 11T+10E+18H | 362.3ms |
| Our scheme | 3T+2E+5H | 2T+3E+7H | 1T+5E+7H | 6T+10E+19H | 201.5ms |
Table 1 shows that our protocol owns more secutity properties than other related protocols. According to the protocol proposed by Xue and Hong [37], the actual execution time is as follows: T is about 32.2ms, E is about 0.45ms and H is about 0.2ms. From Table 2, we know that our protocol is more efficient than other related schemes.
9 Conclusion
In this paper, we showed that Lu et al.’s attacks on Xie et al.’s scheme are untenable, and further pointed out that their improved protocol is insecure, which suffers from offline password guessing attack and stolen-verifier attack. Therefore, we proposed an improved protocol to eliminate their security vulnerabilities. We showed that our improved protocol possesses user anonymity, known session key security and withstands impersonation attack, reply attack, man-in-the-middle attack, etc. Also, we verified our protocol achieves mutual authentication and the secutity of the session key. Finally, the performance comparison showed that the efficiency of our scheme is higher than other related schemes. In the future, we will apply our protocol to verify its performance in real scenarios.
Data Availability
All relevant data are within the paper.
Funding Statement
This research was supported by the National Natural Science Foundation of China (Grant Nos. 61702152 and 61802276, URL http://www.nsfc.gov.cn/), and the National Key R&D Program of China (Grant No.2017YFB0802000, URL http://www.most.gov.cn/).
References
- 1.Kumari S, Chaudhry S A, Wu F, Li X, Farash M S, Khan M K. An improved smart card based authentication scheme for session initiation protocol. Peer-to-Peer Networking and Applications. 2017;10(1), 92–105. [Google Scholar]
- 2.Farash M S, Chaudhry S A, Heydari M, Sadough S, Mohammad S, Kumari S, et al. A lightweight anonymous authentication scheme for consumer roaming in ubiquitous networks with provable security. International Journal of Communication Systems, 2017;30(4). 10.1002/dac.3019 [DOI] [Google Scholar]
- 3.Steiner M, Tsudik G, Waidner M. Refinement and extension of encrypted key exchange. ACM SIGOPS Operating Systems Review. 1995; 29(3): 22–30. 10.1145/206826.206834 [DOI] [Google Scholar]
- 4.Ding Y, Horster P. Undetectable on-line password guessing attacks. ACM SIGOPS Operating Systems Review. 1995; 29(4): 77–86. 10.1145/219282.219298 [DOI] [Google Scholar]
- 5.Lin C L, Sun H M, Hwang T. Three-party encrypted key exchange: attacks and a solution. ACM SIGOPS Operating Systems Review. 2000; 34(4): 12–20. 10.1145/506106.506108 [DOI] [Google Scholar]
- 6.Lin C L, Sun H M, Steiner M, Hwang T. Three-party encrypted key exchange without server public-keys. IEEE Communications letters. 2001; 5(12): 497–499. 10.1109/4234.974498 [DOI] [Google Scholar]
- 7.Chang C C, Chang Y F. A novel three-party encrypted key exchange protocol. Computer Standards & Interfaces. 2004; 26(5): 471–476. 10.1016/j.csi.2003.12.001 [DOI] [Google Scholar]
- 8.Yoon E J, Yoo K Y. Improving the novel three-party encrypted key exchange protocol. Computer Standards & Interfaces. 2008; 30(5): 309–314. 10.1016/j.csi.2007.08.018 [DOI] [Google Scholar]
- 9.Lo N W, Yeh K H. Cryptanalysis of two three-party encrypted key exchange protocols. Computer Standards & Interfaces. 2009; 31(6): 1167–1174. 10.1016/j.csi.2009.03.002 [DOI] [Google Scholar]
- 10.Lee T F, Hwang T, Lin C L. Enhanced three-party encrypted key exchange without server public keys. Computers & Security. 2004; 23(7): 571–577. 10.1016/j.cose.2004.06.007 [DOI] [Google Scholar]
- 11.Lu R, Cao Z. Simple three-party key exchange protocol. Computers & Security. 2007; 26(1): 94–97. 10.1016/j.cose.2006.08.005 [DOI] [Google Scholar]
- 12.Guo H, Li Z, Mu Y, Zhang X. Cryptanalysis of simple three-party key exchange protocol. Computers & Security. 2008; 27(1): 16–21. 10.1016/j.cose.2008.03.001 [DOI] [Google Scholar]
- 13.Phan R C W, Yau W C, Goi B M. Cryptanalysis of simple three-party key exchange protocol (S-3PAKE). Information sciences. 2008; 178(13): 2849–2856. 10.1016/j.ins.2008.02.008 [DOI] [Google Scholar]
- 14.Xie Q, Hu B, Dong N, Wong D S. Anonymous three-party password-authenticated key exchange scheme for telecare medical information systems, PLoS ONE. 2014; 9(7): e102747 10.1371/journal.pone.0102747 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 15.Wang X, Zhao J. An improved key agreement protocol based on chaos. Communications in Nonlinear Science and Numerical Simulation. 2010; 15(12): 4052–4057. 10.1016/j.cnsns.2010.02.014 [DOI] [Google Scholar]
- 16.Yoon E J, Jeon I S. An efficient and secure Diffie–Hellman key agreement protocol based on Chebyshev chaotic map. Communications in Nonlinear Science and Numerical Simulation. 2011; 16(6): 2383–2389. 10.1016/j.cnsns.2010.09.021 [DOI] [Google Scholar]
- 17.Lee C C, Li C T, Hsu C W. A three-party password-based authenticated key exchange protocol with user anonymity using extended chaotic maps. Nonlinear Dynamics. 2013; 73(1–2): 125–132. 10.1007/s11071-013-0772-4 [DOI] [Google Scholar]
- 18.Hu X, Zhang Z. Cryptanalysis and enhancement of a chaotic maps-based three-party password authenticated key exchange protocol. Nonlinear Dynamics. 2014; 78(2): 1293–1300. 10.1007/s11071-014-1515-x [DOI] [Google Scholar]
- 19.Xie Q, Zhao J, Yu X. Chaotic maps-based three-party password-authenticated key agreement scheme. Nonlinear Dynamics. 2013; 74(4): 1021–1027. 10.1007/s11071-013-1020-7 [DOI] [Google Scholar]
- 20.Lee C C, Li C T, Chiu S T, Lai Y M. A new three-party-authenticated key agreement scheme based on chaotic maps without password table. Nonlinear Dynamics. 2015; 79(4): 2485–2495. 10.1007/s11071-014-1827-x [DOI] [Google Scholar]
- 21.Xie Q, Hu B, Chen K F, Liu W H, Tan X. Chaotic maps and biometrics-based anonymous three-party authenticated key exchange protocol without using passwords. Chinese Physics B. 2015; 24(11): 110505–110512. 10.1088/1674-1056/24/11/110505 [DOI] [Google Scholar]
- 22.Farash M S, Attari M A. An efficient and provably secure three-party password-based authenticated key exchange protocol based on Chebyshev chaotic maps. Nonlinear Dynamics. 2014; 77(1–2): 399–411. 10.1007/s11071-014-1304-6 [DOI] [Google Scholar]
- 23.Xie Q, Hu B, Wu T. Improvement of a chaotic maps-based three-party password-authenticated key exchange protocol without using server’s public key and smart card. Nonlinear Dynamics. 2015; 79:2345–2358. 10.1007/s11071-014-1816-0 [DOI] [Google Scholar]
- 24.Lu Y, Li L, Zhang H, Yang Y. An Extended Chaotic Maps-Based Three-Party Password-Authenticated Key Agreement with User Anonymity. PLoS ONE 2016; 11(4): e0153870 10.1371/journal.pone.0153870 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 25.Bergamo P, D’Arco P, De Santis A, Kocarev L. Security of public-key cryptosystems based on Chebyshev polynomials. IEEE Transactions Circuits and Systems. 2005; 52: 1382–1393. 10.1109/TCSI.2005.851701 [DOI] [Google Scholar]
- 26.Jiang Q, Chen Z, Li B, Shen J, Yang L, Ma J. Security analysis and improvement of bio-hashing based three-factor authentication scheme for telecare medical information systems. Journal of Ambient Intelligence and Humanized Computing, 2017;1–13. 10.1007/s12652-017-0516-2 [DOI] [Google Scholar]
- 27.Jiang Q, Zeadally S, Ma J, He D. Lightweight three-factor authentication and key agreement protocol for internet-integrated wireless sensor networks. IEEE Access. 2017;5, 3376–3392. [Google Scholar]
- 28.Jiang Q, Ma J, Yang C, Ma X, Shen J, Chaudhry S A. Efficient end-to-end authentication protocol for wearable health monitoring systems. Computers & Electrical Engineering.2017. 63, 182–195. [Google Scholar]
- 29.Siddiqui Z, Abdullah A H, Khan M K, Alghamdi A S. Smart environment as a service: three factor cloud based user authentication for telecare medical information system. Journal of medical systems. 2014; 38(1), 9997 10.1007/s10916-013-9997-5 [DOI] [PubMed] [Google Scholar]
- 30.Amin R, Islam S H, Biswas G P, Khan M K, Leng L, Kumar N. Design of an anonymity-preserving three-factor authenticated key exchange protocol for wireless sensor networks. Computer Networks. 2016; 101, 42–62. [Google Scholar]
- 31.Zhang L. Cryptanalysis of the public key encryption based on multiple chaotic systems. Chaos Solit. Fract. 2008; 37(3):669–674. 10.1016/j.chaos.2006.09.047 [DOI] [Google Scholar]
- 32.Messerges T S, Dabbish E A, Sloan R H. Examining smart-card security under the threat of power analysis attacks. IEEE Transactions on Computers. 2002; 51(5): 541–552. 10.1109/TC.2002.1004593 [DOI] [Google Scholar]
- 33.Kim T H, Kim C, Park I. Side channel analysis attacks using am demodulation on commercial smart cards with seed. J. Syst. Soft.,vol. 85, no. 12, pp. 2899–2908, 2012. [Google Scholar]
- 34.Tz S P, Nohl K, Evans D. Reverse-engineering a cryptographic rfid tag, in Proc. USENIX Security 2008.USENIX Association, 2008, pp. 185–193. [Google Scholar]
- 35.Abadi M, Blanchet B, Comon-Lundh H. Models and proofs of protocol security: A progress report. 21st International Conference on Computer Aided Verification. 2009; 2009: 35–49. 10.1007/978-3-642-02658-4_5 [DOI] [Google Scholar]
- 36.Abadi M, Fournet C. Mobile values, new names, and secure communication. ACM SIGPLAN Notices. 2001; 36(3): 104–115. 10.1145/373243.360213 [DOI] [Google Scholar]
- 37.Xue K, Hong P. Security improvement on an anonymous key agreement protocol based on chaotic maps. Communications in Nonlinear Science and Numerical Simulation. 2012; 17(7): 2969–2977. 10.1016/j.cnsns.2011.11.025 [DOI] [Google Scholar]
Associated Data
This section collects any data citations, data availability statements, or supplementary materials included in this article.
Data Availability Statement
All relevant data are within the paper.

