0% found this document useful (0 votes)
12 views33 pages

04 1 Number Theory

Chapter 4 focuses on number theory and its applications in cryptography, covering topics such as divisibility, modular arithmetic, integer representations, and algorithms. It emphasizes the importance of congruences and their properties, as well as various number representations including binary, octal, and hexadecimal. The chapter also discusses the Division Algorithm and the arithmetic operations in modular systems.

Uploaded by

nenni.mona.ft
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views33 pages

04 1 Number Theory

Chapter 4 focuses on number theory and its applications in cryptography, covering topics such as divisibility, modular arithmetic, integer representations, and algorithms. It emphasizes the importance of congruences and their properties, as well as various number representations including binary, octal, and hexadecimal. The chapter also discusses the Division Algorithm and the arithmetic operations in modular systems.

Uploaded by

nenni.mona.ft
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

Number Theory and

Cryptography
Chapter 4

With Question/Answer
Animations

Copyright © McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
Chapter Motivation
 Number theory is the part of mathematics devoted to the study
of the integers and their properties.
 Key ideas in number theory include divisibility and the primality
of integers.
 Representations of integers, including binary and hexadecimal
representations, are part of number theory.
 Number theory has long been studied because of the beauty of

 We’ll use many ideas developed in Chapter 1 about proof


its ideas, its accessibility, and its wealth of open questions.

methods and proof strategy in our exploration of number theory.


 Mathematicians have long considered number theory to be pure

science and cryptography studied in Sections 4.5 and 4.6.


mathematics, but it has important applications to computer
Chapter Summary
Divisibility and Modular Arithmetic
Integer Representations and Algorithms
Primes and Greatest Common Divisors
Solving Congruences
Applications of Congruences
Cryptography
Divisibility and Modular
Arithmetic
Section 4.1
Section Summary
Division
Division Algorithm
Modular Arithmetic
Division
0, then
Definition: If a and b are integers with a ≠
a divides b if there exists an
integer c such that b = ac.
When a divides b we say that a is a factor or
divisor of b and that b is a multiple of a.
The notation a | b denotes that a divides b.

If a does not divide b, we write a ∤ b.


If a | b, then b/a is an integer.

Example: Determine whether 3 | 7 and


whether 3 | 12.
Properties of Divisibility
Theorem 1: Let a, b, and c be integers, where a ≠0.
i. If a | b and a | c, then a | (b + c);
ii. If a | b, then a | bc for all integers c;
iii. If a | b and b | c, then a | c.
Proof: (i) Suppose a | b and a | c, then it follows that there

b + c = as + at = a(s + t). Hence, a | (b + c)


are integers s and t with b = as and c = at. Hence,

(Exercises 3 and 4 ask for proofs of parts (ii) and (iii).)

integers, where a ≠0, such that a | b and a | c, then a | mb


Corollary: If a, b, and c be

+ nc whenever m and n are integers.

of Theorem 1?
Can you show how it follows easily from from (ii) and (i)
Division Algorithm
 When an integer is divided by a positive integer, there is a quotient
and a remainder. This is traditionally called the “Division
Algorithm,” but is really a theorem.

then there are unique integers q and r, with 0 ≤ r < d, such that a
Division Algorithm: If a is an integer and d a positive integer,

= dq + r (proved in Section 5.2). Definitions of


 d is called the divisor. Functions div and
 a is called the dividend. mod
 q is called the quotient.
 r is called the remainder. q = a div d
Examples: r = a mod d
What are the quotient and remainder when 101 is divided by 11?
Solution: The quotient when 101 is divided by 11 is 9 = 101 div 11, and

the remainder is 2 = 101 mod 11.


What are the quotient and remainder when −11 is divided by 3?
Solution: The quotient when −11 is divided by 3 is −4 = −11 div 3, and

the remainder is 1 = −11 mod 3.


Congruence Relation
Definition: If a and b are integers and m is a positive integer, then
a is congruent to b modulo m if m divides a – b.
 The notation a ≡ b (mod m) says that a is congruent to b modulo m.

 We say that a ≡ b (mod m) is a congruence and that m is its


modulus.
 Two integers are congruent mod m if and only if they have the same
remainder when divided by m.

a ≢ b (mod m)
 If a is not congruent to b modulo m, we write

Example: Determine whether 17 is congruent to 5 modulo 6 and


whether 24 and 14 are congruent modulo 6.

