Skip Content
You are currently on the new version of our website. Access the old version .
SensorsSensors
  • Article
  • Open Access

14 November 2022

An Enhanced User Authentication and Key Agreement Scheme for Wireless Sensor Networks Tailored for IoT

,
,
,
and
1
Department of Mathematics, Chaudhary Charan Singh University, Meerut 250004, India
2
Faculty of Computing and Information Technology, King Abdulaziz University, Jeddah 21589, Saudi Arabia
3
Department of Computer Science and Engineering, HMR Institute of Technology and Management, New Delhi 110036, India
4
Department of Information and Computer Engineering, Chung Yuan Christian University, Taoyuan 320314, Taiwan
This article belongs to the Section Sensor Networks

Abstract

A security protocol for wireless transmission is essential to defend sensitive information from malicious enemies by providing a variety of facilities such as privacy of the user’s information, secure session key, associated authentication, and user-repeal facility when a person’s authorizations are suddenly disclosed. Singh et al. proposed an improved user authentication and key agreement system for wireless sensor networks (WSNs). Authors are sure that their protocol is secure from various attacks. Here, we find several security pitfalls in their scheme, such as an offline password-guessing attack, failure to protect the session key, and a man-in-the-middle attack. To remove the identified pitfalls found in Singh et al.’s scheme, we design an enhanced authentication scheme for WSNs tailored for IoT. We prove the reliability of our proposed protocol using the real or random (RoR) model. We also evaluate the proposed scheme with the associated schemes and show its superior efficacy as compared to its counterparts.

1. Introduction

A wireless Sensor Network (WSN) consists of sensors or sensor nodes and plays a vital role in the Internet of Things (IoT) applications. The sensor nodes can be used at sensitive places in an unplanned or planned way. These kinds of nodes have the capacity to collect data from their neighboring fields, after which they send the data to nearby base stations (BSs), which process the received data for decision-making. Sensor nodes can communicate with each other via wireless radio communications. In WSNs, the BS (referred to as the gateway node (or GW-node)) is the most effective node, whereas sensors are the least effective nodes in regard to battery power, memory space, and computational ability.
WSNs can be utilized in different unattended fields, such as the army, climatic, medical, and agriculture, for goal monitoring, battleground vigilance, and invader identification. WSNs can also be deployed in various IoT applications such as smart homes, smart supply-chain management, smart cities, smart grids, smart traffic management, and industrial Internet. Due to the unattended surroundings of sensor nodes, an adversary has the ability to immediately capture a sensor node from the goal-tracking area. For this reason, an adversary has a possibility to at once seize a sensor node from the goal field and extract all of the data from its reminiscence, as nodes are not usually tamper-resistant because of their low cost.
The requirement to protect the data stored in WSNs is a crucial issue. Here we discuss some scenarios which necessitate a user verification protocol in WSNs. In WSNs, an intruder can create a bug in the network and can disturb or discontinue the commuted texts. Numerous crucial operations in WSNs, along with the utilization of the battleground surveillance and e-health services, rely on actual data to obtain which the users establish a direct connection with the sensor nodes with the help of the base station. Thus, in applications requiring actual data, the user’s authenticity is verified by the sensor nodes and the BS, which requires setting up a secret session key among the users and the accessed nodes so that no intruder can obtain the crucial data from the sensor nodes. Due to this motive, user authentication and key agreement protocols in WSNs are important research fields.

Motivation and Contribution

WSNs’ environment is challenging due to their resource-constrained nature and security requirements. The same is true for any IoT application due to its dependency on WSNs. Authentication and key agreement schemes are utilized to handle the application layer in WSNs/IoT. In these schemes, balancing efficiency and security is a big challenge. In this regard, research on establishing authentication and key agreement is in the developing stage. While reviewing some literature on authentication and key agreement scheme for WSN, we came across an article in which we felt scope for improvement. The contributions of this article are as follows:
  • We analyze an authentication and key agreement scheme for WSNs and point out its flaws.
  • As an enhancement of the analyzed scheme, we propose an authentication and key agreement scheme for WSNs tailored for the IoT.
  • We have tried to achieve the maximum possible security features while keeping the minimum possible computational load.

3. Review of Singh et al.’s Scheme

Firstly, we write the notations and their explanations used in this paper in Figure 1.
Figure 1. Notations and description.

3.1. Registration Phase

The system of registration begins after the placement of sensor nodes in the application space. The registration phase is split into two sub-phases. Phase one is between a user and the gateway, and phase two is between the sensor node and the gateway. Figure 2 illustrates all two stages.
Figure 2. Registration phase of Singh et al.’s scheme [34].

3.1.1. Registration Between User and Gateway

Identity (IDi) and secure password (PWi) are provided to every user. User identity and password hash value are saved in the gateway node. At first, the gateway selects a random key KGW-U. With this key, GW can communicate with the user. The gateway further selects a different key KGW-S. With this particular key, GW can communicate with sensor nodes. The procedure for this phase is as follows:
Step-1: User Ui selects a random number ri and computes Pi = h(ri||h(PWi)).
Step-2: User generates time stamp Ts1 and sends {Pi, IDi, Ts1} to GW through a protected channel.
Step-3: Following the received message, the gateway verifies the legitimacy of a time stamp.
If |TS1Tc| < ∆T exists, then gateway calculates.
  • αi = h(KGW-U ||IDi);
  • bi = αih(Pi ||h(PWi));
  • ci = h(αi||h(PWi)||IDi);
Step-4: Gateway customizes SC with {h(.), bi, ci, IDi} and conveys to the user through a protected channel.
Step-5: User adds di = rih(IDi||PWi) into SC. Now SC contains {h(.), bi, ci, di, IDi}.

3.1.2. Registration Between Sensor node and gateway

Every sensor node has an identity (IDsj) and a protected password (PWsj). The identity and the hash value of the password for sensor node Sj are also saved in the gateway. The phase consists of the following steps:
Step-1: Sensor node Sj computes Psj = h(IDsj||h(PWsj)||Ts2) with its IDsj and PWsj.
Step-2: Sensor node dispatch message {Psj, IDsj, Ts2} to the gateway.
Step-3: When information is received, the gateway confirms the validation of a time stamp. If |Ts2Tc| < ∆T, then it moves ahead or else sends non-acceptance text to the sensor node.
Step-4: With secret key KGW-S, GW calculates the following values:
  • βj = h(KGW-S||IDsj);
  • bsj = βjh(IDsj||h(PWsj));
  • csj = h(βj||h(PWsj)||IDsj||Ts3);
