## 3 A Security-Enhanced Authenticated Key-Agreement Protocol: SE-UAVAKA
### SE-UAVAKA Registration Phase  
This section describes the execution of the protocol registration phase in detail. The UAV and matching ground station complete pairwise registration over the public channel with the participation of the key-generation center. Each protocol instance encrypts and sends the ID information to the key-generation center through the public channel. The key-generation center calculates the long-term key of each protocol instance, encrypts it, and sends it to each protocol instance via the public channel. The individual phases of the registration of protocol entities are shown in Figure 2.  
As shown in Figure 2, the detailed registration steps of protocol entities A and B are as follows (A1 represents the first step performed by entity A):  
**UAV side (hereinafter referred to as protocol entity A in Figure 2)**:  
1. Use the random number generator described in the initialization phase to generate a random number \(s_{a}\in Z_{q}^{*}\) (where \(Z_{q}^{*}\) represents a set of positive integers), and use a one-way hash function to calculate \(x_{a}=H(ID_{A}||s_{a})\) (where \(||\) is a connector, indicating that two elements are concatenated together);
2. Using the scalar multiplication of elliptic curves, compute \(XAP=x_{a}\cdot P\);
3. Calculate the symmetric key for the temporary encryption \(kas=x_{a}\cdot PK\) (the global public key generated during the initialization phase);
4. Use symmetric encryption technology to encrypt the identities \(ID_{A}\) and \(x_{a}\) to obtain \(E_{kas}(ID_{A},x_{a})\) (for example, when using the AES-128 algorithm, the string formed by concatenating \(ID_{A}\) and \(x_{a}\) is used as the parameter to be encrypted, and _kas_ is used as the symmetric encryption key for calculation);
* Send \(E_{kas}(ID_{A},x_{a})\) and \(XAP\) to the key-generation center RC. **Key-generation center side in Figure 2:** (a) Combine the global private key \(sk\) and \(XAP\) issued by protocol instance B and use the scalar multiplication operation of the elliptic curve to compute \(ksa=sk\cdot XAP\) (because \(XAP=x_{a}\cdot P\), \(ksa=sk\cdot x_{a}\cdot P=x_{a}\cdot sk\cdot P\); therefore, \(ksa=x_{a}\cdot PK=ksa\));
* Use \(ksa\) for decryption to obtain the ID and \(x_{a}\) of protocol unit A: \(ID_{A}\), \(x_{a}=D_{ksa}(E_{kas}(ID_{A},x_{a}))\) and then wait for the message from B.  
**Ground station side in Figure 2:**  
* Use the random number generator described in the initialization phase to generate a random number \(s_{b}\in Z_{q}^{*}\) and use a one-way hash function to calculate \(x_{b}=H(ID_{B}||s_{b})\);
* Using the scalar multiplication of elliptic curves, compute \(XBP=x_{b}\cdot P\);
* Calculate the symmetric key for the temporary encryption \(kbs=x_{b}\cdot PK\);
* Encrypt identity \(ID_{B}\) and \(x_{b}\) using symmetric encryption to obtain \(E_{kbs}(ID_{B},x_{b})\);
* Send \(E_{kbs}(ID_{B},x_{b})\) and \(XBP\) to the key-generation center RC.  
**Key generation center side in Figure 2:**  
* Combine the global private key \(sk\) and \(XBP\) issued by protocol instance B and use the scalar multiplication operation of the elliptic curve to compute \(ksb=sk\cdot XBP\) (because \(XBP=x_{b}\cdot P\), \(ksb=sk\cdot x_{b}\cdot P=x_{b}\cdot sk\cdot P\); therefore, \(ksb=x_{b}\cdot PK=kbs\));  
Figure 2: A and B registration phase and detailed execution process.  
* Use _ksb_ for decryption to obtain the ID and \(x_{b}\) of protocol unit A: \(ID_{B}\), \(x_{b}=D_{ksb}(E_{ksb}(ID_{B},x_{b}))\) and then wait for the message from B;
* Calculate \(y_{a}=H(ID_{A}||ID_{B})+x_{a}\) and calculate \(y_{b}=H(ID_{A}||ID_{B})+x_{b}\);
* \(\text{Encrypt}\,y_{a},y_{b}\) using _ksa_ and _ksb_, respectively, and send them to \(A\) and \(B\). **UAV side in Figure 2:*
* \(\text{Decrypt}\,y_{a}=D_{ksa}(E_{ksa}(y_{a}))\) with _kas_;
* Store \(y_{a}\). **Ground Station side in Figure 2:*
* \(\text{Decrypt}\,y_{b}=D_{ksb}(E_{ksb}(y_{b}))\) using _ksb_;
* Store \(y_{b}\).