# SLMAS: A Secure and Light Weight Mutual Authentication Scheme for the Smart Wheelchair
## 3 Proposed Scheme
### Authentication and Key-Agreement Process  
Below are the steps that are performed by \(SN_{n}\) and \(S_{s}\) to build a session key with the assistance of a \(TA\), to secure the communication and mutually authenticate each other:  
1. \(SN_{N}\) selects an arbitrary number \(RND_{3}\) and timestamp \(T_{SN}\) and computes \(V_{temp1}=H(SKEY_{TA,n}||SN_{ID_{n}})\), \(RND_{3}^{{}^{\prime}}=RND_{3}\oplus V_{temp1}\), \(AUTH_{n}=H(R_{3}||V_{temp1}||T_{SN})\). Finally, \(SN_{n}\) transmits the message to the \(TA\) containing \(\langle RND_{3}^{{}^{\prime}},AUTH_{n},PR_{ID_{n}},T_{SN}\rangle\) over the public channel. 2. Upon obtaining the message from \(SN_{n}\), \(TA\) first verifies the message freshness by examining the condition \(|TC-T_{SN}\leq\delta T|\) and check if \(PR_{ID_{n}}\) exists in DB. 3. If true, \(TA\) further computes \([SN_{ID_{n}},X_{n}]=DEC_{MSK}[SN_{ID_{n}},X_{n}]\), \(SKEY_{TA,n}=H(X_{n}||MSK)\), \(V_{temp2}=H(SKEY_{TA,n}||SN_{ID_{n}})\), \(RND_{3}=RND_{3}^{{}^{\prime}}\oplus V_{temp2}\). \(TA\) verifies the authenticity of the \(SN_{n}\) by examining the condition \(AUTH_{n}\stackrel{{?}}{{=}}H(RND_{3}||V_{temp2}||T_{SN})\). 4. If true, \(TA\) further computes \([S_{ID_{n}},X_{s}]=DEC_{MSK}[X_{s}]\), \(SKEY_{TA,s}=H(X_{s}||MSK)\), \(V_{temp3}=H(SKEY_{TA,s}||ST_{ID_{s}}||TT_{TA})\). \(TA\) picks two arbitrary numbers \(RND_{4},RND_{5}\) and further computes \(AUTH_{TA,s}=H(RND_{4}||V_{temp3}||T_{TA})\), \(RND_{4}^{{}^{\prime}}=RND_{4}\oplus V_{temp3}\), \(Y_{TA,s}=H(RND_{5}||V_{temp2})\). Finally, \(TA\) sends the message containing \(\langle PR_{ID_{n}}\), \(RND_{4}^{{}^{\prime}},AUTH_{TA,s},Z_{TA,s},T_{TA}\rangle\) to the \(S_{s}\) over the insecure channel. 5. Upon obtaining the message from \(TA\), \(S_{s}\) first verifies the messages freshness by examining the condition \(|TC-T_{TA}\leq\delta T|\). Next \(S_{s}\) computes \(V_{temp4}=H(SKEY_{TA,s}||S_{ID_{s}}||T_{TA})\), \(RND_{4}=RND_{4}^{{}^{\prime}}\oplus V_{temp4}\) and confirms the legitimacy of the \(TA\) by assessing the scenario \(AUTH_{TA,s}\stackrel{{?}}{{=}}H(RND_{4}||V_{temp4}||T_{TA})\). 6. If true, \(S_{m}\) picks two arbitrary numbers \(RND_{6},RND_{7}\), and presents timestamp \(T_{s}\), and further computes \(SK_{s,n}=H(RND_{6}||Z_{TA,s}\oplus V_{temp4}||T_{s})\), \(RND_{6}^{{}^{\prime}}=RND_{6}\oplus V_{temp4}\), \(RND_{7}^{{}^{\prime}}=RND_{7}\oplus V_{temp4}\), \(AUTH_{s}=H(RND_{7}||V_{temp4}||T_{s})\). Finally, \(S_{s}\) sends the message containing \(\langle SK_{sn},RND_{6}^{{}^{\prime}},RND_{7}^{{}^{\prime}},AUTH_{s},T_{s}\rangle\) to the \(TA\) via an open channel. 7. When the message arrives from \(S_{s}\) to \(TA\), \(TA\) first assesses the message freshness by validating the condition \(|TC-T_{S}\leq\delta T|\). If true, \(TA\) further computes pick \(RND_{6}=RND_{6}^{{}^{\prime}}\oplus V_{temp3}\), \(RND_{7}=RND_{7}^{{}^{\prime}}\oplus V_{temp3}\), and corroborates the validity of the \(S_{s}\) by checking the condition \(AUTH_{s}\stackrel{{? }}{{=}}H(RND_{7}||V_{temp3}||T_{s})\). \begin{table}
\begin{tabular}{l c} \hline \hline
**Sensor Node (\(SN\))** & **Trusted Authority (\(TA\))** \\ \hline Select an identity \(SN_{ID_{n}}\) & \\ \(\frac{SN_{ID_{n}}}{(SN\to TA)}\) & Picks arbitrary number \(RND_{2}\in\mathcal{Z}_{p}\) \\  & and Pseudo-random identity \(PR_{ID_{n}}\) \\ COMPUTE: & \(X_{n}=H(SN_{ID_{n}}||RND_{2})\) \\ \(SKEY_{TA,n}=H(X_{n}||MSK)\) & Store \(\{PR_{ID_{n}},ENC_{MSK}[SN_{ID_{n}},X_{n}]\}\) \\  & tuple in the database \\ \(\frac{(PR_{ID_{n}},SKEY_{TA,n})}{(SN\to TA)}\) & \\ Save \(\{PR_{ID_{n}},SN_{ID_{n}},SKEY_{TA,n}\}\) & \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Proposed SN registration process. * If true \(TA\), picks a current timestamp \(T_{TA}^{+}\) and further computes \(Z_{TA,n}=Z_{TA,s}\oplus V_{temp2}\oplus V_{temp3}\), \(AUTH_{TA,n}=H(RND_{3}||V_{temp2}||T_{TA}^{+})\), \(RND_{6}^{{}^{\prime}}=RND_{6}\oplus V_{temp2}\oplus V_{temp3}\).