Skip to content

This is a partial implementation of the Module-Lattice Digital-Signature Algorithm created according to FIPS 204. This was created as a final project for a college class so it's likely insecure and shouldn't be used.

Notifications You must be signed in to change notification settings

traysoncombs/ML-DSA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quick Start

  1. Everything can be built using the command cargo build --release
  2. The built binary can be found at target/release/ml-dsa.exe

Run the binary in a terminal to show the help menu.

Testing

All of the unit and integration tests can be run with the command cargo test.

Project Organization

  • src/
    • lib.rs – This file contains all structures and functionality to generate keys/signatures
    • bitvec.rs – This file contains a bit vector implementation
    • utils.rs – This file primarily contains utility functions as well as structs related to testing
    • main.rs – This file contains the argument parsing and parameter set testing logic that allows for a user to interact with the application via the cli.
    • polynomial/ – This directory contains structures and functionality related to polynomials, polynomial vectors, and polynomial matrices.
      • serialization.rs – This file contains functions to serialize polynomials and related structures into bytes.
      • sampling.rs – This file contains functions for sampling polynomials
      • round.rs – This file contains functions for rounding polynomials
      • poly*.rs – These files contain structures and functionality related to polynomials and polynomial based structures. All polynomial related arithmetic is implemented within these files.
  • tests/
    • setup.rs - Contains some utility functions for integration test
    • correctness.rs - Contains the integration tests that ensure everything is functionally correct
  • data/- This directory contains all the test cases for integration and unit tests.

About

This is a partial implementation of the Module-Lattice Digital-Signature Algorithm created according to FIPS 204. This was created as a final project for a college class so it's likely insecure and shouldn't be used.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages