Welcome to the Rust implementation of the General Number Field Sieve (GNFS), the most advanced classical algorithm used for factoring large integers. This project aims to provide a robust and efficient implementation of GNFS, leveraging the power and safety of Rust.
This project is inspired by AdamWhiteHat's GNFS implementation and a deep interest in cryptography. It is intended for educational and research purposes, focusing on continuous improvement and validation of the implementation.
Ensure you have the following installed:
- Rust (latest stable version) https://www.rust-lang.org/
- Cargo (Rust's package manager and build system)
You can install Rust and Cargo using rustup, which is the recommended toolchain manager for Rust projects.
Clone the repository:
git clone https://github.com/danielrcurtis/gnfs
cd rust-gnfs
cargo build --release
cargo test
We welcome contributions from the community, whether they are bug fixes, improvements, or new features. Here's how you can contribute:
Check out the Issues tab on GitHub to see a list of known issues and feature requests.
Feel free to submit new issues for bugs, enhancements, or feature requests.
Use issues to discuss potential changes before starting work on a pull request.
Fork the repository.
Create a new branch for each feature or fix.
Develop your feature or fix, adhering to the existing code style.
Write or adapt tests as necessary.
Ensure your code passes all tests.
Submit a pull request targeting the main branch of the original repository.
Keep your code clean and well-commented.
Make sure to document new code accordingly.
Follow Rust's idiomatic practices.
The project roadmap is tracked through GitHub issues. We use issues to outline future plans and track ongoing progress.
This project is licensed under MIT License. See the LICENSE file in the repository for full license text.