Skip to main content
Advertisement
Browse Subject Areas
?

Click through the PLOS taxonomy to find articles in your field.

For more information about PLOS Subject Areas, click here.

  • Loading metrics

Cryptanalysis and improved mutual authentication key agreement protocol using pseudo-identity

  • Hyang-Rim Jo ,

    Contributed equally to this work with: Hyang-Rim Jo, Kyong-Sok Pak, Chung-Hyok Kim, Il-Jin Zhang

    Roles Conceptualization, Formal analysis, Software, Validation, Writing – original draft

    Affiliation Faculty of Information Science, Kim Il Sung University, Pyongyang, the Democratic People’s Republic of Korea

  • Kyong-Sok Pak ,

    Contributed equally to this work with: Hyang-Rim Jo, Kyong-Sok Pak, Chung-Hyok Kim, Il-Jin Zhang

    Roles Conceptualization, Project administration, Supervision, Writing – original draft, Writing – review & editing

    ks.pak0228@ryongnamsan.edu.kp

    Affiliation Faculty of Information Science, Kim Il Sung University, Pyongyang, the Democratic People’s Republic of Korea

  • Chung-Hyok Kim ,

    Contributed equally to this work with: Hyang-Rim Jo, Kyong-Sok Pak, Chung-Hyok Kim, Il-Jin Zhang

    Roles Formal analysis, Investigation, Software, Writing – original draft

    Affiliation Faculty of Information Science, Kim Il Sung University, Pyongyang, the Democratic People’s Republic of Korea

  • Il-Jin Zhang

    Contributed equally to this work with: Hyang-Rim Jo, Kyong-Sok Pak, Chung-Hyok Kim, Il-Jin Zhang

    Roles Data curation, Software, Validation, Writing – original draft

    Affiliation Faculty of Information Science, Kim Il Sung University, Pyongyang, the Democratic People’s Republic of Korea

Abstract

The authentication key agreement is a scheme that generates a session key for encrypted communication between two participants. In the authentication key agreement, to provide the mutual authentication and the robust session key agreement is one of the important security requirements to enhance the security performance of key agreement. Recently Zhou et al. had proposed the key agreement protocol using pseudo-identifiers, but we found that there were weaknesses in their protocol. We have demonstrated that Zhou et al.’s protocol is vulnerable to replay attack, fails to provide mutual authentication, no key control, re-registration with the original identifier and efficiency in the verification of wrong password. We improved their scheme and proposed an improved authentication key agreement protocol that provides robust mutual authentication and the secure session key agreement. We analyzed its security performance using BAN logic and AVISPA tools and compared computational cost, communication overhead and security properties with other related schemes.

1. Introduction

Authentication key agreement(AKA) is one of the important issues to ensure the confidentiality of network security (to protect user privacy and network resources) as a scheme where the session key is exchanged to encrypt a message exchanged between communication participants on a public network. The authentication key agreement protocol can be divided into key agreement for end-to-end communication, and key agreement for end-to-server communication, depending on the entities involved in the communication. In the key agreement protocol for end-to-end communication, two parties participating in key exchange are both users and it applies for the encrypted communication between users. The key agreement protocol for end-to-server communication is used for encrypted communication between the user and several servers or service providers. Key agreement for end-to-server communication can be classified as a key agreement scheme (SS-AKA) between single server and end users, a key agreement scheme between multiple servers and end users (MS-AKA) [138]. Recently, with the introduction of technologies such as P2p, cloud computing, WSN, and IoT, researchers are further investigating authentication key agreement between end-to-end servers. Particularly, research on key agreement for communication between multiple servers and end users(MS-AKA) is focused on.

For the MS-AKA implementation, researchers introduced multi-factor authentication such as password, smart card and biometrics and they used public key cryptographics and non-cryptographics for key agreement. Research has mainly focused on lightweight and security enhancement. The research for lightweight is based on non-cryptographics [113, 2432] that only uses hash function and XOR operation, and the research for security performance improvement is mainly based on public key encryption [1421, 3237].

However, most of the lightweight approaches suffer from low security performance, and security performance improvements suffer from high computational costs and communication overhead. Research on authenticated key agreement scheme with higher security and lower computational cost and lower communication overhead is still a challenge for researchers. In particular, user anonymity and mutual authentication are very important properties for authenticated key agreement. In this paper, we propose an improved authenticated key agreement scheme based on pseudo-identiy and chaotic maps to provide user anonymity and mutual authentication.

1.1 Related work

In order to implement authentication key agreement between multiple servers and end users, researchers have studied both the key agreement scheme [121] where the registration center does not participate in key exchange and the key agreement scheme [2438] where the registration center participates in key exchange.

In such a way that the registration center does not participate in key exchange, users, servers, or service providers register on the registration center in the system registration phase, and in the key exchange phase, exchange the key without the involvement of the registration center.

Research has mainly been done in terms of security performance enhancement rather than lightening of computational cost.

As authentication factors for the user, they used passwords, smart cards, and biometric information, and used a pre-shared key, a group key and secret-sharing technique for authentication to the service system.

The researchers used computationally efficient hash functions, elliptic curve cryptosystem (ECC), and Chebyshev chaotic maps (CCM) for key agreement to enhance the security performance of key exchange schemes between multiple servers and end users. For key agreement, they used hash functions and performed user authentication using a dynamic identifier and a pre-shared key. In 2007, Liao et al. [1] proposed a secure dynamic identifier-based remote user authentication scheme in a multi-server environment. But it was revealed that his protocol is vulnerable to insider attacks, impersonation attacks, server spoofing attacks, registration center spoofing attacks, and fails to provide mutual authentication by Hsiang et al. [22] in 2009. In 2012, Li et al. [2] proposed a new remote user authentication scheme based on smart card and dynamic identifier for multi-server environments. In order to protect the user identifier from tracking, their scheme allows the user’s identifier to change dynamically whenever the user logs on to the server. In 2012, Tsaur et al. [3] proposed an efficient and secure multi-server authentication scheme with key exchange. However, his protocol was found to be vulnerable to offline password guessing attacks, privileged insider attacks, and malicious user attacks by Xu et al. [4] in 2013. Xu et al. proposed a new dynamic identification-based authentication scheme for a multi-server environment using smart cards. He proposed an improved dynamic identity based scheme to eliminate all the security and efficiency weaknesses without decreasing other security performances in his work. In 2014, Chuang et al. [5] proposed an anonymous multi-server authenticated key agreement scheme based on trust computing using smart cards and biometrics. However, it was revealed that his protocol is vulnerable to denial of service attacks, stolen smartcard attacks, user impersonation attacks, and server spoofing attacks by Maitra et al. [6] and Mishra et al. [7] in 2014. Maitra et al. proposed efficient remote user authentication using biometric and password-based smart cards for telemedicine information systems in a multi-server environment. He found that an unregistered attacker can successfully log into the system as a valid user in Chuang et al.’s scheme, and in order to overcome vulnerabilities, he proposed a scheme that allows users to register simultaneously on a root remote server called registration center to be served from all branch remote servers using a registered smart card. In 2014 Mishra et al. proposed a multi-server authentication key agreement scheme using smart cards based on biometrics to preserve secure user anonymity. He improved Chuang et al.’s protocol, but it was found that his protocol is vulnerable to impersonation attacks, replay attacks, denial of service attacks, fails to achieve perfect forward security and no user re-registration phase by Wang et al. [10] in 2016. Wang et al. proposed cryptanalysis and improvement on multi-server authentication and key agreement schemes based on biometrics. But it was revealed that his protocol is vulnerable to user impersonation attacks, privileged insider attacks, and server impersonation attacks and does not provide perfect forward security by Yang et al. [20] in 2018. Yang et al. designed a protocol that performs mutual authentication between the user and the service provider and exchanges key without involvement of the registration center in a multi-service system environment. In his protocol, the registration center shares the pre-shared key (PSK) and long term key with service providers. In 2015, Amin et al. [8] proposed a new user authentication and key agreement protocol for multiple healthcare provider access available in TMIS. They developed a new structure for access to multiple healthcare providers in order to decrease the vulnerability of a single healthcare provider, where the user can communicate directly and safely with the doctor of the healthcare provider. They also developed smart card-based authentication and key agreement security protocols that can be used in TMIS systems using one-way hash functions as cryptography. In 2017, Guo et al. [11] proposed a key exchange protocol that provides user anonymity in a multi-service system environment. In key exchange, the registration server does not participate, shares a pre-shared key with the service providers and uses the public key of the service providers.

In 2019 Lwamo et al. [12] proposed a key exchange scheme without a third-party server using hash functions and symmetric key encryption. He demonstrated lightweight and anonymity, and the user identifier is encrypted with the service provider’s public key, and it is updated every round. In key exchange using only hash functions, the registration center shares pre-shared key with the service providers to authenticate them. In 2020, Mishra et al. [13] proposed a dynamic ID-based authenticated key agreement scheme for mobile edge computing without a trusted third party. The proposed scheme guarantees mutual authentication between user and edge servers and achieves important security properties such as secure communication, mutual authentication, user anonymity, and session key agreement.

To overcome the disadvantage of using a pre-shared key, researchers used public-key encryption for key exchange.

In 2014, Han et al. [14] proposed an identifier-based mutual authentication with a key agreement protocol for a multi-server environment based on elliptic curve cryptography. In order to improve the performance of precedent bilinear pairing-based several authentication schemes in a multi-server environment, they proposed a new identifier-based mutual authentication protocol using signature based elliptic curve cryptography. In 2016, Chaudhry et al. [9] proposed a secure biometrics-based multi-server authentication scheme for social multimedia networks. They show that first one of the two schemes of Lu et al. [37] designed for multi-server architectures is vulnerable to impersonation attacks and doesn’t provide user anonymity, and the second one is vulnerable to user impersonation attacks. They proposed an enhanced scheme, and used elliptic curve cryptography and hash functions for key exchange. In 2019, Ying et al. [15] proposed a lightweight remote user authentication protocol for multi-server 5G networks using self-verified public-key encryption. To reduce the computational complexity, they used self-verified public-key cryptography based on elliptic curve cryptography to verify the valid of users and servers. Without pairing operations, their scheme could improve computational efficiency and provide mutual authentication. In 2016, Irshad et al. [16] proposed an anonymous multi-user authentication key exchange protocol based on chaotic mapping using smart cards. They reviewed recent multi-server authentication schemes and proposed a single-round trip multi-server authentication protocol based on chaotic mapping to overcome their schemes’ limitations. In 2017 Kumari et al. [17] proposed a user key exchange scheme in a multi-server environment using chaotic mapping. His scheme is based on a single-sign-on, where the registration center pre-shares the secret key with the service providers. In 2019 Qiao et al. [18] proposed an authentication key exchange scheme that provides strong anonymity for multi-server environments in TMIS. His scheme exchanges key with chaotic mapping and encrypts the identifier with symmetric encryption without involving the key exchange server. In 2012 Chuang et al. [19] proposed a generalized identifier-based user authentication scheme for a mobile multi-server environment. In his work, he first proposed a security model for a multi-server environment and then a bilinear pairing-based mutual authentication and key exchange scheme. Their scheme can be used for both common users with long valid periods and anonymous users with short valid periods. In 2020 Yu et al. [21] proposed a key agreement scheme (AKA-NS) that shares keys without authentication servers in an IoT-based cloud environment based on bilinear pairing. His scheme authenticates users based on the Elgamal cryptography signature, and uses secret values based on bilinear pairingand hash functions for key agreement.

