# PUF and Chaotic Map-Based Authentication Protocol for Underwater Acoustic Networks
## 3 The Proposed Scheme
### Authentication and Key Management Phase  
This phase allows the user to accomplish mutual authentication and session key agreement between the user and the sensor node through the help of the gateway node, and the steps are described as follows. Step 1: After receiving the login request message, \(\{K_{U},\ M_{5},\ T_{1}\}\), the \(GWN_{k}\) first computes whether \(T_{2}-T_{1}\leq\Delta T\) holds, where \(T_{2}\) is the current timestamp. If the timestamp verification holds, \(GWN_{k}\) continues to execute the next step, otherwise, the login request is denied. Step 2: The \(GWN_{k}\) computes \(K_{U-G}=T_{S_{K}}(K_{U})\ mod\ q\), \(M_{6}=D_{K_{U-G}}(M_{5})=\)\(\{id_{i},\ Sid_{j},\ rug,\ M_{4}\}\). Step 3: The \(GWN_{k}\) computes \(S_{K}=GSK\bigoplus h(PUF1(C_{G}))\), \(M_{2}^{{}^{\prime}}=h(id_{i}\parallel S_{K})\), \(M_{4}^{{}^{\prime}}=h\Big{(}T_{1}\parallel M_{2}^{{}^{\prime}}\parallel rug \parallel id_{i}\Big{)}\). Step 4: The \(GWN_{k}\) checks whether \(M_{4}^{{}^{\prime}}=M_{4}\) is correct or not. If the equation holds, the \(U_{i}\) and \(GWN_{k}\) are successfully authenticated by each other, otherwise, \(GWN_{k}\) terminates this session instantaneously. Step 5: The \(GWN_{k}\) chooses a random nonce \(r\), computes \(S_{j}=h\big{(}Sid_{j}\parallel Gid_{k}\parallel S_{K}\big{)}\), \(M_{7}=E_{S_{j}}\big{(}h(id_{i}\parallel r)\parallel Gid_{k}\parallel Sid_{ j}\parallel K_{U}\parallel T_{2}\big{)}\), and delivers the message \(\{M_{7},T_{2}\}\) to the sensor node \(Sn_{j}\). Step 6: Upon obtaining the message \(\{M_{7},\ T_{2}\}\) at timestamp \(T_{3}\), the \(Sn_{j}\) checks whether \(T_{3}-T_{2}\leq\Delta T\) is correct. If it holds, they move to the next step, otherwise, this session is terminated instantaneously. Step 7: The \(Sn_{j}\) computes \(S_{j}=NJ\bigoplus h(PUF2(C_{S}))\), \(M_{8}=D_{S_{j}}(M_{7})=\{h(id_{i}\parallel r),Gid_{k},\ Sid_{j},\ K_{U}\}\). Step 8: The \(Sn_{j}\) chooses a random number, \(rs\), and computes \(M_{9}=T_{rs}(x)\ mod\ q\), \(SK=h\Big{(}T_{rs}(K_{U})\parallel K_{U}\parallel M_{9}\parallel Gid_{k} \parallel Sid_{i}\parallel h(id_{i}\parallel r)\Big{)}\), \(M_{10}=h\big{(}Gid_{k}\parallel Sid_{j}\parallel SK\parallel M_{9} \parallel T_{3}\big{)}\), and \(M_{11}=h\big{(}S_{j}\parallel M_{9}\parallel M_{10}\parallel T_{3} \parallel h(id_{i}\parallel r)\big{)}\). Then, the \(Sn_{j}\) delivers the message \(\{M_{9},M_{10},\ M_{11},\ T_{3}\}\) to \(GWN_{k}\). Step 9: Upon obtaining the message \(\{M_{9},\ M_{10},\ M_{11},\ T_{3}\}\) at timestamp \(T_{4}\), the \(Sn_{j}\) checks whether \(T_{4}-T_{3}\leq\Delta T\) holds. If yes, they move to the next step, otherwise, this session is terminated instantaneously. Step 10: \(GWN_{k}\) first verifies the correctness of \(M_{11}\), and then computes \(M_{12}=h(rug\parallel M_{9}\parallel M_{10}\parallel T_{4})\), \(M_{13}=E_{ng}(r\parallel M_{12})\), and sends \(\{M_{9},\ M_{10},\ M_{13},\ T_{3},\ T_{4}\}\) to the user \(U_{i}\). Step 11: Upon receiving the message \(\{M_{9},\ M_{10},\ M_{13},\ T_{3}\,\ T_{4}\}\) at timestamp \(T_{5}\), the SC checks whether \(T_{5}-T_{4}\leq\Delta T\), decrypts \(M_{13}\), obtains \(r\) and \(M_{12}\), and checks the correctness of \(M_{12}\). If yes, they proceed to the next step, otherwise, this session is terminated instantaneously. Step 12: The SC computes \(SK=h\big{(}T_{ru}(M_{9})\parallel K_{U}\parallel M_{9}\parallel Gid_{k} \parallel Sid_{j}\parallel h(id_{i}\parallel r)\big{)}\), \(M_{10}^{{}^{\prime}}=h\big{(}Gid_{k}\parallel Sid_{j}\parallel SK\parallel M_{9 }\parallel T_{3}\big{)}\), and checks whether \(M_{10}^{{}^{\prime}}=M_{10}\) holds. If the equation holds, a session key, \(SK\), is established. The Login and authentication process is shown in Table 2.