Step-5: GW sends {bsj, csj, Ts3} to the sensor node through a non-private channel.
Step-6: After confirmation of obtaining the data, the sensor node verifies the legitimacy of a time stamp. If |Ts3Tc| < ∆T, then move ahead to the succeeding step or else deliver a non-acceptance message to GW.
Step-7: Sensor node calculates βj = bsjh(IDsj||h(PWsj)) and checks csj* = h(βj||h(PWsj)||IDsj||Ts3) is equal to csj; after that, saves βj into its memory or else sends a failure message to GW.

3.2. Login Phase

After the registration phase, the connection is established between the user and Sj via the GW node. Figure 3 describes the work-flow of the login phase. The steps are as follows:
Figure 3. Login phase of Singh et al.’s scheme [34].
Step-1: User Ui inserts his/her card into the insertion area and enters his/her IDi* and password PWi*.
Step-2: SC calculates ri* = dih(IDi*||PWi*) with the saved value of di. Then it calculates MPi* = h(PWi*) and Pi = h(ri*||MPi*).
Step-3: Then, smartcard calculates αi* = bih(Pi||MPi*).
Step-4: SC calculates one more time ci* = h(αi*||MPi*||IDi*) and verifies whether the original ci or computed ci* are the same. If it is not equal, then the login progress will be terminated.
Step-5: If the entered password is exactly the same, the user selects an arbitrary number ki and calculates M1 = kih(αi||MPi ) and M2 = h(αi||MPi||ki||T1).
Step-6: User sends {M1, M2, IDi, T1} to GW through an open channel.

3.3. Authentication and Key Agreement Phase

Mutual confirmation among all groups is made after the success of the login phase. This procedure is performed in the authentication and key agreement phase. It takes three steps. The first one is for the user’s authority confirmation through GW. The second one represents the GW’s lawfulness confirmation by the user and the sensor node. Moreover, the third one is for the user to verify the authentication of the sensor node. The focus of this phase is providing a session key between the user and the sensor node. This phase is illustrated in Figure 4. The whole authentication and key agreement phase is discussed in the following steps.
Figure 4. Authentication phase of Singh et al.’s scheme [34].
Step-1: As the gateway obtains a message {M1, M2, IDi, T1} from the user Ui, the gateway verifies the time stamp’s validity by calculating |T1Tc| < ∆T. If it is found valid, GW again calculates the upcoming step or else sends a failure message to Ui.
Step-2: With the help of h(PWi), as per the accepted IDi, the gateway calculates ki* = M1h(αi||h(PWi)) and after that calculates its own version of M2* = h(αi||h(PWi)||ki*||T1) and compares it with the received M2. In case these are the same, then GW validates the user Ui or else sends a failure text to the user.
Step-3: Once the validation of the user is completed, GW calculates ϒij = h(αi||βj||IDi||IDsj), M3 = αiϒij, and M4 = h(ϒij||M3||IDi||T2) and sends {M3, M4, IDi, T2} to the user; here, T2 represents GW’s time stamp.
Step-4: After obtaining {M3, M4, IDi, T2}, the user verifies whether |T2 − Tc| < ∆T and after that calculates its own version of ϒij = αiM3 and M4* = h(ϒij||M3||IDi||T2). The user checks whether M4 =? M4*. If both are the same, then gateway authorization by the user Ui holds. If not, the user discontinues the procedure by sending a failure message to GW.
Step-5: At time T2 when message is sent to user Ui, GW calculates M5 = kih(βj||IDsj), M6 = βjϒij, and M7 = h(ϒij||ki||IDsj||T3) after that forwards {M5, M6, M7, IDi, IDsj, T3} to sensor node Sj.
Step-6: When a message is received from GW, now Sj verifies if |T3 − Tc| < ∆T then further calculates owned version of ki* = M5h(βj||IDsj) by using saved βj and after this calculates its own version of ϒij = βjM6 and M7* = h(ϒij||ki*||IDsj||T3) and compares M7* with M7. It checks the values; if both are equal, then GW is verified by Sj, or else Sj transmits a failure text to GW.
Step-7: When authentication of GW is complete, Sj chooses a random number kj and calculates the session key, which is SK = h(kikj).
Step-8: In the end, thesensor node Sj calculates M8 = kjϒij and M9 = h(kj||IDsj||T4) and transmits {M8, M9, IDi, IDsj, T4} to user Ui.
Step-9: When the text is received from sensor node Sj, the user verifies the legality of the time stamp |T4 − Tc| < ∆Ta and verifies the validity of Sj by calculating its own version of kj = M8ϒij and M9* = h(kj||IDsj||T4) and after that analyzes M9* with the accepted M9. It checks if both are the same and furthermore calculates the session key as SK = h(kikj), then, as a result, efficiently ends the authentication phase.

4. Cryptanalysis of Singh et al.’s Scheme

4.1. Insider Attack

Suppose an insider at GW can obtain a user smart card and access the information saved in SC {h(.), bi, ci, di, IDi}. In the registration phase, when Ui submits {Pi, IDi}, the insider guesses the password PWi and finds ri in the following way:
ri = dih(IDi||h(PWi))
after that calculates Pi# = h(ri||h(PWi)) and checks whether Pi = ? Pi#
The insider guesses the password till he/she achieves the correct password.

4.2. Offline Password Guessing Attack

Secret parameters saved into smart card are {h(.), bi, ci, di, IDi}
An adversary Ua can do guesswork PWi* for the password, and now computes ri# = dih(IDi||PWi#)
Then, the adversary finds the value of Pi# from Pi# = h(ri#||h(PWi#)). The adversary computes the value
αi# = bih(Pi#||h(PWi#)). Then, the adversary computes ci# = h(αi#||h(PWi#)||IDi) and checks whether ci# =? ci. If it holds, the adversary obtains an exact password PWi. In any other case, the adversary repeats the process.

4.3. Lack of User Anonymity

In Singh et al.’s scheme, messages {M1, M2, IDi, T1}, {M3, M4, IDi, T2}, and {M8, M9, IDi, IDsj,T4} directly involve the identity IDi of a valid user Ui in plain text. By spy monitoring the messages, an adversary recognizes IDi. Subsequently, Singh et al.’s scheme does not hold the user anonymity property.

4.4. Man-In-The-Middle Attack

