Hardware-accelerated implementations of the Number Theoretic Transform (NTT) using systolic arrays for applications in post-quantum cryptography, particularly lattice-based protocols like Kyber and Dilithium.
This project explores 1D and 2D systolic array architectures designed in Verilog and validated through simulation and waveform analysis.
The NTT is a modular analog of the Fast Fourier Transform (FFT). It transforms an input vector:
to an output vector:
Where:
- (
$\omega$ ) is a primitive ( n )-th root of unity modulo a prime ( p ) - All operations are done in (
$\mathbb{Z}_p$ ), ensuring exact arithmetic for cryptographic reliability
| File | Description |
|---|---|
NTT[1-4].v |
Verilog module implementing NTT using 1D systolic array logic |
NTT[5].v |
Verilog module implementing NTT using 2D systolic array logic |
Makefile |
Simulation automation script for building and testing with a simulator like ModelSim or Icarus Verilog |
Final-Report.pdf |
Full research report detailing theory, design space, architecture schematics, and methodology followed |
- Verilog simulator: Icarus Verilog
- GNU Make
make