Search results
Results from the WOW.Com Content Network
Modular exponentiation can be performed with a negative exponent e by finding the modular multiplicative inverse d of b modulo m using the extended Euclidean algorithm. That is: c = b e mod m = d −e mod m, where e < 0 and b ⋅ d ≡ 1 (mod m). Modular exponentiation is efficient to compute, even for very large integers.
The modular inverse of aR mod N is REDC((aR mod N) −1 (R 3 mod N)). Modular exponentiation can be done using exponentiation by squaring by initializing the initial product to the Montgomery representation of 1, that is, to R mod N, and by replacing the multiply and square steps by Montgomery multiplies.
The first step is relatively slow but only needs to be done once. Modular multiplicative inverses are used to obtain a solution of a system of linear congruences that is guaranteed by the Chinese Remainder Theorem. For example, the system X ≡ 4 (mod 5) X ≡ 4 (mod 7) X ≡ 6 (mod 11) has common solutions since 5,7 and 11 are pairwise coprime ...
Regardless of the specific algorithm used, this operation is called modular exponentiation. For example, consider Z 17 ×. To compute 3 4 in this group, compute 3 4 = 81, and then divide 81 by 17, obtaining a remainder of 13. Thus 3 4 = 13 in the group Z 17 ×. The discrete logarithm is just the inverse operation.
The exponent of the group, that is, the least common multiple of the orders in the cyclic groups, is given by the Carmichael function (sequence A002322 in the OEIS). In other words, λ ( n ) {\displaystyle \lambda (n)} is the smallest number such that for each a coprime to n , a λ ( n ) ≡ 1 ( mod n ) {\displaystyle a^{\lambda (n)}\equiv 1 ...
The Tonelli–Shanks algorithm (referred to by Shanks as the RESSOL algorithm) is used in modular arithmetic to solve for r in a congruence of the form r 2 ≡ n (mod p), where p is a prime: that is, to find a square root of n modulo p.
Exponentiation with Montgomery reduction O ( M ( n ) k ) {\displaystyle O(M(n)\,k)} On stronger computational models, specifically a pointer machine and consequently also a unit-cost random-access machine it is possible to multiply two n -bit numbers in time O ( n ).
This is widely used in modular arithmetic, because this allows reducing modular exponentiation with large exponents to exponents smaller than n. Euler's theorem is used with n not prime in public-key cryptography , specifically in the RSA cryptosystem , typically in the following way: [ 10 ] if y = x e ( mod n ) , {\displaystyle y=x^{e}{\pmod ...