Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request: Integration of ML-KEM for Quantum-Secure Message Exchange
Overview
This pull request introduces the Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM) into our cryptographic library. This update enhances the security of our message exchange systems against quantum computing threats. The integration includes implementations for key generation, encryption, and decryption functionalities adhering to the emerging standards outlined in the draft FIPS 203.
Changes
kem_keygen
): Implementation of a method to generate encryption and decryption keys based on ML-KEM specifications. This method includes the generation of a random 32-byte nonce used in cryptographic processes.kem_encrypt
): Addition of functionality to encrypt messages using the generated keys and nonce, integrating symmetric key derivation using KMAC_XOF for enhanced message confidentiality and integrity.kem_decrypt
): Development of the decryption process to reverse the encryption steps, ensuring message integrity and authenticity are verified upon reception.Rationale
The adoption of ML-KEM is motivated by the necessity to prepare our cryptographic solutions for the era of quantum computing. Traditional cryptographic methods, such as RSA and ECC, are vulnerable to quantum attacks. ML-KEM offers a quantum-resistant alternative, basing its security on the hardness of lattice problems, which are considered infeasible for quantum computers to solve efficiently.
Usage:
Encrypting a message with ML-KEM is simple: