The goal of this project is to re-implement the RSA hashing algorithm in Rust, separately from the existing crate. We also plan to implement secure (ish) pseudo-random number generation, for use with the hashing algorithm. If time so permits, we would also like to create some visualization of the steps the algorithm takes when operating on the data being hashed.
- Implement pseudo-random number generation using linear congruential method (recursively)
- Check randomness using frequency test
- Check randomness using chi squared test?
- Bitmap visualization of random numbers? (as seen here)
- Implement prime number generation
- Using Sieve of Eratosthenes
- Using Sieve of Atkin (wikipedia, geeksforgeeks)
-
Look at number field sieves? - Update: Look at methods specific to cryptography here
- Implement RSA Encryption algorithm
- Using our RNG
-
using system RNG (e.g. /dev/urandom) -
Using Rustrand
crate
-
Test RSA Implementation-
Compare performance (as in speed) with Rustrsa
crate -
Test security of implementation using NIST RSA2VS? (from FIPS 186-4)
-
-
Make GUI? - Make CLI interface ❗
- File IO stuff ❗
- Read/write keys from/to file ❗
- Read/write cipher from/to file ❗
-
Encrypt files?