Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Modular Exponential
Description
gcd_extended
The
gcd_extended
function implements the Extended Euclidean Algorithm, which is used to find the greatest common divisor (GCD) of two integers, as well as the coefficients of Bézout's identity. This is particularly useful in number theory and cryptography, especially for finding the modular inverse of an integer. Our implementation uses a recursive approach to calculate these values.mod_inverse
The
mod_inverse
function utilizes thegcd_extended
function to compute the modular multiplicative inverse of an integerb
modulom
. The modular inverse is an integerx
such that(b * x) % m = 1
. This function is essential for operations in modular arithmetic where division is required. The function will panic if the inverse does not exist, which occurs whenb
andm
are not coprime.modular_exponential
The
modular_exponential
function performs modular exponentiation which is a type of exponentiation performed over a modulus. It is used to efficiently computebase^power % modulus
for large integers. This is a fundamental operation in many cryptographic algorithms. Our function handles both positive and negative exponents, using themod_inverse
function for negative exponents to compute the result.Type of change
Checklist:
cargo clippy --all -- -D warnings
just before my last commit and fixed any issue that was found.cargo fmt
just before my last commit.cargo test
just before my last commit and all tests passed.mod.rs
file within its own folder, and in any parent folder(s).DIRECTORY.md
with the correct link.COUNTRIBUTING.md
and my code follows its guidelines.