# A Practical Implementation of Post-Quantum Cryptography for Secure Wireless Communication +
## 3 PQC-Based PKE Protocols for Using the PQC Algorithm
### Pqc-AES Hybrid PKE Protocol  
To enhance security and performance, especially against evolving threats, we introduce a PQC-AES hybrid PKE protocol. This approach combines the quantum resistance of PQC with the efficiency and established security of AES. In this PQC-AES hybrid PKE protocol, as shown in Algorithm 2, we build upon the key exchange process already outlined for the PQC standalone PKE protocol. Following a successful and authenticated key exchange between the client and the server using the steps defined in Algorithm 1 (lines 1-24), both parties transition to utilizing AES encryption for subsequent data transfer. This approach leverages the best attributes of both cryptographic approaches: the quantum-resistant security offered by PQC algorithms during the initial key establishment and the speed and efficiency of AES for the bulk encryption of application data. After the successful establishment and confirmation of shared secrets \(ss_{c}\) and \(ss_{s}\), both the client and the server independently derive AES encryption and MAC keys. A KDF is applied to the concatenation of these shared secrets, along with a unique salt and information string, using the HMAC-based extract-and-expand hash-based message authentication code key derivation function (HKDF) with SHA-256. This process yields two essential keys: \(K_{1}\), designated for AES encryption, and \(K_{2}\), designated for HMAC-based message authentication (Algorithm 2, lines 5-6). For data transfer from the client to the server, the client begins by generating a unique initialization vector, \(iv_{c}\), and a sequence number, \(seq_{c}\), to provide replay protection. Subsequently, the data, \(data_{c}\), is encrypted using AES with the derived key, \(K_{1}\), and the initialization vector, \(iv_{c}\), and incorporating the sequence number, \(seq_{c}\), to form the ciphertext, \(ct_{data_{c}}\). Following this, the client computes a MAC over the ciphertext, \(ct_{data_{c}}\), and the sequence number, \(seq_{c}\), using HMAC-SHA-256 with the authentication key, \(K_{2}\), resulting in \(mac_{data_{c}}\). The client then sends the initialization vector, \(iv_{c}\); the ciphertext, \(ct_{data_{c}}\); and the MAC, \(mac_{data_{c}}\) to the server (Algorithm 2, lines 7-12). Upon receiving this data, the server begins by verifying the integrity and authenticity of the data. It computes its own MAC over the received ciphertext, \(ct_{data_{c}}\), and the sequence number, \(seq_{c}\), using the same HMAC-SHA-256 algorithm and the authentication key \(K_{2}\), generating a server-side MAC. The server then compares the received client-side MAC, \(mac_{data_{c}}\), with its locally computed MAC. If these MACs match, the server proceeds with decryption, ensuring that the received data has not been tampered with during transmission and that it originates from the authenticated client. The server decrypts the ciphertext, \(ct_{data_{c}}\), using AES with the key, \(K_{1}\), and the initialization vector, \(iv_{c}\), and after decryption, it also verifies the sequence number against previously received sequence numbers to detect any replay attacks. If the sequence number is valid and the decryption is successful, the server processes the received data, \(data_{c}^{\prime}\); otherwise, the server rejects the data to prevent potential security breaches (Algorithm 2, lines 13-23). Similarly, the procedure is used for secure data transfer from the server to the client. The server also generates a unique \(iv_{S}\) and uses \(K_{1}\) to encrypt the data while applying HMAC to ensure authentication of the server by the client. The client also performs decryption in a similar way to ensure that the data is from the intended server (Algorithm 2, lines 24-40). By combining the strengths of both PQC and AES, the protocol provides resilience against both classical and quantum attacks. Even if the PQC algorithm used for key exchange were compromised, AES encryption would still provide a layer of security.