fbpx
Wikipedia

Modular multiplicative inverse

In mathematics, particularly in the area of arithmetic, a modular multiplicative inverse of an integer a is an integer x such that the product ax is congruent to 1 with respect to the modulus m.[1] In the standard notation of modular arithmetic this congruence is written as

which is the shorthand way of writing the statement that m divides (evenly) the quantity ax − 1, or, put another way, the remainder after dividing ax by the integer m is 1. If a does have an inverse modulo m, then there are an infinite number of solutions of this congruence, which form a congruence class with respect to this modulus. Furthermore, any integer that is congruent to a (i.e., in a's congruence class) has any element of x's congruence class as a modular multiplicative inverse. Using the notation of to indicate the congruence class containing w, this can be expressed by saying that the modulo multiplicative inverse of the congruence class is the congruence class such that:

where the symbol denotes the multiplication of equivalence classes modulo m.[2] Written in this way, the analogy with the usual concept of a multiplicative inverse in the set of rational or real numbers is clearly represented, replacing the numbers by congruence classes and altering the binary operation appropriately.

As with the analogous operation on the real numbers, a fundamental use of this operation is in solving, when possible, linear congruences of the form

Finding modular multiplicative inverses also has practical applications in the field of cryptography, e.g. public-key cryptography and the RSA algorithm.[3][4][5] A benefit for the computer implementation of these applications is that there exists a very fast algorithm (the extended Euclidean algorithm) that can be used for the calculation of modular multiplicative inverses.

Modular arithmetic Edit

For a given positive integer m, two integers, a and b, are said to be congruent modulo m if m divides their difference. This binary relation is denoted by,

 

This is an equivalence relation on the set of integers, , and the equivalence classes are called congruence classes modulo m or residue classes modulo m. Let   denote the congruence class containing the integer a,[6] then

 

A linear congruence is a modular congruence of the form

 

Unlike linear equations over the reals, linear congruences may have zero, one or several solutions. If x is a solution of a linear congruence then every element in   is also a solution, so, when speaking of the number of solutions of a linear congruence we are referring to the number of different congruence classes that contain solutions.

If d is the greatest common divisor of a and m then the linear congruence axb (mod m) has solutions if and only if d divides b. If d divides b, then there are exactly d solutions.[7]

A modular multiplicative inverse of an integer a with respect to the modulus m is a solution of the linear congruence

 

The previous result says that a solution exists if and only if gcd(a, m) = 1, that is, a and m must be relatively prime (i.e. coprime). Furthermore, when this condition holds, there is exactly one solution, i.e., when it exists, a modular multiplicative inverse is unique:[8] If b and b' are both modular multiplicative inverses of a respect to the modulus m, then

 

therefore

 

If a ≡ 0 (mod m), then gcd(a, m) = a, and a won't even have a modular multiplicative inverse. Therefore, b ≡ b' (mod m).

When ax ≡ 1 (mod m) has a solution it is often denoted in this way −

 

but this can be considered an abuse of notation since it could be misinterpreted as the reciprocal of   (which, contrary to the modular multiplicative inverse, is not an integer except when a is 1 or -1). The notation would be proper if a is interpreted as a token standing for the congruence class  , as the multiplicative inverse of a congruence class is a congruence class with the multiplication defined in the next section.

Integers modulo m Edit

The congruence relation, modulo m, partitions the set of integers into m congruence classes. Operations of addition and multiplication can be defined on these m objects in the following way: To either add or multiply two congruence classes, first pick a representative (in any way) from each class, then perform the usual operation for integers on the two representatives and finally take the congruence class that the result of the integer operation lies in as the result of the operation on the congruence classes. In symbols, with   and   representing the operations on congruence classes, these definitions are

 

and

 

These operations are well-defined, meaning that the end result does not depend on the choices of representatives that were made to obtain the result.

The m congruence classes with these two defined operations form a ring, called the ring of integers modulo m. There are several notations used for these algebraic objects, most often   or  , but several elementary texts and application areas use a simplified notation   when confusion with other algebraic objects is unlikely.

The congruence classes of the integers modulo m were traditionally known as residue classes modulo m, reflecting the fact that all the elements of a congruence class have the same remainder (i.e., "residue") upon being divided by m. Any set of m integers selected so that each comes from a different congruence class modulo m is called a complete system of residues modulo m.[9] The division algorithm shows that the set of integers, {0, 1, 2, ..., m − 1} form a complete system of residues modulo m, known as the least residue system modulo m. In working with arithmetic problems it is sometimes more convenient to work with a complete system of residues and use the language of congruences while at other times the point of view of the congruence classes of the ring   is more useful.[10]

Multiplicative group of integers modulo m Edit

Not every element of a complete residue system modulo m has a modular multiplicative inverse, for instance, zero never does. After removing the elements of a complete residue system that are not relatively prime to m, what is left is called a reduced residue system, all of whose elements have modular multiplicative inverses. The number of elements in a reduced residue system is  , where   is the Euler totient function, i.e., the number of positive integers less than m that are relatively prime to m.

In a general ring with unity not every element has a multiplicative inverse and those that do are called units. As the product of two units is a unit, the units of a ring form a group, the group of units of the ring and often denoted by R× if R is the name of the ring. The group of units of the ring of integers modulo m is called the multiplicative group of integers modulo m, and it is isomorphic to a reduced residue system. In particular, it has order (size),  .

In the case that m is a prime, say p, then   and all the non-zero elements of   have multiplicative inverses, thus   is a finite field. In this case, the multiplicative group of integers modulo p form a cyclic group of order p − 1.

Example Edit

For any integer  , it's always the case that   is the modular multiplicative inverse of   with respect to the modulus  , since  . Examples are  ,  ,   and so on.

The following example uses the modulus 10: Two integers are congruent mod 10 if and only if their difference is divisible by 10, for instance

  since 10 divides 32 − 2 = 30, and
  since 10 divides 111 − 1 = 110.

Some of the ten congruence classes with respect to this modulus are:

 
 
  and
 

The linear congruence 4x ≡ 5 (mod 10) has no solutions since the integers that are congruent to 5 (i.e., those in  ) are all odd while 4x is always even. However, the linear congruence 4x ≡ 6 (mod 10) has two solutions, namely, x = 4 and x = 9. The gcd(4, 10) = 2 and 2 does not divide 5, but does divide 6.

Since gcd(3, 10) = 1, the linear congruence 3x ≡ 1 (mod 10) will have solutions, that is, modular multiplicative inverses of 3 modulo 10 will exist. In fact, 7 satisfies this congruence (i.e., 21 − 1 = 20). However, other integers also satisfy the congruence, for instance 17 and −3 (i.e., 3(17) − 1 = 50 and 3(−3) − 1 = −10). In particular, every integer in   will satisfy the congruence since these integers have the form 7 + 10r for some integer r and

 

is divisible by 10. This congruence has only this one congruence class of solutions. The solution in this case could have been obtained by checking all possible cases, but systematic algorithms would be needed for larger moduli and these will be given in the next section.

The product of congruence classes   and   can be obtained by selecting an element of  , say 25, and an element of  , say −2, and observing that their product (25)(−2) = −50 is in the congruence class  . Thus,  . Addition is defined in a similar way. The ten congruence classes together with these operations of addition and multiplication of congruence classes form the ring of integers modulo 10, i.e.,  .

A complete residue system modulo 10 can be the set {10, −9, 2, 13, 24, −15, 26, 37, 8, 9} where each integer is in a different congruence class modulo 10. The unique least residue system modulo 10 is {0, 1, 2, ..., 9}. A reduced residue system modulo 10 could be {1, 3, 7, 9}. The product of any two congruence classes represented by these numbers is again one of these four congruence classes. This implies that these four congruence classes form a group, in this case the cyclic group of order four, having either 3 or 7 as a (multiplicative) generator. The represented congruence classes form the group of units of the ring  . These congruence classes are precisely the ones which have modular multiplicative inverses.

Computation Edit

Extended Euclidean algorithm Edit

A modular multiplicative inverse of a modulo m can be found by using the extended Euclidean algorithm.

The Euclidean algorithm determines the greatest common divisor (gcd) of two integers, say a and m. If a has a multiplicative inverse modulo m, this gcd must be 1. The last of several equations produced by the algorithm may be solved for this gcd. Then, using a method called "back substitution", an expression connecting the original parameters and this gcd can be obtained. In other words, integers x and y can be found to satisfy Bézout's identity,

 

Rewritten, this is

 

that is,

 

so, a modular multiplicative inverse of a has been calculated. A more efficient version of the algorithm is the extended Euclidean algorithm, which, by using auxiliary equations, reduces two passes through the algorithm (back substitution can be thought of as passing through the algorithm in reverse) to just one.

In big O notation, this algorithm runs in time O(log2(m)), assuming |a| < m, and is considered to be very fast and generally more efficient than its alternative, exponentiation.

Using Euler's theorem Edit

As an alternative to the extended Euclidean algorithm, Euler's theorem may be used to compute modular inverses.[11]

According to Euler's theorem, if a is coprime to m, that is, gcd(a, m) = 1, then

 

where   is Euler's totient function. This follows from the fact that a belongs to the multiplicative group  × if and only if a is coprime to m. Therefore, a modular multiplicative inverse can be found directly:

 

In the special case where m is a prime,   and a modular inverse is given by

 

This method is generally slower than the extended Euclidean algorithm, but is sometimes used when an implementation for modular exponentiation is already available. Some disadvantages of this method include:

  • The value   must be known and the most efficient known computation requires m's factorization. Factorization is widely believed to be a computationally hard problem. However, calculating   is straightforward when the prime factorization of m is known.
  • The relative cost of exponentiation. Though it can be implemented more efficiently using modular exponentiation, when large values of m are involved this is most efficiently computed with the Montgomery reduction method. This algorithm itself requires a modular inverse mod m, which is what was to be calculated in the first place. Without the Montgomery method, the standard binary exponentiation, which requires division mod m at every step, is a slow operation when m is large.

One notable advantage of this technique is that there are no conditional branches which depend on the value of a, and thus the value of a, which may be an important secret in public-key cryptography, can be protected from side-channel attacks. For this reason, the standard implementation of Curve25519 uses this technique to compute an inverse.

Multiple inverses Edit

It is possible to compute the inverse of multiple numbers ai, modulo a common m, with a single invocation of the Euclidean algorithm and three multiplications per additional input.[12] The basic idea is to form the product of all the ai, invert that, then multiply by aj for all ji to leave only the desired a−1
i
.

More specifically, the algorithm is (all arithmetic performed modulo m):

  1. Compute the prefix products   for all in.
  2. Compute b−1
    n
    using any available algorithm.
  3. For i from n down to 2, compute
    • a−1
      i
      = b−1
      i
      bi−1
      and
    • b−1
      i−1
      = b−1
      i
      ai
      .
  4. Finally, a−1
    1
    = b−1
    1
    .

It is possible to perform the multiplications in a tree structure rather than linearly to exploit parallel computing.

Applications Edit

Finding a modular multiplicative inverse has many applications in algorithms that rely on the theory of modular arithmetic. For instance, in cryptography the use of modular arithmetic permits some operations to be carried out more quickly and with fewer storage requirements, while other operations become more difficult.[13] Both of these features can be used to advantage. In particular, in the RSA algorithm, encrypting and decrypting a message is done using a pair of numbers that are multiplicative inverses with respect to a carefully selected modulus. One of these numbers is made public and can be used in a rapid encryption procedure, while the other, used in the decryption procedure, is kept hidden. Determining the hidden number from the public number is considered to be computationally infeasible and this is what makes the system work to ensure privacy.[14]

As another example in a different context, consider the exact division problem in computer science where you have a list of odd word-sized numbers each divisible by k and you wish to divide them all by k. One solution is as follows:

  1. Use the extended Euclidean algorithm to compute k−1, the modular multiplicative inverse of k mod 2w, where w is the number of bits in a word. This inverse will exist since the numbers are odd and the modulus has no odd factors.
  2. For each number in the list, multiply it by k−1 and take the least significant word of the result.

On many machines, particularly those without hardware support for division, division is a slower operation than multiplication, so this approach can yield a considerable speedup. 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. A solution is given by

X = t1 (7 × 11) × 4 + t2 (5 × 11) × 4 + t3 (5 × 7) × 6

where

t1 = 3 is the modular multiplicative inverse of 7 × 11 (mod 5),
t2 = 6 is the modular multiplicative inverse of 5 × 11 (mod 7) and
t3 = 6 is the modular multiplicative inverse of 5 × 7 (mod 11).

Thus,

X = 3 × (7 × 11) × 4 + 6 × (5 × 11) × 4 + 6 × (5 × 7) × 6 = 3504

and in its unique reduced form

X ≡ 3504 ≡ 39 (mod 385)

since 385 is the LCM of 5,7 and 11.

Also, the modular multiplicative inverse figures prominently in the definition of the Kloosterman sum.

See also Edit

Notes Edit

  1. ^ Rosen 1993, p. 132.
  2. ^ Schumacher 1996, p. 88.
  3. ^ Stinson, Douglas R. (1995), Cryptography / Theory and Practice, CRC Press, pp. 124–128, ISBN 0-8493-8521-0
  4. ^ Trappe & Washington 2006, pp. 164−169.
  5. ^ Moriarty, K.; Kaliski, B.; Jonsson, J.; Rusch, A. (2016). "PKCS #1: RSA Cryptography Specifications Version 2.2". Internet Engineering Task Force RFC 8017. Internet Engineering Task Force. Retrieved January 21, 2017.
  6. ^ Other notations are often used, including [a] and [a]m.
  7. ^ Ireland & Rosen 1990, p. 32
  8. ^ Shoup, Victor (2005), A Computational Introduction to Number Theory and Algebra, Cambridge University Press, Theorem 2.4, p. 15, ISBN 9780521851541
  9. ^ Rosen 1993, p. 121
  10. ^ Ireland & Rosen 1990, p. 31
  11. ^ Thomas Koshy. Elementary number theory with applications, 2nd edition. ISBN 978-0-12-372487-8. P. 346.
  12. ^ Brent, Richard P.; Zimmermann, Paul (December 2010). "§2.5.1 Several inversions at once" (PDF). Modern Computer Arithmetic. Cambridge Monographs on Computational and Applied Mathematics. Vol. 18. Cambridge University Press. pp. 67–68. ISBN 978-0-521-19469-3.
  13. ^ Trappe & Washington 2006, p. 167
  14. ^ Trappe & Washington 2006, p. 165

References Edit

  • Ireland, Kenneth; Rosen, Michael (1990), A Classical Introduction to Modern Number Theory (2nd ed.), Springer-Verlag, ISBN 0-387-97329-X
  • Rosen, Kenneth H. (1993), Elementary Number Theory and its Applications (3rd ed.), Addison-Wesley, ISBN 978-0-201-57889-8
  • Schumacher, Carol (1996). Chapter Zero: Fundamental Notions of Abstract Mathematics. Addison-Wesley. ISBN 0-201-82653-4.
  • Trappe, Wade; Washington, Lawrence C. (2006), Introduction to Cryptography with Coding Theory (2nd ed.), Prentice-Hall, ISBN 978-0-13-186239-5

External links Edit

  • Weisstein, Eric W. "Modular Inverse". MathWorld.
  • Guevara Vasquez, Fernando provides a solved example of solving the modulo multiplicative inverse using Euclid's Algorithm

modular, multiplicative, inverse, mathematics, particularly, area, arithmetic, modular, multiplicative, inverse, integer, integer, such, that, product, congruent, with, respect, modulus, standard, notation, modular, arithmetic, this, congruence, written, displ. In mathematics particularly in the area of arithmetic a modular multiplicative inverse of an integer a is an integer x such that the product ax is congruent to 1 with respect to the modulus m 1 In the standard notation of modular arithmetic this congruence is written as a x 1 mod m displaystyle ax equiv 1 pmod m which is the shorthand way of writing the statement that m divides evenly the quantity ax 1 or put another way the remainder after dividing ax by the integer m is 1 If a does have an inverse modulo m then there are an infinite number of solutions of this congruence which form a congruence class with respect to this modulus Furthermore any integer that is congruent to a i e in a s congruence class has any element of x s congruence class as a modular multiplicative inverse Using the notation of w displaystyle overline w to indicate the congruence class containing w this can be expressed by saying that the modulo multiplicative inverse of the congruence class a displaystyle overline a is the congruence class x displaystyle overline x such that a m x 1 displaystyle overline a cdot m overline x overline 1 where the symbol m displaystyle cdot m denotes the multiplication of equivalence classes modulo m 2 Written in this way the analogy with the usual concept of a multiplicative inverse in the set of rational or real numbers is clearly represented replacing the numbers by congruence classes and altering the binary operation appropriately As with the analogous operation on the real numbers a fundamental use of this operation is in solving when possible linear congruences of the form a x b mod m displaystyle ax equiv b pmod m Finding modular multiplicative inverses also has practical applications in the field of cryptography e g public key cryptography and the RSA algorithm 3 4 5 A benefit for the computer implementation of these applications is that there exists a very fast algorithm the extended Euclidean algorithm that can be used for the calculation of modular multiplicative inverses Contents 1 Modular arithmetic 1 1 Integers modulo m 1 2 Multiplicative group of integers modulo m 2 Example 3 Computation 3 1 Extended Euclidean algorithm 3 2 Using Euler s theorem 3 3 Multiple inverses 4 Applications 5 See also 6 Notes 7 References 8 External linksModular arithmetic EditMain article Modular arithmetic For a given positive integer m two integers a and b are said to be congruent modulo m if m divides their difference This binary relation is denoted by a b mod m displaystyle a equiv b pmod m This is an equivalence relation on the set of integers ℤ and the equivalence classes are called congruence classes modulo m or residue classes modulo m Let a displaystyle overline a denote the congruence class containing the integer a 6 then a b Z a b mod m displaystyle overline a b in mathbb Z mid a equiv b pmod m A linear congruence is a modular congruence of the form a x b mod m displaystyle ax equiv b pmod m Unlike linear equations over the reals linear congruences may have zero one or several solutions If x is a solution of a linear congruence then every element in x displaystyle overline x is also a solution so when speaking of the number of solutions of a linear congruence we are referring to the number of different congruence classes that contain solutions If d is the greatest common divisor of a and m then the linear congruence ax b mod m has solutions if and only if d divides b If d divides b then there are exactly d solutions 7 A modular multiplicative inverse of an integer a with respect to the modulus m is a solution of the linear congruence a x 1 mod m displaystyle ax equiv 1 pmod m The previous result says that a solution exists if and only if gcd a m 1 that is a and m must be relatively prime i e coprime Furthermore when this condition holds there is exactly one solution i e when it exists a modular multiplicative inverse is unique 8 If b and b are both modular multiplicative inverses of a respect to the modulus m then a b a b 1 mod m displaystyle ab equiv ab equiv 1 pmod m therefore a b b 0 mod m displaystyle a b b equiv 0 pmod m If a 0 mod m then gcd a m a and a won t even have a modular multiplicative inverse Therefore b b mod m When ax 1 mod m has a solution it is often denoted in this way x a 1 mod m displaystyle x equiv a 1 pmod m but this can be considered an abuse of notation since it could be misinterpreted as the reciprocal of a displaystyle a which contrary to the modular multiplicative inverse is not an integer except when a is 1 or 1 The notation would be proper if a is interpreted as a token standing for the congruence class a displaystyle overline a as the multiplicative inverse of a congruence class is a congruence class with the multiplication defined in the next section Integers modulo m Edit The congruence relation modulo m partitions the set of integers into m congruence classes Operations of addition and multiplication can be defined on these m objects in the following way To either add or multiply two congruence classes first pick a representative in any way from each class then perform the usual operation for integers on the two representatives and finally take the congruence class that the result of the integer operation lies in as the result of the operation on the congruence classes In symbols with m displaystyle m and m displaystyle cdot m representing the operations on congruence classes these definitions are a m b a b displaystyle overline a m overline b overline a b and a m b a b displaystyle overline a cdot m overline b overline ab These operations are well defined meaning that the end result does not depend on the choices of representatives that were made to obtain the result The m congruence classes with these two defined operations form a ring called the ring of integers modulo m There are several notations used for these algebraic objects most often Z m Z displaystyle mathbb Z m mathbb Z or Z m displaystyle mathbb Z m but several elementary texts and application areas use a simplified notation Z m displaystyle mathbb Z m when confusion with other algebraic objects is unlikely The congruence classes of the integers modulo m were traditionally known as residue classes modulo m reflecting the fact that all the elements of a congruence class have the same remainder i e residue upon being divided by m Any set of m integers selected so that each comes from a different congruence class modulo m is called a complete system of residues modulo m 9 The division algorithm shows that the set of integers 0 1 2 m 1 form a complete system of residues modulo m known as the least residue system modulo m In working with arithmetic problems it is sometimes more convenient to work with a complete system of residues and use the language of congruences while at other times the point of view of the congruence classes of the ring Z m Z displaystyle mathbb Z m mathbb Z is more useful 10 Multiplicative group of integers modulo m Edit Main article Multiplicative group of integers modulo n Not every element of a complete residue system modulo m has a modular multiplicative inverse for instance zero never does After removing the elements of a complete residue system that are not relatively prime to m what is left is called a reduced residue system all of whose elements have modular multiplicative inverses The number of elements in a reduced residue system is ϕ m displaystyle phi m where ϕ displaystyle phi is the Euler totient function i e the number of positive integers less than m that are relatively prime to m In a general ring with unity not every element has a multiplicative inverse and those that do are called units As the product of two units is a unit the units of a ring form a group the group of units of the ring and often denoted by R if R is the name of the ring The group of units of the ring of integers modulo m is called the multiplicative group of integers modulo m and it is isomorphic to a reduced residue system In particular it has order size ϕ m displaystyle phi m In the case that m is a prime say p then ϕ p p 1 displaystyle phi p p 1 and all the non zero elements of Z p Z displaystyle mathbb Z p mathbb Z have multiplicative inverses thus Z p Z displaystyle mathbb Z p mathbb Z is a finite field In this case the multiplicative group of integers modulo p form a cyclic group of order p 1 Example EditFor any integer n gt 1 displaystyle n gt 1 it s always the case that n 2 n 1 displaystyle n 2 n 1 is the modular multiplicative inverse of n 1 displaystyle n 1 with respect to the modulus n 2 displaystyle n 2 since n 1 n 2 n 1 n 3 1 displaystyle n 1 n 2 n 1 n 3 1 Examples are 3 3 1 mod 4 displaystyle 3 times 3 equiv 1 pmod 4 4 7 1 mod 9 displaystyle 4 times 7 equiv 1 pmod 9 5 13 1 mod 16 displaystyle 5 times 13 equiv 1 pmod 16 and so on The following example uses the modulus 10 Two integers are congruent mod 10 if and only if their difference is divisible by 10 for instance 32 2 mod 10 displaystyle 32 equiv 2 pmod 10 since 10 divides 32 2 30 and 111 1 mod 10 displaystyle 111 equiv 1 pmod 10 since 10 divides 111 1 110 Some of the ten congruence classes with respect to this modulus are 0 20 10 0 10 20 displaystyle overline 0 cdots 20 10 0 10 20 cdots 1 19 9 1 11 21 displaystyle overline 1 cdots 19 9 1 11 21 cdots 5 15 5 5 15 25 displaystyle overline 5 cdots 15 5 5 15 25 cdots and 9 11 1 9 19 29 displaystyle overline 9 cdots 11 1 9 19 29 cdots The linear congruence 4x 5 mod 10 has no solutions since the integers that are congruent to 5 i e those in 5 displaystyle overline 5 are all odd while 4x is always even However the linear congruence 4x 6 mod 10 has two solutions namely x 4 and x 9 The gcd 4 10 2 and 2 does not divide 5 but does divide 6 Since gcd 3 10 1 the linear congruence 3x 1 mod 10 will have solutions that is modular multiplicative inverses of 3 modulo 10 will exist In fact 7 satisfies this congruence i e 21 1 20 However other integers also satisfy the congruence for instance 17 and 3 i e 3 17 1 50 and 3 3 1 10 In particular every integer in 7 displaystyle overline 7 will satisfy the congruence since these integers have the form 7 10r for some integer r and 3 7 10 r 1 21 30 r 1 20 30 r 10 2 3 r displaystyle 3 7 10r 1 21 30r 1 20 30r 10 2 3r is divisible by 10 This congruence has only this one congruence class of solutions The solution in this case could have been obtained by checking all possible cases but systematic algorithms would be needed for larger moduli and these will be given in the next section The product of congruence classes 5 displaystyle overline 5 and 8 displaystyle overline 8 can be obtained by selecting an element of 5 displaystyle overline 5 say 25 and an element of 8 displaystyle overline 8 say 2 and observing that their product 25 2 50 is in the congruence class 0 displaystyle overline 0 Thus 5 10 8 0 displaystyle overline 5 cdot 10 overline 8 overline 0 Addition is defined in a similar way The ten congruence classes together with these operations of addition and multiplication of congruence classes form the ring of integers modulo 10 i e Z 10 Z displaystyle mathbb Z 10 mathbb Z A complete residue system modulo 10 can be the set 10 9 2 13 24 15 26 37 8 9 where each integer is in a different congruence class modulo 10 The unique least residue system modulo 10 is 0 1 2 9 A reduced residue system modulo 10 could be 1 3 7 9 The product of any two congruence classes represented by these numbers is again one of these four congruence classes This implies that these four congruence classes form a group in this case the cyclic group of order four having either 3 or 7 as a multiplicative generator The represented congruence classes form the group of units of the ring Z 10 Z displaystyle mathbb Z 10 mathbb Z These congruence classes are precisely the ones which have modular multiplicative inverses Computation EditExtended Euclidean algorithm Edit Main article Extended Euclidean algorithm The Wikibook Algorithm Implementation has a page on the topic of Extended Euclidean algorithm A modular multiplicative inverse of a modulo m can be found by using the extended Euclidean algorithm The Euclidean algorithm determines the greatest common divisor gcd of two integers say a and m If a has a multiplicative inverse modulo m this gcd must be 1 The last of several equations produced by the algorithm may be solved for this gcd Then using a method called back substitution an expression connecting the original parameters and this gcd can be obtained In other words integers x and y can be found to satisfy Bezout s identity a x m y gcd a m 1 displaystyle ax my gcd a m 1 Rewritten this is a x 1 y m displaystyle ax 1 y m that is a x 1 mod m displaystyle ax equiv 1 pmod m so a modular multiplicative inverse of a has been calculated A more efficient version of the algorithm is the extended Euclidean algorithm which by using auxiliary equations reduces two passes through the algorithm back substitution can be thought of as passing through the algorithm in reverse to just one In big O notation this algorithm runs in time O log2 m assuming a lt m and is considered to be very fast and generally more efficient than its alternative exponentiation Using Euler s theorem Edit As an alternative to the extended Euclidean algorithm Euler s theorem may be used to compute modular inverses 11 According to Euler s theorem if a is coprime to m that is gcd a m 1 then a ϕ m 1 mod m displaystyle a phi m equiv 1 pmod m where ϕ displaystyle phi is Euler s totient function This follows from the fact that a belongs to the multiplicative group Z m Z displaystyle mathbb Z m mathbb Z if and only if a is coprime to m Therefore a modular multiplicative inverse can be found directly a ϕ m 1 a 1 mod m displaystyle a phi m 1 equiv a 1 pmod m In the special case where m is a prime ϕ m m 1 displaystyle phi m m 1 and a modular inverse is given by a 1 a m 2 mod m displaystyle a 1 equiv a m 2 pmod m This method is generally slower than the extended Euclidean algorithm but is sometimes used when an implementation for modular exponentiation is already available Some disadvantages of this method include The value ϕ m displaystyle phi m must be known and the most efficient known computation requires m s factorization Factorization is widely believed to be a computationally hard problem However calculating ϕ m displaystyle phi m is straightforward when the prime factorization of m is known The relative cost of exponentiation Though it can be implemented more efficiently using modular exponentiation when large values of m are involved this is most efficiently computed with the Montgomery reduction method This algorithm itself requires a modular inverse mod m which is what was to be calculated in the first place Without the Montgomery method the standard binary exponentiation which requires division mod m at every step is a slow operation when m is large One notable advantage of this technique is that there are no conditional branches which depend on the value of a and thus the value of a which may be an important secret in public key cryptography can be protected from side channel attacks For this reason the standard implementation of Curve25519 uses this technique to compute an inverse Multiple inverses Edit It is possible to compute the inverse of multiple numbers ai modulo a common m with a single invocation of the Euclidean algorithm and three multiplications per additional input 12 The basic idea is to form the product of all the ai invert that then multiply by aj for all j i to leave only the desired a 1i More specifically the algorithm is all arithmetic performed modulo m Compute the prefix products b i j 1 i a j a i b i 1 textstyle b i prod j 1 i a j a i b i 1 for all i n Compute b 1n using any available algorithm For i from n down to 2 compute a 1i b 1i bi 1 and b 1i 1 b 1i ai Finally a 11 b 11 It is possible to perform the multiplications in a tree structure rather than linearly to exploit parallel computing Applications EditFinding a modular multiplicative inverse has many applications in algorithms that rely on the theory of modular arithmetic For instance in cryptography the use of modular arithmetic permits some operations to be carried out more quickly and with fewer storage requirements while other operations become more difficult 13 Both of these features can be used to advantage In particular in the RSA algorithm encrypting and decrypting a message is done using a pair of numbers that are multiplicative inverses with respect to a carefully selected modulus One of these numbers is made public and can be used in a rapid encryption procedure while the other used in the decryption procedure is kept hidden Determining the hidden number from the public number is considered to be computationally infeasible and this is what makes the system work to ensure privacy 14 As another example in a different context consider the exact division problem in computer science where you have a list of odd word sized numbers each divisible by k and you wish to divide them all by k One solution is as follows Use the extended Euclidean algorithm to compute k 1 the modular multiplicative inverse of k mod 2w where w is the number of bits in a word This inverse will exist since the numbers are odd and the modulus has no odd factors For each number in the list multiply it by k 1 and take the least significant word of the result On many machines particularly those without hardware support for division division is a slower operation than multiplication so this approach can yield a considerable speedup 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 dd has common solutions since 5 7 and 11 are pairwise coprime A solution is given by X t1 7 11 4 t2 5 11 4 t3 5 7 6where t1 3 is the modular multiplicative inverse of 7 11 mod 5 t2 6 is the modular multiplicative inverse of 5 11 mod 7 and t3 6 is the modular multiplicative inverse of 5 7 mod 11 Thus X 3 7 11 4 6 5 11 4 6 5 7 6 3504and in its unique reduced form X 3504 39 mod 385 since 385 is the LCM of 5 7 and 11 Also the modular multiplicative inverse figures prominently in the definition of the Kloosterman sum See also EditInversive congruential generator a pseudo random number generator that uses modular multiplicative inverses Rational reconstruction mathematics Notes Edit Rosen 1993 p 132 Schumacher 1996 p 88 Stinson Douglas R 1995 Cryptography Theory and Practice CRC Press pp 124 128 ISBN 0 8493 8521 0 Trappe amp Washington 2006 pp 164 169 Moriarty K Kaliski B Jonsson J Rusch A 2016 PKCS 1 RSA Cryptography Specifications Version 2 2 Internet Engineering Task Force RFC 8017 Internet Engineering Task Force Retrieved January 21 2017 Other notations are often used including a and a m Ireland amp Rosen 1990 p 32 Shoup Victor 2005 A Computational Introduction to Number Theory and Algebra Cambridge University Press Theorem 2 4 p 15 ISBN 9780521851541 Rosen 1993 p 121 Ireland amp Rosen 1990 p 31 Thomas Koshy Elementary number theory with applications 2nd edition ISBN 978 0 12 372487 8 P 346 Brent Richard P Zimmermann Paul December 2010 2 5 1 Several inversions at once PDF Modern Computer Arithmetic Cambridge Monographs on Computational and Applied Mathematics Vol 18 Cambridge University Press pp 67 68 ISBN 978 0 521 19469 3 Trappe amp Washington 2006 p 167 Trappe amp Washington 2006 p 165References EditIreland Kenneth Rosen Michael 1990 A Classical Introduction to Modern Number Theory 2nd ed Springer Verlag ISBN 0 387 97329 X Rosen Kenneth H 1993 Elementary Number Theory and its Applications 3rd ed Addison Wesley ISBN 978 0 201 57889 8 Schumacher Carol 1996 Chapter Zero Fundamental Notions of Abstract Mathematics Addison Wesley ISBN 0 201 82653 4 Trappe Wade Washington Lawrence C 2006 Introduction to Cryptography with Coding Theory 2nd ed Prentice Hall ISBN 978 0 13 186239 5External links EditWeisstein Eric W Modular Inverse MathWorld Guevara Vasquez Fernando provides a solved example of solving the modulo multiplicative inverse using Euclid s Algorithm Retrieved from https en wikipedia org w index php title Modular multiplicative inverse amp oldid 1171681574, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.