Modular Arithmetic

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 31

Modular Arithmetic

Several important cryptosystems make use


of modular arithmetic. This is 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
20 mod 3 = 2
-3 mod 11 = 8
25 mod 5 = 0

7 mod 11 = 7
11 mod 11 = 0
-1 mod 11 = 10
-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
E.g: 4 9 1419 -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

11 11 4 3 132 2(mod13)
7

Sage 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)}.
E.g.: 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
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
15
11
4
3

= 1 * 15 + 11
= 1 * 11 + 4
=2*4
+3
= 1*3
+1
=3*1 +0

Then gcd (26, 15) = 1

Modular Arithmetic
Finding Inverses in Zn
What is the inverse of 15 in mod 26? Now we
now 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
15
11
4

= 1 * 15 + 11 => 11 = 26 (1*15)
= 1 * 11 + 4
=> 4 = 15 (1*11)
=2*4
+ 3 => 3 = 11 (2*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
above

y5 = (y3 (y4 * q3))


= 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
13 = 1 * 9 + 4
9=2*4+1
4=4*1+0
Last Step :

y[0]=0
y[1]=1
y[2]=0 - 1 * 1 mod 22 = 21
y[3]=1 - 21 * 1 mod 22 = 2
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
17 = 1 * 12 + 5
12 = 2 * 5 + 2
5=2*2+1
2=2*1+0
Last Step:

x[0]=0
x[1]=1
x[2]=0 - 1 * 5 mod 97 = 92
x[3]=1 - 92 * 1 mod 97 = 6
x[4]=92 - 6 * 2 mod 97 = 80
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/e
xtended_euclidean_algorithm.htm
http://www.math.umbc.edu/~campbell/NumbTh
y/Class/BasicNumbThy.html
http://www.promys.org/pft/pcmi/PCMI_01.pdf

Promys For Teachers Summer Program

You might also like