Expand description

Discrete Logarithm Solver

Build Crate.io codecov

Fast discrete logarithm solver in Rust.

The code is based on the sympy implementation and translated to Rust.

License

Licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Enums

  • Discrete logarithm error

Functions

  • Compute the discrete logarithm of a in base b modulo n (smallest non-negative integer x where b**x = a (mod n)).
  • Pohlig-Hellman algorithm for computing the discrete logarithm of a in base b modulo n (smallest non-negative integer x where b**x = a (mod n)).
  • Pollard’s Rho algorithm for computing the discrete logarithm of a in base b modulo n (smallest non-negative integer x where b**x = a (mod n)).
  • Baby-step giant-step algorithm for computing the discrete logarithm of a in base b modulo n (smallest non-negative integer x where b**x = a (mod n)).
  • Trial multiplication algorithm for computing the discrete logarithm of a in base b modulo n (smallest non-negative integer x where b**x = a (mod n)).
  • Compute the discrete logarithm of a in base b modulo n (smallest non-negative integer x where b**x = a (mod n)).
  • Compute the discrete logarithm of a in base b modulo n (smallest non-negative integer x where b**x = a (mod n)).
  • Returns the order of a modulo n.