An independent open-source research project on Post-Quantum Cryptography (PQC) in Go. This library provides clean, well-structured implementation of NIST standardized PQC algorithms, designed as a software service layer for learning, experimentation, integration, and future hardware acceleration research.
- Written directly from official NIST specifications. (FIPS-203, FIPS-204, FIPS-202).
- Independent research implementation of NIST-standardized Post-Quantum Cryptography.
- Uses CIRCL (Cloudflare Interoperable, Reusable Cryptographic Library) as a trusted reference for validation.
- Rigorously validated against official NIST KAT (Known Answers Test) test vectors.
- Clean, idiomatic Go code with strong emphasis on readability and correctness.
- Practical CLI tool
flincluded for quick demonstration and usage.
ForgeLattice is an experimental research library.
- The code is validated with NIST KAT vectors but has NOT undergone formal cryptographic review, side-channel analysis, or constant-time verification.
- It is not recommended for use in any production, security-critical infrastructures or real world deployments.
- This library is provided strictly for educational, learning and research purpose only.
Use it at your own risk.
go get github.com/Deeptiman/forgelattice
| Algorithm | NIST Standard | Security Levels | Module Path |
|---|---|---|---|
| CRYSTALS-Kyber | FIPS-203 (ML-KEM) | 512, 768, 1024 | crypto/kem/kyber |
| CRYSTALS-Dilithium | FIPS-204 (ML-DSA) | 44, 65, 87 (ML-DSA-44/65/87) | crypto/sign/dilithium |
| SHA-3 / Keccak | FIPS-202 | SHAKE128, SHAKE256 | crypto/sha3 |
A simple command line tool to demonstrate practical usage of the library.
Build the CLI
make build-clifl Available Commands
./fl help git:dev-go-version*
fl (ForgeLattice) -- Post-Quantum Cryptography Command Line Tool
Usage:
[flags]
[command]
Available Commands:
completion Generate the autocompletion script for the specified shell
dsa CRYSTALS-Dilithium (ML-DSA) operations
help Help about any command
kem CRYSTALS-Kyber (ML-KEM) operations
Flags:
-h, --help help for this command
Use " [command] --help" for more information about a command.kem Available Commands
./fl help kem git:dev-go-version*
CRYSTALS-Kyber (ML-KEM) operations
Usage:
kem [command]
Available Commands:
decaps Kyber Decapsulation Mechanism (Recover shared secret)
encaps Kyber Key Encapsulation Mechanism.
keygen Generate a Kyber keypair
Flags:
-h, --help help for kem
Use " kem [command] --help" for more information about a command.dsa Available Commands
./fl help dsa git:dev-go-version*
CRYSTALS-Dilithium (ML-DSA) operations
Usage:
dsa [command]
Available Commands:
keygen Generate a Dilithium keypair
sign Sign a message using Dilithium
verify Verify a signature using Dilithium
Flags:
-h, --help help for dsa
Use " dsa [command] --help" for more information about a command.CRYSTALS-Kyber (ML-KEM) operations
CRYSTALS-Dilithium (ML-DSA) operations
You can each module separately by running the package-level go-test
Test SHA3 / Keccak
make test-sha3
Test Kyber (ML-KEM)
make test-kem
Test Dilithium (ML-DSA)
make test-dsa
Test all crypto module
make test-all
This project is licensed under the MIT License