# A Practical Implementation of Post-Quantum Cryptography for Secure Wireless Communication +
## 6 Evaluation
### Experimental Settings  
In our implementation, we used the four use cases described in Section 4.1.1 (i.e., file transfer, chat, video streaming, and live streaming) and evaluated our protocols based on these cases. The experiment was conducted on two separate machines: one with an Intel(r) Core(tm) i7-10510U CPU, Mouse laptop (sourced: Osaka, Japan) running at a base frequency of 1.80 GHz \(\times\) 8 and 15.5 GiB of memory, running Ubuntu 20.04 LTS desktop, which served as the server; and another with an Intel(r) Core(tm) i7-10510U CPU, Mouse laptop (sourced: Osaka, Japan) running at a base frequency of 1.80 GHz \(\times\) 8 and 15.5 GiB of memory, running Ubuntu 20.04 LTS desktop, which was used as the client system. Table 1 presents the PC settings and the configurations of the systems used.  
Furthermore, the standardized algorithms selected by NIST were considered. These include the CRYSTALS-Kyber KEM algorithms--ML-KEM-512, ML-KEM-768, and ML-KEM-1024 (referred to as K512, K768, and K1024 hereafter)--as well as alternative KEM algorithms: BIKE (Round 4)--BIKE-L1, BIKE-L3, and BIKE-L5--and HQC-HQC-128, HQC-192, and HQC-256. For the signature algorithms, FALCON (Round 3)variants--FN-DSA-512 and FN-DSA-1024 (referred to as F512 and F1024 hereafter)--were also evaluated. To evaluate the proposed protocols and the impact of PQC algorithms on applications, we used client-server file transfer communication between two different systems using Python 3.8.10 socket programming with Transmission Control Protocol/User Datagram Protocol (TCP/UDP). The client encrypts a file and sends it to the server. TCP traffic generated from the socket programming was sent from the PC2 machine, acting as the client, and received by the PC1 machine, acting as the server. The traffic data was transmitted using IEEE 802.11n wireless LAN in the 2.4 GHz band. The traffic between the client and server was captured using Wireshark [30] from the server system. The experimental setup is shown in Figure 3.  
\begin{table}
\begin{tabular}{l l l} \hline \hline \multicolumn{1}{c}{**Parameter**} & \multicolumn{1}{c}{**Value**} \\  & **Server** & **Client** \\ \hline PC & Mouse Laptop & Mouse Laptop \\ \hline OS & Ubuntu 20.04 desktop & Ubuntu 20.04 desktop \\ \hline Network/Protocol & IEEE 802.11n & IEEE 802.11n \\ \hline Frequency band & 2.4 GHz & 2.4 GHz \\ \hline Maximum data rate & 144 Mbps & 144 Mbps \\ \hline Sniffer & Wireshark & Wireshark \\ \hline \hline \end{tabular}
\end{table}
Table 1: Configuration of client–server system.  
Additionally, we implemented conventional cryptography (i.e., AES-256) to compare and highlight the impact of the PQC algorithm on file transfer. The goal of our evaluation was to facilitate the practical use of the PQC algorithm in real applications and to determine the impact of using the PQC algorithm on the application use case and network. We considered two main evaluation scenarios: (i) the performance of the PQC algorithm to determine how fast it takes to generate PQC algorithm keys, complete the KEM process (encapsulation and decapsulation) (i.e., non-pre-distributed key agreement process), apply digital signatures (signing and verification), and perform encryption and decryption; and (ii) the impact of the PQC algorithm on file transfer applications to determine which PQC algorithm is more suitable for real-time applications without extensive overhead. For this, we measured the processing time for encrypted data transfer, throughput, and round-trip time (RTT).