During the attack, an adversary Ua tries to know the actual session key.
  • When the user Ui transmits the login message {M1, M2, IDi, T1} to GW via a pubic channel, the adversary Ua intercepts the message and plunders the smart card, then Ua can guess the secret keywords and find the value of αi. Ua finds ki = M1h(αi||MPi). Let Ua select random nonce ki# then modify the parameter M1 and M2 as M1# = ki#h(αi||MPi) and M2# = h(αi||MPi||ki#||T1#). After that, Ua sends the modified message {M1#, M2#, IDi, T1#} to GW.
  • By gateway, after receiving the message {M1#, M2#, IDi, T1#}, the gateway examines the legality of the time stamp by figuring out|T1# − Tc| < ∆T. If the legality stays, then there are further attempts to figure out the subsequent steps; if not, a rejection message drops to the user Ui.
  • The gateway computes ki#* = M1#h(αi||h(PWi)) and then computes M2* = h (αi||h(PWi)||ki#*||T1#) and checks whether M2* = ? M2#. If it holds, then the gateway authenticates the user Ui; if not, it sends a rejection message to the user.
  • GW computes ϒij = h(αi||βj||IDi||IDsj), M3 = αiϒij, and M4 = h(ϒij||M3||IDi||T2) and sends {M3, M4, IDi,T2} to the user.
  • Adversary Ua intercepts the message {M3, M4, IDi, T2} and computes the value ϒij = M3αi and changes the gateway’s time stamp and parameter M4 as M4#.
  • Now Ua delivers {M3, M4#, IDi, T2#} to the user Ui. After receiving {M3, M4#, IDi, T2#}, the user checks whether |T2#Tc| < ∆T and then computes ϒij = αiM3 and M4* = h(ϒij||M3||IDi||T2#) and checks whether M4* =? M4#. If it holds, then GW verification by the user holds; otherwise, abort the process.
6.
When a message is sent at time T2 to the user Ui, GW immediately computes M5 = ki#h(βj||IDsj), M6 = βjϒij, and M7 = h(ϒij||ki#||IDsj||T3), then sends { M5, M6, M7, IDi, IDsj, T3} to Sj.
7.
The adversary Ua intercepts the message {M5, M6, M7, IDi, IDsj,T3}. Ua changes the time stamp and parameter as M7# = h(ϒij||ki#||IDsj||T3#). Now the adversary Ua sends the message {M5, M6, M7#, IDi, IDsj, T3#} to Sj.
8.
When a message is received from the gateway, Sj confirms whether |T3#Tc| < ∆T and then computes ki# = M5h(βj||IDsj), ϒij = βjM6, and M7* = h(ϒij||ki#||IDSj||T3) and checks whether M7* =? M7#. If it holds, then the gateway is certified through the sensor node; if not, the sensor node sends a failure text to the gateway.
9.
Once the gateway verification is completed, Sj sensor node picks a random number kj and calculates the session key as SK = h(ki#kj).
10.
Sj computes M8 = kjϒij and M9 = h(kj||IDSj||T4) then transmits {M8, M9, IDi, IDsj, T4} to the user Ui.
11.
The adversary intercepts the message {M8, M9, IDi, IDsj, T4}. Ua computes kj = M8ϒij, M9* = h(kj||IDSj||T4) and checks whether M9 = ? M9*. The adversary Ua computes the session key SK = h(ki#kj). Now Ua chooses random number kj# and computes M8# = kj#ϒij and M9# = h(kj#||IDSj||T4#). Ua transmits the message {M8#, M9#, IDi,IDsj,T4#} to the user Ui.
12.
Once the message is received from sensor node Sj, the user confirms the legality of the stamp |T4# − Tc| < ∆T. The user examines the effectiveness of the sensor node by figuring out its own version of kj#* = M8#ϒij and M9#* = h(kj#*||IDSj||T4#) and confirms whether M9# = ? M9#*. If it holds, then it calculates the session key as SK = h(kikj#).
Two session keys are established here: one is between the user and adversary SK = h(kikj#). The second is SK = h(ki#kj), which is between the sensor node and the adversary. The adversary makes a fool of both the user and the sensor node by behaving like a middleman.

5. Proposed Scheme

Here, we propose an enhanced user authentication and key agreement scheme for WSNs tailored for IoT. This protocol is divided into four phases: registration, login, authentication and key agreement, and password change. Our scheme sorts out all the identified failures of Singh et al.’s scheme. The architecture of the sensors-enabled IoT network is shown in Figure 5. It depicts that the gateway node facilitates the establishment of a secure communication channel between the user and the sensor node.
Figure 5. Sensors Enabled IoT Network.

5.1. Registration

Here we split the phase into two sub-phases.

5.1.1. Sensor Registration

Each sensor node Sj has its identity IDsj. This section is performed by the GW offline before the use of sensor nodes in the target area. It contains the following steps:
  • For each sensor node Sj, the GW chooses an uncommon identity IDsj;
  • The gateway node computes a common secret key between GW and Sj
KGW-Sj = h(IDsj||KGW)
Ultimately, every sensor node Sj which is used in the target area is preloaded with the information {IDsj, KGW-Sj}, and GW also stores IDsj in its database. This phase is shown in Figure 6.
Figure 6. Sensor node pre-deployment phase.

5.1.2. User Registration

In this section, a lawful user Ui wishes to register with the GW. As a way to register to the GW, the user Ui wishes to execute the steps which are given below and shown in Figure 7.
Figure 7. Registration phase between Ui and GW.
Step-1: User Ui selects IDi, PWi, and random number r1. Ui calculates
RPWi = h(IDi||PWi||r1)
RIDi = h(IDi||r1)
Now Ui forwards the registration request message {RPWi, RIDi} to GW via a safe channel.
Step-2: GW investigates whether RIDi exists in the database. If it exists, then GW forwards a rejection notification to Ui. If not, GW saves RIDi in the database and computes.
A1= h(GIDj||KGW||RIDi) ⨁ RPWi
A2= h(RIDi||KGW) ⨁ h(RIDi||RPWi)
A3= h(A2||RPWi||RIDi)
GW stores {A1, A2, A3, GIDj} into SC and sends SC to Ui by a private channel.
Step-3: Ui computes A4 = h(IDi||PWi) ⨁ r1 and stores A4 into SC {A1, A2, A3, A4, GIDj}.

5.2. Login Phase

Subsequent to the completion of the registration phase, the user can contact a sensor node by the GW. Comprehensive steps are given underneath.
Step-1: User Ui enters its smart card into the terminal and loads IDi and PWi.
Step-2: SC computes r1 = A4h(IDi||PWi);
And RPWi = h(IDi||PWi||r1), RIDi = h(IDi||r1);
And checks A3 = ? h(A2||RPWi||RIDi);
Step-3: If they do not match, then the login process will be canceled.
Step-4: If the password entered by the user was correct, then it selects the random number ru and required sensor IDsj and computes
B1 = A1RPWi = h(GIDj||KGW||RIDi)
B2 = B1ru
B3 = h(GIDj||IDsj||B1||RIDi||ru||T1)
Finally, the message M1 = {B2, B3, GIDj, RIDi, IDsj, T1} is sent to GW, where T1 is an ongoing time stamp.

5.3. Authentication and Key Agreement Phase

Subsequent to accepting the login request message by the GW from Ui, subsequent steps are accomplished for mutual authentication and key establishment. The login and authentication phases are shown in Figure 8.
Figure 8. Authentication and key agreement phase.
Step-1: Firstly, GW checks if GIDj is right. After that, GW verifies the validity of the timestamp. If |T1Tc| < ∆T holds, then GW proceeds to further steps; otherwise, abort the process. GW computes
B1 = h(GIDj||KGW||RIDi)
ru* = B1B2
Then checks B3* = h(GIDj||IDsj||B1||RIDi||ru*||T1) = ? B3
If this does not hold, the user account RIDi will be locked. Otherwise, GW searches for IDsj from the database, chooses a random number rg, and calculates
KGW-Sj = h(IDsj||KGW)
B4 = h(KGW-Sj||IDsj||GIDj) ⨁ ru
B5= h(ru) ⨁ rg
B6 = h(KGW-Sj||ru||rg||T2)
GW sends the message M2 = {IDsj, B4, B5, B6, T2} to Sj, where T2 is GW ongoing time stamp.
Step-2: Subsequent to accepting the message, Sj first checks if IDsj is correct; after that, Sj verifies the legality of the time stamp. If |T2Tc| <∆T holds, then Sj proceeds to further steps; otherwise, it sends a rejection message to GW.
Sj calculates ru* = B4h(KGW-Sj||IDsj||GIDj)
and rg* = B5h(ru)
and verifies B6* = h(KGW-Sj||ru*||rg*||T2) = ? B6
If the equation is right, Sj selects rs and computes
SKs = h(ru||rg||rs)
B7 = h(KGW-Sj||rg) ⨁ rs
B8 = IDsjh(rs||B7)
B9 = h(SKs||IDsj||GIDj||rs||T3)
Now Sj sends M3 = {B7, B8, B9, T3} to GW
Step-3: Subsequent to accepting the message, GW verifies the legality of the time stamp. If |T3Tc| < ∆T holds, then GW goes ahead to further steps; if not, abort the process.
GW computes rs* = B7h(KGW-Sj||rg)
IDsj* = B8h(rs*||B7)
Then investigates IDsj* in the database. If it does not occur, then GW stops the process; otherwise, GW checks B9* = h(SKg||IDsj*||GIDj||rs*||T3) =? B9
GW computes SKg = h(ru||rg||rs)
B10 = h(ru||RIDi) ⨁ rg
B11 = h(ru||rg) ⨁ rs
B12 = h(SKg||RIDi||rg||rs||T4)
GW sends the message M4 = {B10, B11, B12, T4} to Ui.
Step-4: Subsequent to accepting the message, Ui investigates the legality of the time stamp. If |T4Tc| < ∆T holds, then Ui proceeds to further steps; otherwise, it stops the process.
Ui computes rg* = B10h(ru||RIDi)
rs* = B11h(ru||rg)
SKu* = h(ru||rg*||rs*)
Then checks B12* = h(SKu*||RIDi||rg*||rs*||T4) = ? B12
Hence, Session key SKu = h(ru||rg||rs)

5.4. Password Change Phase

Step-1: User Ui inserts its SC into the terminal and inputs his/her IDi and PWi.
SC computes r1 = A4h(IDi||PWi)
RPWi = h(IDi||PWi||r1) and RIDi = h(IDi||r1)
Chooses a random number ru and calculates B1, B2, and B13 = h(GIDj||B1||RIDi||ru||T5). Finally, it sends M5 = {GIDj, RIDi, B2, B13, T5} with to GW.
Step-2: GW investigates legality of time stamp T5 after that calculates B1, ru, and checks B13 =? h(GIDj||B1||RIDi||ru||T5)
GW computes B14 = h(GIDj||KGW||RIDi) ⨁ h(ru||RIDi)
B15 = h(RIDi||GIDj||B14||T6)
Finally, it sends M6 = {B14, B15} to Ui.
Step-3: After receiving M6, SC checks the validity of time stamp and checks B15 = ? h(RIDi||GIDj||B14||T6). If so, Ui inputs a new password PWinew, and the SC generates an arbitrary number r1new, and calculates
RPWinew = h(RIDi||PWinew||r1new)
A1new = B14h(ru||RIDi) ⨁ h(IDi||PWinew||r1)
A2new= A2h(RIDi||RPWi) ⨁ h(RIDi||RPWinew)
A3new = h(A2new||RPWinew||RIDi)
Finally, the SC replaces {A1, A2, A3} with {A1new, A2new, A3new}.

6. Security Analysis

Here, we discuss the security of our scheme formally as well as informally.

6.1. Informal Security Analysis

6.1.1. Insider Attack Resistance

When a user sends a registration request message {RPWi, RIDi} to GW, an insider of GW obtains these secret values. Moreover, the insider obtains the parameters stored in SC {A1, A2, A3, A4, GIDj}. To find the random number r1, the adversary needs to guess IDi* and PWi* simultaneously because A4 = h(IDi||PWi) ⨁ r1. However, the probability of guessing IDi* and PWi* simultaneously is negligible. The adversary cannot find the random number r1 and cannot guess IDi* and PWi*. The adversary cannot verify whether RPWi =? RPWi* where RPWi = h(IDi||PWi||r1). Hence, an insider cannot guess the user’s password.

6.1.2. Offline Password Guessing Resistance

The adversary obtains the SC {A1, A2, A3, A4, GIDj} and obtains the parameter stored in it. From A4 = h(IDi||PWi) ⨁ r1, the adversary knows only A4. To find the random number r1, the adversary needs to guess IDi* and PWi* simultaneously. However, the probability of guessing IDi* and PWi* simultaneously is negligible. In other equations, A1 = h(GIDj||KGW||RIDi) ⨁ RPWi, A2 = h(RIDi||KGW) ⨁ h(RIDi||RPWi), and A3 = h(A2||RPWi||RIDi) the password is used implicitly. From these equations, if the adversary wants to guess the password PWi then he/she needs to know IDi and the random number r1. In these equations, the random number is not used in any of the equations, and IDi is used implicitly. The adversary cannot guess the password from these equations. Thus the proposed scheme is safe against offline password-guessing attacks.

6.1.3. Identity Guessing Resistance

The correct value of the user identity (IDi) is only known to Ui, and the gateway node saves RIDi = h(IDi||r1), in which IDi concatenates with the random number r1. The user does not use his/her identity for login or for authentication. In the whole scheme, the user identity is used only inside A4 = h(IDi||PWi) ⨁ r1. It is not possible for the adversary to find the random number r1, and it can be easily seen that the adversary needs to accurately guess the PWi and IDi simultaneously, but at the same time, it is not possible. Hence, our scheme does not suffer from identity-guessing attacks.

6.1.4. User Forgery Resistance

If the adversary wants to forge the user, then the adversary needs to forge M1 = {B2, B3, GIDj, RIDi, IDsj, T1}; the adversary must calculate B2, B3. However, in the calculation of B2 = B1ru and B3 = h(GIDj||IDsj||B1||RIDi||ru||T1), B1= h(GIDj||KGW||RIDi) is required. In the calculation of B1, gateway node secret key KGW is required. Thus it is not desirable for an adversary to forge a user. The user Ui and our scheme are secure against user forgery attacks.

6.1.5. Sensor Capture Resistance

If the adversary captured some sensors, other than Sj, which communicate with Ui, the adversary could not forge M3 = {B7, B8, B9, T3} since KGW-Sj is used to construct B7 = h(KGW-Sj||rg) ⨁ rs. The sensors are captured by the adversary and have no association with KGW-Sj. So, even though other sensors are seized, Ua cannot execute this attack successfully.

6.1.6. Gateway Forgery Attack

To apply this attack, the adversary wants to forge M2 or M4, where M2 = {IDsj, B4, B5, B6, T2} and M4 = {B10, B11, B12, T4}. To forge the message M2, adversary must calculate B4, B5, and B6 where B4 = h(KGW-Sj||IDsj||GIDj) ⨁ ru, B5 = h(ru) ⨁ rg, and B6 = h(KGW-Sj||ru||rg||T2). However, in the calculation of B4 and B6, KGW-Sj shared secret key between GW and sensor node is required. To forge the message M4, he/she must calculate B10, B11, and B12 where B10 = h(ru||RIDi) ⨁ rg, B11 = h(ru||rg) ⨁ rs, and B12 = h(SKg||RIDi||rg||rs||T4). However, it is not possible to calculate B10, B11, and B12 because random numbers and session keys are required. It is not possible to forge a gateway node. Hence, the proposed scheme is safe against gateway forgery attacks.

6.1.7. De-synchronization Resistance

De-synchronization is a very big security issue in WSNs. Our scheme includes a random number mechanism to assure the originality of interchanged messages and also uses a timestamp mechanism. In each session of our scheme, random numbers ru, rg, and rs are generated by Ui, GW, and Sj, respectively. Hence, our scheme is free from de-synchronization problems.

6.1.8. No Adversarial Session Key Agreement

To change the session key, the adversary needs to change any of the random numbers ru, rg, and rs.
When the message M1 = {B2, B3, GIDj, RIDi, IDsj, T1} is sent to GW, if the adversary wants to agree on the session key with GW and Sj, then Ua selects a random number ru. Now, the adversary needs to calculate B2 and B3. B2 = B1ru and B1 = A1RPWi = h(GIDj||KGW||RIDi). In B1 = A1RPWi, Ua cannot calculate B1 from this because, in Section 5.2, the adversary cannot guess the user’s password. In B1 = h(GIDj||KGW||RIDi), KGW is GW’s secret key which is only known by GW. The adversary cannot calculate B1 with this. In the calculation of B3 = h(GIDj||IDsj||B1||RIDi||ru||T1), he/she must know B1 and random number ru. As discussed above, we conclude that Ua cannot calculate B1 and Ua also cannot calculate B3. In message M1, the adversary cannot make any type of changes.
When message M2 = {IDsj, B4, B5, B6, T2} is sent to Sj, If the adversary wants to change the session key, then Ua selects a random number rg*. Now, the adversary needs to calculate B5 and B6 where B5 = h(ru) ⨁ rg. Ua does not know the random number ru selected by Ui, then he/she cannot calculate B5. In B6 = h(KGW-Sj||ru||rg||T2), KGW-Sj is a shared secret key between GW and Sj. The adversary cannot calculate B6. In message M2, the adversary cannot make any type of change.
When message M3 = {B7, B8, B9, T3} is sent to GW, if Ua wants to change the session key, then Ua selects a random number rs*. Now, the adversary needs to calculate B7, B8, and B9. The adversary needs to know KGW-Sj and rg to calculate B7 = h(KGW-Sj||rg) ⨁ rs, but KGW-Sj shares the secret key only between GW and Sj, so the adversary cannot calculate B7. To calculate B8 = IDsjh(rs||B7), Ua needs to know B7. Above, we conclude that Ua cannot calculate B7 and the adversary cannot calculate B8. Ua needs to know SKs in order to calculate B9 = h(SKs||IDsj||GIDj||rs||T3) where SKs = h(ru||rg||rs). Ua does not know the random numbers ru and rg, and the adversary cannot calculate B9.
Hence, our proposed scheme is safe from adversarial session key agreement.

6.1.9. Man-In-The-Middle Attack

To apply a man-in-the-middle attack, the adversary works as a middleman between the user and the sensor node. In this attack, one session key is conducted between the user and adversary, and another session key is established between the adversary and sensor node. Both the user and the sensor node believe they are communicating with each other, but in this attack, both are communicating with the adversary.
When message M1 = {B2, B3, GIDj, RIDi, IDsj, T1} is sent to GW, then the adversary intercepts it and tries to find random number ru where ru = B2B1 and B1 = A1RPWi = h(GIDj||KGW||RIDi). The adversary does not know RPWi and KGW. As a result, he/she cannot find ru and cannot able to apply this attack at this end.
Similarly, when the sensor node sends message M3 = {B7, B8, B9, T3} to GW, then the adversary needs to know the random number rs = B7h(KGW-Sj||rg). However, the adversary does not know KGW-Sj and rg. So he/she cannot be able to find the random number rs.
Hence, our proposed scheme is safe from a man-in-the-middle attack.

6.1.10. Stolen Smart Card Resistance

Suppose SC of the user has been lost, then all the information stored in SC obtains by an adversary. In our proposed scheme SC has the parameters {A1, A2, A3, A4, GIDj} where A1 = h(GIDj||KGW||RIDi) ⨁ RPWi, A2 = h(RIDi||KGW) ⨁ h(RIDi||RPWi), A3 = h(A2||RPWi||RIDi), and A4 = h(IDi||PWi) ⨁ r1. However, without knowing (IDi, r1), Ua cannot obtain the user’s password. An adversary cannot obtain any secret information from it. Hence our proposed protocol resists stolen smart card attacks.

6.1.11. User Anonymity Provision

Our scheme protects IDi with h(IDi||r1). It also protects PWi with h(IDi||PWi||r1). Thus in order to obtain IDi, a random number r1 is needed, and to obtain Uis password Uis identity and random number r1 need to be known. Moreover, even if a stolen smart card is obtained by the adversary, Ua cannot obtain IDi from A4 = h(IDi||PWi) ⨁ r1 since IDi is protected by h(IDi||PWi) ⨁ r1. The adversary cannot find the identity and password of the user. This proves that our suggested protocol provides user anonymity.

6.1.12. Mutual Authentication Provision

GW checks B4 = h(KGW-Sj||IDsj||GIDj) ⨁ ru to verify Ui, and B9 = h(SKg||IDsj||GIDj||rs||T3) to verify Sj, Sj checks IDSj and B6 = h(KGW-Sj||ru||rg||T2) to authenticate GW directly and Ui indirectly. Ui checks B12 = h(SKg||RIDi||rg||rs||T4) to justify GW directly and Sj indirectly. So, either pair of parties achieves mutual authentication.

6.1.13. Password Updating/Changing Provision

Suppose a legitimate user has his/her smart card stolen. Suppose the information is acquired by the adversary who saves in SC. Suppose the adversary revealed the information which is saved in SC. To change the password, it is necessary for the adversary to know the existing password PWi verification. Moreover, it is not possible to find the old password because the password is protected with RPWi = h(IDi||PWi||r1). In this way, an adversary needs to reckon the existing password before updating another password.

6.2. Formal Security Analysis

Here, we do a formal security analysis of our scheme with the help of a random oracle model. In this section, we use the Real or Random (RoR) [35] model to prove that the proposed protocol is secure. In the RoR model, the attacker is given the right to query and uses the interactive question and answer with a random oracle to verify the security of the proposed scheme. There are two participants in the proposed protocol: Π I m and Π S n represent the m-thIoT device instance and the n-th trusted server instance respectively. In addition, for formal security analysis, we define the following query model for attacker A .
E x e c u t e ( O ) :   A by executing this query, he can intercept the messages transmitted by IoT devices and trusted server servers on the public channel, where O = { Π I m , Π S n } .
S e n d ( O ,   M ) : By executing the query, A can send message M to O and receive a response from O .
H a s h ( s t r i n g ) : By executing the query, A can enter a string and return its hash value.
T e s t ( O ) : A flips a coin c by executing this query. If c = 1 , A can obtain the correct session key. If c = 0 , A can obtain a random string with the same length as the session key.
Theorem 1. 
In the R.O.R model, suppose A can execute the queries of E x e c u t e ( O ) , S e n d ( O ,   M ) ,   H a s h ( s t r i n g ) , and T e s t ( Z ) , the probability P of A breaking the protocol in polynomial time is: A d v A P ( ε ) q h 2 | H a s h | + q P 2 | P U F | + 2 A d v A Ω ( ε ) . Here, q h refers to the number of times the hash is executed, q p refers to the number of times P U F is executed. H a s h   and P U F refer to scope space of hash function H ( · ) and P U F function P U F ( · ) . A d v A Ω ( ε ) represents the advantage of A cracking the symmetric cipher Ω , for a sufficiently small number γ , then A d v A Ω ( ε ) < γ .
Proof. 
We defined five rounds of the game G M 0 G M 4 to simulate the attack process of A . In the process of proving, S u c c A G M i ( ε ) represents the probability that A can win multiple rounds of the game, A d v A P ( ε ) means that A can break the advantage of protocol. The proof steps are as follows:
G M 0 :   In the ROR model, G M 0 game is a real attack on the authentication key exchange protocol proposed by A , and A flips the coin c at the beginning of the game. Therefore, we obtain the following results:
A d v A P ( ε ) = | 2 Pr [ S u c c A G M 0 ( ε ) ] 1 |
G M 1 : With G M 0 being different from G M 1 by executing the E x e c u t e query, A can intercept the messages { h ( I D A ) ,   A u t h r e q ,   T S 1 ,   h ( I D A , T S 1 ) } , { C A , i ,   P A , i ,   T S 2 ,   h ( h ( I D A ) , C A , i ,   P A , i ) ,   h ( K A , i ) } , and { P A , i ,   T S 3 ,   h ( h ( I D A ) , T S 3 , K A , i ,   R A , i + 1 ) , ( R A , i + 1 ) ,   ( R A , i + 1 ) h ( K A , i ) }   transmitted on the public channel. Then, A will perform a T e s t query to calculate the session key h ( K A , i ) , but the message intercepted on the public channel cannot help A calculate S K . Therefore, the probability of A winning G M 1 by eavesdropping information will not increase. So we obtain:
Pr [ S u c c A G M 1 ( ε ) ] = Pr [ S u c c A G M 0 ( ε ) ]
G M 2 : Different from G M 1 , G M 2 adds H a s h query and S e n d query. In the intercepted messages   { C A , i ,   P A , i ,   T S 2 ,   h ( h ( I D A ) , C A , i ) , h ( K A , i ) } and { P A , i ,   T S 3 ,   h ( h ( I D A ) , T S 3 ,   R A , i + 1 ) , ( R A , i + 1 ) ,   ( R A , i + 1 ) h ( K A , i ) } , the parameters h ( h ( I D A ) , C A , i ) , h ( K A , i ) , h ( K A , i )   and { h ( h ( I D A ) , T S 3 , K A , i ,   R A , i + 1 ) are based on the one-way hash function. In addition, h ( K A , i )   is different in each communication; the hash function will not collide. Therefore, according to the birthday paradox [36], we can obtain
| Pr [ S u c c A G M 2 ( ε ) ] Pr [ S u c c A G M 1 ( ε ) ] | q h 2 2 | H a s h |
G M 3 : The difference between G M 3 and G M 2 is that G M 3 adds P U F query. A executes S e n d and P U F queries. Because the physical function P U F has security attributes. Therefore, we can obtain
| Pr [ S u c c A G M 3 ( ε ) ] Pr [ S u c c A G M 2 ( ε ) ] | q P 2 2 | P U F |
G M 4 : In this game, A tries to crack the encrypted message ( R A , i + 1 ) h ( K A , i ) , In the security model in Section 3.2, it is defined that the attacker cannot crack the memory of the server, A cannot obtain h ( K A , i ) , so A cannot calculate ( R A , i + 1 ) . According to the security of Ω symmetric encryption algorithm, we can obtain
| Pr [ S u c c A G M 4 ( ε ) ] Pr [ S u c c A G M 3 ( ε ) ] | A d v A Ω ( ε )
Because the probability of success and failure of A is equal, so the probability that A can guess the session key is
Pr [ S u c c A G M 4 ( ε ) ] = 1 / 2 .
According to the above formula, we can obtain
1 2 A d v A P ( ε ) = | Pr [ S u c c A G M 0 ( ε ) ] 1 2 |
= | Pr [ S u c c A G M 0 ( ε ) ] Pr [ S u c c A G M 4 ( ε ) ] |
i = 0 3 | Pr [ S u c c A G M i + 1 ( ε ) ] Pr [ S u c c A G M i ( ε ) ] |
= q h 2 2 | H a s h | + q P 2 2 | P U F | + A d v A Ω ( ε )
Therefore, the probability that A can crack the protocol is:
A d v A P ( ε ) q h 2 | H a s h | + q P 2 | P U F | + 2 A d v A Ω ( ε )

8. Conclusions

We have analyzed Singh et al.’s authentication and key agreement scheme for WSNs and found some security pitfalls in it. Then we developed an improved authentication and key agreement scheme for WSNs tailored for IoT. The informal analysis of the proposed scheme indicates its resistance to various sorts of adversarial activities. The formal security of the proposed scheme with the RoR model further supports its security. In the end, we have compared the performance of our scheme with that of the related schemes. For the proposed scheme, we have tried to control the cost along with maintaining security.

Author Contributions

P.T.: conceptualization, methodology, and writing—original draft preparation. S.K.: conceptualization and supervision. B.A.A.: methodology and formal security analysis. A.G.: implementation. M.-H.Y.: methodology, informal security analysis, and final editing. All authors have read and agreed to the published version of the manuscript.

Funding

The Deanship of Scientific Research (DSR) at King Abdulaziz University, Jeddah, Saudi Arabia, has funded this project under grant no. (FP-089-43). Ming-Hour Yang is supported by MOST 111-2221-E-033-047-MOST 111-2218-E-A49-013-MBK-MOST 111-2218-E-002-038-. Saru Kumari is supported by Chaudhary Charan Singh University, Meerut Uttar Pradesh, India under “Research and Development Scheme” grant sanctioned vide Ref. No. Dev./1043 dated 10 November 2022 and by the State Government of Uttar Pradesh, India under the “Research and Development” scheme grant sanctioned vide the Government order no.-89/2022/1585/sattar-4-2022/001-4-32-2022 dated 10 November 2022.

Institutional Review Board Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors have no conflict of interest.

References

  1. Das, M.L. Two-factor user authentication in wireless sensor networks. IEEE Trans. Wirel. Commun. 2009, 8, 1086–1090. [Google Scholar] [CrossRef]
  2. Yeh, H.-L.; Chen, T.-H.; Liu, P.-C.; Kim, T.-H.; Wei, H.-W. A Secured Authentication Protocol for Wireless Sensor Networks Using Elliptic Curves Cryptography. Sensors 2011, 11, 4767–4779. [Google Scholar] [CrossRef]
  3. Xue, K.; Ma, C.; Hong, P.; Ding, R. A temporal-credential-based mutual authentication and key agreement scheme for wireless sensor networks. J. Netw. Comput. Appl. 2013, 36, 316–323. [Google Scholar] [CrossRef]
  4. Turkanović, M.; Brumen, B.; Hölbl, M. A novel user authentication and key agreement scheme for heterogeneous ad hoc wireless sensor networks, based on the Internet of Things notion. Ad Hoc Networks 2014, 20, 96–112. [Google Scholar] [CrossRef]
  5. Jiang, Q.; Ma, J.; Lu, X.; Tian, Y. An efficient two-factor user authentication scheme with unlinkability for wireless sensor networks. Peer-to-Peer Netw. Appl. 2014, 8, 1070–1081. [Google Scholar] [CrossRef]
  6. He, D.; Kumar, N.; Chilamkurti, N. A secure temporal-credential-based mutual authentication and key agreement scheme with pseudo identity for wireless sensor networks. Inf. Sci. 2015, 321, 263–277. [Google Scholar] [CrossRef]
  7. Kumari, S.; Li, X.; Wu, F.; Das, A.K.; Arshad, H.; Khan, M.K. A user friendly mutual authentication and key agreement scheme for wireless sensor networks using chaotic maps. Futur. Gener. Comput. Syst. 2016, 63, 56–75. [Google Scholar] [CrossRef]
  8. Jiang, Q.; Ma, J.; Wei, F.; Tian, Y.; Shen, J.; Yang, Y. An untraceable temporal-credential-based two-factor authentication scheme using ECC for wireless sensor networks. J. Netw. Comput. Appl. 2016, 76, 37–48. [Google Scholar] [CrossRef]
  9. Farash, M.S.; Turkanović, M.; Kumari, S.; Hölbl, M. An efficient user authentication and key agreement scheme for heterogeneous wireless sensor network tailored for the Internet of Things environment. Ad Hoc Networks 2016, 36, 152–176. [Google Scholar] [CrossRef]
  10. Amin, R.; Biswas, G. A secure light weight scheme for user authentication and key agreement in multi-gateway based wireless sensor networks. Ad Hoc Netw. 2016, 36, 58–80. [Google Scholar] [CrossRef]
  11. Amin, R.; Islam, S.H.; Biswas, G.; Khan, M.K.; Leng, L.; Kumar, N. Design of an anonymity-preserving three-factor authenticated key exchange protocol for wireless sensor networks. Comput. Netw. 2016, 101, 42–62. [Google Scholar] [CrossRef]
  12. Chang, C.-C.; Hsueh, W.-Y.; Cheng, T.-F. A Dynamic User Authentication and Key Agreement Scheme for Heterogeneous Wireless Sensor Networks. Wirel. Pers. Commun. 2016, 89, 447–465. [Google Scholar] [CrossRef]
  13. Wu, F.; Xu, L.; Kumari, S.; Li, X.; Shen, J.; Choo, K.-K.R.; Wazid, M.; Das, A.K. An efficient authentication and key agreement scheme for multi-gateway wireless sensor networks in IoT deployment. J. Netw. Comput. Appl. 2017, 89, 72–85. [Google Scholar] [CrossRef]
  14. Wu, F.; Xu, L.; Kumari, S.; Li, X. A new and secure authentication scheme for wireless sensor networks with formal proof. Peer-to-Peer Netw. Appl. 2015, 10, 16–30. [Google Scholar] [CrossRef]
  15. Dhillon, P.K.; Kalra, S. Secure multi-factor remote user authentication scheme for Internet of Things environments. Int. J. Commun. Syst. 2017, 30, e3323. [Google Scholar] [CrossRef]
  16. Amin, R.; Islam, S.H.; Biswas, G.; Khan, M.K.; Kumar, N. A robust and anonymous patient monitoring system using wireless medical sensor networks. Futur. Gener. Comput. Syst. 2018, 80, 483–495. [Google Scholar] [CrossRef]
  17. Srinivas, J.; Mishra, D.; Mukhopadhyay, S. A Mutual Authentication Framework for Wireless Medical Sensor Networks. J. Med Syst. 2017, 41, 80. [Google Scholar] [CrossRef]
  18. Li, X.; Niu, J.; Kumari, S.; Wu, F.; Sangaiah, A.K.; Choo, K.-K.R. A three-factor anonymous authentication scheme for wireless sensor networks in internet of things environments. J. Netw. Comput. Appl. 2017, 103, 194–204. [Google Scholar] [CrossRef]
  19. He, J.; Yang, Z.; Zhang, J.; Liu, W.; Liu, C. On the security of a provably secure, efficient, and flexible authentication scheme for ad hoc wireless sensor networks. Int. J. Distrib. Sens. Netw. 2018, 14, 1550147718756311. [Google Scholar] [CrossRef]
  20. Gupta, A.; Tripathi, M.; Shaikh, T.J.; Sharma, A. A lightweight anonymous user authentication and key establishment scheme for wearable devices. Comput. Networks 2018, 149, 29–42. [Google Scholar] [CrossRef]
  21. Ghani, A.; Mansoor, K.; Mehmood, S.; Chaudhry, S.A.; Rahman, A.U.; Saqib, M.N. Security and key management in IoT-based wireless sensor networks: An authentication protocol using symmetric key. Int. J. Commun. Syst. 2019, 32, e4139. [Google Scholar] [CrossRef]
  22. Lee, H.; Kang, D.; Ryu, J.; Won, D.; Kim, H.; Lee, Y. A three-factor anonymous user authentication scheme for Internet of Things environments. J. Inf. Secur. Appl. 2020, 52, 102494. [Google Scholar] [CrossRef]
  23. Mall, P.; Amin, R.; Obaidat, M.S.; Hsiao, K.-F. CoMSeC++: PUF-based secured light-weight mutual authentication protocol for Drone-enabled WSN. Comput. Networks 2021, 199, 108476. [Google Scholar] [CrossRef]
  24. Chen, C.-M.; Deng, X.; Gan, W.; Chen, J.; Islam, S.K.H. A secure blockchain-based group key agreement protocol for IoT. J. Supercomput. 2021, 77, 9046–9068. [Google Scholar] [CrossRef]
  25. Chen, C.-M.; Liu, S. Improved Secure and Lightweight Authentication Scheme for Next-Generation IoT Infrastructure. Secur. Commun. Netw. 2021, 2021, 1–13. [Google Scholar] [CrossRef]
  26. Ali, I.; Chen, Y.; Ullah, N.; Kumar, R.; He, W. An Efficient and Provably Secure ECC-Based Conditional Privacy-Preserving Authentication for Vehicle-to-Vehicle Communication in VANETs. IEEE Trans. Veh. Technol. 2021, 70, 1278–1291. [Google Scholar] [CrossRef]
  27. Sadri, M.J.; Asaar, M.R. An efficient hash-based authentication protocol for wireless sensor networks in Internet of Things applications with forward secrecy. Int. J. Commun. Syst. 2021, 34, e4823. [Google Scholar] [CrossRef]
  28. Rangwani, D.; Sadhukhan, D.; Ray, S.; Khan, M.K.; Dasgupta, M. A robust provable-secure privacy-preserving authentication protocol for Industrial Internet of Things. Peer-to-Peer Netw. Appl. 2021, 14, 1548–1571. [Google Scholar] [CrossRef]
  29. Nashwan, S. An End-to-End Authentication Scheme for Healthcare IoT Systems Using WMSN. Comput. Mater. Contin. 2021, 68, 607–642. [Google Scholar] [CrossRef]
  30. Tanveer, M.; Alkhayyat, A.; Khan, A.U.; Kumar, N.; Alharbi, A.G. REAP-IIoT: Resource-Efficient Authentication Protocol for the Industrial Internet of Things. IEEE Internet Things J. 2022. [Google Scholar] [CrossRef]
  31. Kumar, V.; Kumar, R.; Jangirala, S.; Kumari, S.; Kumar, S.; Chen, C.-M. An Enhanced RFID-Based Authentication Protocol using PUF for Vehicular Cloud Computing. Secur. Commun. Networks 2022, 2022, 1–18. [Google Scholar] [CrossRef]
  32. Wu, T.-Y.; Guo, X.; Chen, Y.-C.; Kumari, S.; Chen, C.-M. SGXAP: SGX-Based Authentication Protocol in IoV-Enabled Fog Computing. Symmetry 2022, 14, 1393. [Google Scholar] [CrossRef]
  33. Li, Z.; Miao, Q.; Chaudhry, S.A.; Chen, C.-M. A provably secure and lightweight mutual authentication protocol in fog-enabled social Internet of vehicles. Int. J. Distrib. Sens. Netw. 2022, 18, 15501329221104332. [Google Scholar] [CrossRef]
  34. Singh, A.; Awasthi, A.K.; Singh, K. Cryptanalysis and Improvement in User Authentication and Key Agreement Scheme for Wireless Sensor Network. Wirel. Pers. Commun. 2016, 94, 1881–1898. [Google Scholar] [CrossRef]
  35. Canetti, R.; Goldreich, O.; Halevi, S. The random oracle methodology, revisited (preliminary version). In Proceedings of the Thirtieth Annual ACM Symposium on Theory of Computing, New York, NY, USA, 24–26 May 1998; pp. 209–218. [Google Scholar] [CrossRef]
  36. Boyko, V.; MacKenzie, P.; Patel, S. Provably secure password-authenticated key exchange using Diffie-Hellman. In Advances in Cryptology—EUROCRYPT 2000; Springer: Berlin, Heidelberg, 2000; pp. 156–171. [Google Scholar] [CrossRef]
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.