Skip to content

Repository files navigation

🚀 Post-Quantum Cryptography Optimization: CRYSTALS-Dilithium for Resource-Constrained Devices

This project demonstrates the optimization of the post-quantum signature scheme CRYSTALS-Dilithium (Dilithium-II) for resource-constrained devices such as IoT nodes and embedded systems. It includes:

✅ An optimized implementation of Dilithium-II leveraging memory management and vectorized operations. ✅ A benchmarking suite comparing the optimized Dilithium-II against the standard Dilithium-II, Dilithium-III, Dilithium-V, and Falcon-512. ✅ Python visualization tools for analyzing key generation, signing, and verification performance.


📂 Features

  • Optimized Dilithium-II for better performance on constrained devices.
  • 📊 Performance benchmarking for lattice-based signature schemes (Dilithium II/III/V, Falcon).
  • 📈 Grouped bar chart visualization for direct comparison.
  • 📄 CSV export for easy data analysis and reporting.
  • 🛡️ Uses liboqs for post-quantum cryptographic primitives.

🛠 Technologies Used

  • C (GCC) – Optimized implementation and benchmarking suite.
  • liboqs – Open Quantum Safe library for post-quantum cryptography.
  • Python 3 (Matplotlib, Pandas) – Data visualization and analysis.

📝 Project Structure

.
├── dilithium_optimized.c          # Optimized Dilithium-II implementation with benchmarking
├── results.csv                    # Benchmark results (auto-generated)
├── plot_results.py                # Python script for visualization
├── pqc_comparison.png             # Grouped bar chart (auto-generated)
├── README.md                      # Project documentation

🚀 Getting Started

📥 Prerequisites

  • GCC or Clang compiler with C99 support
  • liboqs installed (installation guide)
  • Python 3 with matplotlib and pandas
pip install matplotlib pandas

🛠 Build and Run

  1. Compile the C code:

    gcc dilithium_optimized.c -loqs -o dilithium_optimized
  2. Run benchmarks:

    ./dilithium_optimized

    This generates results.csv.

  3. Visualize results:

    python3 plot_results.py

📜 License

This project is licensed under the MIT License.


🤝 Acknowledgements

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages