## 2 Literature Review
### CRYSTALS-Kyber  
CRYSTALS-Kyber is an advanced lattice-based key exchange protocol designed to ensure the integrity of transmitted information. At its core, CRYSTALS-Kyber leverages the module learning with errors (M-LWE) technique, an evolution of the original learning with errors (LWE) problem [35]. This technique enhances computational efficiency while maintaining cryptographic robustness, making CRYSTALS-Kyber a reliable solution for secure key exchange in real-world scenarios [36]. The M-LWE technique is central to the efficacy of CRYSTALS-Kyber. It optimizes the LWE problem, balancing computational efficiency and cryptographic strength [37]. This optimization ensures the practicality of lattice-based cryptography in real-world applications [36]. CRYSTALS-Kyber moves beyond theoretical constructs by providing a key encapsulation mechanism (KEM). This mechanism enhances the protocol's versatility and utility by enabling secure key establishment through the encapsulation of a symmetric key with a public key. This encapsulated key can be securely exchanged between parties, forming the foundation for robust communication encryption [36]. \begin{table}
\begin{tabular}{c c} \hline \hline
**Step** & **Description** \\ \hline
1. Key Sifting & Bob’s sent bases \\
2. Error Correction & Correct basis exchange \\
2.1. QBER Calculation & Calculate QBER \\
2.2. Threshold Check & Check QBER threshold \\
3. Key Reconciliation & Correct errors \\
4. Privacy Amplification & Enhance key security \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Security of BB84 protocol classic channel. As described in [38] work, a double-NTRU (D-NTRU)-based KEM with IND-CCA2 security highlights the importance of parameter considerations. The approval of CRYSTALS-Kyber, an NIST Post-Quantum Cryptography finalist with security levels Kyber-512, Kyber-768, and Kyber-1024, complies with this emphasis on parameters [34; 35]. The specified parameter sets for Kyber, detailed in Table 3, determine values for \(n\), \(k\), \(q\), \(\eta\), \(d_{u}\), \(d_{v}\) (control compression of \((\mathbf{u},v)\)), and \(\delta\) (the chance of decryption producing an error), ensuring diverse levels of security and efficiency. Using CRYSTALS-Kyber for secure key exchange, especially for AES-256 encryption [39], is sensible because of the rising vulnerability of lower AES levels to new algorithms like Grover, which represent a risk. This key is for AES 256-bit encryption which ensures protection against emerging cryptographic threats, including those from quantum advancements. Algorithms 1-3 provide an overview of the algorithmic structure of the CRYSTALS-Kyber scheme. **Key generation:** The Kyber key generation process commences with the generation of random seeds \(\rho\) and \(\sigma\). Subsequently, a public matrix \(\mathbf{A}\) is sampled from a ring with dimension \(k\times k\). Random vectors \(\mathbf{s}\) and \(\mathbf{e}\) are then drawn from error distributions, contributing to the randomness and security of the key pair. The compressed vector \(\mathbf{t}\) is computed by compressing the matrix-vector product of \(\mathbf{A}\) and \(\mathbf{s}\) added to \(\mathbf{e}\), encapsulating essential information about the key pair. The public key \(pk\) is meticulously formed by combining the generated seeds and the compressed vector, while the secret key \(sk\) is simply the vector \(\mathbf{s}\), thereby completing the key generation process in a manner that ensures both the privacy and integrity of the cryptographic system. ```
\(\rho,\sigma\leftarrow\{0,1\}^{256}\) \(\mathbf{A}\sim R_{q}^{k\times k}:=\text{Sam}(\rho)\) \((\mathbf{s},\mathbf{e})\sim\rho_{q}^{k}\times\rho_{q}^{k}:=\text{Sam}(\sigma)\) \(\mathbf{t}:=\text{Compress}_{q}(\mathbf{A}\mathbf{s}+\mathbf{e})\) return\((pk:=(\rho,\mathbf{t}),sk:=\mathbf{s})\)
```  
**Algorithm 1** Crystal-Kyber key generation [35]. **CCAKEM encryption:** Kyber CCAKEM encryption takes a message \(m\) and generates a shared key \(K\) along with a ciphertext \(c\).