A pure Rust implementation of the NTRU cryptosystem, built entirely from the ground-up.
By Alex Khosrowshahi and Tanish Makadia; originally created for the CSCI 1680 (Computer Networks) final project at Brown University. Meant to be one part of a larger post-quantum onion-routing endeavor, it ended up a journey of its own.
Our NTRU implementation as of now (updated 12/22/2024) still has a fair way to go from a full-scope NTRU crate like previous iterations such as libntru and ntrust-native. Mainly, we want to verify correctness with various bit security margins and expand our parameters/increase performance.
The current implementation is also limited to the encoding set of character values between 0 and 242. We hope to change this soon, but this limit was set for the limited scope of our final project.
- Allow parameter changes for 128, 192, 256 bit security margins
- Implement encoding for larger character sets
- Improve performance of key generation(!), encryption, decryption.