To overcome the disadvantage of using a pre-shared key, researchers also proposed a combination of group key agreement and secret-sharing techniques [22, 23]. In 2021, Vinoth et al. [22] proposed a secure multifactor authenticated key agreement scheme for industrial IoT environment to support authorized user remotely accessing the sensors. In their proposed scheme, only hash functions, XOR operation and symmetric encryption are used for session key agreement, and sensor devices share secret information by combining group key agreement and secret-sharing techniques.

The key agreement scheme involving the registration center in key exchange has been studied towards lightweight rather than maintaining security performance. Researchers used passwords, smart cards, and biometric information as the authentication factors for the user, and used a pre-shared key for authentication of the service provider system. In order to lighten the computational cost of the scheme, researchers focused on computationally efficient hash functions, ECC and ECM for key agreement. Some researchers designed the protocol where the registration center participates in key exchange, using only a hash function without using public-key encryption in key exchange to reduce computational cost.

In 2009, Hsiang et al. [24] proposed a secure dynamic ID-based remote user authentication scheme for a multi-server environment. But it was revealed that his protocol is vulnerable to impersonation attacks, server spoofing attacks, cannot be easily repaired, and cannot provide mutual authentication by Lee et al. [25] In 2011, Lee et al. proposed a secure dynamic identifier-based remote user authentication scheme for a multi-server environment using smart cards. But it was revealed that his protocol is vulnerable to impersonation attacks and server spoofing attacks, and if the mutual authentication message is partly modified by the attacker, it cannot provide a corresponding authentication by Li et al. [2] in 2012. In 2014, Xue et al. [26] proposed a lightweight dynamic anonymous identity-based authentication and key exchange protocol that does not use verification tables in a multi-server environment. However, in 2015, Gupta et al. [27] has shown that Xue et al.’s protocol is vulnerable to known password guessing attacks, stolen smartcard attacks, and impersonation attacks, and in 2018, Amin et al. [29] found that Xue et al.’s protocol has flaws in user anonymity, offline password guessing attacks, privileged insider attacks, no key control, user impersonation attacks. Gupta et al. proposed a hash function-based multi-server key exchange protocol with smart cards. But in 2019, it was found that his protocol is vulnerable to denial of service attack, stolen smart card attack, and user impersonation attacks and that it does not achieve perfect forward security by Tomar et al. [35]. Tomar et al. proposed an authentication key exchange protocol with a password, biometrics (Fuzzy extractor) and smart cards. His protocol uses timestamps, uses elliptic curve cryptography to establish the session key, and performs mutual authentication using two control servers. Amin et al. proposed the anonymous authentication and key exchange protocol between a user and multi-server in cloud environment. In his work, the server and user use a shared secret that combines the server’s secret with the user’s identifier, and the user accesses to the smart card using the password. In 2016, Maitra et al. [28] proposed an enhanced multi-server authentication protocol using passwords and smart cards. He found that some flaws in the precedent works, and he proposed a new protocol, focusing on the improvement of their security performances, and used symmetric key encryption. In 2018, Wei et al. [30] proposed a two-factor authentication key exchange protocol using the password and secret keys stored in smart cards in cloud environments. They used the shared-secret key combined with timestamps as a message-encryption key. In 2019, Zhou et al. [31] proposed a lightweight authentication key exchange protocol based on a hash function in cloud computing environment. In his work, they updated pseudo-identities of two participants every round. The user registers with identifiers, pseudo-identifiers, passwords, and random numbers, and the IoT controller registers with identifiers, pseudo-identifiers, and random numbers.

To enhance the security performance of key exchange, some researchers have used public key encryption such as ECC and ECM.

In 2010, Yoon et al. [32] proposed a robust multi-server authentication scheme based on biometrics using smart cards in elliptic curve cryptography. They proposed an authentication scheme without a verification table, and the proposed scheme can provide stronger user authentication by using biometrics, and provide more secure key exchange scheme based on ECC. In 2017, Chandrakar et al. [33] proposed a key exchange protocol for remote user authentication that provides three factors authentication and anonymity using elliptic curve cryptography in a multi-server environment. For the exchanged key, they use Elliptic Curve Diffie–Hellman (ECDH), but for the encryption, they use the addition of a point on elliptic curve, and XOR without the use of special encryption. In 2018, Qi et al. [34] proposed a key exchange scheme using elliptic curve cryptography in a multi-server environment. They used the server’s public-key-based symmetric key encryption for the communication between the user and the server. They also used the registration center’s public-key-based symmetric key encryption for communication between the server and the registration center. Thus, his protocol provides a relatively strong key exchange scheme. In 2017, Irshad et al. [36] proposed a new user authentication key exchange protocol based on chaotic mapping for a multi-server environment. They used password, biometrics, smart card and the secret key shared with the registration center to authenticate the user and used chaotic mappings and bio-hash functions to exchange the session key. In 2021, Xia [38] proposed a modular exponention based anonymous authentication and key agreement scheme with privacy-preserving in IoT environment for smart city, and the work for authenticated key agreement scheme was studied not only in P2P, IoT environment, but also in VANET environment [39].

1.2 Motivation and our contribution

According to the research of the precedent schemes, we found that key agreement protocols without the registration server have several disadvantages such as the mutual authentication, anonymity and untraceability in their implementation for communication between multiple servers and end users [1, 3, 7, 10]. Also we found that the research in protocols with the registration server has been intensified towards lightweight, but on the other hand, their security performance has become weakened [24, 26, 29]. In our work, we analysed the pre-shared key-based Lwamo et al.’s scheme [12] where the registration center doesn’t participate in the key agreement, and found that his scheme is vulnerable to the stolen smart card attack. We also analysed the pseudo-identities-based Zhou et al.’s scheme [31] where the registration center participates in the key agreement, and found that their scheme is vulnerable to replay attack and does not provide mutual authentication, no key control, re-registration with an original identity, and efficiency in the verification of wrong password. From this research, we propose an improved authentication key agreement protocol for communication between multi-servers and end users to overcome the flaws of Zhou et al.’s scheme. Finally, we analysed the security properties of our protocol and performed comparative analysis with precedent protocols to show that our protocol is superior in terms of security properties and computational complexity.

2. Preliminaries

This section describes Fuzzy extractor, Chebyshev chaotic maps, their computational problems and threat model.

2.1 Fuzzy extractor

The fuzzy extractor includes two functions Gen and Rep. The function Gen extracts biometric input BI, and outputs a nearly random binary string R and an auxiliary binary string P. And the function Rep recovers R with the assistance of corresponding auxiliary string P and biometric BI*. If dis(BI, BI*) ≤ t and Gen(BI) → <R, P>, then we have Rep(BI*, P) = R. Otherwise, there is no guarantee provided by function Rep. The literature [40, 41] describes more details about the fuzzy extractor.

2.2 Chebyshev polynomials

Chebyshev polynomial Tm(a) is defined as follows [42].

Chebyshev polynomials satisfy the following recursive relationship [42].

2.3 The property of Chebyshev polynomials

Chebyshev polynomials have the following two properties [42, 43].

Chaotic property: When m>1, Chebyshev polynomial map Tm(a): [–1,1]→[–1,1] of degree m is a chaotic map with its invariant density , for positive Lyapunov exponent ln(m) > 0.

Semi-group property: For x, yN and any a∈[–1,1], Tx(Ty(a)) = Txy(a) = Ty(Tx(a)).

2.4 Enhanced Chebyshev polynomials

The semi-group property holds for Chebyshev polynomials on the interval (-∞, +∞), which can enhance the property as follows [43]:

2.5 Computational problems based on Chebyshev polynomials

CDLP (Chaotic map-based Discrete Logarithm problem): For given two real numbers a and b, it is infeasible to find the integer m by any polynomial time bounded algorithm, where b = Tm(a) mod p [43].

CDHP (Chaotic map-based Diffie-Hellman problem): For given three elements a, Tx(a) mod p and Ty(a) mod p, it is infeasible to compute the value Txy(a) mod p by any polynomial time bounded algorithm [43].

2.6 Threat model

In this subsection, we introduce several threat models including the Dolev-Yao threat model [44], side channel attack [45], and password guessing attack [46], for the security analysis of the proposed scheme and previous schemes.

  1. An attacker can eavesdrop, modify, remove, block and retransmit all messages transmitted on the public channel [44].
  2. An attacker can extract all stored data from a lost or stolen smart card as a power analysis attack [40].
  3. An attacker can perform offline and online password guessing attacks after obtaining information from user’s smart card [46].
  4. An attacker can be a malicious user or an outside hacker [20].

3. Analysis of precedent schemes

In this section, we review the schemes proposed by Lwamo et al. [12] and Zhou et al. [31], and show that their schemes have some flaws.

3.1 Analysis of Lwamo et al.’s scheme

3.1.1 Lwamo et al.’s scheme.

Lwamo et al. proposed the authentication key agreement protocol without the registration center using hash function and symmetric key encryption. The user identity is encrypted with the public key of the service server and it is updated every round.

Table 1 shows the notations used in his scheme.

