In this session, we will look at RAPCHI’s security in the following ways:
Formal security analysis by method I
Here, we apply the formal method of security evaluation under the approach of ROM, we prove that RAPCHI is safe. We take the proof of this approach by the mechanism of contradiction as [48]. We apply same investigation as [49,50,51]. In RAPCHI, we implement this method under the generic group method of secure communication environment. Assume that there are two oracles for any E:
-
Reveal 1 Here, x is an arbitrary value, and \(y = h(x)\) is a fixed length value [52].
-
Reveal 2 Given \(X \in \mathcal {E}(F_q)\) and the public key \(Y =kX \in \mathcal {E}(F_q)\), this oracle will find as secret key k [52].
Theorem 1
Under ECDLP assumption, RAPCHI is safe against any E for determining \(ID_{P}\) and \(SK_{PD}\) between a patient and the doctor, if h(.) nearly acts such a random oracle.
Proof
Here, we want to compose E which has the capacity to determine both \(ID_{P}\) of P and \(SK_{PD}\) between P and D. Any E uses the random oracles Reveal 1 and Reveal 2 in order to test the algorithm, say \(EXP^{HASH, ECDLP}_{E, RAPCHI}\) prepared in Algorithm. For the proposed framework RAPCHI, define the success probability for \(EXP^{HASH, ECDLP}_{E, RAPCHI}\) as \(Succ= 2Prob[EXP^{HASH, ECDLP}_{E, RAPCHI}= 1]-1,\) where Prob[W] presents the probability on a game W. For the experiment, the benefit function becomes \(Adv(et, qR_{1}, qR_{2})= Max_{E}\{Succ\}\), where the maximal is seized overall E with queries \(qR_{1}\), \(qR_{2}\) done to Reveal 1 and Reveal 2 oracles and execution time et, respectively. RAPCHI is said to be provably safe against an E for determining \(ID_{P}\) and \(SK_{PD}\), if \(Adv(et, qR_{1}, qR_{2})< \epsilon\), for any adequately slight \(\epsilon >0\). As an experiment, if E has the capability to change h(.) and deals with ECDLP, she/he can simply determine both \(ID_{P}\) and \(SK_{PD}\) and achieve the game. However, by Subsect. 2.3, it is a findable computing unattainable issue to revert \(h(\Delta )\), means that, \(Adv^{HASH}_E(t_{1})\), for any adequately slight \(\epsilon > 0\). Also, in subsection 2.3, it is computationally unattainable to determine k from R and \(S = kR\) in \(\mathcal {E}(F_q)\), means that \(Adv^{ECDLP}_{\mathbb {D}, \mathcal {E}}(t_{2})< \epsilon _{ 2}\), for any sufficient slight \(\epsilon _{ 2}>0\). Hence, we contain \(Adv(et_{1}, qR_{1}, qR_{2})\le \epsilon\), as \(Adv(et_{1}, qR_{1}, qR_{2})\) depends into other advantages \(Adv^{HASH}_E\) \((t_{1})\) and \(Adv^{ECDLP}_{\mathbb {D}, \mathcal {E}}(t_{2})< \epsilon _{ 2}\). \(\square\)
Theorem 2
Under the assumption that h(.) nearly performs such an oracle, RAPCHI is provably safe against attacker E for acquire \(pw_P\) of a valid patient P, even if her/his registration phase is breakable.
Proof
This proof is also same as Theorem 1. We wish to make any E who will contain the capacity to rid the password \(pw_P\) of a valid P, even if her/his registration. By Threat model [42] and Sect. 2.1E can extract all information of P. Any E uses the Reveal oracle for Algorithm 2, say \(EXP2^{HASH}_{E, RAPCHI}\) for RAPCHI. The progressive probability for \(EXP2^{HASH}_{E, RAPCHI}\) as \(Succ2= 2Prob[EXP2^{HASH}_{E, RAPCHI}= 1]-1,\) and the experiment’s advantage \(Adv(et, qR_{1}, qR_{1})= Max_{E}\{Succ2\}\), where the maximal is seized overall E with the queries \(qR_{1}\), \(qR_{2}\) made to the Reveal 1 oracles and execution time \(et_1\), respectively. The RAPCHI is said to be provably safe against E for determining \(pw_{P}\), if \(Adv(et, qR_{1})< \epsilon _1\), for any adequately slight \(\epsilon >0\). As experiment 2, if E has the capability to change h(.) and achieve the game. However, by subsection 2.1, it is a possible for computing unattainable issue to invert \(h(\Delta )\), means that, \(Adv^{HASH}_E(t_{1})\), for any adequately slight \(\epsilon > 0\), means that \(Adv(et_{1}, qR_{1})\le \epsilon\), since \(Adv(et_{1}, qR_{1})\) depends on other advantages \(Adv^{HASH}_E(t_{1})\) \(< \epsilon _{ 1}\). \(\square\)
Formal security by method II
Here, we adopt the random oracle model II for RAPCHI from [53,54,55,56].
Theorem 3
The RAPCHI employees a group G under addition with a base point g of order q. According to the assumption of hash output digest of length l bit which performs an exact random oracle. Therefore, we have
$$\begin{aligned} ADV^{RAPCHI}_{E,~succ} \le \frac{q^2_{h}}{2^l}+ \frac{q_{s}}{2^{l-1}}+ \frac{(q_{s}+q_{e})^2}{2^{l+1}}+2q_{h}( ADV^{RAPCHI}_{E,~succ}(q))+\frac{2q_{s}}{\bigvee }+\frac{2q_{s}}{\bigwedge }. \end{aligned}$$
(1)
For a probabilistic polynomial time-bounded technique,\(ADV^{RAPCHI}_{E,~succ}\) which is the probability of success. Any E is trying to hack the semantic security (SS) of RAPCHI and \(ADV^{ECCDHP}_{E,~succ}\) is denoted a chance of success for E to find the solution of the ECCDHP. The password dictionary is represented by \(\bigvee\), while the identity dictionary is represented by \(\bigwedge\) in this competition. Where \(q_{h}\) times H, \(q_{e}\) times Execute queries and \(q_{s}\) times Send queries for E to breach the communication of entities in RAPCHI.
Proof
We believe E is capable of cracking the RAPCHI mechanism. In addition, the ECCDHP may be used to find a polynomial time-bounded method \(\sum\) [57], i.e. from a random input (g, xg, yg), sum returns xyg within polynomial time bounds, where \(x, y \in Z^*_q\). Here, we consider a sequence of games \(G_{j} (0\le j \le 5)\) [55, 56], and in the simulation of the game \(G_j\), E can compute the exact attack against RAPCHI by computing \(G_0\), but E has no security. Further, we define the term game \(\eta _{j} (0\le j \le 5)\) where E defeats \(G_j\) in breaking into the RAPCHI’s communication system. Furthermore, we believe that the event \(\varPi\), which separates \(\eta _i\), may occur while E is being calculated, causing \(\sum\) to detect \(\varPi\). Unless \(\varPi\) is present, neither \(G_j\) nor \(G_{j+1}\) can be distinguished. As a result, we have
$$\begin{aligned} \mid Pr [\eta _{j+1}] - Pr [\eta _{j}] \mid \le Pr[\varPi ] \end{aligned}$$
(2)
- \(G_{0}:\):
-
The execution of \(G_0\) is akin to the ROR model of a real-world security attack. As a result, in this oracle, all P and D outcomes are modelled as expected. When \(G_0\) is computed, E can guess which bit in the Test question is related to \(\tau\), which is the exact bit. Therefore, we have
$$\begin{aligned} ADV^{RAPCHI}_{E, succ}= ~\mid 2Pr [\eta _{0}]-1 \mid \end{aligned}$$
(3)
- \(G_{1}:\):
-
Here, \(G_{1}\) is similar to \(G_{0}\) without the hash oracle H is calculated by E by maintaining a list \(L^P_{H}\), which runs the (Hin, Hout). If E inputs \(Hin_{NEW}, \sum\) and find output \(Hout_{NEW}\). Then, a new list of tuple \(( Hin_{NEW},\) \(Hout_{NEW})\) in \(L^P_{H}\). Otherwise, \(\sum\) randomly prefers a number \(Hout_{NEW} \in F^\star _{q}\), returns to E and considers new tuples \(( Hin_{NEW}, Hout_{NEW})\) in \(L^P_{H}\). Here, Execute, Send, Corrupt, Reveal, and \(Test-queries\) are polished in the same way that genuine attacks are calculated. So that’s it.
$$\begin{aligned} Pr[\eta _{1}] = Pr [\eta _{0}] \end{aligned}$$
(4)
- \(G_{2}:\):
-
In this contest, \(G_{2}\) is similar to except if a collision occurs during the simulation of the values, \(G_1\) will be exited \(M_{1}= \{E_{1}, H_{}, T_1\}, M_{2}= \{E_{2}, T_{3}\},\) \(M_{3}= \{E_{3}, T_{5}\}\) and \(M_{2}= \{E_{3}, T_{5}, T_7\}\) which are based on the birthday attack. Probability of collisions of the simulated hash oracle is at most \(\frac{q^2_{h}}{2q}\). In the contents simulation, the possibility of collisions is \(\frac{(q_{s}+q_{e})^2}{2^{l+1}}\) . Thus, we have
$$\begin{aligned} \mid Pr [\eta _{2}] - Pr [\eta _{1}]\mid \le \frac{q^2_{h}}{2q}+ \frac{(q_{s}+q_{e})^2}{2^{l+1}} \end{aligned}$$
(5)
- \(G_{3}:\):
-
Here, suppose E is guessed attributes \(Sig_{P}, H_{1}, H_{2}\) without hash query. Further, \(G_{3}\) is similar to \(G_{2}\) with P and S occurrence refuses authenticated numbers. Thus, we have
$$\begin{aligned} \mid Pr [\eta _{3}] - Pr [\eta _{2}] \mid \le \frac{q_{s}}{2^l} \end{aligned}$$
(6)
- \(G_{4}:\):
-
In this contest, E accurately guessed attributes \(H^*_2, H_3, ID_{P1}\) without hash query. Further, \(G_{4}\) is similar to \(G_{3}\) with S and D occurrence refuses authenticated values. Thus, we have
$$\begin{aligned} \mid Pr [\eta _{4}] - Pr [\eta _{3}] \mid \le \frac{q_{s}}{2^l} \end{aligned}$$
(7)
- \(G_{5}:\):
-
In this game, E accurately guessed the authenticated attributes \(H^*_{3}, ID^*_{P}, H^*_{1}, V_{PK_{P}}(\) \(Sig_{P}), Sig_{D}= S_{SK_{D}}(h(M_{D})), MAC_{D}, SK_{DP}, ID_{D1}, MAC_{D}\) without hash query. Further, \(G_{5}\) is similar to \(G_{4}\) with S and D occurrence refuses authenticated values. Thus, we have
$$\begin{aligned} \mid Pr [\eta _{5}] - Pr [\eta _{4}] \mid \le \frac{q_{s}}{2^l} \end{aligned}$$
(8)
- \(G_{6}:\):
-
In this event, E accurately guessed attributes \(E_{3}, T_5, T_7\) without hash query. Further, \(G_{6}\) is similar to \(G_{5}\) with S and P occurrence refuses a legitimated values. Thus, we have
$$\begin{aligned} \mid Pr [\eta _{6}] - Pr [\eta _{5}] \mid \le \frac{q_{s}}{2^l} \end{aligned}$$
(9)
- \(G_{7}:\):
-
In this game, E is session key \(SK_{U}= SK_{S}= SK\) with find the values xyg. As a result, when using the ECCDHP’s random self-reducibility, \(G_6\) and \(G_6\) are comparable in execution. Thus E applied queries with random values (g, xg, yg) to compute \(ECCDHP(xg, yg) = xyg\), where \(x, y \in Z^\star _{q}\) .Therefore, we have
$$\begin{aligned} \mid Pr [\eta _{7}] - Pr [\eta _{6}]\mid \le q_{h} ADV^{ECCDHP}_{E,~ succ}(q) \end{aligned}$$
(10)
- \(G_{8}:\):
-
This game is identical to the previous game except for the addition of a \(Test-query\). If E asks a \(H-query\) with information \(\{ID_{P}, ID^*_{D}, Sig_{P}, Sig_{D}, MAC_{P}, B_{D}, B_{P}, x,\) \(\beta , T_{5}\}\), the game will end. By running the \(H-query\) with a probability at most \(\frac{q^2_{h}}{2l}\), E can obtain the session key \(SK=SK_U= SK_S\). Thus, we have
$$\begin{aligned} \mid Pr [\eta _{9}] - Pr [\eta _{8}]\mid \le \frac{q^2_{h}}{2q} \end{aligned}$$
(11)
If E will not get a session key without perfect input which contains different parameters, thus \(Prob [\eta _{9}]= \frac{1}{2}\). Furthermore, it specifies that the password \(Corrupt-query(Corrupt(U, 1))\) has not been made in [53] if the Corrupt(U, 2)query has been made. The probability of applying off-line password guessing attack and identity guessing attacks are \(\frac{q_{s}}{\bigvee }\) and \(\frac{q_{s}}{\bigwedge }\) by E. Thus, from equations \((3) - (11)\), we obtained
$$\begin{aligned} ADV^{ESEAP}_{E,~succ} \le \frac{q^2_{h}}{2^l}+ \frac{q_{s}}{2^{l-1}}+ \frac{(q_{s}+q_{e})^2}{2^{l+1}}+2q_{h}( ADV^{ECCDHP}_{E,~succ}(q))+\frac{2q_{s}}{X}+\frac{2q_{s}}{Y}. \end{aligned}$$
(12)
Hence, the theorem is established. \(\square\)
Informal security analysis
The following security aspects and properties are discussed in this session for RAPCHI analysis:
Patient anonymity
We express P anonymity in RAPCHI which is given as below:
-
S computes P’ partial identity \(ID_{P1}=ID_P \oplus h(ID_1\Vert ID_D\Vert B_D)\), encrypts \(ID_{P1}\) by \(E_{2}=E_{h(ID_D\Vert B_D\Vert D_1)}( E_1, H_3,\) \(ID_{P1}, P_{1}, P_{2}, B_{P})\) with using key (h( \(ID_D\Vert B_D\Vert\) \(D_1)\) and sends to D. Further, D decrypts \(( E_1, H_3, ID_{P1}, P_{1}, P_{2},\) \(B_{P})=D_{h(ID_D\Vert B_D\Vert T_2)}\) \((E_2)\) using key \(h(ID_D\Vert B_D\Vert D_1)\) and computes anonymous identity of P as \(ID^*_{P}=ID_{P1} \oplus h(ID_1\Vert ID_D\Vert B_D)\). Furthermore, D uses \(ID^*_P\) in authentication phase of RAPCHI.
Thus, our protocol provides P anonymity.
Doctor anonymity
We describe D anonymity in RAPCHI as below:
Thus, our protocol provides D anonymity.
Man-in-the-middle attack
In RAPCHI, each step of authentication phase having time-stamp status \(T_{i}- T_{j} \le \triangle T\) and hash conditions \(H^*_{i}\overset{?}{=}H_{i}\). If possible, any E enters in authentication and key agreement phase after checks \(T_{i}- T_{j} \le \triangle T\) then, verifies \(H^\prime _{i}\overset{?}{=}H_{j}\). This condition is not achievable to verify by the definition of hash function which is secure. Further, E cannot verify P’s signature \(V_{PK_{P}}(Sig_{P})\overset{?}{=} h(M_{P})\) and D’s signature \(V_{PK_{D}}(Sig_{D})\overset{?}{=} h(M_{D})\). Thus, E will unsuccessful in authentication and key agreement phase. Therefore, RAPCHI secures against this attack.
Replay attack
Every time we utilise the time-stamp condition \(T_{i}- T_{j} \le \triangle T\) in RAPCHI, we use random values as a counter-measure. In RAPCHI, the valid time length is \(\triangle T\). Furthermore, the hash value, encryption, decryption, various keys, and session keys are all computed using the current time value and a random number. It is well known that in a network system, an ECC-based one-way hash function is secure. Hence, the replay attack is not possible in RAPCHI.
Known-key security property
The session keys are expressed in the following way by RAPCHI:
-
P executes session key \(SK_{PD}= h(ID_{P}\Vert ID^*_{D}\Vert Sig_{P}\Vert Sig_{D}\Vert MAC_{P}\Vert B_{D}\Vert B_{P}\Vert\) \(x.\beta \Vert T_{5})\).
-
D executes session key \(SK_{DP}= h(ID^*_{P}\Vert ID_{D}\Vert Sig_{P}\Vert Sig_{D}\Vert MAC_{D}\Vert B_{D}\Vert B_{P}\Vert\) \(y.\alpha \Vert T_{5})\).
RAPCHI presents session key in communication system. Even if E finds the past key, she/he cannot execute it. Thus, RAPCHI maintains this property.
Data confidentiality
It is a way to send secure data in communication system without E. In RAPCHI, the following are the details of encryption and description:
-
P encrypts \(E_{1}=E_{h(ID_P\Vert P_1\Vert P_2)}(H_{1}, M_{P}, \alpha , Sig_{P}, T_1)\) by using key \(h(ID_P\Vert\) \(P_1\Vert P_2)\) and uploads to S. Further, S encrypts \(E_{2}=E_{h(ID_D\Vert B_D\Vert D_1)}( E_1, H_3,\) \(ID_{P1}, P_{1}, P_{2},\) \(B_{P})\) by using key \(h(ID_D\Vert B_D\Vert D_1)\) and forwards to D. After that, D decrypts \(( E_1, H_3,\) \(ID_{P1},\) \(P_{1}, P_{2}, B_{P})=D_{h(ID_D\Vert B_D\Vert D_1)}(E_2)\) by using key \(h(ID_D\Vert B_D\Vert D_1)\) and \((H_{1}, M_{P}, \alpha ,\) \(Sig_{P}, T_1)=D_{h(ID^*_P\Vert P_1\Vert P_2)}(E_1)\) by using key \(ID^*_P\Vert P_1\Vert P_2)\). Furthermore, D encrypts \(E_{3}=E_{h(H^*_1\Vert B_P\Vert P_2)}( ID_{D1}, MAC_{D}, Sig_{D},\) \(M_{D}, B_D, \beta , T_5)\) by using key \(h(H^*_1\Vert B_P\Vert P_2)\) and uploads to S. In addition to, S sends \(E_{3}\) to P. Then, P decrypts \(( ID_{D1}, MAC_{D},\) \(Sig_{D}, M_{D}, B_{D}, \beta , T_5)= D_{h(H_1\Vert B_P\Vert P_2)}(E_3)\) by using key \(h(H_1\Vert\) \(B_P\Vert P_2)\).
Thus, if E tries to find communicated message at the time of communication, E encrypts information which cannot be decrypted without the hash value and generated key. By the definition of hash function, it assumed to be secure and one way. So that, it is hard to compute generated key and hash value. Therefore, RAPCHI maintains the confidentiality.
Data non-repudiation
The details of this attribute in RAPCHI are given as:
-
P makes digital signature \(Sig_{P}= S_{SK_{P}}(h(M_{P}))\) and verifies D’s digital signature \(V_{PK_{D}}(Sig_{D})\overset{?}{=} h(M_{D})\).
-
D verifies P’s digital signature by \(V_{PK_{D}}(Sig_{P})\overset{?}{=} h(M_{P})\). After that, D makes digital signature \(Sig_{D}\) \(= S_{SK_{D}}(h(M_{D}))\).
Thus, P checks the health information. If, the medical information is incorrect, the authenticated party cannot be denied. The non-repudiation arguments are saved in S. Therefore, RAPCHI protests data non-repudiation.
Message authentication
The details of it describe in RAPCHI as below:
-
S gets \(M_{2}\), verifies \(T_ {2}- T_{1} \le \triangle T\) and hash function \(H^*_{2}\overset{?}{=}h(P_{P}\Vert B_{P}\Vert\) \(ID_{D})\). Similarly, S accepts message \(M_{3}\) and checks the validity by confirming times-stamps condition \(T_{6}- T_{5} \le \triangle T\).
-
D receives message \(M_{2}\), verifies \(T_ {4}- T_{3} \le \triangle T\), \(H^*_{3}\overset{?}{=} h(ID_D\Vert B_D\Vert D_1\Vert T_3)\), \(H^*_{1}\overset{?}{=} h(ID_{P}\Vert a_D.g\Vert (ID_{P}\oplus T_1))\) and \(V_{PK_{P}}(Sig_{P})\overset{?}{=} h(M_{P})\).
-
P receives message \(M_{4}\), checks \(T_{8}- T_{7} \le \triangle T\), \(V_{PK_{D}}(Sig_{D})\overset{?}{=} h(M_{D})\) and \(MAC_{P}\overset{?}{=} MAC_{D}\).
If any E endeavours change any charge in data of P, S and D will recognize it. Therefore, RAPCHI protests against the message authentication attack.
Impersonation attack
The details of an impersonation attack describe in RAPCHI as below:
-
Any E attempts to masquerade as an authenticated P and tries to compute \(Sig_{P}= S_{SK_{P}}(h(M_{P}))\), \(H_{1}= h(ID_{P}\Vert PK_D\Vert (\) \(ID_{P}\oplus T_{1}))\), \(H_{2}= h(A_{P}\Vert B_D\Vert ID_{P})\), encrypts \(E_{1}=E_{h(ID_P\Vert P_1\Vert P_2)}(H_{1}, M_{P}, \alpha , Sig_{P}, T_1)\) by using key \(h(ID_P\) \(\Vert\) \(P_1\Vert P_2)\). Then, P sends \(M_{1}\)= \(\{E_{1}, H_{2}, T_{1}\}\) to S . E cannot compute \(Sig_{P}, H_{1}\), \(H_{2}\), and \(h(ID_P\) \(\Vert P_1\Vert P_2)\) by the definition explanation of hash function and digital signature. Thus, E cannot impersonate as authenticated P.
-
Any E attempts to masquerade as an authenticated D. On getting \(M_{2}\), D decrypts \(( E_1, H_3, ID_{P1}, P_{1}, P_{2}, B_{P})\) \(=D_{h(ID_D\Vert B_D\Vert D_1)}(E_2)\) by using key \(h(ID_D\Vert\) \(B_D\Vert D_1)\), computes \(ID^*_P= ID_{P1} \oplus h(ID_1\Vert ID_D\Vert B_D)\), decrypts \((H_{1}, M_{P}, \alpha ,\) \(Sig_{P}, T_1)=D_{h(ID^*_P\Vert P_1\Vert P_2)}(E_1)\) by using key \(ID^*_P\Vert P_1\Vert P_2)\). Further, D generates medical report \(M_{D}= (ID_{D}, Data_{D})\), computes signature \(Sig_{D}= S_{SK_{D}}(h\) \((M_{D}))\). Then, D generates random value \(y \in Z^\star _{q}\), computes \(\beta =y.g\), \(MAC_{D}\) \(= h(ID^*_{P}\Vert ID_{D}\Vert B_{P}\Vert B_{D}\Vert T_{5})\), session key \(SK_{DP}= h(ID^*_{P}\Vert ID_{D}\Vert Sig_{P}\Vert Sig_{D}\Vert\) \(MAC_{D}\Vert B_{D}\Vert B_{P}\Vert y.\alpha \Vert T_{5})\), \(ID_{D1}\) \(=h(Sig_P\Vert\) \(B_P\Vert H^*_1)\), encrypts \(E_{3}=E_{h(H^*_1\Vert B_P\Vert P_2)}( ID_{D1},\) \(MAC_{D}, Sig_{D}, M_{D}, B_D,\) \(\beta , T_5)\) by using key \(h(H^*_1\Vert B_P\Vert P_2)\) and D sends \(M_{3}=\{E_{3}, T_5\}\) to S. E cannot compute these parameters as discussed above. Thus, E cannot impersonate as an authenticated D.
-
Any adversary E attempts to masquerade as an authenticate S and eavesdrop the transmitted \(M_{2}\) and \(M_{4}\). Further, S \(ID_{P1}=ID_P \oplus h(ID_1\Vert ID_D\Vert B_D)\), \(H_3= h(ID_D\Vert B_D\) \(\Vert D_1\Vert T_{3})\), encrypts \(E_{2}=E_{h(ID_D\Vert B_D\Vert D_1)}( E_1, H_3,\) \(ID_{P1},\) \(P_{1}, P_{2}, B_{P})\) by using key \(h(ID_D\Vert B_D\Vert D_1)\). E cannot compute these parameters as discussed above. Thus E cannot impersonate as authenticated S.
Hence, RAPCHI is secured against this attack.
Session key security
RAPCHI contains two session keys which are computed between P and D. The details of session key are shown in RAPCHI as below:
-
D computes \(SK_{DP}= h(ID^*_{P}\Vert ID_{D}\Vert Sig_{P}\Vert Sig_{D}\) \(\Vert MAC_{D}\Vert B_{D}\Vert B_{P}\Vert y.\alpha \Vert T_{5})\) and P computes \(SK_{PD}= h(ID_{P}\Vert ID^*_{D}\) \(\Vert Sig_{P}\Vert Sig_{D}\Vert MAC_{P}\Vert B_{D}\Vert B_{P}\Vert x.\beta \Vert T_{5})\). E cannot execute \(SK_{DP}\) or \(SK_{PD}\), where \(MAC_{P}= MAC_D\). With the help of impersonation attack, \(MAC_{D}\) and \(MAC_{P}\) cannot be executed by E. Furthermore, for given \((g, \alpha , \beta )\), it is impossible for an attacker G to compute xyg using ECCDHP in ECC for \(x, y \in Z^*_q\) and g is the base point of G. As a result, the authenticated participant is the only one who can build SK.
Hence, RAPCHI could defend the session key.