## 5 Proposed Scheme
### Login and Authentication Phase  
The user submits a login request to the \(CS\) to initiate authentication and key agreement. After the authentication, the user, sensor, and central server can communicate securely via a shared session key. Figure 6 presents a detailed description of the process. **Step 1:**: \(U_{r_{i}}\) inserts \(ID_{i}\) and \(PW_{i}\). The user computes \(r_{i}^{*}=R_{0}\oplus h(ID_{i}||PW_{i})\) and \(R_{1}^{*}=h(ID_{i}||PW_{i}||r_{i}^{*})\) and checks \(R_{1}^{*}\stackrel{{*}}{{=}}R_{1}\). If it matches, \(U_{r_{i}}\) generates random number \(n_{i1}\) and timestamp \(T_{1}\). \(U_{r_{i}}\) calculates \(UI_{i}=R_{2}\oplus h(PW_{i}||r_{i})\), \(A_{i}=(SID_{j}||n_{i1})\oplus h(UI_{i}||T_{1})\), and \(V_{1}=h(SID_{j}||n_{i1}||UI_{i}||T_{1})\), and then sends a login request message \(\{UID_{i},A_{i},V_{1},T_{1}\}\) to the \(CS\) over a public channel. **Step 2:**: The \(CS\) first verifies whether timestamp \(T_{1}\) is valid. If valid, the \(CS\) computes \(k_{i}=UA_{i}\oplus h(S_{k}||UID_{i})\), \(UI_{i}=h(UID_{i}||k_{i}||S_{k})\), \((SID_{j}||n_{i1})^{*}=A_{i}\oplus h(UI_{i}||T_{1})\), and \(V_{1}^{*}=h(SID_{j}^{*}||n)\Pi^{*}||UI_{i}||T_{1})\). If \(V_{1}^{*}\) matches the received \(V_{1}\), the \(CS\) retrieves \(\{SID_{j},r_{k}\}\) and generates timestamp \(T_{2}\) and random number \(n_{i2}\). The \(CS\) computes \(SI_{j}=h(SID_{j}||r_{k}||S_{k})\), \(B_{i}=(n_{i1}||n_{i2})\oplus h(SI_{j}||T_{2})\), and \(V_{2}=h(n_{i1}||n_{i2}||UI_{i}||S_{j}||T_{2})\), and then transmits \(\{UID_{i},B_{i},V_{2},T_{2}\}\) to the sensor. **Step 3:**: \(IoT_{SL_{j}}\) validates timestamp \(T_{2}\) and computes \(RE_{j}=PUF(CH_{j})\), \(SI_{j}=SA_{j}\oplus h(SID_{j}||RE_{j})\), \((n_{i1}||n_{i2})^{*}=B_{i}\oplus h(SI_{j}||T_{2})\), and \(V_{2}^{*}=h(n_{i1}^{*}||n_{i2}^{*}||UID_{i}||SI_{j}||T_{2})\). \(IoT_{SL_{j}}\) checks whether \(V_{2}^{*}\) and \(V_{2}\) match. If they match, \(IoT_{SL_{j}}\) generates timestamp \(T_{3}\) and random number \(n_{i3}\) and computes a shared session key \(SK=h(UID_{i}||S_{j}))\oplus h(n_{i1}||n_{i2}||n_{i3})\), \(C_{i}=n_{i3}\oplus h(SI_{j}||T_{3})\), and \(V_{3}=h(SK||n_{i3}||T_{3})\). Finally, \(IoT_{SL_{j}}\) sends \(\{C_{i},V_{3},T_{3}\}\) to the \(CS\). **Step 4:**: The \(CS\) verifies the legitimacy of \(T_{3}\). Then, the \(CS\) computes \(n_{i3}^{*}=C_{i}\oplus h(SI_{j}||T_{3})\), \(SK^{*}=h(UID_{i}||S_{j})\oplus h(n_{i1}||n_{i2}||n_{i3})\), and \(V_{3}^{*}=(SK^{*}||n_{i3}^{*}||T_{3})\). The \(CS\) compares \(V_{3}^{*}\) and \(V_{3}\), and if equal, the \(CS\) computes the user's new temporary identity \(UID_{i}^{new}=h(UID_{i}||n_{i2})\), \(UID_{i}^{new}=h(UID_{i}^{new}||n_{i2}||S_{k})\), and \(UA_{i}^{new}=n_{i2}\oplus h(UID_{i}^{new}||n_{i3})\). Figure 5: Sensor registration phase of the proposed scheme. \(h(S_{k}||UID_{i}^{new})\). Afterward, the \(CS\) generates \(T_{4}\) and computes \(D_{i}=(n_{i2}||n_{i3})\oplus h(UI_{i}||UID_{i}||T_{4})\), \(h(UI_{i}||UID_{i}||T_{4})\), \(E_{i}=UI_{i}^{new}\oplus h(UI_{i}||T_{4})\), \(F_{i}=h(UIID_{i}||S_{I})\oplus h(UI_{i}^{new}||T_{4})\), and \(V_{4}=h(n_{i2}||n_{i3}||SK||UI_{i}^{new}||T_{4})\). Last, the \(CS\) updates \(\{UID_{i},UA_{i}\}\) to \(UID_{i}^{new}\) and \(UA_{i}^{new}\), and sends \(\{D_{i},E_{i},F_{i},V_{4},T_{4}\}\) to \(U_{t_{i}}\) over a public channel. **Step 5:**: \(U_{t_{i}}\) validates timestamp \(T_{4}\). If valid, \(U_{t_{i}}\) computes \((n_{i2}||n_{i3})^{*}=D_{i}\oplus h(UI_{i}||UID_{i}||T_{4})\), \(UI_{i}^{new*}=E_{i}\oplus h(UI_{i}||T_{4})\), \(h(UIID_{i}||S_{I})^{*}=F_{i}\oplus h(UI_{i}^{new*}||T_{4})\), \(SK^{*}=h(UIID_{i}||S_{I})^{*}\oplus h(n_{i1}||n_{i2}^{*}||n_{i3}^{*})\), and \(V_{4}^{*}=h(n_{i2}^{*}||n_{i3}^{*}||SK^{*}||UI_{i}^{new*}||T_{4})\). \(U_{t_{i}}\) checks whether \(V_{4}^{*}\) and \(V_{4}\) are the same. If they are the same, \(U_{t_{i}}\) computes a new temporary identity \(UID_{i}^{new}=h(UID_{i}||n_{i2})\) and updates \(R_{2}^{new}=UI_{i}^{new}\oplus h(PW_{i}||r_{i})\) and \(R_{3}^{new}=UID_{i}^{new}\oplus h(ID_{i}||r_{i})\).