Registration phase
  • Registration for server
    To be a valid server, the server sends a registration request to RC via a secure channel. The server’s identity Sj and its public key puj are contained in the registration request. Then RC sends VPSK and s to the server by a response via a secure channel like Internet Key Exchange version 2 (IKEv2) and publishes puj.
  • Registration for user
    1. Step 1: First the user Ai selects his/her identity Ui, password Pi, a nonce ai and biometric information BOi.
    2. Step 2: Ai computes MPi = h(Ui || ai || Pi) and VREG = h(MPiBOi).
    3. Step 3: The registration request {Ui, VREG = h(MPiBOi)} is sent to RC by Ai.
    4. Step 4: SAi = h (Ui || s), SBi = h(SAi) and SCi = h(VREG = h(MPiBOi))⊕SBi are generated by RC.
    5. Step 5: The RC chooses a nonce aci for Ai, computes MUi = Es(Ui||aci), SDi = VPSKMUi and makes the smart card storing {MUi, SBi, SCi, SDi, h(.)} its own possession.
    6. Step 6: The Ai inserts the nonce ai into the smart card, which now includes SC = {MUi, ai, SBi, SCi, SDi, h(.)} and owns the smart card.
Login and authentication phase
  1. Step 1: Ai inserts the smart card into the reader and enters Ui, Pi and BOi.
  2. Step 2: Then the smart card computes SBi* = SCih(h(Ui||ai||Pi) ⊕ BOi) and sees if SBi* = SBi. If SBi*≠SBi, the smart card stops the login phase. The smart card is blocked if the two values do not match for three continued trials within limited threshold time.
  3. Step 3: Then the smart card chooses a nonce Rai and computes M1 = h(SBi) ⊕ Rai, M2 = h(Rai || MUi || SDi ||T1), where T1 is the current time on the smart card, and M3 = Epuj(MUi, M1).
  4. Step 4: The smart card sends the login request LOGIN {M2, M3, Sj, T1} to the server Bj.
  5. Step 5: When Bj receives the request, the difference between the received login request time T1 and the server time T2 is computed as ΔT = T2T1 by Bj, the phase is terminated by the server if the difference is bigger than the required transfer time.
  6. Step 6: To get MUi and M1, M3 is decrypted as Dprj(M3) by the server. And to get the real identity of the user MUi is decrypted as Ds(MUi) = Ui || aci by the server.
  7. Step 7: The server calculates SAi* = h (Ui||s) and Rai = M1h2(SAi*).
  8. Step 8: M2* = h (Rai|| MUi || (VPSKMUi) ||T1) is computed and it is checked if M2 = M2* by the server. The session is stopped if M2M2*.
  9. Step 9: The server selects two nonces Raj and Rajnew, calculates s* = h(Rai|| T3) where T3 is the current server time, and computes a new identity for Ai as MUinew = h(Ui|| Rajnew).
  10. Step 10: Then a challenge message M4 = Es (MUinew||Raj||Rai||Ui||Rjnew||Sj) and the masked identity MSj = h(SjRaj) are computed by the server. And the message CHALLENGE {M4, MSj, T3} is sent to Ai.
  11. Step 11: After receiving the message from the server, the smart card computes the difference ΔT = T4T3, where T4 is the current time on the smart card. The smart card stops the session if the difference is bigger than the defined interval.
  12. Step 12: The smart card calculates s* = h(Rai|| T3) and M4 is decrypted as Ds*(M4) to get MUinew, Raj, Rai, Rajnew, Ui and Sj.
  13. Step 13: The smart card calculates MUinew * = h(Ui|| Rajnew *) and MSj* = h(Sj||Raj). And then it sees if MSj = MSj* and if MUinew* = MUinew. Also the smart card sees if Ri and Ui are equal to those sent to the server on the login request, if they do not match, the smart card terminates the session.
  14. Step 14: The response message M5 = h(Raj||MUinew||Rai) and the session key Skij = h(Rai||SBi||Sj||Raj) is calculated by the smart card. And the smart card sends the response RESP {M5} to Bj.
  15. Step 15: After the server receives the response, it calculates M5* = h (Raj||MUinew||Rai) and sees if M5* = M5. The session is stopped if M5*≠M5.
  16. Step 16: The session key Skij = h(Rai||h2(Ui||s) ||Sj||Raj) is computed by the server. In this step, the mutual authentication between the user and the server is achieved and the session key between them is created.