Solution:
17 ≡ 5 (mod 6) because 6 divides 17 − 5 = 12.
24 ≢ 14 (mod 6) since 24 − 14 = 10 is not divisible by 6.


More on Congruences
Theorem 4: Let m be a positive integer. The
integers a and b are congruent modulo m if
and only if there is an integer k such that a =
b + km.
Proof:
If a ≡ b (mod m), then (by the definition of
congruence) m | a – b. Hence, there is an
integer k such that a – b = km and equivalently
a = b + km.
Conversely, if there is an integer k such that a

and a ≡ b (mod m).


= b + km, then km = a – b. Hence, m | a – b
The Relationship between (mod m)
and mod m Notations
 The use of “mod” in a ≡ b (mod m) and a mod
m = b are different.
a ≡ b (mod m) is a relation on the set of integers.
In a mod m = b, the notation mod denotes a
function.
The relationship between these notations is

Theorem 3: Let a and b be integers, and let m


made clear in this theorem.

be a positive integer. Then a ≡ b (mod m) if and


only if a mod m = b mod m. (Proof in the
exercises)
Congruences of Sums and Products
Theorem 5: Let m be a positive integer. If a ≡ b (mod m)
and c ≡ d (mod m), then
a + c ≡ b + d (mod m) and ac ≡ bd (mod m)
Proof:
 Because a ≡ b (mod m) and c ≡ d (mod m), by Theorem 4
there are integers s and t with b = a + sm and d = c + tm.
 Therefore,
 b + d = (a + sm) + (c + tm) = (a + c) + m(s + t) and

 Hence, a + c ≡ b + d (mod m) and ac ≡ bd (mod m).


 b d = (a + sm) (c + tm) = ac + m(at + cs + stm).

Example: Because 7 ≡ 2 (mod 5) and 11 ≡ 1 (mod 5) , it


follows from Theorem 5 that
18 = 7 + 11 ≡ 2 + 1 = 3 (mod 5)
77 = 7 ∙ 11 ≡ 2 ∙ 1 = 2 (mod 5)
Algebraic Manipulation of Congruences
 Multiplying both sides of a valid congruence by an integer
preserves validity.
If a ≡ b (mod m) holds then c∙a ≡ c∙b (mod m), where c is any
integer, holds by Theorem 5 with d = c.
 Adding an integer to both sides of a valid congruence
preserves validity.
If a ≡ b (mod m) holds then c + a ≡ c + b (mod m), where c is
any integer, holds by Theorem 5 with d = c.
 Dividing a congruence by an integer does not always produce

Example: The congruence 14≡ 8 (mod 6) holds. But dividing


a valid congruence.

both sides by 2 does not produce a valid congruence since


14/2 = 7 and 8/2 = 4, but 7≢4 (mod 6).
See Section 4.3 for conditions when division is ok.
Computing the mod m Function of
Products and Sums
We use the following corollary to Theorem 5 to
compute the remainder of the product or sum of
two integers when divided by m from the
remainders when each is divided by m.
Corollary: Let m be a positive integer and let a
and b be integers. Then
(a + b) (mod m) = ((a mod m) + (b mod m))
mod m
and
ab mod m = ((a mod m) (b mod m)) mod m.
(proof in text)
Arithmetic Modulo m
Definitions: Let Zm be the set of nonnegative integers
less than m: {0,1, …., m−1}
The operation +m is defined as a +m b = (a + b) mod m.

The operation ∙m is defined as a ∙m b = (a ∙ b) mod m.


This is addition modulo m.

This is multiplication modulo m.


Using these operations is said to be doing arithmetic

Example: Find 7 +11 9 and 7 ∙11 9.


modulo m.

Solution: Using the definitions above:


 7 +11 9 = (7 + 9) mod 11 = 16 mod 11 = 5
 7 ∙11 9 = (7 ∙ 9) mod 11 = 63 mod 11 = 8
Arithmetic Modulo m
 The operations +m and ∙m satisfy many of the same properties as

 Closure: If a and b belong to Zm , then a +m b and a ∙m b belong to


ordinary addition and multiplication.

Zm .
 Associativity: If a, b, and c belong to Zm , then

(a ∙m b) ∙m c = a ∙m (b ∙m c).
(a +m b) +m c = a +m (b +m c) and

a +m b = b +m a and a ∙m b = b ∙m
 Commutativity: If a and b belong to Zm , then

 Identity elements: The elements 0 and 1 are identity elements for


