This undergraduate senior project implements and accelerates Kyber768, a lattice-based post-quantum Key Encapsulation Mechanism (KEM) selected by NIST, using FPGA hardware
The system is written in SystemVerilog and deployed on the Arty S7-50 FPGA board. It focuses on accelerating core cryptographic operations like encryption and decryption
- Implement Kyber768 cryptographic primitives in hardware
- Optimize latency and throughput
- Analyze FPGA resource utilization
Kyber is a post-quantum key exchange mechanism. Its purpose is to allow two parties to securely agree on a shared secret key, even in the presence of a future quantum computer. Kyber is designed to be secure against quantum attacks.
Kyber does not encrypt data directly. Instead, it is used to establish a shared secret, which can then be used with fast symmetric encryption (e.g., AES) to protect communication.
- Results :
- Public key
- Secret key (kept private)
- Generates a random shared secret
- Encrypt (encapsulate) the message using public key and noise into a ciphertext
- Uses its secret key to recover the "shared secret" from the ciphertext
- Compare if the result of the shared secret is the same as the sender's shared secret
- Result : Secure communication between 2 parties against future quantum attacks
- Modes : Encryption, Decryption
- Encryption : Compress ciphertext to get ciphertext with lower coefficient bits
- Decryption : Compress Polynomial back to plain text message
