Next Article in Journal
Towards a Simulation Framework for Smart Indoor Spaces
Previous Article in Journal
Design of a Test for Detecting the Presence of Impulsive Noise
Previous Article in Special Issue
MQTTset, a New Dataset for Machine Learning Techniques on MQTT
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A Secure and Lightweight Three-Factor-Based Authentication Scheme for Smart Healthcare Systems †

1
Department of Software, Sungkyunkwan University, 2066 Seobu-ro, Jangan-gu, Suwon-si 16419, Gyeonggi-do, Korea
2
Department of Electrical and Computer Engineering, Sungkyunkwan University, 2066 Seobu-ro, Jangan-gu, Suwon-si 16419, Gyeonggi-do, Korea
3
Department of Computer Engineering, Sungkyunkwan University, 2066 Seobu-ro, Jangan-gu, Suwon-si 16419, Gyeonggi-do, Korea
*
Author to whom correspondence should be addressed.
This paper is an extended version of our paper published in Jihyeon, R.; Youngsook, L.; Dongho, W. Cryptoanalysis of Lightweight and anonymous three-factor authentication and access control protocol for real-time applications in wireless sensor networks. In Proceedings of the 6th ICCST 2019, Kota Kinabalu, Malaysia, 29–30 August 2019.
Sensors 2020, 20(24), 7136; https://doi.org/10.3390/s20247136
Submission received: 18 November 2020 / Revised: 4 December 2020 / Accepted: 9 December 2020 / Published: 12 December 2020
(This article belongs to the Special Issue Intelligent and Adaptive Security in Internet of Things)

Abstract

:
Internet of Things (IoT) technology has recently been integrated with various healthcare devices to monitor patients’ health status and share it with their healthcare practitioners. Since healthcare data often contain personal and sensitive information, healthcare systems must provide a secure user authentication scheme. Recently, Adavoudi-Jolfaei et al. and Sharma and Kalra proposed a lightweight protocol using hash function encryption only for user authentication on wireless sensor systems. In this paper, we found some weaknesses in target schemes. We propose a novel three-factor lightweight user authentication scheme that addresses these weaknesses and verifies the security of the proposed scheme using a formal verification tool called ProVerif. In addition, our proposed scheme outperforms other proposed symmetric encryption-based schemes or elliptic curve-based schemes.

1. Introduction

Digital healthcare services have recently received a considerable amount of attention as various Internet-enabled wearable devices have been deployed. Digital services can also be used to continuously monitor patients and share information with their healthcare practitioners. According to a Spyglass Consulting Group’s report [1], with 100 interviewees working in medical informatics and healthcare IT technology areas, about 88% of hospitals and healthcare systems have considered adopting remote patient monitoring (RPM) as their primary business model in the future.
RPM technology is increasingly used by hospitals and medical systems [1]. We believe that continuous monitoring and fast response times are necessary for high-risk patients with chronic diseases. For example, practitioners can use a monitoring device to collect ECG signals from patients with heart-related conditions and quickly identify any suspicious changes [2,3,4,5]. Because such data (e.g., raw ECG signals) are often highly personal and sensitive, any data that have been collected in healthcare systems should be securely protected and accessible only to authorized users such as primary care physicians. Furthermore, the scheme to monitor and analyze processes should not only be safe, but also be completed in real-time because patients might otherwise be at risk.
If there is a problem with the certification of these RPM technologies, the following damage can occur. First, if hospitals do not provide fast enough authentication using a heavy enough operation, quick feedback is impossible when monitoring the patient’s condition. In such cases, in a situation where urgent patients with fatal internal injuries require immediate treatment due to rapid changes, the treatment may be delayed due to the late certification speed. In the worst-case scenario, the treatment of patients can be difficult. Second, if there is a security flaw in the certification, privacy infringement of patients and medical personnel may occur. For example, if a session key is released, all medical information of the patient can be disclosed to the hacker. Therefore, in order to avoid such damage, a certification protocol is shown in Figure 1 that satisfies both high speed (i.e., lightweight computation) and safety should be used.
Many security protocols (e.g., [6,7,8,9]) have been developed to satisfy these security and performance requirements. Among those protocols, Sharma and Kalra’s scheme [6] is specifically designed to improve the protocol’s efficiency. Unlike existing protocols that require expensive cryptographic operations or three authentication factors [7,9,10], Sharma and Kalra’s scheme [6] uses hash functions with only two authentication factors. Similarly, Adavoudi-Jolfaei et al. [11] also proposed a protocol using hash functions only. Sharma and Kala’s scheme [6] and Adavoudi-Jolfei et al.’s scheme [11] are the most recently written lightweight authentication protocols that can keep high speed and safety, the conditions required by the healthcare system.
In this paper, we confirmed that Adavoudi-Jolfaei et al.’s scheme [11] has a severe vulnerability. We also demonstrate that Sharma and Kalra’s scheme [6] has a serious design error. Therefore, we propose a new scheme to fix the weaknesses of these target schemes. We formally verify the security of the new protocol using ProVerif, an automatic cryptographic protocol verifier. In summary, this paper presents the following contribution:
  • We demonstrate that Sharma and Kalra’s scheme [6] has a serious design error: mutual authentication between a practitioner and a sensor cannot be ensured in their original protocol.
  • We confirm that Adavoudi-Jolfaei et al.’s scheme [11] and Sharma and Kalra’s scheme have a severe vulnerability. We find that Adavoudi-Jolfaei et al.’s scheme [11] is vulnerable to user impersonation attack and session key attack. We also find that Sharma and Kalra’s scheme [6] is vulnerable to password guessing attack, stealing the session key and sensor impersonation attack.
  • We propose a scheme for smart healthcare systems. Our new scheme resists privileged insider attack, outsider attack, offline ID guessing attack, online id guessing attack, session key disclosure attack, practitioner impersonation attack, and sensor impersonation attack. We provide security proofs.
  • We formally verify the security of the new protocol using ProVerif, an automatic cryptographic protocol verifier.
  • We show the performance analysis of the proposed scheme. We compared the proposed scheme with that of Chen et al. [12], Renuka et al. [13], and Li et al. [14] to show how efficient our proposed scheme is.
The remainder of this paper is arranged as follows: Section 2 describes related work. Section 3 introduces the preliminary knowledge necessary to understand the scheme by Sharma and Kalra and Adavoudi-Jolfaei et al. The target schemes are briefly described in Section 4. Section 5 discusses several weaknesses of the target schemes. We propose our improved scheme in Section 6 and show the security analysis of the proposed scheme in Section 7. In Section 8, we show the performance analysis of the proposed scheme. Finally, Section 9 concludes the paper.

2. Related Work

Various user authentication schemes have been proposed for smart healthcare applications.
Hu et al. [15] proposed a real-time hardware and software-based healthcare monitoring system for cardiac patients in 2007. The proposed scheme focuses on efficiency improvements but lacks adequate security protection. Malasri et al. [16] proposed an authentication scheme for wireless mote-based medical sensor networks using an ECC (elliptic curve cryptography) system in 2009. However, the scheme cannot withstand denial-of-service and relay nodes attacks. Furthermore, ECC may be too expensive for embedded devices in the medical domain.
In 2012, Kumar et al. [17] proposed a two-factor user authentication scheme for wireless medical sensors to monitor patients’ health status. However, Khan and Kumari [18] found that Kumar et al.’s scheme is vulnerable to security attacks. The scheme included the use of a smart card to enhance the security of the protocol, but the user information stored on the smart card can end up leaked if the smart card is stolen. Khan and Kumari proposed an improved scheme to fix the security flaws of the previous scheme in 2014. Li et al. [19] and Wu et al. [20] each analyzed the scheme presented by Khan and Kumari [18]. They discovered that Khan and Kumari’s scheme is not secure against offline password guessing attacks, as it does not identify invalid input and user impersonation attacks. Li et al. [19] and Wu et al. [20] proposed their respective improved schemes, which employ a smart card to overcome the security flaws of Khan and Kumari [18]. Hossain et al. [21] proposed an IoT-based ECG health monitoring service framework in the cloud. They presented a framework for secure transmission of patients data from different sensors to the cloud in a wireless environment.
Recently, Sharma and Kalra [6] proposed an authentication scheme for cloud-IoT-based remote patient healthcare monitoring services. It is efficient because only the hash function is used for system encryption. Several papers briefly addressed security flaws of Sharma and Karla’s scheme [22,23]. However, they only mentioned briefly that privileged insider attacks are possible. However, we have pinpointed the structural problems of Sharma and Kalra’s scheme, and showed that password guessing attack, stealing the session key attack, and sensor impersonation attack are possible in the case of privileged insider attack.
In 2016, Gope et al. [24] proposed a novel two-factor lightweight anonymous authentication protocol in WSNs (wireless sensor networks) that uses a database to overcome prior vulnerabilities. However, Adavoudi-Jolfaei et al. [11] argue that protocol is vulnerable to side-channel attacks because of the use of 2-factors, and that the session keys are also vulnerable. To overcome these drawbacks, in 2019, Adavoudi-Jolfaei et al. [11]. proposed a new 3-factor authentication protocol in WSN. Unfortunately, Shin and Kwon found user collusion attacks, desynchronization attack and no sensor node anonymity. In addition, through our prior research, we found more weaknesses that user impersonation attack and session key attack are able to take advantage of.

3. Preliminaries

This section introduces the hash function, fuzzy extractor and threat model used in this paper.

3.1. Hash Function