a.

 If a belongs to Z , then a + 0 = a and a ∙ 1 = a.


addition and multiplication modulo m, respectively.
m m m


continued
Arithmetic Modulo m
 Additive inverses: If a≠ 0 belongs to Zm , then m− a is the
additive inverse of a modulo m and 0 is its own additive

 a + (m− a ) = 0 and 0 + 0 = 0
inverse.
m m

 Distributivity: If a, b, and c belong to Zm , then

a ∙m (b +m c) = (a ∙m b) +m (a ∙m c) and
(a +m b) ∙m c = (a ∙m c) +m (b ∙m c).

 Exercises 42-44 ask for proofs of these properties.


 Multiplicatative inverses have not been included since they do
not always exist. For example, there is no multiplicative inverse
of 2 modulo 6.
 (optional) Using the terminology of abstract algebra, Zm with
+m is a commutative group and Zm with +m and ∙m is a
commutative ring.
Integer Representations
and Algorithms
Section 4.2
Section Summary
Integer Representations
 Base b Expansions
 Binary Expansions
 Octal Expansions
Hexadecimal Expansions
Base Conversion Algorithm
Algorithms for Integer Operations
Representations of Integers
10, notation to represent integers. For example
In the modern world, we use decimal, or base

when we write 965, we mean 9∙102 + 6∙101 +


5∙100 .

where b is a positive integer greater than 1.


We can represent numbers using any base b,

The bases b = 2 (binary), b = 8 (octal) , and b=


16 (hexadecimal) are important for computing

The ancient Mayans used base 20 and the


and communications

ancient Babylonians used base 60.


Base b Representations
 We can use positive integer b greater than 1 as a base, because

Theorem 1: Let b be a positive integer greater than 1. Then if


of this theorem:

n is a positive integer, it can be expressed uniquely in the form:


n = akbk + ak-1bk-1 + …. + a1b + a0
where k is a nonnegative integer, a0,a1,…. ak are nonnegative
integers less than b, and ak≠ 0. The aj, j = 0,…,k are called the

(We will prove this using mathematical induction in Section 5.1.)


base-b digits of the representation.

 The representation of n given in Theorem 1 is called the base b


expansion of n and is denoted by (akak-1….a1a0)b.
 We usually omit the subscript 10 for base 10 expansions.
Binary Expansions
with binary (base 2) expansions of integers. In these
Most computers represent integers and do arithmetic

expansions, the only digits used are 0 and 1.

that has (1 0101 1111)2 as its binary expansion?


Example: What is the decimal expansion of the integer

(1 0101 1111)2 = 1∙28 + 0∙27 + 1∙26 + 0∙25 + 1∙24 +


Solution:

1∙23 + 1∙22 + 1∙21 + 1∙20 =351.


Example: What is the decimal expansion of the integer
that has (11011)2 as its binary expansion?
Solution: (11011)2 = 1 ∙24 + 1∙23 + 0∙22 + 1∙21 + 1∙20
=27.
Octal Expansions
The octal expansion (base 8) uses the digits
{0,1,2,3,4,5,6,7}.
Example: What is the decimal expansion of
the number with octal expansion (7016)8 ?
Solution: 7∙83 + 0∙82 + 1∙81 + 6∙80 =3598
Example: What is the decimal expansion of
the number with octal expansion (111)8 ?
Solution: 1∙82 + 1∙81 + 1∙80 = 64 + 8 + 1 =
73
Hexadecimal Expansions
The hexadecimal expansion needs 16 digits, but our
decimal system provides only 10. So letters are used for
the additional symbols. The hexadecimal system uses

through F represent the decimal numbers 10 through 15.


the digits {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}. The letters A

Example: What is the decimal expansion of the number


with hexadecimal expansion (2AE0B)16 ?

2∙164 + 10∙163 + 14∙162 + 0∙161 + 11∙160 =175627


Solution:

Example: What is the decimal expansion of the number


with hexadecimal expansion (E5)16 ?
Solution: 14∙161 + 5∙160 = 224 + 5 = 229
Base Conversion
To construct the base b expansion of an integer n:
Divide n by b to obtain a quotient and remainder.
n = bq0 + a0 0 ≤ a0 ≤ b
The remainder, a0 , is the rightmost digit in the base
b expansion of n. Next, divide q0 by b.
q0 = bq1 + a1 0 ≤ a1 ≤ b
The remainder, a1, is the second digit from the right
in the base b expansion of n.
Continue by successively dividing the quotients by b,
obtaining the additional base b digits as the

