0% found this document useful (0 votes)
63 views

Modular Arithmetic in Cryptology

Modular arithmetic is used in several important cryptosystems. It involves calculating results modulo a number (m), so answers are always between 0 and m-1. Numbers congruent modulo n have the same remainder when divided by n. The extended Euclidean algorithm can be used to find modular inverses and is important for modular arithmetic operations like division. Properties and applications of modular arithmetic are important for cryptography.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views

Modular Arithmetic in Cryptology

Modular arithmetic is used in several important cryptosystems. It involves calculating results modulo a number (m), so answers are always between 0 and m-1. Numbers congruent modulo n have the same remainder when divided by n. The extended Euclidean algorithm can be used to find modular inverses and is important for modular arithmetic operations like division. Properties and applications of modular arithmetic are important for cryptography.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Modular Arithmetic in Cryptology

3rd Class – Information Network


IT College- Babylon University
Prof. Dr. Sattar B. Sadkhan
4 March 2018
`
Modular Arithmetic
• Several important cryptosystems make use
of “modular arithmetic”, when the answer
to a calculation is always in the range (0 –
m ) where m is the modulus.
• To calculate the value of (n mod m ) , you
take away as many multiples of (m) as
possible until you are left with an answer
between (0 and m ) .
If (n) is a negative number then you add as
many multiples of (m ) as necessary to get
an answer in the range ( 0 – m ).

Examples
17 mod 5 = 2 7 mod 11 = 7
20 mod 3 = 2 11 mod 11 = 0
-3 mod 11 = 8 -1 mod 11 = 10
25 mod 5 = 0 -11 mod 11 = 0
• Two numbers (a ) and (b ) are said to be
“congruent modulo n” if
(a mod n) = (b mod n)  a ≡ b(mod n)
• The difference between a and b will be a
multiple of n
So ( a-b = kn ) for some value of k
Example
4 9  1419  -1  -6 mod 5
73  4(mod 23); 21  -9(mod 10)
If a  0 (mod n), then n|a.
Properties of Congruences
1. a  b (mod n) if n|(a-b)
2. a  b (mod n) implies b  a (mod n)
3. a  b (mod n) and b  c (mod n) imply a  c (mod n)

Proof of 1.
If n|(a-b), then (a-b) = kn for some k. Thus, we can write
a = b + kn. Therefore,
(a mod n) = (remainder when b + kn is divided by n) =
(remainder when b is divided by n) = (b mod n).
Examples
23  8 (mod 5) because 23 -8 =15 = 5x3
-11  5 (mod 8) because -11-5 =-16 = 8x(-2)
81  0 (mod 27) because 81-0=81 = 27x3
Properties of Modular Arithmetic
1. [(a mod n) + (b mod n)] mod n = (a + b) mod n
2. [(a mod n) - (b mod n)] mod n = (a - b) mod n
3. [(a mod n) x (b mod n)] mod n = (a x b) mod n
Proof of 1.
Let (a mod n) = Ra and (b mod n) = Rb. Then, we can write
a = Ra + jn for some integer j and b = Rb + kn for some integer k.
(a + b) mod n = (Ra + jn + Rb + kn) mod n
= [Ra + Rb + (k + j) n] mod n
= (Ra + Rb) mod n
= [(a mod n) + (b mod n)] mod n
Examples
11 mod 8 = 3; 15 mod 8 = 7
[(11 mod 8 ) + (15 mod 8)] mod 8 = 10 mod 8 = 2
(11 + 15) mod 8 = 26 mod 8 = 2
[(11 mod 8 ) - (15 mod 8)] mod 8 = -4 mod 8 = 4
(11 - 15) mod 8 = - 4 mod 8 = 4
[(11 mod 8 ) x (15 mod 8)] mod 8= 21 mod 8 = 5
(11 x 15) mod 8 = 165 mod 8 = 5
Exponentiation
• Exponentiation is done by repeated
multiplication, as in ordinary arithmetic.

7
To find (11 mod13) do the followings
11 121  4(mod13)
2

11 (11 )  4  3(mod13)
4 2 2 2

11 11 4  3  132  2(mod13)


7
Algorithm for modular exponentiation
that computes xn mod m
def exp(x,n,m):
y=1; u=x % m
while (n >0):
if ((n % 2)=1):
y=(y*u) % m;
if (n > 0):
n=floor(n / 2);
u=(u*u) % m
Output y
A good thing about modular arithmetic is that the numbers
you are working with will be kept relatively small. At
each stage of an algorithm, the mod function should be
applied.
Thus to multiply (39 * 15 ) mod 11 , we first take mods to
get
39 mod 11 = 6 and 15 mod 11= 4
The multiplication required is now
6*4 mod 11 = 24 mod 11 = 2
Modular Division
What is (5 ÷ 3 mod 11) ?
We need to multiply 5 by the inverse of (3 mod 11 )
When you multiply a number by its inverse, the answer is 1.
Thus the inverse of 2 is ½ since 2* ½ = 1
The inverse of 3 mod 11 is 4 since 3*4=1 mod 11
Thus 5 ÷ 3 mod 11 = 5*4 mod 11 = 9 mod 11
Euclidean algorithm
gcd(a,b) = gcd(b, b mod a)
int Euclid(int a, int b)
{
if (b == 0) return a;
else return Euclid(b, b % a)
}
Properties of Modular Arithmetic
Define the set Zn as the set of nonnegative
integers less than n:

Z n {0,1,..., (n  1)}
This set is referred to as the set of residues, or
residue classes (mod n). That is, each
integer in Zn represents a residue class.
Properties of Modular Arithmetic
We can label the residue classes (mod n) as:
[0],[1],[2],...,[n-1], where
[r] = {a: a is an integer, a ≡ r (mod n)}.
Example:
The residue classes (mod 4) are
[0] = {..., -16,-12,-8,-4,0,4,8,12,16, ...}
[1] = {..., -15,-11,-7,-3,1,5,9,13,17, ...}
[2] = {..., -14,-10,-6,-2,2,6,10,14,18, ...}
[3] = {..., -13,-9,-5,-1,3,7,11,15,19, ...}
Properties of Modular Arithmetic
Property Expression
Cummitative Laws (w + x) mod n = (x + w) mod n
(w x x) mod n = (x x w) mod n
Associative Laws [(w + x) + y] mod n = [w + (x + y)] mod n
[(w x x) x y] mod n = [w x (x x y)] mod n
Distributive Law [w x (x + y)] mod n = [(w x x) + (w x y)] mod n
Identities (0 + w) mod n = w mod n
(1 x w) mod n = w mod n
Additive Inverse (-w) For each w Zn, there exists a z such that w + z ≡ 0 mod n
Modular Arithmetic

• A Multiplication Table in Zn: Summary


– The numbers that have inverses in Zn are
relatively prime to n
• That is: gcd(x, n) = 1
– The numbers that do NOT have inverses in Zn
have common prime factors with n
• That is: gcd(x, n) > 1
Modular Arithmetic
• A Multiplication Table in Zn: Summary
– The results have implications for division:
• Some divisions have no answers
– 3 * x = 2 mod 6 has no solutions => 2/3 has no equivalent
in Z6
• Some division have multiple answers
– 2 * 2 = 4 mod 6 => 4/2 = 2 mod 6
– 2 * 5 = 4 mod 6 => 4/2 = 5 mod 6
• Only numbers that are relatively prime to n will be
uniquely divisible by all elements of Zn
Modular Arithmetic
• A Multiplication Table in Zn: Summary
– The results have implications for division:
• Zero divisors exist in some mods:
• 3 * 2 = 0 mod 6 => 0/3 = 2 and 0/2 = 3 in mod 6
• 3 * 6 = 0 mod 9 => 0/3 = 6 and 0/6 = 3 in mod 9
Modular Arithmetic
• Finding Inverses in Zn
– The numbers that have inverses in Zn are
relatively prime to n
– We can use the Euclidean Algorithm to see if
a given “ x ” is relatively prime to “n”; then we
know that an inverse does exist.
– How can we find the inverse without looking at
all the remainders? A problem for large n.
Modular Arithmetic
• Finding Inverses in Zn
– What is the inverse of 15 in mod 26?
– First use the Euclidean Algorithm to
determine if 15 and 26 are relatively prime
• 26 = 1 * 15 + 11
• 15 = 1 * 11 +4
• 11 =2*4 +3
• 4 = 1*3 +1 Then gcd (26, 15) = 1
• 3 =3*1 +0
Modular Arithmetic
• Finding Inverses in Zn
– What is the inverse of 15 in mod 26? Now we
know they are relatively prime – so an inverse
must exist.
– We can use the algorithm to work backward to
create 1 (the gcd(26, 15)) as a linear
combination of 26 and 15:
• 1 = x * 26 + y * 15
– Why would we want to do this?
Modular Arithmetic
• Finding Inverses in Zn
– Convert 1 = x * 26 + y * 15 to mod 26 and we
get:
– 1 mod 26  (y * 15) mod 26
– Then if we find y we find the inverse of 15 in
mod 26.
– So we start from 1 and work backward…
Modular Arithmetic
• 26 = 1 * 15 + 11 => 11 = 26 – (1*15)
• 15 = 1 * 11 + 4 => 4 = 15 – (1*11)
• 11 =2*4 + 3 => 3 = 11 – (2*4)
• 4 = 1*3 +1 => 1 = 4 – (1*3)

Step 1) 1 = 4 – (1 * 3) = 4 – 3
Step 2) 1 = 4 – (11 – (2 * 4)) = 3 * 4 - 11
Step 3) 1 = 3 * (15 – 11) – 11 = 3 * 15 – 4 * 11
Step 4) 1 = 3 * 15 – 4(26 – (1*15)
Step 5 ) 1 = 7 * 15 – 4 * 26 = 105 – 104 >>check
Modular Arithmetic
• Finding Inverses in Zn
– So, what is the inverse of 15 in mod 26?
– 1 = 7 * 15 – 4 * 26 converts to
– 1  7 * 15 mod 26
– 7 is the inverse of 15 in mod 26
– Can you use the same result to show that 11
is its own inverse in mod 15?
Modular Arithmetic
• Using the Extended Euclidean Algorithm
– Formalizing the backward steps we get this
formula:
• y0 = 0
• y1 = 1
• yi = (yi-2 – [yi-1 * qi-2]); i > 1
– Related to the “Magic Box” method
Modular Arithmetic
Step 0 26 = 1 * 15 + 11 y0 = 0

Step 1 15 = 1 * 11 + 4 y1 = 1

Step 2 11 = 2 * 4 + 3 y2 = (y0 – (y1 * q0))


= 0 – 1 * 1 mod 26 = 25
Step 3 4=1*3+1 y3 = (y1 – (y2 * q1))
= 1 – 25 * 1 = -24 mod 26 = 2
Step 4 3=3*1+0 y4 = (y2 – (y3 * q2))
= 25 – 2 * 2 mod 26 = 21
Step 5 Note: qi is in red y5 = (y3 – (y4 * q3))
above = 2 – 21 * 1 = -19 mod 26 = 7
Modular Arithmetic
• Using the Extended Euclidean Algorithm
– y0 = 0
– y1 = 1
– yi = (yi-2 – [yi-1 * qi-2]); i > 1
• Try it for…
– 13 mod 22
– 17 mod 97
Modular Arithmetic
• Using the Extended Euclidean Algorithm
– 22 = 1 * 13 + 9 y[0]=0
– 13 = 1 * 9 + 4 y[1]=1
– 9=2*4+1 y[2]=0 - 1 * 1 mod 22 = 21
– 4=4*1+0 y[3]=1 - 21 * 1 mod 22 = 2
– Last Step : y[4]=21 - 2 * 2 mod 22 = 17

– Check: 17 * 13 = 221 = 1 mod 22


Modular Arithmetic
• Using the Extended Euclidean Algorithm
– 97 = 5 * 17 + 12 x[0]=0
– 17 = 1 * 12 + 5 x[1]=1
– 12 = 2 * 5 + 2 x[2]=0 - 1 * 5 mod 97 = 92
– 5=2*2+1 x[3]=1 - 92 * 1 mod 97 = 6
– 2=2*1+0 x[4]=92 - 6 * 2 mod 97 = 80
– Last Step: x[5]=6 - 80 * 2 mod 97 = 40

– Check: 40 * 17 = 680 = 1 mod 97


Modular Arithmetic

• Some good sources on the internet:


– http://www.antilles.k12.vi.us/math/cryptotut/ext
ended_euclidean_algorithm.htm
– http://www.math.umbc.edu/~campbell/NumbT
hy/Class/BasicNumbThy.html
– http://www.promys.org/pft/pcmi/PCMI_01.pdf
• Promys For Teachers Summer Program

You might also like