## 2 Literature Review
### CRYSTALS-Dilithium  
The CRYSTALS-Dilithium scheme, a robust lattice-based digital signature scheme, stands as a stalwart guardian against the potential threats posed by quantum computers. In the evolving landscape of post-quantum cryptography, CRYSTALS-Dilithium shines as a beacon of security, ensuring the integrity and authenticity of digital signatures, even in the face of quantum advancements [40]. The practicality of CRYSTALS-Dilithium extends beyond theoretical constructs, ensuring that its security benefits are not just conceptual but also accessible and applicable in real-world scenarios [41]. Rigorous analysis and extensive proofs confirm the strong security of this scheme, reflecting the careful work of cryptographic researchers [42]. The design of CRYSTALS-Dilithium meets the highest standards of verifiable security, showing its trustworthiness and suitability for protecting sensitive digital transactions and communications. Notably, CRYSTALS-Dilithium has earned its prominence by being selected as a finalist in the NIST Post-Quantum Cryptography Standardization process [34]. This recognition highlights the scheme's significance in the global cryptographic community and its potential to shape the future of secure digital communication. With its lattice-based architecture, flexibility in design, and practical applicability, CRYSTALS-Dilithium charts a strategic course in advancing secure digital signatures, effectively enhancing them against the looming quantum challenges anticipated with the widespread adoption of QKD in our networks. CRYSTALS-Dilithium stands as an NIST finalist that offers various security levels designed for different requirements [34]. The scheme offers security levels based on NIST standards, including levels 2, 3, and 5. Each security level corresponds to specific parameter sets, ensuring a balance between security and computational efficiency as can be seen in Table 4.  
Algorithms 4-6 provide an excellent foundation for the crucial CRYSTALS-Dilithium scheme in the context of the article that was submitted to NIST. These algorithms serve as the foundation for the main methods of cryptography and play a crucial part in ensuring the security of communication. **Key generation:** Key generation is responsible for generating the cryptographic keys which create the secret key (\(sk\)) for signature generation and the public key (\(pk\)) for signature verification. This process begins with the utilization of seeds \(\rho\) and \(\rho^{\prime}\), alongside a key, to expand a public matrix \(A\) using the AES algorithm. This matrix \(A\) is structured as a \((k\times\ell)\) matrix and is composed of polynomials within the ring \(R_{q}\) and \(\zeta=256\). The seeds \(\rho^{\prime}\) and a nonce are employed to generate vectors \(s_{1}\) and \(s_{2}\), with \(s_{1}\) being of size \(l\) and \(s_{2}\) being of size \(k\). The multiplication of matrix \(A\) and vector \(s_{1}\) is achieved through the forward number theoretic transform (NTT). The process iterates for the size of \(s_{2}\) (or \(k\) times), wherein each iteration involves the multiplication of a single row of \(A\) and \(s_{1}\), with the result stored in \(t\). The matrix multiplication concludes by adding \(s_{2}\) to \(t\), followed by the reduction of the coefficients of \(t\). Subsequently, \(t_{0}\) and \(t_{1}\) are separated from \(t\), and a combination of \(\rho\) and \(t_{1}\) is utilized to form \(pk\). The function shake256 generates an output \(tr\) based on the input \(pk\). The formation of \(sk\) involves the amalgamation of \(\rho\), the key, \(tr\), \(s_{1}\), \(s_{2}\), and \(t_{0}\). Notably, the key generation process yields both \(sk\) and \(pk\) at the same time.