quotient is 0.
remainder. The process terminates when the
continued →
Algorithm: Constructing Base b Expansions
1)
procedure base b expansion(n, b: positive integers with b >

k := 0
q := n

while (q ≠ 0)
ak := q mod b

k := k + 1
q := q div b

return(ak-1 ,…, a1,a0){(ak-1 … a1a0)b is base b expansion of n}

 q represents the quotient obtained by successive


divisions by b, starting with q = n.
The digits in the base b expansion are the remainders

The algorithm terminates when q = 0 is reached.


of the division given by q mod b.
Base Conversion
Example: Find the octal expansion of
(12345)10
Solution: Successively dividing by 8 gives:
 12345 = 8 ∙ 1543 + 1
 1543 = 8 ∙ 192 + 7
192 = 8 ∙ 24 + 0
 24 = 8 ∙ 3 + 0

 3 =8∙0+3
The remainders are the digits from right to
left yielding (30071)8.
Comparison of Hexadecimal, Octal, and
Binary Representations

Initial 0s are not shown

Each octal digit corresponds to a block of 3 binary digits.


Each hexadecimal digit corresponds to a block of 4 binary digits.
So, conversion between binary, octal, and hexadecimal is easy.
Conversion Between Binary, Octal, and
Hexadecimal Expansions
of (11 1110 1011 1100)2.
Example: Find the octal and hexadecimal expansions

Solution:

three (011 111 010 111 100)2, adding initial 0s as


To convert to octal, we group the digits into blocks of

digits 3,7,2,7, and 4. Hence, the solution is (37274)8.


needed. The blocks from left to right correspond to the

blocks of four (0011 1110 1011 1100)2, adding initial 0s


To convert to hexadecimal, we group the digits into

the digits 3,E,B, and C. Hence, the solution is (3EBC)16.


as needed. The blocks from left to right correspond to
Binary Addition of Integers
Algorithms for performing operations with integers using
their binary expansions are important as computer chips
work with binary numbers. Each digit is called a bit.
procedure add(a, b: positive integers)
{the binary expansions of a and b are (an-1,an-2,…,a0)2 and (bn-1,bn-2,…,b0)2,

c := 0
respectively}

for j := 0 to n − 1
d := ⌊(aj + bj + c)/2⌋
sj := aj + bj + c − 2d
c := d
sn := c
return(s0,s1,…, sn){the binary expansion of the sum is (sn,sn-1,…,s0)2}
The number of additions of bits used by the algorithm to
add two n-bit integers is O(n).
Binary Multiplication of Integers
Algorithm for computing the product of two n
bit integers.
procedure multiply(a, b: positive integers)
{the binary expansions of a and b are (an-1,an-2,…,a0)2 and (bn-1,bn-2,…,b0)2, respectively}
for j := 0 to n − 1
if bj = 1 then cj = a shifted j places
else cj := 0
{co,c1,…, cn-1 are the partial products}
p := 0
for j := 0 to n − 1
p := p + cj
return p {p is the value of ab}
The number of additions of bits used by the
algorithm to multiply two n-bit integers is
O(n2).
Binary Modular Exponentiation
 In cryptography, it is important to be able to find bn mod m
efficiently, where b, n, and m are large integers.
 Use the binary expansion of n, n = (ak-1,…,a1,ao)2 , to compute bn .
Note that:

 Therefore, to compute bn, we need only compute the values of b,


b2, (b2)2 = b4, (b4)2 = b8 , …,
in this list, where aj = 1.
and the multiply the terms

Example: Compute 311 using this method.


Solution: Note that 11 = (1011)2 so that 311 = 38 32 31 =
((32)2 )2 32 31 = (92 )2 ∙ 9 ∙3 = (81)2 ∙ 9 ∙3 =6561 ∙ 9 ∙3 =117,147.
continued →
Binary Modular Exponentiation
Algorithm
The algorithm successively finds b mod m, b2 mod m,
b4 mod m, …,
where aj = 1.
mod m, and multiplies
together the terms

procedure modular exponentiation(b: integer, n = (ak-1ak-2…a1a0)2 , m:

x := 1
positive integers)

for i := 0 to k − 1
power := b mod m

if ai= 1 then x := (x∙ power ) mod m


power := (power∙ power ) mod m
return x {x equals bn mod m }
 O((log m )2 log n) bit operations are used to find bn mod
m.

You might also like