## 3 A Security-Enhanced Authenticated Key-Agreement Protocol: SE-UAVAKA
### SE-UAVAKA Authentication Key-Agreement Phase  
#### 3.4.1 Detailed Steps of Authentication Key-Agreement Phase  
In the authentication key-agreement phase, the UAV and matching ground station establish a session independently. Once the session is initiated, they exchange the corresponding information about the ID, public key, check value, and timestamp. Both parties rely on this information to complete key negotiations and ID authentication. When this step is completed, each party calculates the session key required for the following session. A schematic of this phase is shown in Figure 3.  
The detailed execution steps of the authentication key-agreement phase between protocol entities A and B are as follows (according to Figure 4):  
Figure 3: A schematic diagram of the authentication key-agreement phase. **UAV side (Protocol entity A) in Figure 4:**  
1. Retrieve the data \(y_{a},ID_{A}\) obtained during the registration phase from the local secure storage. 2. Select a random number \(r_{a}\in Z_{q}^{*}\) and use scalar multiplication to calculate \(N_{a}=((r_{a}\cdot ID_{A})\cdot P)\). 3. Generate the current timestamp \(TS_{a}\). 4. Calculate \(H_{a}=H(ID_{A}||TS_{a}||N_{a})\) using a one-way hash function. 5. XOR of the x-axis of point \(N_{a}\) of the elliptic curve to obtain \(Ex=N_{a-x}\oplus(y_{a}-x_{a})\). Figure 4: Detailed execution steps of the authentication key-agreement phase. * XOR encryption of the x-axis of point \(N_{y}\) of the elliptic curve to obtain \(Eay=N_{a-y}\oplus(y_{a}-x_{a})\). * Use the symmetric encryption algorithm to encrypt the ID to obtain \(E_{ya-xa}(ID_{A})\). * Send parameters \(E_{ya-xa}(ID_{A}),Eax,Eay,H_{a},TS_{a}\) to protocol entity B through an open channel. **Ground station side (protocol entity B) in Figure 4:** 1. Decode the x-axis information of \(N_{a}\) to obtain \(N_{a-x}^{{}^{\prime}}=Eax\oplus(y_{b}-x_{b})\). * Decode the y-axis information of \(N_{a}\) to obtain \(N_{a-y}^{{}^{\prime}}=Eay\oplus(y_{b}-x_{b})\). * Combine the above x- and y-axis information to obtain \(N_{a}^{{}^{\prime}}=(N_{a-x^{\prime}}^{{}^{\prime}},N_{a-y}^{{}^{\prime}})\). * Decrypt the information using the symmetric decryption algorithm to obtain the ID of protocol entity A: \(ID_{A}^{{}^{\prime}}=D_{ya-xa}(E(ID_{A}))\). * Calculate \(H_{a}^{{}^{\prime}}=H(ID_{A}^{{}^{\prime}}||TS_{a}||N_{a}^{{}^{\prime}})\) using a one-way hash function. * Compare with the obtained \(H_{a}\): \(H_{a}=H_{a}^{{}^{\prime}}\)? If the comparison is successful, B authenticates A successfully. * Fetch the data \(y_{b},ID_{B}\) obtained during the registration phase from the local secure storage. * Select a random number \(r_{b}\in Z_{q}^{*}\) and use scalar multiplication to calculate \(N_{b}=((r_{b}\cdot ID_{B})\cdot P)\). * Generate the current timestamp \(TS_{b}\). * Calculate \(H_{b}=H(ID_{B}||TS_{b}||N_{b})\) using a one-way hash function. * XOR of the x-axis of point \(N_{b}\) of the elliptic curve to obtain \(Ebx=N_{b-x}\oplus(y_{b}-x_{b})\). * XOR encryption of the x-axis of point \(N_{y}\) of the elliptic curve to obtain \(Eby=N_{b-y}\oplus(y_{b}-x_{b})\). * Use the symmetric encryption algorithm to encrypt the ID to obtain \(E_{yb-xb}(ID_{B})\). * Calculate the session key \(SSK_{BA}=H(r_{b}\cdot ID_{B}\cdot N_{a}^{{}^{\prime}})\). * Send the parameters \(E_{yb-xb}(ID_{B})\), \(Ebx\), \(Eby\), \(H_{b}\), \(TS_{b}\) to protocol entity A through an open channel. **UAV side (Protocol entity A) in Figure 4** 1. Decode the x-axis information of \(N_{b}\) to obtain \(N_{b-x}^{{}^{\prime}}=Ebx\oplus(y_{a}-x_{a})\). * Decode the y-axis information of \(N_{b}\) to obtain \(N_{b-y}^{{}^{\prime}}=Eby\oplus(y_{a}-x_{a})\). * By combining the above x- and y-axis information, we obtain \(N_{b}^{{}^{\prime}}=(N_{b-x^{\prime}}^{{}^{\prime}},N_{b-y}^{{}^{\prime}})\). * Decrypt the information using the symmetric decryption algorithm to obtain the ID of protocol entity A: \(ID_{B}^{{}^{\prime}}=D_{yb-xb}(E(ID_{B}))\).