No description
  • Rust 64.2%
  • D 35.6%
  • Makefile 0.2%
Find a file
2026-01-13 10:21:00 -05:00
diffie_hellman Changed dependencies and restructured project. 2025-07-17 17:26:38 -04:00
rsa Cleaned up project structure for the future. 2025-07-16 16:40:33 -04:00
target Changed dependencies and restructured project. 2025-07-17 17:26:38 -04:00
Cargo.lock Changed dependencies and restructured project. 2025-07-17 17:26:38 -04:00
Cargo.toml Cleaned up project structure for the future. 2025-07-16 16:40:33 -04:00
README.md Update README.md 2026-01-13 10:21:00 -05:00

NOTE: I'm not currently working on this project and I don't know if I plan on continuing it.

Rust Crypto Suite

Background and Overview

Since I began my research in mathematical cryptography, I have been using Python with SageMath for all of my code, including my personal projects. However, lower-level code is often faster and easier to control, and memory safety is very important in crypto cybersecurity applications. Thus, I've decided to dedicate myself to mastering Rust and switching most of my work to the language for the future.

In order to do so, I intend to rewrite all of the crypto I've implemented or was planning to implement in Python with SageMath and Numpy in Rust, using standard libraries and familiarizing myself with the language. I expect this to take me a while because I am relatively unfamiliar with Rust as a language, and because many things that can be simply implemented in Python take longer and are generally more difficult to write in Rust. An outline of the projects I intend to complete is available below.

Planned Implementations

  1. rsa: A basic implementation of RSA PKE.
  2. diffie_hellman: The Diffe-Hellman key exchange with elliptic curves.
  3. massey_omura: Massey-Omura encryption with elliptic curves.
  4. el_gamal_sig: El Gamal signatures with elliptic curves.
  5. aes_ecb: The AES-256 block cipher designed to operate in electronic codebook mode.
  6. csidh: A standard implementation of the CSIDH "post-quantum" cryptographic protocol.
  7. kyber_pke and kyber_kem: The CRYSTALS-Kyber lattice-based public key encryption scheme and key encapsulation modules.
  8. sntrup761x25519: A modern post-quantum key exchange used by OpenSSL.