Data convert an arbitrary value to a fixed-length value through a hash function. This is useful for fast and safe search functions. The hash function has the following properties [25].
  • Preimage-resistance It is computationally impossible to use the output of any hash value to find the input that results in this value, i.e., to find any preimage a such that h ( a ) = b when given any b for which a corresponding input is not known.
  • 2nd-preimage-resistance For any input, when there is an output for the hash function, it is computationally impossible to find another input value with this output, i.e., to find a 2nd-preimage a a such that h ( a ) = h ( a ) .
  • Collision resistance It is computationally infeasible to find two different inputs with the same hashing result, i.e., any two distinct inputs a, a , which hash to the same output, such that h ( a ) = h ( a ) .

3.2. Fuzzy Extractor

Biometric information should be treated as sensitive. Since biometric information is unique to the user, it is convenient to use, but difficult to handle. In general, biometrics cannot be recognized equally each time. Therefore, a fuzzy extractor is used to recognize varied biometric information within a certain tolerance range. The fuzzy extractor can obtain a unique string using error tolerance. The fuzzy extractor operates through two procedures ( G e n , R e p ), as follows [26,27]:
G e n ( B ) α , β
R e p ( B * , β ) = α
G e n and R e p are a probabilistic generation function and a deterministic reproduction function, respectively. G e n returns a factored out string α { 0 , 1 } k for the input biometrics B and a co-adjutant string β { 0 , 1 } * . R e p is a function that restores β to α , and any vector B * close to B.

3.3. Threat Model

Based on the work of Dolev and Yao [28] and other previous research [10,29], we employ a threat model with the following assumptions.
  • An attacker can steal a smart device with the user’s identity.
  • An attacker can eavesdrop on a public channel. An attacker can steal the message between the user and the gateway node or between the gateway node and the sensor node.
  • An attacker can extract the information stored in the smart device as a side-channel attack.

4. Review of Target Protocols

This section describes the target protocols.

4.1. Review of Adavoudi-Jolfaei et al.’s Protocol

This section describes the protocol developed by Adavoudi-Jolfaei et al. [11]. The scheme consists of four phases: registration, login, authentication, and password change. The notation for the target paper [11] is shown in Table 1.

4.1.1. Registration Phase

