Cryptography
and Network
Security
Sixth Edition
by William Stallings
Vietnam – Korea University
of Information and Communication Technology
Chapter 2
Introduction to Number Theory
and Finite Fields
Vietnam – Korea University
of Information and Communication Technology
Chapter 2: Outline
• Divisibility and The Division Algorithm Divisibility
• The Euclidean Algorithm
• Modular Arithmetic
• Prime Numbers
• Fermat’s and Euler’s Theorems
• Testing for Primality
• The Chinese Remainder Theorem
• Discrete Logarithms
Vietnam – Korea University
of Information and Communication Technology
Divisibility
• We say that a nonzero b divides a if a = mb for
some m, where a, b, and m are integers
• b divides a if there is no remainder on division
• The notation b | a is commonly used to mean b
divides a
• If b | a we say that b is a divisor of a
The positive divisors of 24 are 1, 2, 3, 4, 6, 8, 12, and 24
13 | 182; - 5 | 30; 17 | 289; - 3 | 33; 17 | 0
Vietnam – Korea University
of Information and Communication Technology
Properties of Divisibility
• If a | 1, then a = ±1
• If a | b and b | a, then a = ±b
• Any b ≠ 0 divides 0
• If a | b and b | c, then a | c
• If b | g and b | h, then b | (mg + nh) for
arbitrary integers m and n
11 | 66 and 66 | 198 = 11 | 198
Vietnam – Korea University
of Information and Communication Technology
Properties of Divisibility
• To see this last point, note that:
– If b | g , then g is of the form g = b * g1 for some integer g1
– If b | h , then h is of the form h = b * h1 for some integer h1
• So:
– mg + nh = mbg1 + nbh1 = b * (mg1 + nh1 )
and therefore b divides mg + nh
b = 7; g = 14; h = 63; m = 3; n = 2
7 | 14 and 7 | 63.
To show 7 (3 * 14 + 2 * 63),
we have (3 * 14 + 2 * 63) = 7(3 * 2 + 2 * 9),
and it is obvious that 7 | (7(3 * 2 + 2 * 9)).
Vietnam – Korea University
of Information and Communication Technology
Division Algorithm
• Given any positive integer n and any
nonnegative integer a, if we divide a by n we get
an integer quotient q and an integer remainder r
that obey the following relationship:
a = qn + r 0 ≤ r < n; q = [a/n]
Vietnam – Korea University
of Information and Communication Technology
Vietnam – Korea University
of Information and Communication Technology
Euclidean Algorithm
• One of the basic techniques
of number theory
• Procedure for determining
the greatest common divisor
of two positive integers
• Two integers are relatively
prime if their only common
positive integer factor is 1
Vietnam – Korea University
of Information and Communication Technology
Greatest Common Divisor (GCD)
• The greatest common divisor of a and b is the
largest integer that divides both a and b
• We can use the notation gcd(a,b) to mean the
greatest common divisor of a and b
• We also define gcd(0,0) = 0
• Positive integer c is said to be the gcd of a and b if:
• c is a divisor of a and b
• Any divisor of a and b is a divisor of c
• An equivalent definition is:
gcd(a,b) = max[k, such that k | a and k | b]
Vietnam – Korea University
of Information and Communication Technology
GCD
• Because we require that the greatest common divisor be
positive, gcd(a,b) = gcd(a,-b) = gcd(-a,b) = gcd(-a,-b)
• In general, gcd(a,b) = gcd(| a |, | b |)
gcd(60, 24) = gcd(60, - 24) = 12
• Also, because all nonzero integers divide 0, we have
gcd(a,0) = | a |
• We stated that two integers a and b are relatively prime if
their only common positive integer factor is 1; this is
equivalent to saying that a and b are relatively prime if
gcd(a,b) = 1
8 and 15 are relatively prime because the positive divisors of 8 are 1, 2, 4, and 8, and
the positive divisors of 15 are 1, 3, 5, and 15. So 1 is the only integer on both lists.
Vietnam – Korea University
of Information and Communication Technology
Table 4.1
Euclidean Algorithm Example
(This table can be found on page 91 in the textbook)
Vietnam – Korea University
of Information and Communication Technology
Modular Arithmetic
• The modulus
– If a is an integer and n is a positive integer, we define
a mod n to be the remainder when a is divided by n;
the integer n is called the modulus
– thus, for any integer a:
a = qn + r 0 ≤ r < n; q = [a/ n]
a = [a/ n] * n + ( a mod n)
11 mod 7 = 4; - 11 mod 7 = 3
Vietnam – Korea University
of Information and Communication Technology
Modular Arithmetic
• Congruent modulo n
– Two integers a and b are said to be congruent
modulo n if (a mod n) = (b mod n)
– This is written as a = b(mod n)2
– Note that if a = 0(mod n), then n | a
73 = 4 (mod 23); 21 = - 9 (mod 10)
Vietnam – Korea University
of Information and Communication Technology
Properties of Congruences
• Congruences have the following properties:
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)
• To demonstrate the first point, if n (a - b), then (a - b)
= kn for some k
• So 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)
23 = 8 (mod 5) because 23 - 8 = 15 = 5 * 3
- 11 = 5 (mod 8) because - 11 - 5 = - 16 = 8 * (- 2)
81 = 0 (mod 27) because 81 - 0 = 81 = 27 * 3
Vietnam – Korea University
of Information and Communication Technology
Modular Arithmetic
• Modular arithmetic exhibits the following properties:
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) * (b mod n)] mod n = (a * b) mod n
• We demonstrate the first property:
• Define (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
• Then:
(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
Vietnam – Korea University
of Information and Communication Technology
Remaining Properties:
• Examples of the three remaining properties:
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) * (15 mod 8)] mod 8 = 21 mod 8 = 5
(11 * 15) mod 8 = 165 mod 8 = 5
Vietnam – Korea University
of Information and Communication Technology
Table 4.2(a) Arithmetic Modulo 8
Vietnam – Korea University
of Information and Communication Technology
Table 4.2(b) Multiplication Modulo 8
Vietnam – Korea University
of Information and Communication Technology
Table 4.2(c)
Additive
and
Multiplicative
Inverses
Modulo 8
Vietnam – Korea University
of Information and Communication Technology
Table 4.3
Properties of Modular Arithmetic for Integers in Zn
Vietnam – Korea University
of Information and Communication Technology
Table 4.4
Extended Euclidean Algorithm Example
For given integers a and b, find <d,x,y> satisfying: ax + by = d = gcd(a,b)
a
b
Result: d = 1; x = –111; y = 355
Vietnam – Korea University
of Information and Communication Technology
Prime Numbers
• Prime numbers only have divisors of 1 and
itself
• They cannot be written as a product of other
numbers
• Prime numbers are central to number theory
• Any integer a > 1 can be factored in a unique
way as
a = p1 a1 * p2 a2 * . . . * pp1 a1
where p1 < p2 < . . . < pt are prime numbers
and where each ai is a positive integer
• This is known as the fundamental theorem of
arithmetic
Vietnam – Korea University
of Information and Communication Technology
Table 8.1
Primes Under 2000
Vietnam – Korea University
of Information and Communication Technology
Fermat's Theorem
• States the following:
• If p is prime and a is a positive integer not
divisible by p then
ap-1 1 (mod p)
• Sometimes referred to as Fermat’s Little
Theorem
• An alternate form is:
• If p is prime and a is a positive integer then
ap a (mod p)
• Plays an important role in public-key
cryptography
Vietnam – Korea University
of Information and Communication Technology
Table 8.2
Some Values of Euler’s Totient Function ø(n)
Vietnam – Korea University
of Information and Communication Technology
Euler's Theorem
• States that for every a and n that are
relatively prime:
aø(n) 1(mod n)
• An alternative form is:
aø(n)+1 a(mod n)
• Plays an important role in public-key cryptography
Vietnam – Korea University
of Information and Communication Technology
Miller-Rabin Algorithm
• Typically used to test a large number for primality
• Algorithm is:
TEST (n)
1.
• Find integers k, q, with k > 0, q odd, so that (n – 1)=2kq ;
2.
• Select a random integer a, 1 < a < n – 1 ;
3.
• if aq mod n = 1 then return (“inconclusive") ;
4.
• for j = 0 to k – 1 do
5.
• if (a2jq mod n = n – 1) then return (“inconclusive") ;
6.
• return (“composite") ;
Vietnam – Korea University
of Information and Communication Technology
Deterministic Primality Algorithm
• Prior to 2002 there was no known method of
efficiently proving the primality of very large
numbers
• All of the algorithms in use produced a
probabilistic result
• In 2002 Agrawal, Kayal, and Saxena developed
an algorithm that efficiently determines whether a
given large number is prime
• Known as the AKS algorithm
• Does not appear to be as efficient as
the Miller-Rabin algorithm
Vietnam – Korea University
of Information and Communication Technology
Chinese Remainder Theorem
(CRT)
• Believed to have been discovered by the Chinese
mathematician Sun-Tsu in around 100 A.D.
• One of the most useful results of number theory
• Says it is possible to reconstruct integers in a
certain range from their residues modulo a set of
pairwise relatively prime moduli
• Can be stated in several ways
Provides a way to manipulate (potentially very large)
numbers mod M in terms of tuples of smaller numbers
• This can be useful when M is 150 digits or more
• However, it is necessary to know beforehand the
factorization of M
Vietnam – Korea University
of Information and Communication Technology
Table 8.3
Powers of Integers, Modulo 19
Vietnam – Korea University
of Information and Communication Technology
Vietnam – Korea University
of Information and Communication Technology