Password update phase
  1. Step 1: The user inserts the smart card into the card reader and inputs Ui, Pi and BOi.
  2. Step 2: The smart card computes SBi* = SCih ((h(Ui||ai||Pi) ⊕ BOi).
  3. Step 3: The smart card sees if SBi* = SBi and stops the session if SBi*≠SBi.
  4. Step 4: The smart card gets a new password Pinew from the user and calculates SCinew = SCih(h(Ui|| ai || Pi) ⊕BOi) ⊕h(h(Ui|| ai || Pinew) ⊕BOi).
  5. Step 5: The value of SCi is replaced with SCinew by the smart card.

3.1.2 Flaws of Lwamo et al.’s scheme.

Stolen smart card attack. In his scheme, SC = {MUi, SBi, SCi, SDi, h(.), ai} is stored in his/her smart card. Thus, an attacker can get SBi directly without inputting the identity Ui, the password Pi or the biometric BOi if he gets the user’s smart card. Then the attacker generates a random number Rai, computes M1 = h (SBi) ⊕ Rai, M2 = h (Rai||MUi||SDi||T1) and M3 = Epuj(MUi, M1) and sends LOGIN{M2, M3, Sj, T1} with a time stamp T1 to the server Bj. In this case, Bj recognizes the attacker as a valid user Ai. After receiving the message CHALLENGE {M4, MSj, T3} from the server via step 10 from the step 4 of the login and authentication phase, the attacker finally gets the session key Skij = h(Rai||h2(Ui||s) ||Sj||Raj) between himself and the server Bj.

As a result, Lwamo et al.’s scheme is vulnerable to the stolen smart card attack.

3.2 Analysis of Zhou et al.’s scheme

3.2.1 Zhou et al.’s scheme.

In 2019, Zhou et al. proposed a hash function-based lightweight authentication key agreement scheme for user-multi IoT access in IoT environment. In their scheme, the pseudo-identities are used. Table 2 shows the notations used in Zhou et al.’s scheme.

Registration phase
  • Registration for user
    1. Step 1: UVi chooses his/her identity and pseudo-identity pair (Ii, PIi), password PAi and a random number ri. HPi = h (PAi || ri) is computed and (Ii, PIi) is sent to CS through the secure channel by the user.
    2. Step 2: CS sees if Ii is valid and will terminate the registration process if the identity is invalid. If it is valid, then CS computes C1* = h (PIi||Ics||k) and C2* = h (Ii||k). And the identity Ii is stored in database and (C1*, C2*, Ics) is sent to UVi through the secure channel by CS.
    3. Step 3: The user calculates C1 = C1* ⊕ HPi, C2 = C2* ⊕ h (Ii ||HPi) and C3 = rih(Ii || PAi) and stores (C1, C2, C3, PIi, Ics) in his smart card.
  • Registration for cloud server
    1. Step 1: The server SVj’s identity and pseudo-identity pair (SIj, PSIj) is sent to CS through a secure channel by the server.
    2. Step 2: CS calculates B1 = h(PSIj||Ics||k) and B2 = h(SIj ||k), stores Sij and (B1, B2, Ics) is sent to the server through the secure way.
    3. Step 3: (B1, B2, SIj, PSIj, Ics) is stored in SVj’s database.
Authentication phase
  1. Step 1: The user UVi inserts his/her smart card into the reader and inputs (Ii, PAi). And the smart card chooses a nonce bu and a new pseudo-identity PIinew and calculates ri = C3h(Ii || PAi), HPi = h(PAi|| ri), C1* = C1HPi, C2* = C2h(Ii || HPi), D1 = C1* ⊕ bu, D2 = h(bu||PIi||Ics) ⊕Ii, D3 = C2* ⊕ h(Ii ||HPi) ⊕ PIinewh(bu || Ii), D4 = h(Ii||PIi||PIinew||bu||D3). Then the user sends the message M1 = {PIi, D1, D2, D3, D4} to the nearest cloud server SVj.
  2. Step 2: The server chooses PSIjnew and a nonce bs, calculates D5 = B1bs, D6 = h (bs||PSIj||Ics) ⊕ SIj, D7 = B2PSIjnewh(bs || SIj), D8 = h(SIj||PSIj||PSIjnew||bs||D7). And SVj sends the message M2 = {PIi, D1, D2, D3, D4, PSIj, D5, D6, D7, D8} to CS through the secure channel.
  3. Step 3: bu = D1h(PIi||Ics||k), Ii = D2h(bu||PIi||Ics), PIinew = D3h(Ii || k) ⊕ h(bu || Ii) is computed by CS and CS sees if Ii is valid and sees if D4 = h(Ii||PIi||PIinew||bu||D3). If so, CS computes bs = D5h(PSIj||Ics||k), SIj = D6h(bs||PSIj||Ics), PSIjnew = D7h(SIj ||k) ⊕ h(bs || SIj) and sees if Sij is valid and sees if D8 = h(SIj||PSIj||PSIjnew||bs||D7). CS will stop the session if any verification is not right. Or else, CS chooses a nonce bcs and computes SKcs = h(bubsbcs), D9 = h(PSIjne w||Ics||k) ⊕ h(bs || PSIjnew), D10 = h(PSIjnew||bs||PSIj) ⊕ (bubcs), D11 = h(SKcs||D9||D10 || h(SIj || k)), D12 = h(PIinew||Ics||k) ⊕ h(bu|| PIinew), D13 = h(PIinew||bu||PIi) ⊕(bsbcs), D14 = h(SKcs||D12||D13|| h(Ii || k)). And CS sends the message M3 = {D9, D10, D11, D12, D13, D14} to SVj.
  4. Step 4: (bubcs) = D10h (PSIjnew||bs||PSIj) and SKs = h (bsbubcs) are computed by SVj. And the server sees if D11 = h (SKs||D9||D10 || B2) is true. If it’s true, SVj computes B1new = D9h(bs ||PSIjnew) and replaces (B1, PSIj) with (B1new, PSIjnew). In the end, the server sends the message M4 = {D12, D13, D14} to UVi.
  5. Step 5: After receiving M4, the smart card calculates (bsbcs) = D13h(PIinew||bu||PIi), SKu = h(bubsbcs) and sees if D14? = h (SKu||D12||D13 || C2*) is true. If passed, the smart card calculates C1new = D12h (bu || PIinew) ⊕ HPi and replaces (C1, PIi) with (C1new, PIinew).
Password update phase
  1. Step 1: When the user UVi wants to change his/her password, he/she inserts his/her smart card into the reader and inputs (Ii, PAi). And the smart card chooses a nonce bu and a new pseudo-identity PIinew and calculates ri = C3h(Ii || PAi), HPi = h(PAi || ri), C1 * = C1HPi, C2 * = C2h(Ii || HPi), D1 = C1* ⊕ bu, D2 = h(bu||PIi||Ics) ⊕Ii, D3 = C2* ⊕ h(Ii || HPi) ⊕ PIinewh(bu || Ii) and D4 = h(Ii||PIi||PIinew||bu||D3). Then the user sends the message M5 = {PIi, D1, D2, D3, D4} with a password change request to CS.
  2. Step 2: CS calculates bu, Ii, Pi and sees if Ii and D4 are correct. If so, D12 and D15 = h(Ii||PIi||PIinew||bu||D12) is computed by CS. In the end, M6 = {D12, D15} with a permission is sent to UVi.
  3. Step 3: The smart card sees if D15 = h(Ii||PIi||PIinew||bu||D12) is true. If so, it prompts UVi to enter a new password PAinew and calculates HPinew = h(PAinew || ri), C1new2 = D12h(bu ||PIinew) ⊕ HPinew, C2new = C2* ⊕ h(Ii || HPinew) and C3new = rih(Ii || PAinew) and replaces (C1, C2, C3, PIi) with (C1new2, C2new, C3new, PIinew).

3.2.2 Cryptanalysis of Zhou et al.’s scheme.

No providing mutual authentication. Zhou et al.’s scheme doesn’t provide the mutual authentication between the user and the server. At first, in the step 1 of authentication phase, the message M1 = {PIi, D1, D2, D3, D4} which is sent to the server by the user doesn’t include the information concerned with the server SVj. And in the step 2 of authentication phase, after receiving the message M1, SVj directly computes D5, D6, D7 and D8 without verifying the user which sends M1, and then sends the message M2 = {PIi, D1, D2, D3, D4, PSIj, D5, D6, D7, D8} to the registration center CS. Also in the step 3, CS authenticates SVj by checking if D8 = h(SIj||PSIj||PSIjnew||bs||D7) and authenticates UVi by checking if D4 = h(Ii||PIi||PIinew||bu||D3). In the step 4, when the server receives the message M3 = {D9, D10, D11, D12, D13, D14}, the server authenticates CS by checking if D11 = h (SKs||D9||D10 || B2). But the message M3 doesn’t contain the information that the server can authenticate the user UVi. In this step, the information concerned with UVi is only (bubcs) but using it, the server cannot authenticate the user UVi. So in this step, the server can authenticate CS, but it cannot authenticate the user UVi. Continuously in the step5, UVi receives the message M4 = {D12, D13, D14} from the server and authenticates CS by checking if D14 = h(SKu||D12||D13 || C2*). But the information that the user can authenticate the server SVj isn’t included in the message M4. In this step, the information concerned with SVj is only (bsbcs) but using it, the user cannot authenticate SVj. So in this step, the user can authenticate CS, but cannot authenticate the server SVj.

In conclusion, Zhou et al.’s scheme doesn’t provide the mutual authentication between the user and the server.

According to the random oracle model [46], the attacker can intercept and steal the message M1 which is sent to the server SVj by UVi and he can send it to another server SVm which is not the server SVj. Then SVm cannot know that UVi sent M1 to itself because the mutual authentication isn’t provided between them. And the server SVm sends the message M4 to the attacker after passing from the step2 to the step 4. In that case, the attacker sends back this message to the user UVi and the user UVi regards the session key which he computes in the end as the session key between himself and the server SVj because he doesn’t know that he has communicated with the server SVm until then.

Like this, in this scheme, the user doesn’t know which server he is communicating with, so even if the attacker sends his message to the other server, he will never recognize it.

Replay attack. In the step2 of the authentication phase, after receiving the message M1 from the user, the server doesn’t check if the message M1 was replayed. And the server computes D5, D6, D7, D8 and sends the message M2 to CS. And in the step3, the message M2 which the server sent to CS doesn’t contain any information which CS can check if M1 was replayed in the step1 such as a time stamp or the random number which CS generated and sent to the user. In this step, CS only knows the random number bu generated by the user. So CS also doesn’t recognise the replay attack. Thus, if the attacker steals the message M1 and retransmits it to the server SVj, the server will not recognize this attack and will keep computing. After receiving M1, the server will send M2 to CS and CS also will not recognize the replay attack and will transmit M3 to the server. Finally, the server will send M4 to the attacker. Like this way, the attacker can pass the step2, 3 and 4 very easily. As a result, this scheme is vulnerable to the replay attack.

No key control. In Zhou et al.’s scheme, the session key is computed as follow: SKs = h(bsbubcs). Here, bs is the random number generated by the server, bu is the random number generated by the user and bcs is the random number generated by CS. In the step3 of the authentication phase, CS gets bu and bs by computing bu = D1h (PIi||Ics||k) and bs = D5h(PSIj||Ics||k). And CS generates the random number bCS and computes the session key SKcs = h (bubsbcs). Like this, CS knows all of the three random numbers so the session key between the user and the server publishes to CS. As we know, the session key is the secret value which only two session entities must have because this is the key for the session between the user and the server. But in this scheme, CS also gets the session key between the user and the server. Thus, this scheme doesn’t provide no key control property.

Re-registration with the original identity. In the user registration process of this scheme, the secret value concerned with the user identity is C2* = h(Ii || k). In the case that CS’s secret key k is known to the attacker, the user has to update the value of C2* concerned with his identity by reregistration in CS. So the attacker cannot guess the next round’s secret value. But in this scheme, the user cannot register again with his original identity Ii and he can no longer use this identity because the secret C2* doesn’t include any nonce.

If a random number is included in the computing of C2*, the user can use the original identity because he can update C2* by generating the new random number.

Inefficiency in the verification of wrong password. In 2006, Tsai et al. [47] pointed out that the ideal password-based scheme should detect typo error quickly without the communication with the home server. But in Zhou et al.’s scheme, if the attack inputs wrong password, it can not be quickly detected by the smart card. In the step 1 of the authentication phase, the smart card gets ri = C3h(Ii || PAi) when the user enters his identity and password. But in this step, the smart card doesn’t check if this ri is the same with the random number generated by the user in the registration phase, keeps computing and sends the message M1 to the server. In the step2, there is also no verification process of the password and in this step the server sends the message M2 to CS. Only then in the step3, CS can recognise the wrong password by checking the value of D4.

Therefore, if the attacker inputs the wrong password in the step1, all the values computed in this step will be wrong. But the authentication process keeps going passing the step2 and step3, only then in the step3 these errors are detected.

4. Proposed scheme

In this section we describe an improved authentication key agreement protocol using pseudo-identity that overcomes the limitations of the Zhou et al.’s scheme. The proposed scheme consists of four steps: registration phase, authentication, session key exchange phase, password change phase and user revocation, reregistration phase. The notations in Table 3 are used to describe the proposed scheme in our work.

4.1 Registration phase

4.1.1 User registration phase.

All users who want to exchange session keys using the proposed scheme must register on CS.

Fig 1 shows the user registration process.

  1. Step 1: The user URi selects UIDi, PUIDi, PWi and inputs BIOi in the smart card. Then the smart card extracts (Ri, Pi) from Gen(BIOi) → (Ri, Pi), computes VDi = h(PWi||Ri||UIDi) and sends (UIDi,PUIDi) to R via a secure channel.
  2. Step 2: The registration center R generates a random number RUc, computes UD1* = h(PUIDi||RID||xU), UD2* = h(UIDi||xU||RUcs) and stores UIDi, RUcs in its database. And then R sends (UD1*, UD2*, RID) to URi via a secure channel.
  3. Step 3: The user computes UD1 = UD1*⊕VDi, UD2 = UD2*⊕VDi, UD3 = h(VDi||UD1*||UD2*) and stores (UD1,UD2,UD3,PUIDi,RID,Pi) in his smart card.

4.1.2 Server registration phase.

Fig 2 shows the server registration process.

  1. Step 1: The server SRj first selects SIDj, PSIDj and sends (SIDj, PSIDj) to R via a secure channel.
  2. Step 2: R computes SD1 = h (PSIDj||RID||xS), SD2 = h(SIDj||xS||RScs) and stores SIDj, RScs in the database. And then R sends (SD1, SD2, RID) to the server.
  3. Step 3: The server SRj stores (SD1, SD2, SIDj, PSIDj, RID) in his smart card.

4.2 Authentication and session key exchange phase

Fig 3 shows the authentication and session key exchange steps of the proposed scheme.

thumbnail
Fig 3. Authentication and session key exchange phase of the proposed scheme.

https://doi.org/10.1371/journal.pone.0271817.g003

  1. Step 1: The user URi inserts his smart card into a card reader and enters UIDi, PWi and BIOi*. The smart card recovers Ri from Rep(BIOi*,Pi) → Ri, selects the random numbers rU, PUIDinew, rkU and computes PU = TrkU(α) mod p, UD1* = UD1h(PWi||Ri||UIDi), UD2* = UD2h(PWi||Ri||UIDi). And then URi computes UD3’ = h(h(PWi ||Ri ||UIDi) ||UD1*||UD2*) and checks if UD3’ = UD3. If it’s false, this phase will be stopped. If so, the smart card calculates E1 = UD1*⊕rU, E2 = h(rU||PUIDi||RID) ⊕UIDi, E3 = PUIDinewh(rU||UIDi), VUR = h(UIDi||PUIDi||PUIDinew||rU||PU||SIDj||T1||UD2*)(T1 is a time stamp.) and sends the message M1 = {PUIDi,E1,E2,E3,VUR, PU,T1} to the server SRj.
  2. Step 2: After receiving the message M1, the server SRj computes ΔT = T1-T2 that is the difference between T1 and T2 (T2 is the current time on SRj). If the difference ΔT is greater than ΔTdefine that is the defined time interval, the server will stop the authentication phase. Else the server selects PSIDjnew, rS, rkS and calculates PS = TrkS(α) mod p, SK = TrkS(PU) = TrkS,rkU(α) mod p, E4 = SD1rS, E5 = h(rS||PSIDj||RID)⊕SIDj, E6 = PSIDjnewh(rS||SIDj), VSU = h(SK||SIDj||RID), VSR = h(SIDj||PSIDj|| PSIDjnew||rS||PU||PS||T3||VSU|| SD2) (T3 is a time stamp.). And SRj transmits the message M2 = {PUIDi,E1,E2,E3, VUR,E4,E5,E6,VSR,T1,T3,PS, PU,VSU} to the registration center R.
  3. Step 3: And R computes ΔT* = T3-T4 that is the difference between T3 and T4 (T4 is the current time on R). If ΔT* is greater than ΔT*define that is the defined time interval, R will stop this phase. Else R computes the following data: rU = E1h(PUIDi||RID||xU), UIDi = E2h(rU||PUIDi||RID), UD2*’ = h(UIDi||xU||RUcs), PUIDinew = E3h(rU||UIDi), rS = E4h(PSIDj||RID||xS), SIDj = E5h(rS ||PSIDj||RID), SD2* = h(SIDj||xS||RScs), PSIDjnew = E6h(rS||SIDj). And then R checks if the identity UIDi is valid. If so, R computes VUR’ = h(UIDi||PUIDi||PUIDinew||rU||PU||SIDj||T1||UD2*) and checks if VUR’ = VUR. If not so, the session will be terminated. Else it is checked if SIDj is valid, computes VSR’ = h(SIDj||PSIDj|| PSIDjnew||rS||PU||PS||T3||VSU|| SD2) and checks if VSR’ = VSR. If so, E7 = h(PSIDjnew||RID||xS)⊕h(rS||PSIDj), VRS = h(SD2*||rS||PU), E8 = h(PUIDinew||RID||xU)⊕h(rU||PUIDi), VRU = h(UD2*’||rU||PS) are computed and R sends the message M3 = {E7,E8,VRU,VRS,PS,VSU} to URi.
  4. Step 4: Then the user calculates VRU’ = h(UD2*||rU||PS) and checks if VRU’ = VRU. If so, he calculates SK’ = TrkU(PS) = TrkSrkU(α) mod p, VSU’ = h(SK’||SIDj||RID) and checks if VSU’ = VSU. If not so, the session will be stopped. Else he keeps SK’ as the session key SK. And the user computes UD1*new = E8h(rU||PUIDi), UD1new = UD1*newh(PWi||BIOi||UIDi) and replaces (UD1,PUIDi) with (UD1new,PUIDinew). Also he calculates VUS = h(SK||RID) and transmits the message M4 = {E7, VRS, VUS} to the server SRj.
  5. Step 5: The server SRj computes VRS’ = h(SD2||rS||PU) and checks if VRS’ = VRS. If so, SRj computes VUS’ = h(SK||RID) and checks if VUS = VUS’. If not so, the session will be terminated. Else the server regards SK as the session key for itself and URi, computes SD1new = E7h(rS||PSIDj) and replaces (SD1, PSIDj) with (SD1new, PSIDjnew).

4.3 Password change phase

  1. Step 1: When the user URi wants to change his password, he first inserts his smart card into a reader and inputs UIDi, PWi and BIOi. Then the smart card extracts (Ri, Pi) from Gen(BIOi) → (Ri, Pi), selects rU, PUIDinew, rkU, computes PU = TrkU(α) mod p, UD1* = UD1h(PWi||Ri||UIDi), UD2* = UD2h(PWi||Ri||UIDi),UD3’ = (h(PWi||Ri||UIDi)||UD1*||UD2*) and checks if UD3’ = UD3. If so, the smart card calculates E1 = UD1rU, E2 = h(rU||PUIDi||RID) ⊕UIDi and E3 = UD2*⊕PUIDinewh(rU||UIDi), VUR = h(UIDi||PUIDi||PUIDinew||rU||PU||SIDj||T5)(T5 is a time stamp.), and sends the message M5 = {PUIDi,E1,E2,E3,VUR, PU,T5} with a password change request to R.
  2. Step 2: After receiving the message with a request, R calculates ΔT** = T5-T6 that is a difference between T5 and T6 (T6 is the current time on R). If ΔT** is greater than a defined time interval, R will terminate this phase. Else R computes rU = E1h(PUIDi||RID||xU), UIDi = E2h(rU||PUIDi||RID), UD2*’ = h(UIDi||xU||RUcs), PUIDinew = E3UD2*’⊕h(rU||UIDi). And R checks if UIDi is valid, computes VUR’ = h(UIDi||PUIDi||PUIDinew||rU||PU||SIDj||T1) and checks if VUR’ = VUR. If so, E8 = h(PUIDinew||RID||xU)⊕h(rU||PUIDi), E9 = h(UIDi||PUIDi||PUIDinew||rU||D8) are computed and the message M6 = {E8,E9} is sent to the user URi.
  3. Step 3: And the smart card of URi calculates E9’ = h(UIDi||PUIDi||PUIDinew||rU||E8) and checks if E9’ = E9. If so, URi enters the new password PWinew. Then the smart card calculates VDinew = h(PWinew||Ri||UIDi), UD1new2 = UD1newVDinew, UD2new = UD2*⊕VDinew, UD3new = h(VDinew||UD1new||UD2*) and replaces (UD1,UD2,UD3) with (UD1new2,UD2new,UD3new).

4.4 User revocation and re-registration phase

4.4.1 User revocation phase.

If the user URi wants to revocate his data on the registration center, he needs to send his identity UIDi with a revocation request to R via a secure channel. Then R checks if UIDi was included in its database and if so, R will remove all data concerned with the identity UIDi in the database. And a revocation response is sent to the user URi via a secure channel.

4.4.2 Reregistration phase.

If the user URi wants to register again, he has to choose his new identity, new pseudo-identity, new password, new biometric and to pass the steps in the user registration phase as they are. In the precedent schemes, the user’s secret key UD1* = h (UIDi||xU) consists of only the user’s identity and the server’s secret value. Thus, if the user’s secret key is published, the user must choose a new identity to register again. But in our scheme, the user’s secret key UD1* = h (UIDi||xU||RUcs) consists of the user’s identity, the server’s secret value and a nonce. The user’s secret key is updated without the identity change because the registration center R generates a new nonce RUcs every registration phase. Therefore, the user can register again on R without change of his identity. To register again on R with an original identity, the user has to transmit his original identity, pseudo-identity, password and biometric to R. And then he has to pass the steps in the user registration phase as they are.

5. Security analysis of the proposed scheme

In this section, we analyse the security properties of the proposed scheme. First, we prove the validation of the session key between the user and server by using BAN logic [48]. Next, we simulate the proposed scheme for the formal security analysis by using AVISPA (Automated validation of internet security protocol and application) tool [49]. Last, we demonstrate the proposed scheme can resist various kinds of attacks.

5.1 Authentication proof based on BAN logic

Notations and rules.

We define P and Q as the specific participators, S is the trusted server, and X is the formula (statement). Some notations and rules of BAN logic are as follows [48].

  1. P |≡ X: P believes X.
  2. PX: P sees X.
  3. P |∼ X: P once said X.
  4. P |⇒ X: P has jurisdiction over X.
  5. #(X): X is fresh.
  6. : K is a shared secret key between P and Q.
  7. {X}K: Formula X is encrypted under the key K.
  8. <X>Y: X combined with the formula Y.
  9. (Message-meaning rule): if P believes that the key K is shared with Q and receives a message containing X encrypted under K, then P believes that Q once said X.
  10. (Nonce-verification rule): if P believes X is fresh and Q once said X, P believes Q believes X.
  11. (Jurisdiction rule): if P believes that Q had jurisdiction right to X and believes Q believes X, P believes X.
  12. (Freshness rule): If X is a part of message (X, Y) and X is fresh, message (X, Y) is also fresh.
  13. (Belief rule 1): If P believes Q believes the message set (X, Y), P also believes Q believes the message X.
  14. (Belief rule 2): If P believes the message X and Y, P also believes the message set (X, Y).
  15. (Hash function rule): if P believes that Q once said H(X) and receives X, P believes Q once said X.

Goals.

The session key exchange protocol should achieve the following goals:

Idealize.

We idealize the communication messages of the proposed scheme as follows:

Assumptions.

The initial assumptions of the proposed scheme are as follows:

  1. AUR1: UR|≡rkU
  2. AUR2: UR|≡#(rkU)
  3. AUR3: UR|≡R|⇒PS
  4. AUR5: UR|≡rU
  5. AUR6: UR|≡#(rU)
  6. ASR1: SR|≡rkS
  7. ASR2: SR|≡#(rkS)
  8. ASR3: SR|≡R|⇒PU
  9. ASR5: SR|≡rS
  10. ASR6: SR|≡#(rS)

Analysis.

According to M3 and AUR4, we apply the hash function rule (R7), we can obtain:

According to M3 and AUR6, we apply the Freshness rule (R4), we can obtain:

According to S1 and S2, we apply the Nonce-verification rule (R2) and Belief rule 1(R5), we can obtain:

According to S3 and AUR3, we apply the Jurisdiction rule (R3), we can obtain:

According to S4, AUR1 and SK = TrkU (PS) mod p, we apply the Belief rule 2(R6), we can obtain:

According to M4 and ASR4, we apply the message meaning rule (R1) and the hash function rule (R7), we can obtain:

According to M4 and ASR6, we apply the Freshness rule (R4), we can obtain:

According to S6 and S7, we apply the Nonce-verification rule (R2) and Belief rule 1(R5), we can obtain:

According to ASR3 and S8, we apply the jurisdiction rule (R3), we can obtain:

According to ASR1, S9 and SK = TrkS(PU) mod p, we apply the Belief rule 2(R6), we can obtain:

According to M3 and S5, we apply the message meaning rule (R1) and the hash function rule (R7), we can obtain:

According to AUR2, M3 and SK = TrkU(PS) mod p, we apply the Freshness rule (R4), we can obtain:

According to S11 and S12, we apply the Nonce-verification rule (R2) and Belief rule 1(R5), we can obtain:

According to M4 and S10, we apply the message meaning rule (R1) and the hash function rule (R7), we can obtain:

According to ASR2, M4 and SK = TrkS(PU) mod p, we apply the Freshness rule (R4), we can obtain:

According to S14 and S15, we apply the Nonce-verification rule (R2) and Belief rule 1(R5), we can obtain:

5.2 Validation test based on AVISPA

In this section, we simulate the proposed scheme for the formal security analysis using AVISPA, which is widely used to verify the security properties of designed protocol such as resistance against replay attack and man-in-the-middle attack. This tool implements four back-ends: On-the-Fly-Model-Check (OFMC), Constraint Logic based Attack Searcher (CL-AtSe), SAT-based Model-Checker (SATMC) and Three Automata based on Automatic Approximations for the Analysis of Security Protocols (TA4SP). In order to verify the security properties of the protocol using AVISPA, it needs to be specified in HLPSL (High Level Protocol Specification Language), which is a role-based language: basic roles for representing each participant role, and composition roles for representing scenarios of basic roles. Each role is independent from the other, communicating with the other roles by channels [44]. The output format is generated by using one of the four back-ends.

Specifying the proposed protocol.

In our HLPSL implementation, we define three basic roles for the user U, server S and registration center R. Figs 46 shows the specifications in HLPSL for the role of U, S and R.

thumbnail
Fig 6. Role specification in HLPSL for the registration center R.

https://doi.org/10.1371/journal.pone.0271817.g006

In Figs 79, we show the HLPSL implementation for the role of the session, environment and goal.

In our implementation, we verified the following fifteen secrecy goals and six authentication properties.

  • secrecy_of sec_rscs: It represents that the nonce Rscs generated by R is kept secret to the registration center R only.
  • secrecy_of sec_vd: It represents that user U’s private data VD is kept secret to the user U only.
  • secrecy_of sec_rucs: It represents that the nonce Rucs generated by R is kept secret to the registration center R only.
  • secrecy_of sec_xs: It represents that registration center R’s secret key XS is kept secret to R only.
  • secrecy_of sec_b1: It represents that the server S’s shared secret key B1 is kept secret to the user U and the registration center R only.
  • secrecy_of sec_b2: It represents that the server S’s shared secret key B2 is kept secret to the user U and the registration center R only.
  • secrecy_of sec_rks: It represents that the nonce Rks generated by the server S is kept secret to the server S only.
  • secrecy_of sec_rs: It represents that the nonce Rs generated by the server S is kept secret to the server S only.
  • secrecy_of sec_sid: It represents that the server S’s identity SID is kept secret to the user U, the server S and the registration center R only.
  • secrecy_of sec_c1: It represents that the user U’s shared secret key C1 is kept secret to the user U and the registration center R only.
  • secrecy_of sec_c2: It represents that the user U’s shared secret key C2 is kept secret to the user U and the registration center R only.
  • secrecy_of sec_xu: It represents that registration center R’s secret key XU is kept secret to R only.
  • secrecy_of sec_rku: It represents that the nonce Rku generated by the user U is kept secret to the user U only.
  • secrecy_of sec_ru: It represents that the nonce Ru generated by the user U is kept secret to the user U only.
  • secrecy_of sec_uid: It represents that the user U’s identity UID is kept secret to the user U and the registration center R only.
  • authentication_on auth_vsr: It represents that the registration R authenticates the server S.
  • authentication_on auth_vsu: It represents that the user U authenticates the server S.
  • authentication_on auth_vrs: It represents that the server S authenticates the registration center R.
  • authentication_on auth_vus: It represents that the server S authenticates the user U.
  • authentication_on auth_vru: It represents that the user U authenticates the registration center R.
  • authentication_on auth_vur: It represents that the registration center R authenticates the user U.

Analysis of the results.

We have simulated the proposed scheme using FMC and CL-AtSe back-ends of AVISPA. The simulation results for the security verification are shown in Figs 10 and 11.

thumbnail
Fig 11. The result of the analysis using CL-AtSe back-end.

https://doi.org/10.1371/journal.pone.0271817.g011

The results ensure that the proposed scheme is secure under the test of AVISPA using OFMC and CL-AtSe back-ends, and guarantees user anonymity, and it is also secure against the passive attacks and the active attacks, such as the replay attack and man-in-the-middle attack.

5.3 Informal security analysis

In this part, we demonstrate the proposed scheme can resist various kinds of attacks.

Mutual authentication.

The proposed scheme provides the mutual authentication.

In the step 3 of the authentication phase, the registration center R computes rU = E1h(PUIDi||RID||xU), UIDi = E2h(rU||PUIDi||RID), UD2*’ = h(UIDi||xU||RUcs), PUIDinew = E3h(rU||UIDi), rS = E4h(PSIDj||RID||xS), SIDj = E5h(rS||PSIDj||RID), SD2* = h(SIDj||xS||RScs), PSIDjnew = E6h(rS||SIDj) and checks if the user’s identity UIDi is included in the verification table. If so, R computes VUR = h(UIDi||PUIDi||PUIDinew||rU||PU||SIDj||T1|| UD2*) and checks if VUR’ = VUR. If so, R authenticates the user URi. The proof of this authentication is as follows. At first, UD2* included in VUR is a secret key known to only the user URi and the registration center R. And VUR contains the nonce rU generated by the user. Thus the registration center can verify that VUR was sent by the user and that it wasn’t replayed if VUR’ = VUR is true.

And the registration center R checks if the server’s identity SIDj is included in the verification table. If so, R computes VSR’ = h (SIDj||PSIDj|| PSIDjnew||rS||PU||PS||T3||VSU||SD2) and checks if VSR’ = VSR. If so, R authenticates the server SRj. The proof of this authentication is as follows. At first, SD2 included in VSR is a secret key known to only the server SRj and the registration center R. And VSR contains the nonce rS generated by the server. Thus the registration center can verify that VSR was sent by the server and that it wasn’t replayed if VSR’ = VSR is true.

In the step4, the user URi computes VRU’ = h (UD2*||rU||PS) and checks if VRU’ = VRU. If so, URi authenticates the registration center R. The proof of this authentication is as follows. At first, UD2* included in VRU is a secret key known to only the user URi and the registration center R. And VRU contains the nonce rU generated by the user. Thus the user can verify that VRU was sent by R and that it wasn’t replayed if VRU’ = VRU is true.

And URi computes SK = TrkU (PS) = TrkSrkU(α) mod p, VSU’ = h(SK||SIDj||RID) and authenticates the server SRj by checking if VSU’ = VSU. The proof of this authentication is as follows. Because SK included in VSU is computed as SK = TrkS (PU) = TrkU (PS) = TrkSrkU(α) mod p, it is a secret generated by only the server SRj except for the user URi. Also it contains the nonce rkU generated by the user in step 1. Thus the user can verify that VSU was sent by the server and that it wasn’t replayed if VSU’ = VSU is true.

In the step5, the server computes VRS = h (SD2||rS||PU) and checks if VRS’ = VRS. If so, the server authenticates the registration center R. The proof of this authentication is as follows. At first, SD2 included in VRS is a secret key known to only the server SRj and the registration center R. And VRS contains the nonce rS generated by the server. Thus the user can verify that VRS was sent by R and that it wasn’t replayed if VRS’ = VRS is true.

And the server computes VUS’ = h(SK||RID) and authenticates the user URi by checking if VUS’ = VUS. The proof of this authentication is as follows. Because SK included in VUS is computed as SK = TrkS(PU) = TrkU(PS) = TrkSrkU(α) mod p, it is a secret generated by only the user URi except for the server SRj. Also it contains the nonce rkS generated by the server in step2. Thus the server can verify that VUS was sent by the user and that it wasn’t replayed if VUS’ = VUS is true.

Therefore, the registration center authenticates the user and server in the step3, the user authenticates the registration center and server in step4, and the server authenticates the registration center and user in step5. Thus the proposed scheme achieves the mutual authentication between the registration center, user and server.

User anonymity.

The proposed scheme provides user anonymity for key exchange.

The data that an attacker can use to get the user’s identity UIDi is E2 = h(rU||PUIDi||RID) ⊕ UIDi among the messages M1 = {PUIDi, E1, E2, E3, VUR, PU, T1}, M2 = {PUIDi, E1, E2, E3, VUR, E4, E5, E6, VSR, T1, T3, PS, VSU}, M3 = {E7, E8, VRU, VRS, PS, VSU} and M4 = {E7, VRS, VUS} in authentication key exchange process. If the attacker wants to get UIDi, he may compute as follows: UIDi = E2h (rU||PUIDi||RID). For this, the attacker needs to know the nonce rU generated by the user and has to compute rU = E1h (PUIDi||RID||xU). So the attacker also needs to know xU, but the attacker cannot get xU because it is a secret known to only the registration center R. Thus, the attacker cannot get the user’s identity UIDi.

If the attacker wants to get the server’s identity SIDj, he may compute as follows: SIDj = E5h(rS||PSIDj||RID). For this, the attacker needs to know the nonce rS generated by the server and has to compute rS = E4h(PSIDj||RID||xS). So the attacker also needs to know xS but the attacker cannot get xS because it is a secret known to only the registration center R. Thus, the attacker cannot get the server’s identity SIDj.

As a result, the attacker cannot get both the user’s identity and server’s identity.

Perfect forward security of session key.

In the proposed scheme, the session key SK is computedd as SK = TrkS(PU) = TrkU(PS) = TrkSrkU(α) mod p. It contains the random numbers rkS and rkU generated by the different session entities for each session. Thus, even if the attacker gets rkS and rkU for the current session, he cannot compute the session key for the previous session. Therefore, the proposed scheme provides the perfect forward secrecy of session key.

Untraceability.

The proposed scheme provides the untraceability.

Let’s imagine that the attacker can get the secret data of the user and server for the previous session by stealing previous messages. But in the step 4 of authentication key exchange phase, the user replaces (UD1, PUIDi) with (UD1new, PUIDinew) and in the step 5, the server replaces (SD1, PSIDj) with (SD1new, PSIDjnew). And for the next session, both the user and server combine their identities with the updated secret data and generated new random numbers. Therefore, the attacker cannot get the identities of the user and server, for the next session using the previous messages, so he cannot know the current communicating entities.

No key control.

The proposed scheme provides no key control property.

In the proposed scheme, the session key SK is computed as SK = TrkS(PU) = TrkU(PS) = TrkSrkU(α) mod p. In this equation, PS is computed as TrkS(α) mod p and PU is computed as TrkU(α) mod p. And rkS is only known to the server and the user knows only PS. But according to the rules CDLP [36] and CDHP [36], the user never computes rkS from PS. Also rkU is only known to the user and the server never gets rkU from PU. Thus, the session key cannot be generated by each of the user and server, and it can be only generated by the agreement of both of them.

Off-line password guessing attack.

The proposed scheme resists the password guessing attack.

This scheme does not use passwords during the authentication process but only uses passwords for access to the smart card. The information stored in the user’s smart card is (UD1, UD2, UD3, PUIDi, RID, Pi) and the information that can be used for guessing password is UD1 = UD1* ⊕ h(PWi||Ri||UIDi) and UD2 = UD2* ⊕ h(PWi||Ri||UIDi). Let’s imagine that an attacker steals the user’s smart card SCi and gets his identity UIDi. Then to guess the password PWi, the attacker must compute VDi* = h(PWi*||Ri||UIDi), UD1* = UD1VDi*, UD2* = UD2VDi*, UD3’ = h(VDi* ||UD1*’ ||UD2*’) by using UIDi and any password PWi* to compare UD3’ and UD3 stored in SCi. But the attacker cannot get Ri because he cannot know the user’s biometric BIOi so he cannot calculate above equations. Thus, the attacker cannot guess the user’s password.

Privileged insider attack.

The proposed scheme is secure against the privileged-insider attack. In the registration phase of the proposed scheme, only the user’s identifier is transmitted to the registration center through a secure channel and the user’s password and biometric are not transmitted to the registration center. Therefore, the privilege insider of the registration center cannot know the user’s password and biometric. Therefore, the proposed scheme is secure against this attack.

Stolen verifier attack.

The proposed scheme is secure against stolen verifier attack.

In the registration phase, the registration center R stores {UIDi, RUcs} in the user registration table. Here UIDi is the identity of the user URi and RUcs is the random number chosen by R. The essential factors that R can use to authenticate the user are the shared secrets between the registration center and user, UD1* = h(PUIDi||RID||xU), UD2* = h(UIDi||xU||RUcs) and the random numbers rU, rkU generated by the user. So even if the attacker knows UIDi and RUcs, he cannot pass the authentication steps safely. Therefore, the attacker cannot be successful in this attack.

User impersonate attack.

The proposed scheme is secure against the user impersonate attack. In order to impersonate as the user URi, the attacker has to compute E1 = UD1*⊕rU, E2 = h(rU||PUIDi||RID) ⊕ UIDi and E3 = PUIDinewh(rU||UIDi). Let’s imagine that the attacker knows PUIDi, RID, UIDi and he generates PUIDinew and a nonce rU. Then he can calculate E3 = PUIDinewh(rU||UIDi) and E2 = h(rU||PUIDi||RID) ⊕UIDi. But he cannot compute E1 = UD1*⊕rU without knowing of UD1*. But he cannot compute UD1* = h(PUIDi||RID||xU) because xU is a secret known to only the registration center and cannot also calculate E1 = UD1*⊕rU.

Therefore, the attacker cannot impersonate as URi and achieve this attack.

Server impersonate attack.

The proposed scheme is secure against the server impersonate attack.

In order to impersonate as the server SRj, the attacker has to compute E4 = SD1rS, E5 = h(rS||PSIDjnew||RID) ⊕ SIDj and E6 = PSIDjnewh(rS||SIDj). Let’s imagine that the attacker knows RID, SIDj and he generates PSIDjnew and a nonce rS. Then he can calculate E6 = PSIDjnewh(rS||SIDj) and E5 = h(rS||PSIDjnew||RID) ⊕SIDj. But he cannot compute E4 = SD1rS without knowing of SD1. But he cannot compute SD1 = h(PSIDj||RID||xS) because xS is a secret known to only the registration center and cannot also calculate E4 = SD1rS.

Therefore, the attacker cannot impersonate as SRj and achieve this attack.

Man-in-the-middle attack.

As it is shown above, the proposed scheme achieves certain mutual authentication and the attacker can neither impersonate as the initiator URi and the responder SRj, so an attacker cannot achieve the man-in-the-middle attack. The reasons for this are as follows.

First, the attacker cannot exchange any messages with the user by impersonating as the responder, valid server. As we show above, the attacker cannot compute SD1 = h(PSIDj||RID||xS) because xS is a secret known to only the registration center and cannot also calculate E4 = SD1rS. Hence, the attacker cannot impersonate as the responder. Also the attacker cannot exchange any messages with the server by impersonating as the initiator, valid user. As we show above, the attacker cannot compute UD1* = h(PUIDi||RID||xU) because xU is a secret known to only the registration center and cannot also calculate E1 = UD1*⊕rU. Hence, the attacker cannot impersonate as the initiator.

In conclusion, the attacker cannot achieve the man-in-the-middle attack.

Replay attack.

In the step 2 of the authentication key exchange phase, after receiving the message M1, the server checks if ΔT = T1-T2<ΔTdefine and if it is false, the server stops the session. Here T1 is the time when the message is sent and T2 is the time when the message is received. So the replay attack can’t be achieved in this step. Also in the step 3, the attacker cannot achieve the replay attacker because the message M3 contains a time stamp. In the step 4, the user checks if VRU = h(UD2*||rU||PS) is true. Here rU is a nonce generated by the user in the step 1, so in the case that the attacker replays the message M3 to the user, the user can recognize this attack using rU. Like this, in the step 5, the server can recognize that the message M4 was replayed by the attacker by checking rS generated by the server in the step 2.

Therefore, the attacker cannot achieve replay attack.

Forgery attack.

Forgery attack means that an attacker attempts to forge captured messages to masquerade as the legitimate user for wireless system access to the resources.

These followings are the analysis of messages in the proposed scheme.

  • In the message M1, E1 and VUR both contain xU.
  • In M2, xS is required in both E4 and VSR, besides the original elements in M1.
  • In M3, E7, VRS, E8 and VRU all needs xU and xS.
  • In M4, xU and xS are required in both E7 and VRS.

As it is shown above, the attacker has to know both xU and xS to forge any messages in the session. But xU and xS cannot be captured by the attacker because both of them are the secret keys known to only the registration center R. Therefore, the attacker cannot forge any messages and we can claim that the proposed scheme resists forgery attack.

Known key security.

In the proposed scheme, the session key SK is calculated as SK = TrkS (PU) = TrkU(PS) = TrkSrkU(α) mod p. It contains the random numbers rkS and rkU that are generated by session entities for each session. Even if an attacker gets the previous session key, he cannot calculate the current session key.

Therefore, the proposed scheme provides known key security property.

6. Performance comparisons

In this section, we compare the computational cost, communication overhead and security performance of the proposed scheme with the recent similar authentication key exchange protocols [12, 31, 35].

The notations used for comparison of computational cost are as follows.

  1. tc: time needed for Chebyshev polynomial operation
  2. te: time needed for a scalar multiplication on elliptic curve
  3. ts: time needed for symmetric encryption/decryption operation
  4. tp: time needed for public key encryption/decryption operation
  5. th: time needed for one-way hash function operation

Table 4 shows the comparison of the computational cost of the four schemes, including the proposed scheme in the authentication and session key exchange phase. According to the execution overhead given in [5052], in the environment where CPU is 2.20GHz and RAM is 2048MB, it takes about 0.0023ms, 0.0046ms, 2.226ms, 3.85ms, 2.226ms to execute the one-way hash function, symmetric encryption/decryption, the scalar multiplication on elliptic curve, public key encryption/decryption and Chebyshev polynomial operation respectively. Compared with other schemes, the result shows that our scheme requires nearly low computational cost.

thumbnail
Table 4. Comparison of the computational cost between the proposed scheme and other schemes in the authentication and session key exchange phase.

https://doi.org/10.1371/journal.pone.0271817.t004

In order to measure the communication overhead of our proposed scheme, let us assume the bit size of identity, random number, timestamp, hash output, Chebyshev chaotic maps and elliptic curve cryptography as |ID| = 160, |N| = 160, |Ts| = 32, |H| = 160, |T| = 160 and |E| = 320 bits respectively.

Table 5 shows the communication overhead of our proposed scheme according to above assumption.

Table 6 shows the comparison of the communication overhead of our proposed scheme and three other schemes. As shown in Table 6, the communication overhead of our proposed scheme is higher than other schemes.

thumbnail
Table 6. Comparison of the computational cost between the proposed scheme and other schemes.

https://doi.org/10.1371/journal.pone.0271817.t006

Table 7 shows the comparative evaluation of the security function between the proposed scheme and other schemes.

thumbnail
Table 7. Comparative evaluation of the security function between the proposed scheme and other schemes.

https://doi.org/10.1371/journal.pone.0271817.t007

As shown in Tables 4, 6 and 7, the proposed scheme outperforms the other schemes in terms of the security properties presented.

Lwamo et al.’s scheme has high computational cost because it uses the public key encryption. Also his scheme has lower communication overhead than ours’ scheme and doesn’t provide re-registration with the original identity and it is vulnerable to the stolen smart card attack.

Zhou et al.’s scheme uses only hash functions so it has very low computational cost, but it has lower communication overhead than ours. And it is vulnerable to the replay attack and doesn’t provide various properties such as mutual authentication, no key control, re-registration with the original identity, and efficiency in the verification of wrong password.

Tomar et al.’s scheme provides the security properties mentioned in the Table 7 but his scheme has higher computational cost and higher communication overhead than our proposed scheme. And it doesn’t provide the re-registration with the original identity.

As shown in Tables 4, 6 and 7, the schemes with strong security performances have high computational cost, while the schemes with low computational cost don’t provide the strong security performances.

7. Conclusion

In this work, we analysed Lwmao et al.’s scheme and Zhou et al.’s scheme, pointed out its weakness and proposed an improved chaotic mapping-based authentication key agreement protocol with low computational cost, high communication overhead, robust security performance and strong mutual authenticaton. The proposed scheme was designed to provide strong mutual authentication between communication participants, so the length of messages is long and communication overhead is relatively high. In the proposed scheme, we allowed the users to re-register without modifying their identities by including the random numbers in their secret keys shared with the registration center in the registration phase. Also, we used the users’ biometrics and the fuzzy extractor to keep their privacies more secure. We also prevented the replay attack using timestamps and chaotic maps, and provided the robust mutual authentication and safer session key agreement. The proposed scheme also achieved various security properties and attack resistances such as the anonymity, untraceability and resistance of stolen smart card attack. Also, we formally analysed our protocol based on BAN logic and AVISPA tool, and demonstrated that it is secure against various attacks through informal security analysis.

References

  1. 1. Liao YP, Wang SS. A secure dynamic ID based remote user authentication scheme for multi-server environment. Computer Standards & Interfaces. 2009;31(1):24–29.
  2. 2. Li X, Ma J, Wang W, Xiong Y, Zhang J. A novel smart card and dynamic ID based remote user authentication scheme for multi-server environments. Mathematical and Computer Modelling. 2012.
  3. 3. Tsaur WJ, Li JH, Lee WB. An efficient and secure multi-server authentication scheme with key agreement. The Journal of System and Software. 2012;85:876–882.
  4. 4. Xu C, Jia Z, Wen F, Ma Y. A Novel Dynamic Identity based Authentication Scheme for MultiServer Environment using Smart Cards. International Journal of Security and Its Applications. 2013;7(4):105–118.
  5. 5. Chuang MC, Chen MC. An anonymous multi-server authenticated key agreement scheme based on trust computing using smart cards and biometrics. Expert Syst. Appl. 2014;41(4):1411–1418.
  6. 6. Maitra T, Giri D. An efficient biometric and passwordbased remote user authentication using smart card for telecare medical information systems in multi-server environment. J. Med. Syst. 2014;38(12):142. pmid:25371272
  7. 7. Mishra D, Das AK, Mukhopadhyay S. A secure user anonymity-preserving biometric-based multiserver authenticated key agreement scheme using smart cards. Expert Syst. Appl. 2014;41(18):8129–8143.
  8. 8. Amin R, Biswas GP. A Novel User Authentication and Key Agreement Protocol for Accessing Multi-Medical Server Usable in TMIS. J. Med. Syst. 2015;39:33. pmid:25681100
  9. 9. Chaudhry SA. A secure biometric based multi-server authentication scheme for social multimedia networks [M]. Multimedia Tools and Applications. 2015;75;12705–12725.
  10. 10. Wang C, Zhang X, Zheng Z. Cryptanalysis and improvement of a biometric-based multi-server authentication and key agreement scheme. PLoS ONE. 2016;11(2):1–25. pmid:26866606
  11. 11. Guo H, Wang P, Zhang X, Huang Y, Ma F. A robust anonymous biometric-based authenticated key agreement scheme for multiserver environments. PLoS ONE. 2017;12(11):e0187403. pmid:29121050
  12. 12. Lwamo NMR, Zhu L, Xu C, Sharif K, Liu X, Zhang C. A Secure User Authentication Scheme with Anonymity for the Single & Multi-server Environments. Inf. Sci. 2019;477:369–385.
  13. 13. Mishra D, Dharminder D, Yadav P, Rao YS, Vijayakumar P, Kumar N. A provably secure dynamic ID-based authenticated key agreement framework for mobile edge computing without a trusted party. Journal of Information Security and Applications. 2020;55:102648.
  14. 14. Han W, Zhu Z. An ID-based mutual authentication with key agreement protocol for multiserver environment on elliptic curve cryptosystem. Int. J. Commun. Syst. 2014;27:1173–1185.
  15. 15. Ying B, Nayak A. Lightweight remote user authentication protocol for multi-server 5G networks using self-certified public key cryptography. Journal of Network and Computer Applications. 2019;131:66–74.
  16. 16. Irshad A, Sher M, Chaudhary SA, Naqvi H, Farash MS. An efficient and anonymous multi-server authenticated key agreement based on chaotic map without engaging Registration Centre. J. Supercomput. 2016;72(4):1623–1644.
  17. 17. Kumari S, Das AK, Li X, Wu F, Khan MK, Jiang Q, et al. A provably secure biometrics-based authenticated key agreement scheme for multi-server environments. Multimed Tools Appl. 2017;1–31.
  18. 18. Qiao H, Dong X, Shen Y. Authenticated Key Agreement Scheme with Strong Anonymity for Multi-Server Environment in TMIS. J. Med. Syst. 2019;43:321. pmid:31591653
  19. 19. Chuang YH, Tseng YM. Towards generalized ID-based user authentication for mobile multi-server environment. Int. J. Commun. Syst. 2012; 25:447–460.
  20. 20. Yang L, Zheng Z. Cryptanalysis and improvement of a biometrics-based authentication and key agreement scheme for multi-server environments. PLoS ONE. 2018;13(3):e0194093. pmid:29534085
  21. 21. Yu Y, Hu L, Chu J. A Secure Authentication and Key Agreement Scheme for IoT-Based Cloud Computing Environment. Symmetry. 2020;12:150.
  22. 22. Vinoth R, Deborah LJ, Vijayakumar P, Kumar N. Secure multifactor authenticated key agreement scheme for industrial IoT. IEEE Internet of Things Journal. 2021;8(5):3801–3811.
  23. 23. Vijayakumar P, Naraeh R, Deborah LJ, Islam SH. An efficient group key agreement protocol for secure P2P communication. Secur. Commun. Netw. 2016;9(17):3952–3965.
  24. 24. Hsiang HC, Shih WK. Improvement of the secure dynamic ID based remote user authentication scheme for multi-server environment. Computer Standard & Interfaces. 2009;31(6):1118–1123.
  25. 25. Lee CC, Lin TH, Chang RX. A secure dynamic ID based remote user authentication scheme for multi-server environment using smart cards. Expert Syst. Appl. 2011;38:13863–13870.
  26. 26. Xue K, Hong P, Ma C. A lightweight dynamic pseudonym identity based authentication and key agreement protocol without verification tables for multi-server architecture. Journal of Computer and System Sciences. 2014;80(1):195–206.
  27. 27. Gupta PC, Dhar J. Hash Based Multi-server Key Exchange Protocol Using Smart Card. Wireless Pers Commun. 2015;87(1);1–20.
  28. 28. Maitra T, Islam S, Amin R, Giri D, Khan MK, Kumar N. An enhanced multiserver authentication protocol using password and smart-card: cryptanalysis and design. Secur. commun. Networks. 2016;9(17):4615–4638.
  29. 29. Amin R, Kumar N, Biswas G, Iqbal R, Chang V. A light weight authentication protocol for iot-enabled devices in distributed cloud computing environment, Future Gener. Comput. Syst. 2018;78:1005–1019.
  30. 30. Wei F, Zhang R. A Provably Secure Anonymous Two-Factor Authenticated Key Exchange Protocol for Cloud Computing. Fundamenta Informaticae. 2018;157:201–220.
  31. 31. Zhou L, Li X, Yeh KH, Su C, Chiu W. Lightweight IoT-based authentication scheme in cloud computing circumstance. Future Gener. Comput. Syst. 2019;91:244–251.
  32. 32. Yoon EJ, Yoo KY. Robust biometrics-based multiserver authentication with key agreement scheme for smart cards on elliptic curve cryptosystem. J. Supercomput. 2013;63(1):235–255.
  33. 33. Chandrakar P, Om H. Cryptanalysis and extended three-factor remote user authentication scheme in multi-server environment. Arabian Journal for Science and Engineering. 2017;42(2):765–786.
  34. 34. Qi M, Chen J, Chen Y. A Secure Biometrics-Based Authentication Key Exchange Protocol for Multi-Server TMIS using ECC. Computer Methods and Programs in Biomedicine. 2018;164;101–109. pmid:30195418
  35. 35. Tomar A, Dhar J. An ECC Based Secure Authentication and Key Exchange Scheme in Multi-server Environment. Wireless Pers Commun. 2019;107:351–372.
  36. 36. Irshad A, Sher M, Chaudhry SA, Xie Q, Kumari S, Wu F. An improved and secure chaotic map based authenticated key agreement in multi-server architecture. Multimed Tools Appl. 2017;76(1):1–38.
  37. 37. Lu Y, Li L, Yang X, Yang Y. Robust biometrics based authentication and key agreement scheme for multi-server environments using smart cards. PLoS ONE. 2015;10(5):e0126323. pmid:25978373
  38. 38. Xia XY, Ji S, Vijayakumar P, Shen J, Rodrigues J. An efficient anonymous authentication and key agreement scheme with privacy-preserving for smart cities. International Journal of Distributed Sensor Networks. 2021;17(6).
  39. 39. Li XH, Liu J, Obaidat MS, Vijayakumar P, Jiang Q, Amin R. An unlinkable authenticated key agreement with collusion resistant for VANET’s. 2021;70(8):7992–8006.
  40. 40. Dodis Y, Reyzin L, Smith A. Fuzzy extractors: how to generate strong keys from biometrics and other noisy data. Advances in Cryptology—EUROCRYPT 2004. 2004;3027:523–540.
  41. 41. Dodis Y, Kanukurthi B, Katz J, Reyzin L, Smith A. Robust Fuzzy Extractors and Authenticated Key Agreement From Close Secrets. IEEE Trans. Inf. Theory. 2012;58(9):6207–6222.
  42. 42. Mason JC, Handscomb DC. Chebyshev polynomials. London: Chapman & Hall/CRC Press; 2003.
  43. 43. Zhang L. Cryptanalysis of the public key encryption based on multiple chaotic systems. Chaos Soliton Fract. 2012;37(3):669–674.
  44. 44. Dolev D, Yao A. On the security of public key protocols. IEEE Trans. Inf. Theory. 2012;29:198–208.
  45. 45. Kocher P, Jaffe J, Jun B, Rohatgi P. Introduction to differential power analysis. Journal of Cryptographic Engineering. 2011;1(1):5–27.
  46. 46. Bellare M, Rogaway P. Random oracles are practical: a paradigm for designing efficient protocols. In Proceedings of the 1st Annual ACM Conference on Computer and Communications Security—CCS’93. ACM: New York, USA.1993;62–73.
  47. 47. Tsai C, Lee C, Hwang M. Password authentication schemes: current status and key issues. Int. J. Netw. Secur. 2006;3(2):101–115.
  48. 48. Burrows M, Abadi M, Needham R. A logic of authentication. Acm Sigops Operating Systems Review. 1990;8(1):18–36.
  49. 49. AVISPA: Automated Validation of Internet Security Protocols and Applications. http://www.avispa-project.org/ (accessed on January 2019)
  50. 50. Odelu V, Das AK, Goswami A. A secure biometrics-based multi-server authentication protocol using smart cards. IEEE Transactions on Information Forensics and Security. 2015; 10(9): 1953–1966.
  51. 51. Kilinc HH, Yanik T. A survey of SIP authentication and key agreement schemes. IEEE Communications Surveys & Tutorials. 2014; 16(2): 1005–1023.
  52. 52. Jangirala S, Das K, Wazid M, Kumar N. Anonymous Lightweight Chaotic Map-Based Authenticated Key Agreement Protocol for Industrial Internet of Things. IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING. 2020;17(6):1133–1146.