In the registration phase, U and G W N in the private channel exchange secret information about S C . When the user authenticates, this allows confidential information to be stored in the database used by S C and G W N .
  • User U chooses his/her identity U i d and sends the registration request U i d and personal credential to the gateway node G W N in the secure channel.
  • The gateway node G W N generates a random number n g , a unique random number used to identify a particular access group G j , a random number user access privilege mask A P M j and random sequence number T s u g . Then, the created variables are grouped as G = { G 1 , G 2 , } , A P M = { A P M 1 , A P M 2 , } . After obtaining the registration request from user U, G W N calculates as follows:
    S k u g = h ( U i d n g ) G W i d
    s i d j = h ( U i d r j S k u g )
    S U i d = { s i d 1 , s i d 2 , }
    K E M u g j = h ( U i d s i d j r j )
    G = { G 1 , G 2 , }
    A P M = { A P M 1 , A P M 2 , }
    U i d # = U i d h ( G W N i d w T s u g )
    S k u g # = S k u g h ( G W N i d U i d w )
    G j # = G j h ( G W N i d U i d w )
    A P M j # = A P M j h ( G W N i d U i d w )
    S k g s # = S k g s h ( G W N i d w S N i d )
    K E M u g # = K E M u g h ( G W N i d U i d w ) using its secret key w.
    The data are saved T s u g , ( S U i d , K E M u g # ), S k u g # , S k g s # , U i d # , G # , A P M # in D B . G W N sends S k u g , ( S U i d , K E M u g ), T s u g , G U , h ( · ) to user U in S C .
  • After user U takes S C from the G W N , chooses his/her U i d , password U p s w , imprints the biometric U b and then computes as follows:
    G e n ( U b ) = ( R S U , P U )
    S k u g * = S k u g h ( h ( U i d ) h ( U p s w ) h ( R S U ) )
    K E M u g * = K E M u g h (h ( U i d ) h ( U p s w ) h ( R S U ))
    S U i d * = S U i d h (h ( U i d ) h ( U p s w ) h ( R S U ) )
    G * = G h (h ( U i d ) h ( U p s w ) h ( R S U ) ), f U * = h (h ( S k u g ) h ( U i d ) h ( U p s w ) h ( R S U ) )
    Moreover, save the data S k u g * , f U * , ( S U i d * , K E M u g * ), T s u g , G * , P U , G e n ( · ) , R e p ( · ) , h ( · ) in S C .

4.1.2. Login Phase

In the login phase, the user enters his/her confidential information into the smart card and requests login.
  • U inserts the smart card and enters U i d , U p s w and U b . The smart card computes R S U = R e p ( U b , P U ) , S k u g = S k u g * h ( h ( U i d ) h ( U p s w ) h ( R S U ) ) and checks the condition f U = h ( h ( S k u g ) h ( U p s w ) h ( U i d ) h ( R S U ) ) = ? f U * . If it holds, the smart card ensures that the user successfully passes the verification process. Otherwise, this phase terminates immediately.
  • After successful verification, user U generates random number N u and the system computes as follows:
    N x = S k u g N u
    G = G * h (h ( U i d ) h ( U p s w ) h ( R S U ) )
    A U i d = h ( U i d S k u g N u T s u g )
    G j = G j N u
    V 1 = h ( A U i d G j S k u g N x S N i d )
    If there is a loss of synchronization, user U selects one of the unused pair of ( s i d j * , K E M u g j * ) from ( S U i d * , K E M u g * ) and surrenders his/her U i d , U p s w , R S U and computes s i d j = s i d j * h ( h ( U i d ) h ( U p s w ) h ( R S U ) ) , K E M u g = K E M u g * h ( h ( U i d ) h ( U p s w ) h ( R S U ) ) , A U i d = s i d j and S k u g = K E M u g j .
  • U sends the login request messages M A 1 = { A U i d , G j , N x , T s u g ( i f r e q ) , S N i d , V 1 } to G W N .

4.1.3. Authentication Phase

In the authentication phase, G W N verifies U with the login message received from U, and sends a new message containing secret information to S N . S N and U share their keys and exchange the secret information.
  • After receiving the login request messages M A 1 from user U, G W N first checks the validity of the transaction sequence number T s u g . G W N computes as follows:
    N u = S k u g N x
    G j = G j N u
    h ( G W N i d U i d w ) = G j # G j
    A P M j = A P M j # h ( G W N i d U i d w ) that G j # and A P M j # are in D B .
    Then, G W N calculates A U i d = h ( U i d S k u g N U T s u g ) , V 1 = h ( A U i d G j S k u g N x S N i d ) and checks if A U i d and V 1 are valid. If the verification of A U i d is successful, then calculation continues. Otherwise, G W N terminates the session. G W N generates a session key S K and time stamp T and calculates as follows:
    S K = h ( S k g s ) S K , A P M j = h S k g s A P M j and
    V 2 = h ( A U i d A P M j S K T S k g s )
    Finally, G W N sends the messages M A 2 = { A U i d , A P M j , S K , T, V 2 } to the sensor node S N .
  • Upon receiving the message M A 2 , S N assess the validity of T. If it is not valid, S N disconnects the session. If it is valid, S N also verifies V 2 = ? h ( A U i d A P M j S K T S k g s ) . If this condition is not satisfied, S N disconnects the session. If it is satisfied, S N computes as follows:
    A P M j = A P M j h ( S k g s ) and generates a new time stamp T .
    S K = h ( S k g s ) S K , V 3 = h ( S K S k g s S N i d T )
    K g s n e w = h ( S k g s S N i d ) and
    S k g s = K g s n e w
    Finally, S N transmits M A 3 = { T , S N i d , V 3 } to G W N .
  • The gateway node G W N checks that the time stamp T and V 3 = ? h ( S K S k g s S N i d T ) . If not, it terminates the connection. G W N generates a random number T s u g n e w and calculates as follows:
    T s = h ( S k u g U i d N U )
    S K = h ( S k u g U i d N U ) S K
    V 4 = h ( S K N U T s S k u g )
    K u g n e w = h ( S k u g U i d T s u g n e w )
    S k u g = K u g n e w
    K g s n e w = h ( S k g s S N i d )
    G W N updates S k u g = K u g n e w and S k g s = K g s n e w . If G W N cannot find T s u g in M A 1 , G W N generates a random number K u g n e w and calculates x = h ( U i d K E M u g j ) K u g n e w . Then, G W N updates S k u g = K u g n e w and then sends the messages M A 4 = { S K , T s , V 4 , x } to the user U.
  • When user U obtains the message V 4 = h ( S K N U T s S k u g ) , the protocol checks its validity. If there is no abnormality, the system proceeds to the next step or ends the session. Furthermore, U computes S K = h S k u g U i d N U ) S K , T s u g n e w = h ( S k u g U i d N U ) T s , K u g n e w = h ( S k u g U i d T s u g n e w and then updates S k u g = K u g n e w and T s u g = T s u g n e w .
  • U and S N have successfully shared S K . S N responds to user U’s query according to A P M j stored for user U using session key S K . Finally, at the end of this phase, S N removes A P M j from storage for security reasons.

4.1.4. Password and Biometrics Change Phase

The protocol uses the following steps to change the user’s password:
  • U puts his/her smart card into the terminal and inserts U i d , previous password U p s w and previous biometric U b . U then inputs the new password U p s w * and new biometric U b * .
  • The smart card computes R S U = R e p ( U b , P U ) and retrieves S k u g , K E M u g , S U i d , G and f U . The smart card continues to compute as follows:
    S k u g = S k u g * h ( h ( U i d ) h ( U p s w ) h ( R S U ) )
    K M u g = K E M u g * h ( h ( U i d ) h ( U p s w ) h ( R S U ) )
    S U i d = S U i d * h ( h ( U i d ) h ( U p s w ) h ( R S U ) )
    G = G * h ( h ( U i d ) h ( U p s w ) h ( R S U ) )
    f U = f U * h ( h ( S k u g ) h ( U p s w ) h ( U i d ) h ( R S U ) )
  • The smart card computes G e n ( U b * ) , S k u g * * , S U i d * * , K E M u g * * , G * * and f U * * , as shown below.
    G e n ( U b * ) = ( R S U * , P U * )
    S k u g * * = S k u g h ( h ( U i d ) h ( U p s w * ) h ( R S U * ) )
    S U i d * * = S U i d h ( h ( U i d ) h ( U p s w * ) h ( R S U * ) )
    K E M u g * * = K E M u g h ( h ( U i d ) h ( U p s w * ) h ( R S U * ) )
    G * * = G h ( h ( U i d ) h ( U p s w * ) h ( R S U * ) )
    f U * * = h ( h ( S k u g ) h ( U p s w * ) h ( U i d ) h ( R S U * ) )
  • Finally, the smart card replaces S k u g * with S k u g * * , S U i d * with S U i d * * , K E M u g * with K E M u g * * , G * with G * * , f U * with f U * * and P U with P U * .

4.2. Review of Sharma and Kalra’s scheme

This section briefly describes Sharma and Kalra’s scheme. The notation of the scheme is summarized in Table 1. Sharma and Kalra’s scheme consists of five different phases:
  • Setup Phase: The registration center sets up the parameters.
  • Registration Phase: The practitioner registers with his/her identity and password.
  • Login Phase: The practitioner logs in with his/her identity, password and smart device.
  • Authentication Phase: The practitioner and sensor node mutually authenticate.
  • Password Change Phase: The practitioner inputs identity, password and smart device, and changes his/her old password to the new password.

4.2.1. Setup Phase

The gateway node G W N obtains its secret key K from the registration center. The center also computes and gives S k g s = h ( S N i d K ) to the sensor node S N . S k g s and K are stored in G W N and S N .

4.2.2. Registration Phase

The practitioner creates his/her identity and password. He/she registers through the gateway node to receive a smart device. The detailed process is as follows:
  • Practitioner P chooses his/her I D p and P W p and generates random number R, computes the masked password M a s k ( P W p ) = h ( P W p R ) . Finally, he/she sends the registration message { M a s k ( P W p ) , I D p } to the gateway node G W N .
  • After the gateway node G W N receives the message from the practitioner, it computes variables a = h ( M a s k ( P W p ) I D p ) , b = h ( I D p K ) , c = h ( K ) h ( M a s k ( P W p ) b ) and d = b h ( M a s k ( P W p ) a ) . After calculation, G W N sends the smart device S C = { a , c, d } to P.
  • P stores { a , c, d, R } in S C .

4.2.3. Login Phase

When the practitioner enters his/her identity and password, the smart device checks that the practitioner is an authorized party. The procedure for doing so is as follows:
  • P inputs his/her identity I D p and password P W p in his/her smart device.
  • S C computes M a s k ( P W p ) = h ( P W p R ) , a = h ( M a s k ( P W p ) I D p ) and compares a to a . If the two are not the same, P fails to login.

4.2.4. Authentication Phase

We describe the mutual authentication of the practitioner’s login information and the sensor node. The procedure is as follows:
  • If P successfully logs in, S C computes b = d h ( M a s k ( P W p ) a ) , h ( K ) = c h ( M a s k ( P W p ) b ) , V 1 = I D p h ( h ( K ) T 1 ) . S C selects a random nonce N, and calculates V 2 = N h ( b T 1 ) , V 3 = h ( V 1 V 2 N T 1 ) . Finally, S C posts the message M 1 = { V 1 , V 2 , V 3 , T 1 , S N i d } to G W N .
  • G W N checks that the timestamp | T 1 T c | < Δ T . Δ T means maximum transmission delay. If it is in range, G W N chooses a random nonce M and computes:
    M S N i d = S N i d h ( h ( K ) T 2 )
    V 4 = h ( S k g s T 1 T 2 ) M
    V 5 = h ( S N i d V 4 T 1 T 2 M )
    Finally, G W N sends the message M 2 = { V 1 , V 2 , V 3 , V 4 , V 5 , T 1 , T 2 , M S N i d } to the sensor node S N .
  • S N checks the validity of | T 2 T c | < Δ T . If it is valid, S N continues as follows:
    M S N i d = M S N i d h ( h ( K ) T 2 ) , S k g s = h ( S N i d )
    M = V 4 h ( S k g s T 1 T 2 )
    V 5 = h ( S N i d V 4 T 1 T 2 M )
    I D p = V 1 h ( h ( K ) T 1 ) , b = h ( I D p K )
    N = V 2 h ( b T 1 )
    V 3 = h ( V 1 V 2 N T 1 ) , V 6 = M h ( b T 3 )
    V 7 = N h ( S k g s T 3 )
    V 8 = h ( V 6 b T 3 )
    V 9 = h ( V 7 S k g s T 3 )
    Finally, S N posts the message M 3 = { V 6 , V 7 , V 8 , V 9 , T 3 } to G W N .
  • G W N checks the timestamp | T 3 T c | < Δ T , and if it is valid, computes as follows:
    V 9 = h ( V 7 S k g s T 3 )
    N = V 7 h ( S k g s T 3 )
    S K G W N = h ( N M )
    V 10 = h ( S K G W N V 6 V 8 T 3 T 4 )
    At the end of the computation, G W N sends the message M 4 = { V 6 , V 8 , V 10 , T 3 , T 4 } to P.
  • P checks the timestamp | T 4 T c | < Δ T . If it is in range, P computes V 8 = h ( V 6 b T 3 ) . It also computes M = V 6 h ( b T 3 ) , S K p = h ( N M ) and V 10 = h ( S K p V 6 V 8 T 3 T 4 ) .

4.2.5. Password Change Phase

The practitioner should be able to change his/her password if he/she wants to do so (e.g., for security reasons or because of a lost password). The procedure is as follows:
  • P inputs his/her I D p and P W p to S C .
  • S C computes M a s k ( P W p ) = h ( P W p R ) , a * = h ( M a s k ( P W p ) I D p ) . S C verifies that a * = a : if so, it computes b = d h ( M a s k ( P W p ) a ) , h ( K ) = h ( M a s k ( P W p ) b ) c . Finally, S C sends the message { E n t e r n e w p a s s w o r d } to P.
  • P inputs his/her new password P W p n e w to S C .
  • S C computes M a s k ( P W p ) = h ( R P W p n e w ) , a = h ( M a s k ( P W p ) I D p ) , d = b h ( M a s k ( P W p ) a ) , c = h ( K ) h ( M a s k ( P W p ) b ) . Finally, S C replaces { a , c, d } with { a , c , d } .

5. Analysis of Target Schemes

5.1. Analysis of Adavoudi-Jolfaei et al.’s Scheme

In this section, we prove that the scheme put forth by Adavoudi-Jolfaei et al. [11] has some security vulnerabilities. The details are as follow.

5.1.1. Loss of Smart Card Information

Attacker A can easily decrypt the information on the S C in the following two cases. The first case is an insider attack in the registration phase, while the second case is loss of synchronization in the login phase. Insider attack is the stronger of the two: it should be considered when there is no apparent loss of synchronization.

Insider Attack

In the registration phase, Attacker A extracts the smart card S C when G W N sends information to U. He/she can then read the information stored on the S C { S k u g , S U i d , K E M u g , T s u g , G, h ( · ) } that is not encrypted.

Loss of Synchronization

  • An attacker A steals U’s smart card S C , which contains sensitive information S k u g * , f u * , ( S U i d * , K E M u g * ), T s u g , G * , P U , G e n ( · ) , R e p ( · ) , h ( · ) .
  • In the loss of synchronization case, A can thus see the user’s login message M A 1 = { A U i d , G j , N x , T s u g ( i f r e q ) , S N i d , V 1 } . A computes as follows:
    h ( h ( U i d ) h ( U p s w ) h ( R S U ) ) = A U i d S U i d *
    S k u g = S k u g * h ( h ( U i d ) h ( U p s w ) h ( R S U ) )
    K E M u g = K E M u g * h ( h ( U i d ) h ( U p s w ) h ( R S U ) )
    G = G * h ( h ( U i d ) h ( U p s w ) h ( R S U ) )

5.1.2. User Impersonation Attack

Attacker A can carry out a user impersonation attack (the victim is assumed to be U). The details are as follows.
  • A generates random numbers N A and computes:
    N x A = S k u g N A
    G j A = G j N A
    A I D A = h ( U i d S k u g N A T s u g )
    V 1 A = h ( A U i d G j A S k u g N A S N i d )
    N x A , G j A , A I D A and V 1 A from S k u g and G j obtained from the stolen smart card attack.
  • A transmits the login request M A 1 = { A I D A , G j A , N x A , T s u g , S N i d , V 1 A } to the gateway node G W N .
  • After G W N obtains the login request from A , first, it verifies T s u g and calculates:
    N A = S k u g N x A
    G j = G j A N A
    h ( G W N i d U i d w ) = G j # G j
    A P M j = A P M j # h ( G W N i d U i d w )
    A I D A = h ( U i d S k u g N A T s u g )
    V 1 A = h ( A U i d G j A S k u g N A S N i d )
    G W N checks if A I D A and V 1 is valid. G W N does not detect the presence of the attacker. Unfortunately, G W N still believes it is in communication with U.
As a result, attacker A will be verified as G W N by user U. Therefore, the user impersonation attack is successful.

5.1.3. Session Key Attack

Assume that Attacker A has access to the D B . At this time, Attacker A can extract the session key S K of user U and sensor node S N as follows.
  • Assume that attacker A can access the database D B = T s u g , ( S U i d , K E M u g # ), S k u g # , S k g s # , U i d # , G # , A P M # . He/she will use the data S k u g # .
  • Attacker A extracts the message M A 2 = { A U i d , A P M j , S K , T, V 2 } and calculates:
    h ( G W i d U i d w ) = S k u g S k u g #
    A P M j = A P M j # h ( G W i d U i d w )
    h ( S k g s ) = A P M j A P M j
    S K = h ( S k g s ) S K
    Thus, attacker A has successfully seized the session key S K .
This result shows that Adavoudi-Jolfaei et al.’s scheme does not satisfy the requirement of key security.

5.2. Analysis of Sharma and Kalra’s Scheme

5.2.1. Design Error in Sharma and Kalra’s Scheme

There is a fatal error in Sharma and Kalra’s paper. The design of their scheme is wrong. During the authentication phase of their scheme, the session keys computed by S C and G W N are not identical. If the session key is not the same, when authentication is finished and the message is transmitted, there is a problem, because encryption is not properly performed. That is, mutual authentication would be processed incorrectly. We describe this problem in detail.
S K p is the session key that the practitioner generates. S K G W N is the session key that G W N calculates. When sending and receiving messages later, this session key is encrypted.
S K p = h ( N M )
= h ( N ( V 4 h ( S k g s T 1 T 2 ) ) )
= h ( N h ( S k g s T 1 T 2 ) M h ( S k g s T 1 T 2 ) )
= h ( N M h ( S k g s T 1 T 2 ) h ( S k g s T 1 T 2 ) )
S K G W N = h ( N M )
= h ( ( V 2 h ( b T 1 ) ) M )
= h ( N h ( b T 1 ) h ( b T 1 ) M )
= h ( N h ( h ( I D p K ) T 1 ) h ( h ( I D p K ) T 1 ) M )
= h ( N M h ( h ( I D p K ) T 1 ) h ( h ( V 1 h ( h ( K ) T 1 ) K ) T 1 ) )
= h ( N M h ( h ( I D p K ) T 1 ) h ( h ( I D p h ( h ( K ) T 1 ) h ( h ( K ) T 1 ) K )
= h ( N M h ( h ( I D p K ) T 1 ) h ( h ( I D p K ) T 1 ) )
= h ( N M )
In this phase, S k g s = h ( S N i d K ) , but S k g s = h ( S N i d ) . Therefore, the session keys computed by S C and G W N are not the same. Therefore, the authentication phase should be changed as follows.
  • If P logs in successfully, S C computes b = d h ( M a s k ( P W p ) a ) , h ( K ) = c h ( M a s k ( P W p ) b ) , V 1 = I D p h ( h ( K ) T 1 ) . S C selects a random nonce N and calculates V 2 = N h ( b T 1 ) , V 3 = h ( V 1 V 2 N T 1 ) . Finally, S C posts the message M 1 = { V 1 , V 2 , V 3 , T 1 , S N i d } to G W N .
  • G W N checks the timestamp | T 1 T c | < Δ T . If it is in range, G W N computes M S N i d = S N i d h ( h ( K ) T 2 ) and chooses a random nonce M. G W N continues to calculate V 4 = h ( S k g s T 1 T 2 ) M and V 5 = h ( S N i d V 4 T 1 T 2 M ) . Finally, G W N sends the message M 2 = { V 1 , V 2 , V 3 , V 4 , V 5 , T 1 , T 2 , M S N i d } to the sensor node S N .
  • S N checks the validity of | T 2 T c | < Δ T . If it is valid, S N continues the operation S N i d = M S N i d h ( h ( K ) T 2 ) and checks that S N i d = ? S N i d . S N keep calculating as follows:
    M = V 4 h ( S k g s T 1 T 2 )
    V 5 = h ( S N i d V 4 T 1 T 2 M )
    I D p = V 1 h ( h ( K ) T 1 )
    b = h ( I D p K )
    N = V 2 h ( b T 1 )
    V 3 = h ( V 1 V 2 N T 1 )
    V 6 = M h ( b T 3 )
    V 7 = N h ( S k g s T 3 )
    V 8 = h ( V 6 b T 3 )
    V 9 = h ( V 7 S k g s T 3 )
    Finally, S N sends the message M 3 = { V 6 , V 7 , V 8 , V 9 , T 3 } to G W N .
  • G W N checks the timestamp | T 3 T c | < Δ T and if it is valid, computes as follows:
    V 9 = h ( V 7 S k g s T 3 )
    N = V 7 h ( S k g s T 3 )
    S K G W N = h ( N M )
    V 10 = h ( S K G W N V 6 V 8 T 3 T 4 )
    At the end of the computation, G W N sends the message M 4 = { V 6 , V 8 , V 10 , T 3 , T 4 } to P.
  • P checks the timestamp | T 4 T c | < Δ T . If it is in range, it computes V 8 = h ( V 6 b T 3 ) . It also computes M = V 6 h ( b T 3 ) , S K p = h ( N M ) and V 10 = h ( S K p V 6 V 8 T 3 T 4 ) .
In addition to pointing out the correctness problem in Sharma and Kalra’s scheme, as discussed in Section 5.2.1, we demonstrate several attack methods that are fatal to the scheme. We describe the methods in detail as follows:

5.2.2. Password Guessing Attack

In the registration phase, if Attacker A masquerades as G W N , then he/she can easily obtain P’s P W p . P W p is hashed only once in M a s k ( P W p ) with R. We assume that R can be extracted from the smart device, and the attacker knows the target user’s identity. Moreover, then, Attacker A knows the practitioner P’s I D p , and he/she can extract the information in S C using reverse engineering or a side-channel attack.
  • Attacker A extracts a and R from P’s smart device S C .
  • A compares a and h ( h ( P W p R ) I D p ) , so that he/she can guess the password in a brute force attack.
Easily guessing a password implies knowing the practitioner’s identity and likely, passwords, and having access to his/her smart device, so it is virtually the same as a practitioner. This process can also be used to pretend to be a medical professional and directly engage with the patient’s healthcare-related information.
In order to make passwords difficult to guess, the authentication process should involve more robust data encryption.

5.2.3. Stealing the Session Key

We found that the session key S K G W N can be extracted if attacker A used attacks Section 5.2.2. The details are as follows.
  • A computes M a s k ( P W p ) = h ( P W p R ) , b = d h ( M a s k ( P W p ) a ) .
  • A steals the message M 1 and extracts V 2 , T 1 . Then, he/she calculates N = V 2 h ( b T 1 ) .
  • A also steals V 6 and T 3 in M 3 and computes M = V 6 h ( b T 3 ) .
  • Finally, he/she finds the session key S K G W N = h ( N M ) .
A now has the session key to use in future messages. This session key allows attackers to check the messages. This process is a serious breach of confidentiality.

5.2.4. Sensor Impersonation Attack

A sensor impersonation attack is also possible. Since G W N only assesses the validity of the timestamp to check the sensor separately, the attacker can impersonate the sensor by sending just the timestamp. This attack generates meaningless data and wastes time.

6. Proposed Scheme

To address the problems of Sharma and Kalra’s scheme and Adavoudi-Jolfaei et al.’s scheme, we propose a three-factor-based authentication scheme. We specifically introduce a new factor that is based on the practitioner’s biometrics data. In addition, our scheme contains a procedure to validate both G W N and the sensor. The flow of the entire scheme is shown in the Algorithm 1.
Algorithm 1 Proposed Scheme (Overall Algorithm Flow)
 1:
M a s k ( P W p ) , I D p RegistrationP( I D p , P W p , B p )      ▹ registration phase
 2:
a, c, d RegistrationGWN( M a s k ( P W p ) , I D p )
 3:
a, c, d, R, P b p , G e n , R e p , h RegistrationP2(a, c, d)          ▹ stores in SC
 4:
if LoginP( I D p , P W p , B p ) then                   ▹ login phase
 5:
     V 1 , V 2 , V 3 , T 1 , S N i d AuthenticationP( I D p , P W p , B p )  ▹ authentication phase
 6:
     V 1 , V 2 , V 3 , V 4 , V 5 , T 1 , T 2 , M S N i d AuthenticationGWN( V 1 , V 2 , V 3 , T 1 , S N i d )
 7:
     V 6 , V 7 , V 10 , T 3 AuthenticationSN( V 1 , V 2 , V 3 , V 4 , V 5 , T 1 , T 2 , M S N i d )
 8:
     V 6 , V 8 , V 11 , T 3 , T 4 AuthenticationGWN2( V 6 , V 7 , V 10 , T 3 )
 9:
    Result ← AuthenticationP2( V 6 , V 8 , V 11 , T 3 , T 4 )
10:
    if Result then
11:
        return A u t h e n t i c a t i o n s u c c e s s e s .
12:
    end if
13:
end if

6.1. Setup and Registration Phase

6.1.1. Setup Phase

In the setup phase, the gateway node G W N gets its secret key K from the registration center. The center also computes S k g s = h ( S N i d K ) and gives it to the sensor node S N . S k g s and K are stored in G W N and S N .

6.1.2. Registration Phase

The practitioner creates his/her identity and password, and then registers them via the gateway node to receive a smart device. This is summarized in the Algorithm 2. The detailed procedure is as follows:
  • Practitioner P chooses his/her identity I D p , password P W p and imprints B p over a device for biometrics collection, and calculates a biometric information of the practitioner P like G e n ( B p ) = ( R p , P b p ) . He/she generates random number R and computes the masked password M a s k ( P W p ) = h ( h ( P W p R ) R p ) . Finally, he/she sends the registration message { M a s k ( P W p ) , I D p } to the gateway node G W N .
  • After the gateway node G W N obtains the message from the practitioner, it computes as follows:
    a = h ( M a s k ( P W p ) I D p )
    b = h ( I D p K ) , c = h ( K ) h ( M a s k ( P W p ) b )
    d = b h ( M a s k ( P W p ) a )
    After calculation, G W N sends the smart device S C = { a , c, d } to the practitioner P.
  • P stores { a , c, d, R, P b p , G e n , R e p , h } in the smart device S C .
Algorithm 2 Proposed Scheme (Registration Phase)
 1:
procedureRegistrationP( I D p , P W p , B p )         ▹ P’s registration phase
 2:
     ( R p , P b p ) G e n ( B p )
 3:
     M a s k ( P W p ) h ( h ( P W p R ) R p )
 4:
    return M a s k ( P W p ) , I D p                  ▹ message to GWN
 5:
end procedure
 6:
procedureRegistrationP2(a, c, d)            ▹ P’s registration phase 2
 7:
    return a, c, d, R, P b p , G e n , R e p , h                ▹ stores in SC
 8:
end procedure
 9:
procedureRegistrationGWN( M a s k ( P W p ) , I D p )  ▹ GWN’s registration phase
10:
     a h ( M a s k ( P W p ) I D p )
11:
     b h ( I D p K )
12:
     c h ( K ) h ( M a s k ( P W p ) b )
13:
     d b h ( M a s k ( P W p ) a )
14:
    return a, c, d                         ▹ message to P
15:
end procedure

6.2. Login and Authentication Phase

6.2.1. Login Phase

When the practitioner enters his/her identity and password, the smart device checks whether the practitioner is an authorized party. This phase is summarized in the Algorithm 3. The detailed procedure is as follows:
  • P inputs his/her identity I D p , password P W p and biometric information B p in his/her smart device.
  • The smart device S C executes the biometric information R p = R e p ( B p , P b p ). S C computes masked password and the value a as follows:
    M a s k ( P W p ) = h ( h ( P W p R ) R p )
    a = h ( M a s k ( P W p ) I D p )
    If a and a are not the same, P fails to login.
Algorithm 3 Proposed Scheme (Login Phase)
 1:
procedureLoginP( I D p , P W p , B p )  ▹ P’s login phase
 2:
     R p R e p ( B p , P b p )
 3:
     M a s k ( P W p ) h ( h ( P W p R ) R p )
 4:
     a h ( M a s k ( P W p ) I D p )
 5:
    if a = a then
 6:
        return T r u e           ▹ login successes
 7:
    else
 8:
        return F a l s e              ▹ login fails
 9:
    end if
10:
end procedure

6.2.2. Authentication Phase

The practitioner’s login information and the sensor node execute a mutual authentication process. This phase is summarized in Algorithms 4–6. The procedure is as follows:
  • If P logs in successfully, S C selects a random nonce N and computes as follows:
    b = d h ( M a s k ( P W p ) a )
    h ( K ) = c h ( M a s k ( P W p ) b )
    V 1 = I D p h ( h ( K ) T 1 )
    V 2 = N h ( b T 1 )
    V 3 = h ( V 1 V 2 N T 1 )
    Finally, S C sends the message M 1 = { V 1 , V 2 , V 3 , T 1 , S N i d } to G W N .
  • G W N checks the timestamp | T 1 T c | < Δ T . If it is in range, G W N computes as follows:
    I D = V 1 h ( h ( K ) T 1 )
    V 3 = h ( V 1 V 2 ( V 2 h ( h ( I D K ) T 1 ) ) T 1 )
    G W N also checks V 3 = V 3 . If it is valid, G W N chooses a random nonce M and computes as follows:
    M S N i d = S N i d h ( h ( K ) T 2 )
    V 4 = h ( S k g s T 1 T 2 ) M
    V 5 = h ( S N i d V 4 T 1 T 2 M )
    Finally, G W N sends the message M 2 = { V 1 , V 2 , V 3 , V 4 , V 5 , T 1 , T 2 , M S N i d } to the sensor node S N .
  • S N checks the validity of | T 2 T c | < Δ T . If it is valid, S N continues the operation S N i d = M S N i d h ( h ( K ) T 2 ) and checks S N i d = ? S N i d . S N computes as follows:
    M = V 4 h ( S k g s T 1 T 2 )
    V 5 = h ( S N i d V 4 T 1 T 2 M )
    It also checks the validity of V 5 = ? V 5 . If it is valid, S N computes:
    I D = V 1 h ( h ( K ) T 1 )
    b = h ( I D K ) , N = V 2 h ( b T 1 )
    V 6 = M h ( b T 3 ) , V 7 = N h ( S k g s T 3 )
    V 8 = h ( V 6 b T 3 )
    V 9 = h ( V 7 S k g s T 3 )
    V 10 = h ( V 8 V 9 T 3 )
    Finally, S N sends the message M 3 = { V 6 , V 7 , V 10 , T 3 } to G W N .
  • G W N checks the timestamp | T 3 T c | < Δ T and if it is valid, G W N computes:
    V 8 = h ( V 6 b T 3 )
    V 9 = h ( V 7 S k g s T 3 )
    V 10 = h ( V 8 V 9 T 3 ) and checks V 10 = ? V 10 . If it is also valid, G W N computes:
    N = V 7 h ( S k g s T 3 )
    S K G W N = h ( N M )
    V 11 = h ( S K G W N V 6 V 8 T 3 T 4 )
    At the end of the computation, G W N sends the message M 4 = { V 6 , V 8 , V 11 , T 3 , T 4 } to P.
  • P checks the timestamp | T 4 T c | < Δ T . If it is in range, P computes V 8 = h ( V 6 b T 3 ) and checks V 8 = ? V 8 . P also computes M = V 6 h ( b T 3 ) , S K p = h ( N M ) and checks V 11 = h ( S K p V 6 V 8 T 3 T 4 ) = ? V 11 .
Algorithm 4 Proposed Scheme (P’s Authentication Phase)
 1:
procedureAuthenticationP( I D p , P W p , B p )    ▹ P’s authentication phase
 2:
     R p R e p ( B p , P b p )
 3:
     M a s k ( P W p ) h ( h ( P W p R ) R p )
 4:
     a h ( M a s k ( P W p ) I D p )
 5:
     b d h ( M a s k ( P W p ) a )
 6:
     h ( K ) c h ( M a s k ( P W p ) b )
 7:
     V 1 I D p h ( h ( K ) T 1 )
 8:
     V 2 N h ( b T 1 )
 9:
     V 3 h ( V 1 V 2 N T 1 )
10:
    return V 1 , V 2 , V 3 , T 1 , S N i d               ▹ message to GWN
11:
end procedure
12:
procedureAuthenticationP2( V 6 , V 8 , V 11 , T 3 , T 4 )  ▹ P’s authentication phase 2
13:
    if | T 4 T c | > = Δ T then
14:
        return F a l s e                    ▹ authentication fails
15:
    end if
16:
     V 8 h ( V 6 b T 3 )
17:
    if V 8 ! = V 8 then
18:
        return F a l s e                    ▹ authentication fails
19:
    end if
20:
     M V 6 h ( b T 3 )
21:
     S K p h ( N M )
22:
     V 11 h ( S K p V 6 V 8 T 3 T 4 )
23:
    if V 11 ! = V 11 then
24:
        return F a l s e                    ▹ authentication fails
25:
    end if
26:
    return T r u e                   ▹ authentication successes
27:
end procedure
Algorithm 5 Proposed Scheme (GWN’s Authentication Phase)
 1:
procedureAuthenticationGWN( V 1 , V 2 , V 3 , T 1 , S N i d ) ▹ GWN’s authentication phase
 2:
    if | T 1 T c | > = Δ T then
 3:
        return F a l s e                        ▹ authentication fails
 4:
    end if
 5:
     I D V 1 h ( h ( K ) T 1 )
 6:
     V 3 h ( V 1 V 2 ( V 2 h ( h ( I D K ) T 1 ) ) T 1 )
 7:
    if V 3 ! = V 3 then
 8:
        return F a l s e                        ▹ authentication fails
 9:
    end if
10:
     M S N i d S N i d h ( h ( K ) T 2 )
11:
     V 4 h ( S k g s T 1 T 2 ) M
12:
     V 5 h ( S N i d V 4 T 1 T 2 M )
13:
    return V 1 , V 2 , V 3 , V 4 , V 5 , T 1 , T 2 , M S N i d              ▹ message to SN
14:
end procedure
15:
procedureAuthenticationGWN2( V 6 , V 7 , V 10 , T 3 )  ▹ GWN’s authentication phase 2
16:
    if | T 3 T c | > = Δ T then
17:
        return F a l s e                       ▹ authentication fails
18:
    end if
19:
     V 8 h ( V 6 b T 3 )
20:
     V 9 h ( V 7 S k g s T 3 )
21:
     V 10 h ( V 8 V 9 T 3 )
22:
    if V 10 ! = V 10 then
23:
        return F a l s e                       ▹ authentication fails
24:
    end if
25:
     N V 7 h ( S k g s T 3 )
26:
     S K G W N h ( N M )
27:
     V 11 h ( S K G W N V 6 V 8 T 3 T 4 )
28:
    return V 6 , V 8 , V 11 , T 3 , T 4                     ▹ message to P
29:
end procedure
Algorithm 6 Proposed Scheme (SN’s Authentication Phase)
 1:
procedureAuthenticationSN( V 1 , V 2 , V 3 , V 4 , V 5 , T 1 , T 2 , M S N i d )    ▹ SN’s authentication phase
 2:
    if | T 2 T c | > = Δ T then
 3:
        return F a l s e                             ▹ authentication fails
 4:
    end if
 5:
     S N i d M S N i d h ( h ( K ) T 2 )
 6:
    if S N i d ! = S N i d then
 7:
        return F a l s e                             ▹ authentication fails
 8:
    end if
 9:
     M V 4 h ( S k g s T 1 T 2 )
10:
     V 5 h ( S N i d V 4 T 1 T 2 M )
11:
    if V 5 ! = V 5 then
12:
        return F a l s e                             ▹ authentication fails
13:
    end if
14:
     I D V 1 h ( h ( K ) T 1 )
15:
     b h ( I D K ) , N = V 2 h ( b T 1 )
16:
     V 6 M h ( b T 3 )
17:
     V 7 N h ( S k g s T 3 )
18:
     V 8 h ( V 6 b T 3 )
19:
     V 9 h ( V 7 S k g s T 3 )
20:
     V 10 h ( V 8 V 9 T 3 )
21:
    return V 6 , V 7 , V 10 , T 3                           ▹ message to GWN
22:
end procedure

6.3. Password Change Phase

The practitioner can change his/her password. The procedure is as follows:
  • P inputs his/her identity I D p , password P W p and biometric information B p in his/her smart device.
  • The smart device S C executes R e p ( B p , P b p ) = R p . S C computes M a s k ( P W p ) = h ( h ( P W p R ) R p ) , a * = h ( M a s k ( P W p ) I D p ) . S C checks a * = ? a . If so, it computes b = d h ( M a s k ( P W p ) a ) , h ( K ) = h ( M a s k ( P W p ) b ) c . Finally, S C sends the message { E n t e r n e w p a s s w o r d } to P.
  • P inputs his/her new password P W p n e w to the smart device S C .
  • S C computes M a s k ( P W p ) = h ( R P W p n e w ) , a = h ( M a s k ( P W p ) I D p ) , d = b h ( M a s k ( P W p ) a ) , c = h ( K ) h ( M a s k ( P W p ) b ) . Finally, S C replaces { a , c, d } with { a , c , d } .

7. Security Analysis

In this section, we analyze the security of the proposed scheme in two ways: formal security analysis and informal security analysis. We use a formal protocol verification tool called ProVerif in Section 7.1, to demonstrate the security of our scheme. We also provide a theoretical security analysis of the protocol in Section 7.2. Through this verification, we have demonstrated how safe our scheme can be in reality.

7.1. Formal Security Analysis

We use ProVerif to analyze the security and correctness of our scheme; ProVerif is widely used to verify security protocols [7,30,31]. ProVerif is a software tool that formally verifies the security of cryptographic protocols. We define basic cryptographic primitives such as hash function, encryption, digital signature and bit-commitment.
We used three channels: a registration channel ( c h a ), a practitioner–gateway node channel ( c h b ) and a gateway node–sensor node channel ( c h c ). The variables, constants, secret key, functions and events are defined in Table A1.
The “Registration” and “Login and Authentication” phases for practitioners are shown in Table A2. The “Registration” and “Authentication” phases for gateway nodes are shown in Table A3. The “Authentication” phase for sensor nodes is shown in Table A4. Table 2 and Table 3 show a query and the corresponding query results.
When we run the query in Table 2, we obtain the following result:
  • RESULT inj-event(EVENTA) ==> inj-event(EVENTB) is true.
  • RESULT inj-event(EVENTA) ==> inj-event(EVENTB) is false.
  • RESULT not attacker(QUERY) is true.
  • RESULT not attacker(QUERY) is false.
“RESULT inj-event (EVENTA) == > inj-event (EVENTB) is true.” means that EVENTA to EVENTB has been authenticated. On the other hand, “RESULT inj-event (EVENTA) == > inj-event (EVENTB) is false.” means that the authentication from EVENTA to EVENTB was not successful. “RESULT not attacker (QUERY) is true.” means that an attacker cannot get a free name QUERY, and “RESULT not attacker (QUERY) is false.” means that an attacker can trace a QUERY [32].
The results of the query in Table 2 are shown in Table 3. In that case, the authentication process is correctly performed and the attacker cannot obtain I D p .

7.2. Informal Security Analysis

We present a theoretical analysis of our scheme. We then briefly explain the results of the analysis.

7.2.1. Privileged Insider Attack

In the registration step, the practitioner sends his/her plaintext ID and M a s k ( P W p ) = h ( h ( P W p R ) R p ) to the gateway node. Since the ID is used in conjunction with secret information K without being exposed to the outside, there is no way for an insider to know the practitioner’s personal information. Therefore, it is secure against a privileged insider attack.

7.2.2. Outsider Attack

The S C only contains the information { a , c, d, R, P b p , G e n , R e p , h } . We cannot infer practitioner P in this case.

7.2.3. Offline ID Guessing Attack

The practitioner’s identity is not moved directly in the login and authentication phase after registration. When the sensor checks the practitioner’s ID, the information V 1 , K, and T 1 is required, all of which cannot be obtained through S C .

7.2.4. Online ID Guessing Attack

The practitioner’s identity can only be exposed as V 1 , K, and T 1 , as mentioned in the offline ID guessing attack. At this time, V 1 and T 1 can be seized through a message sent to the G W N by the practitioner in the authentication phase, but the secret G W N key K cannot be found.

7.2.5. Session Key Disclosure Attack

As shown in Section 5.2.1, the session key consists of h ( N M ) . N is a value generated by S C and N = V 2 h ( b T 1 ) , and M is a value generated by G W N and expressed as M = V 4 h ( X G W N T 1 T 2 ) . Because the attacker is not the practitioner or G W N , he/she cannot know the session key because X G W N including b and M a s k ( P W ) including K cannot be known.

7.2.6. Practitioner Impersonation Attack

G W N verifies the practitioner in equation V 3 = h ( V 1 V 2 V 2 h ( h ( I D K ) T 1 ) T 1 ) = ? V 3 = h ( I D p h ( h ( K ) T 1 ) N h ( b T 1 ) N T 1 ) . If an attacker pretends to be an authorized practitioner, then he/she needs to know b = d h ( M a s k ( P W ) a ) , h ( K ) = c h ( M a s k ( P W ) b ) . However, the attacker cannot obtain M a s k ( P W ) . Therefore, the attacker cannot impersonate the practitioner P.

7.2.7. Sensor Impersonation Attack

G W N verifies a sensor with the Equation V 10 = h ( V 8 V 9 T 3 ) and checks V 10 = ? V 10 that V 8 = h ( V 6 b T 3 ) , V 9 = h ( V 7 S k g s T 3 ) . This means that a sensor can only prove that it is a sensor if it knows S k g s and b.

8. Performance Analysis of the Proposed Scheme

The four symbols necessary for comparison are as follows. T R e p is the time to check for a match when recognizing the user’s (or practitioner’s) biometric B p . T h is the time it takes to hash. T m is the time of the multiplicative operation used in ECC. The time taken for symmetric encryption or decryption is denoted by T s . These are listed in Table 4. We compared our scheme with the following three schemes of Chen et al. [12], Renuka et al. [13] and Li et al. [14]. The four symbols necessary for comparison are as follows, and depicted as a graph in Figure 2.
Table 5 summarizes the total time cost for each scheme ([12,13,14]). The Y-axis shown in Figure 2 is the total time cost in microseconds (ms). This is calculated based on the times shown in Table 4. Table 6 shows the computer hardware and software used to calculate the algorithm’s runtime. Li et al.’s scheme [14] uses elliptic curve cryptography, however it has large time costs because of its slow encryption and decryption.
The methods used in Chen et al.’s [12] and Renuka et al.’s [13] scheme have lower costs than Li et al.’s [14]. They used symmetric encryption and decryption, but had a significant difference in cost compared to ours.

9. Conclusions

Recently, several lightweight two-factor-based authentication protocols, such as Sharma and Kalra’s protocol [6] and Adavoudi-Jolfaei et al.’s protocol [11], were proposed for IoT applications. Those protocols have some benefits in efficiency because they are designed with light and straightforward operations, such as hash function and XOR without complicated cryptographic operations. However, we found that those protocols have several security weaknesses.
To address these problems, we use three factors: the practitioner’s identity, a password, and biometric information. We propose a lightweight three-factor user authentication scheme to fix several issues in Sharma and Kalra’s protocol [6] and Adavoudi-Jolfaei et al.’s protocol [11]. We provide the security verification of the proposed scheme using ProVerif. Furthermore, we show that our proposed method outperforms other proposed symmetric-based or elliptic curve-based methods.
We are motivated to fix the problems of existing protocols and proposed a more efficient and secure authentication scheme. Our scheme is designed only with the hash function and XOR, providing fast and secure authentication. The proposed protocol can be used for various IoT applications such as medical devices.
Our proposed scheme can be implemented with simple operations, but introduces 11 new parameters. Furthermore, while our scheme is lighter than the symmetric-based or elliptic curve-based methods, it is not significantly lighter than the only used XOR and hash method. Therefore, in future work, we aim to develop a simpler authentication scheme with fewer variables. We also aim to develop a lightweight 3-factor authentication scheme with fewer xor operations and hash functions. Our efforts will contribute to creating a faster and more secure authentication scheme.

Author Contributions

Conceptualization, J.R. and D.K.; methodology, J.R. and H.L.; software, H.L.; validation, J.R.; formal analysis, J.R.; writing—original draft preparation, J.R.; writing—review and editing, J.R. and H.K.; supervision, D.W.; project administration, J.R.; All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Acknowledgments

This work was supported by an Institute of Information & Communications Technology Planning Evaluation (IITP) grant funded by the Korean government (MSIT) (No. 2020-0-00258, Development of On-chain-based Electronic Contract Application Platform Using Zero-Knowledge Proof).

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. ProVerif Code

Table A1. Define Values and Functions.
Table A1. Define Values and Functions.
(*—-channels—-*)
free cha:channel [private].
free chb:channel.
free chc:channel.
(*—-constants—-*)
free Ru:bitstring [private].
free IDp:bitstring [private].
free IDg:bitstring [private].
free IDs:bitstring.
free PWu:bitstring [private].
(*—-secret key—-*)
free K:bitstring [private].
(*—-functions—-*)
fun concat(bitstring, bitstring): bitstring.
fun xor(bitstring, bitstring): bitstring.
fun h(bitstring): bitstring.
equation forall a:bitstring, b:bitstring; xor(xor(a, b), b) = a.
(*—-events—-*)
event beginP(bitstring).
event endP(bitstring).
event beginGWN(bitstring).
event endGWN(bitstring).
event beginS(bitstring).
event endS(bitstring).
Table A2. Practitioner Scheme.
Table A2. Practitioner Scheme.
(*—-P process—-*)
let P =
new R:bitstring;
let MPW = h(concat(h(concat(PWp, R)), Rp)) in
out(cha,(IDp, MPW));
in(cha,(Xa:bitstring, Xc:bitstring, Xd:bitstring));
event beginP(IDp);
new T1:bitstring;
new N:bitstring;
let ppb = xor(Xd, h(concat(MPW, Xa))) in
let hK = xor(Xc, h(concat(MPW, ppb))) in
let V1 = xor(IDp, h(concat(hK, T1))) in
let V2 = xor(N, h(concat(ppb, T1))) in
let V3 = h(concat(concat(V1, V2), concat(N, T1))) in
out(chb, (V1, V2, V3, T1, N));
in(chb, (XXV6:bitstring, XXV8:bitstring, XV11:bitstring, XXT3:bitstring, XT4:bitstring));
let pV8 = h(concat(concat(XXV6, ppb), XXT3)) in
let pM = xor(XXV6, h(concat(ppb, XXT3))) in
let SKp = h(xor(N, pM)) in
let pV11 = h(concat(concat(SKp, XXV6), concat(concat(XXV8, XXT3),XT4))) in
event endP(IDp).
Table A3. Gateway Node Scheme.
Table A3. Gateway Node Scheme.
(*—-GWN process—-*)
let GWN =
in(cha,(XIDp:bitstring, XMPW:bitstring));
let a = h(concat(XMPW, XIDp)) in
let b = h(concat(XIDp, K)) in
let c = xor(h(K), h(concat(XMPW, b))) in
let d = xor(b, h(concat(XMPW, a))) in
out(cha, (a, c, d));
in(chb, (XV1:bitstring, XV2:bitstring, XV3:bitstring, XT1:bitstring, XN:bitstring));
event beginGWN(IDg);
new T2:bitstring;
new M:bitstring;
let pIDp = xor(XV1, h(concat(h(K), XT1))) in
let pV3 = h(concat(concat(XV1, XV2), concat(XN, XT1))) in
if pV3 = XV3 then
let MID = xor(IDs, h(concat(h(K), T2))) in
let X = h(concat(IDs, K)) in
let V4 = xor(M, h(concat(concat(X, XT1), T2))) in
let V5 = h(concat(concat(IDs, V4), concat(concat(XT1, T2), M))) in
out(chc, (XV1, XV2, XV3, V4, V5, XT1, T2, MID));
in(chc, (XV6:bitstring, XV7:bitstring, XV10:bitstring, XT3:bitstring));
new T4:bitstring;
new M:bitstring;
let pV8 = h(concat(XV6, concat(b, XT3))) in
let pV9 = h(concat(XV7, concat(X, XT3))) in
let pV10 = h(concat(pV8, concat(pV9, XT3))) in
if pV10 = XV10 then
let pN = xor(XV7, h(concat(X, XT3))) in
let SKg = h(xor(pN, M)) in
let V11 = h(concat(SKg, concat(concat(XV6, pV8), concat(XT3, T4)))) in
out(chb, (XV6, pV8, V11, XT3, T4));
event endGWN(IDg).
Table A4. Sensor Scheme.
Table A4. Sensor Scheme.
(*—-S process—-*)
let S =
in(chc, (XXV1:bitstring, XXV2:bitstring, XXV3:bitstring, XV4:bitstring, XV5:bitstring,
XXT1:bitstring, XT2:bitstring, XMID:bitstring));
event beginS(IDs);
new T3:bitstring;
let XX = h(concat(IDs, K)) in
let pM = xor(XV4, h(concat(concat(XX, XXT1), XT2))) in
let pV5 = h(concat(concat(IDs, XV4), concat(concat(XXT1, XT2), pM))) in
if pV5 = XV5 then
let pb = h(concat(IDp, K)) in
let ppN = xor(XXV2, h(concat(pb, XXT1))) in
let V6 = xor(pM, h(concat(pb, T3))) in
let V7 = xor(ppN, h(concat(XX, T3))) in
let V8 = h(concat(concat(V6, pb), T3)) in
let V9 = h(concat(concat(V7, XX), T3)) in
let V10 = h(concat(concat(V8, V9), T3)) in
out(chc, (V6, V7, V10, T3));
event endS(IDs).

References

  1. Gregg, M. Trends in Remote Patient Monitoring 2019. Spyglass Consulting Group. Available online: http://www.spyglass-consulting.com/wp_RPM_2019.html (accessed on 12 December 2020).
  2. Hu, Y.H.; Tompkins, W.J.; Urrusti, J.L.; Afonso, V.X. Applications of artificial neural networks for ECG signal detection and classification. J. Electrocardiol. 1993, 26, 66–73. [Google Scholar] [PubMed]
  3. Yeh, Y.C.; Wang, W.J. QRS complexes detection for ECG signal: The Difference Operation Method. Comput. Methods Programs Biomed. 2008, 91, 245–254. [Google Scholar] [CrossRef] [PubMed]
  4. Van Ess, D.W. ECG Signal Detection Device. US Patent 7,092,750, 15 August 2006. [Google Scholar]
  5. Chung, W.Y.; Lee, Y.D.; Jung, S.J. A wireless sensor network compatible wearable u-healthcare monitoring system using integrated ECG, accelerometer and SpO2. In Proceedings of the 2008 30th Annual International Conference of the IEEE Engineering in Medicine and Biology Society, Vancouver, BC, Canada, 20–25 August 2008; pp. 1529–1532. [Google Scholar]
  6. Sharma, G.; Kalra, S. A Lightweight User Authentication Scheme for Cloud-IoT Based Healthcare Services. Iran. J. Sci. Technol. Trans. Electr. Eng. 2019, 43, 619–636. [Google Scholar] [CrossRef]
  7. Ryu, J.; Lee, H.; Kim, H.; Won, D. Secure and efficient three-factor protocol for wireless sensor networks. Sensors 2018, 18, 4481. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  8. Rathore, H.; Al-Ali, A.; Mohamed, A.; Du, X.; Guizani, M. DTW based authentication for wireless medical device security. In Proceedings of the 2018 14th International Wireless Communications & Mobile Computing Conference (IWCMC), Limassol, Cyprus, 25–29 June 2018; pp. 476–481. [Google Scholar]
  9. Ali, R.; Pal, A.K.; Kumari, S.; Sangaiah, A.K.; Li, X.; Wu, F. An enhanced three factor based authentication protocol using wireless medical sensor networks for healthcare monitoring. J. Ambient. Intell. Humaniz. Comput. 2018, 1–22. [Google Scholar] [CrossRef]
  10. Choi, Y.; Lee, D.; Kim, J.; Jung, J.; Nam, J.; Won, D. Security enhanced user authentication protocol for wireless sensor networks using elliptic curves cryptography. Sensors 2014, 14, 10081–10106. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  11. Adavoudi-Jolfaei, A.; Maede, A.T.; Aghili, S.F. Lightweight and anonymous three-factor authentication and access control scheme for real-time applications in wireless sensor networks. Peer-to-Peer Netw. Appl. 2019, 12, 43–59. [Google Scholar] [CrossRef]
  12. Chen, Y.; Ge, Y.; Wang, Y.; Zeng, Z. An improved three-factor user authentication and key agreement scheme for wireless medical sensor networks. IEEE Access 2019, 7, 85440–85451. [Google Scholar] [CrossRef]
  13. Renuka, K.; Kumar, S.; Kumari, S.; Chen, C.M. Cryptanalysis and improvement of a privacy-preserving three-factor authentication protocol for wireless sensor networks. Sensors 2019, 19, 4625. [Google Scholar] [CrossRef] [Green Version]
  14. Li, X.; Niu, J.; Bhuiyan, M.Z.A.; Wu, F.; Karuppiah, M.; Kumari, S. A robust ECC-based provable secure authentication protocol with privacy preserving for industrial internet of things. IEEE Trans. Ind. Inform. 2017, 14, 3599–3609. [Google Scholar] [CrossRef]
  15. Hu, F.; Jiang, M.; Wagner, M.; Dong, D.C. Privacy-preserving telecardiology sensor networks: Toward a low-cost portable wireless hardware/software codesign. IEEE Trans. Inf. Technol. Biomed. 2007, 11, 619–627. [Google Scholar] [CrossRef] [PubMed]
  16. Malasri, K.; Wang, L. Design and implementation of a securewireless mote-based medical sensor network. Sensors 2009, 9, 6273–6297. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  17. Kumar, P.; Lee, S.G.; Lee, H.J. E-SAP: Efficient-strong authentication protocol for healthcare applications using wireless medical sensor networks. Sensors 2012, 12, 1625–1647. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  18. Khan, M.K.; Kumari, S. An improved user authentication protocol for healthcare services via wireless medical sensor networks. Int. J. Distrib. Sens. Netw. 2014, 10, 347169. [Google Scholar] [CrossRef]
  19. Li, X.; Niu, J.; Kumari, S.; Liao, J.; Liang, W.; Khan, M.K. A new authentication protocol for healthcare applications using wireless medical sensor networks with user anonymity. Secur. Commun. Netw. 2016, 9, 2643–2655. [Google Scholar] [CrossRef]
  20. Wu, F.; Xu, L.; Kumari, S.; Li, X. An improved and anonymous two-factor authentication protocol for health-care applications with wireless medical sensor networks. Multimed. Syst. 2017, 23, 195–205. [Google Scholar] [CrossRef]
  21. Hossain, M.S.; Muhammad, G. Cloud-assisted speech and face recognition framework for health monitoring. Mob. Netw. Appl. 2015, 20, 391–399. [Google Scholar] [CrossRef]
  22. Wazid, M.; Das, A.K.; Shetty, S.; Rodrigues, J.J.P.C.; Park, Y. LDAKM-EIoT: Lightweight device authentication and key management mechanism for edge-based IoT deployment. Sensors 2019, 19, 5539. [Google Scholar] [CrossRef] [Green Version]
  23. Tanveer, M.; Zahid, A.H.; Ahmad, M.; Baz, A.; Alhakami, H. LAKE-IoD: Lightweight Authenticated Key Exchange Protocol for the Internet of Drone Environment. IEEE Access 2020, 8, 155645–155659. [Google Scholar] [CrossRef]
  24. Gope, P.; Tzonelih, H. A realistic lightweight anonymous authentication protocol for securing real-time application data access in wireless sensor networks. IEEE Trans. Ind. Electron. 2016, 63, 7124–7132. [Google Scholar] [CrossRef]
  25. Katz, J.; Menezes, A.J.; Van Oorschot, P.C.; Vanstone, S.A. Handbook of Applied Cryptography; CRC Press: Boca Raton, FL, USA, 1996. [Google Scholar]
  26. Dodis, Y.; Katz, J.; Reyzin, L.; Smith, A. Robust fuzzy extractors and authenticated key agreement from close secrets. In Annual International Cryptology Conference; Springer: Berlin/Heidelberg, Germany, 2006; pp. 232–250. [Google Scholar]
  27. Dodis, Y.; Reyzin, L.; Smith, A. Fuzzy extractors: How to generate strong keys from biometrics and other noisy data. In International Conference on the Theory and Applications of Cryptographic Techniques; Springer: Berlin/Heidelberg, Germany, 2004; pp. 523–540. [Google Scholar]
  28. Dolev, D.; Yao, A. On the security of public key protocols. IEEE Trans. Inf. Theory 1983, 29, 198–208. [Google Scholar] [CrossRef]
  29. Moon, J.; Lee, D.; Lee, Y.; Won, D. Improving biometric-based authentication schemes with smart card revocation/reissue for wireless sensor networks. Sensors 2017, 17, 940. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  30. Lee, H.; Lee, D.; Moon, J.; Jung, J.; Kang, D.; Kim, H.; Won, D. An improved anonymous authentication scheme for roaming in ubiquitous networks. PLoS ONE 2018, 13, e0193366. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  31. Wu, F.; Li, X.; Sangaiah, A.K.; Xu, L.; Kumari, S.; Wu, L.; Shen, J. A lightweight and robust two-factor authentication scheme for personalized healthcare systems using wireless medical sensor networks. Future Gener. Comput. Syst. 2018, 82, 727–737. [Google Scholar] [CrossRef]
  32. Blanchet, B.; Smyth, B.; Cheval, V.; Sylvestre, M. ProVerif 2.00: Automatic Cryptographic Protocol Verifier, User Manual and Tutorial. 2018, pp. 5–16. Available online: https://prosecco.gforge.inria.fr/personal/bblanche/proverif/manual.pdf (accessed on 12 December 2020).
  33. Das, A.K. A secure and robust temporal credential-based three-factor user authentication scheme for wireless sensor networks. Peer-to-Peer Netw. Appl. 2016, 9, 223–244. [Google Scholar] [CrossRef]
  34. Xu, L.; Wu, F. Cryptanalysis and improvement of a user authentication scheme preserving uniqueness and anonymity for connected health care. J. Med. Syst. 2015, 39, 10. [Google Scholar] [CrossRef]
Figure 1. The Architecture of User Authentication for Digital Healthcare Services.
Figure 1. The Architecture of User Authentication for Digital Healthcare Services.
Sensors 20 07136 g001
Figure 2. Execution Time of Schemes.
Figure 2. Execution Time of Schemes.
Sensors 20 07136 g002
Table 1. Notations.
Table 1. Notations.
NotationsDescription
UThe user
PThe practitioner who is a medical professional
G W N Gateway node
S N Sensor node
U i d U’s identity
U p s w U’s password
U b U’s biometric information
A U i d U’s disposable identity
S U i d U’s shadow identity
A P M Set of access rights mask for U
GGroup identity set of U
B p Biometric information of the practitioner P
I D p Identity of the practitioner P
P W p Password of the practitioner P
M a s k ( P W p ) Masked password of the user P
G W N i d G W N ’s identity
w G W N ’s private key
K E M u g The secret emergency key between U and G W N
S k u g The secret key between U and G W N
S N i d S N ’s identity
S k g s The secret key between G W N and S N
S K The session key between U and S N
S C Smart card or smart device
D B Database
T s u g Timestamp sequence
M a s k ( P W p ) Masked password of the user P
KSecret key of G W N
h ( · ) One-way hash function
T x The x t h timestamp
T c Current timestamp
G e n A probabilistic generation function
R e p A deterministic reproduction function
Δ T Maximum transmission delay
XOR operation
Concatenation operation
Table 2. Query.
Table 2. Query.
(*—-queries—-*)
query attacker(IDp).
query id:bitstring; inj-event(endP(id)) ==> inj-event(beginP(id)).
query id:bitstring; inj-event(endGWN(id)) ==> inj-event(beginGWN(id)).
query id:bitstring; inj-event(endS(id)) ==> inj-event(beginS(id)).
process
((!P)|(!GWN)|(!S))
Table 3. Query Results.
Table 3. Query Results.
RESULT inj-event(endS(id)) ==> inj-event(beginS(id)) is true.
RESULT inj-event(endGWN(id_21256)) ==> inj-event(beginGWN(id_21256)) is true.
RESULT inj-event(endP(id_41657)) ==> inj-event(beginP(id_41657)) is true.
RESULT not attacker(IDp[]) is true.
Table 4. Notations of Time Symbol.
Table 4. Notations of Time Symbol.
SymbolMeaningTime (ms)
T R e p time of  R e p 7.3529 [33]
T h time of hash operation0.0004 [34]
T m time of multiplication in ECC7.3529 [34]
T s time of symmetric encryption or decryption0.1303 [34]
Table 5. Comparison of Computation Costs.
Table 5. Comparison of Computation Costs.
Chen et al. [12]Renuka et al. [13]Li et al. [14]Ours
User(Practitioner) P9 T h + 1 T R e p + 1 T s 5 T h + 1 T R e p + 2 T s 8 T h + 1 T R e p + 2 T m 13 T h + 1 T R e p
G W N 3 T h + 2 T s 2 T h + 2 T s 7 T h + 1 T m 14 T h
Sensor node S j 4 T h + T s 3 T h + 2 T s 4 T h + 2 T m 12 T h
Total time cost16 T h + 4 T s + 1 T R e p 10 T h + 6 T s + 1 T R e p 19 T h + 5 T m + 1 T R e p 39 T h + 1 T R e p
(ms)=7.8805=8.1387=44.125=7.3685
Table 6. Hardware and Software Condition.
Table 6. Hardware and Software Condition.
Specification
CPUIntel (R) Core(TM) 2T6570 2.1GHz
Memory4G
OSWin7 32-bit
SoftwareVisual C++ 2008
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Ryu, J.; Kang, D.; Lee, H.; Kim, H.; Won, D. A Secure and Lightweight Three-Factor-Based Authentication Scheme for Smart Healthcare Systems. Sensors 2020, 20, 7136. https://doi.org/10.3390/s20247136

AMA Style

Ryu J, Kang D, Lee H, Kim H, Won D. A Secure and Lightweight Three-Factor-Based Authentication Scheme for Smart Healthcare Systems. Sensors. 2020; 20(24):7136. https://doi.org/10.3390/s20247136

Chicago/Turabian Style

Ryu, Jihyeon, Dongwoo Kang, Hakjun Lee, Hyoungshick Kim, and Dongho Won. 2020. "A Secure and Lightweight Three-Factor-Based Authentication Scheme for Smart Healthcare Systems" Sensors 20, no. 24: 7136. https://doi.org/10.3390/s20247136

APA Style

Ryu, J., Kang, D., Lee, H., Kim, H., & Won, D. (2020). A Secure and Lightweight Three-Factor-Based Authentication Scheme for Smart Healthcare Systems. Sensors, 20(24), 7136. https://doi.org/10.3390/s20247136

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop