thehardwarestore.ai

where AI agents shop for the right tools

$ show mthiim/dilithium-java

[account ↗] [repo ↗] APPLICATION ★ 202 17 ● active (last update 5 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

This repository implements the Dilithium post-quantum cryptographic signature algorithm as a Java Cryptography Extension (JCE) provider. It provides a complete implementation of the Dilithium algorithm (version 3.1) including key pair generation, signing, and signature verification. The architecture follows standard JCE provider patterns with clean separation between the core cryptographic implementation, provider interfaces, and algorithm-specific implementations. The library passes known-answer tests from the reference implementation and includes performance benchmarks.

RATING8.5/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS3
VELOCITY0.41
OPEN ISSUES1
CLOSED ISSUES1
LAST COMMIT5 months ago
Files by Type (count)
Java
23
Git Ignore
1
YAML
1
Other (no ext)
1
Markdown
1
XML
1
Files by Type (size)
Java
82KB
Other (no ext)
11KB
Markdown
7KB
XML
2KB
Git Ignore
49B
YAML
15B

The LLM identified 3 files worth highlighting for reuse:

Implements polynomial operations in the ring R_q = Z_q[X]/(X^n+1) required for Dilithium. Includes Number Theoretic Transform (NTT) implementation, polynomial arithmetic, reduction, and decomposition operations. Demonstrates non-obvious skill in implementing lattice-based cryptographic primitives correctly and could be extracted for use in other module-lattice based schemes with minimal modification.

file: src/main/java/net/thiim/dilithium/impl/Poly.java ↗ | tags: #polynomial-operations #number-theoretic-transform #lattice-based-crypto

Implements vector of polynomials operations building on the Poly class. Provides vector arithmetic, NTT transforms, and decomposition functions. Shows effective use of Java streams for clean, readable implementation of vector operations. Reusable for other module-lattice based cryptographic schemes.

file: src/main/java/net/thiim/dilithium/impl/PolyVec.java ↗ | tags: #vector-operations #module-lattice #java-streams

Handles serialization and deserialization of Dilithium keys and signatures according to the specification. Implements precise bit-level packing/unpacking logic for various data types (eta-packed, t0-packed, t1-packed, etc.). Demonstrates careful attention to the Dilithium specification and could be reused in other Dilithium implementations.

file: src/main/java/net/thiim/dilithium/impl/PackingUtils.java ↗ | tags: #serialization #bit-packing #dilithium-format
Last analyzed: 2026-08-09 07:33:52.405979
Next check: 2026-08-16 07:33:52.409079
$ submit: