0% found this document useful (0 votes)
13 views60 pages

Cryptography: Modular Arithmetic Basics

Chapter 2 focuses on the mathematics of cryptography, specifically modular arithmetic and congruence. It covers integer arithmetic, the Euclidean algorithm for finding the greatest common divisor, and the importance of modular operations in cryptography. The chapter also discusses binary operations, the modulo operator, and the concepts of additive and multiplicative inverses in modular arithmetic.

Uploaded by

Laiba Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views60 pages

Cryptography: Modular Arithmetic Basics

Chapter 2 focuses on the mathematics of cryptography, specifically modular arithmetic and congruence. It covers integer arithmetic, the Euclidean algorithm for finding the greatest common divisor, and the importance of modular operations in cryptography. The chapter also discusses binary operations, the modulo operator, and the concepts of additive and multiplicative inverses in modular arithmetic.

Uploaded by

Laiba Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Chapter 2

Mathematics of
Cryptography
Part I: Modular Arithmetic and Congruence

2.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 2
Objectives
 To review integer arithmetic, concentrating on divisibility
and finding the greatest common divisor using the Euclidean
algorithm
 To understand how the extended Euclidean algorithm find
the multiplicative inverses
 To emphasize the importance of modular arithmetic and
the modulo operator, because they are extensively used in
cryptography

2.2
2-1 INTEGER ARITHMETIC

In integer arithmetic, we use a set and a few


operations. You are familiar with this set and the
corresponding operations, but they are reviewed here
to create a background for modular arithmetic.

Topics discussed in this section:


2.1.1 Set of Integers
2.1.2 Binary Operations
2.1.3 Integer Division
2.1.4 Divisibility

2.3
2.1.1 Set of Integers

The set of integers, denoted by Z, contains all integral


numbers (with no fraction) from negative infinity to
positive infinity (Figure 2.1).

Figure 2.1 The set of integers

2.4
2.1.2 Binary Operations
In cryptography, we are interested in three binary
operations applied to the set of integers. A binary
operation takes two inputs and creates one output.

Figure 2.2 Three binary operations for the set of integers

2.5
2.1.2 Continued
Example 2.1

The following shows the results of the three binary operations


on two integers. Because each input can be either positive or
negative, we can have four cases for each operation.

2.6
2.1.3 Integer Division

In integer arithmetic, if we divide a by n, we can get q


And r . The relationship between these four integers can
be shown as

a=q×n+r

2.7
2.1.3 Continued
Example 2.2
Assume that a = 255 and n = 11. We can find q = 23 and R = 2
using the division algorithm.

Figure 2.3 Example 2.2, finding the quotient and the remainder

2.8
2.1.3 Continued
Figure 2.4 Division algorithm for integers

Two restrictions:
When we use the above division relationship in cryptography,
we impose the following two restriction.
Divisor be a positive integer (n>0)
Remainder be a non-negative integer (r>=0)
2.9
2.1.3 Continued
Example 2.3
When we use a computer or a calculator, r and q are negative
when a is negative. How can we apply the restriction that r
needs to be positive? The solution is simple, we decrement the
value of q by 1 and we add the value of n to r to make it
positive.
Example: if a=-255 and n=11

-255 = -253 – 2 -255=-264 +9

2.10
2.1.3 Continued
Figure 2.5 Graph of division alogorithm

2.11
2.1.4 Divisbility

If a is not zero and we let r = 0 in the division relation,


we get

a=q×n

If the remainder is zero, n|a a=255, n=5,


n divides a

If the remainder is not zero, n a a=255, n=23


n does not
divide a
2.12
2.1.4 Continued
Example 2.4

a. The integer 4 divides the integer 32 because 32 = 8 × 4.


We show this as

b. The number 8 does not divide the number 42 because


42 = 5 × 8 + 2. There is a remainder, the number 2, in the
equation. We show this as

2.13
2.1.4 Continued
Example 2.5

2.14
2.1.4 Continued
Properties

Property 1: if a|1, then a = ±1.

Property 2: if a|b and b|a, then a = ±b.

Property 3: if a|b and b|c, then a|c.

Property 4: if a|b and a|c, then


a|(m × b + n × c), where m
and n are arbitrary integers

2.15
2.1.4 Continued
Example 2.6

2.16
2.1.4 Continued

Note

Fact 1: The integer 1 has only one


divisor, itself.

Fact 2: Any positive integer has at least


two divisors, 1 and itself (but it
can have more).

2.17
2.1.4 Continued
Figure 2.6 Common divisors of two integers

2.18
2.1.4 Continued

Note Greatest Common Divisor

The greatest common divisor of two


positive integers is the largest integer
that can divide both integers.

Note Euclidean Algorithm

Fact 1: gcd (a, 0) = a


Fact 2: gcd (a, b) = gcd (b, r), where r is
the remainder of dividing a by b
2.19
2.1.4 Continued
Figure 2.7 Euclidean Algorithm

Note

When gcd (a, b) = 1, we say that a and b


are relatively prime.
2.20
2.1.4 Continued

Note

When gcd (a, b) = 1, we say that a and b


are relatively prime.

2.21
2.1.4 Continued
Example 2.7
Find the greatest common divisor of 2740 and 1760.
Solution
We have gcd (2740, 1760) = 20.

2.22
2.1.4 Continued
Example 2.8
Find the greatest common divisor of 25 and 60.

Solution
We have gcd (25, 65) = 5.

2.23
2.1.4 Continued
Extended Euclidean Algorithm
Given two integers a and b, we often need to find other two
integers, s and t, such that

The extended Euclidean algorithm can calculate the gcd ( a, b)


and at the same time calculate the value of s and t.

2.24
2.1.4 Continued
Figure 2.8.a Extended Euclidean algorithm, part a

The value of r, s and t are calculated using the following


formulas:
r=r1-q×r2;
s=s1-q×s2;
t=t1-q×t2;
2.25 where q represents the quotient of r1 and r2.
2.1.4 Continued
Figure 2.8.b Extended Euclidean algorithm, part b

2.26
2.1.4 Continued
Example 2.9
Given a = 161 and b = 28, find gcd (a, b) and the values of s
and t.
Solution
We get gcd (161, 28) = 7, s = −1 and t = 6.

r=r1-q×r2;
s=s1-q×s2;
t=t1-q×t2;
where q represents the quotient of r1 and r2.
2.27
2.1.4 Continued
Example 2.10
Given a = 17 and b = 0, find gcd (a, b) and the values of s
and t.

Solution
We get gcd (17, 0) = 17, s = 1, and t = 0.

2.28
2.1.4 Continued
Example 2.11

Given a = 0 and b = 45, find gcd (a, b) and the values of s


and t.

Solution
We get gcd (0, 45) = 45, s = 0, and t = 1.

2.29
2-2 MODULAR ARITHMETIC

The division relationship (a = q × n + r) discussed in


the previous section has two inputs (a and n) and two
outputs (q and r). In modular arithmetic, we are
interested in only one of the outputs, the remainder r.

Topics discussed in this section:


2.2.1 Modular Operator
2.2.2 Set of Residues
2.2.3 Congruence
2.2.4 Operations in Zn
2.2.5 Addition and Multiplication Tables
2.2.6 Different Sets
2.30
2.2.1 Modulo Operator

The modulo operator is shown as mod. The second input


(n) is called the modulus. The output r is called the
residue.
Figure 2.9 Division algorithm and modulo operator

2.31
2.1.4 Continued
Example 2.14
Find the result of the following operations:
a. 27 mod 5 b. 36 mod 12
c. −18 mod 14 d. −7 mod 10

Solution
a. Dividing 27 by 5 results in r = 2
b. Dividing 36 by 12 results in r = 0.
c. Dividing −18 by 14 results in r = −4. After adding the
modulus r = 10
d. Dividing −7 by 10 results in r = −7. After adding the
modulus to −7, r = 3.

2.32
2.2.2 Set of Residues

The modulo operation creates a set, which in modular


arithmetic is referred to as the set of least residues
modulo n, or Zn. It contains elements between 0 and n-1.

Figure 2.10 Some Zn sets

2.33
2.2.3 Congruence

In cryptography, we often used the concept of congruence


instead of equality.
To show that two integers are congruent, we use the
congruence operator ( ≡ ). For example, we write:

2.34
2.2.3 Continued
Figure 2.11 Concept of congruence

2.35
2.2.3 Continued
Residue Classes
A residue class [a] or [a]n is the set of integers congruent
modulo n.
if n is 5, then we we have the following residue classes

2.36
2.2.3 Continued
Figure 2.12 Comparison of Z and Zn using graphs

R= {a: a E Z and a== R(mod n)


a/n =r/n

2.37
2.2.3 Continued
Example 2.15

We use modular arithmetic in our daily life; for example, we


use a clock to measure time. Our clock system uses modulo 12
arithmetic. However, instead of a 0 we use the number 12.

2.38
2.2.4 Operation in Zn

The three binary operations that we discussed for the set


Z can also be defined for the set Zn. The result may need
to be mapped to Zn using the mod operator.
Figure 2.13 Binary operations in Zn

2.39
2.2.4 Continued
Example 2.16
Perform the following operations (the inputs come from Zn):
a. Add 7 to 14 in Z15.
b. Subtract 11 from 7 in Z13.
c. Multiply 11 by 7 in Z20.

Solution

2.40
2.2.4 Continued
Example 2.17
Perform the following operations (the inputs come from
either Z or Zn):
a. Add 17 to 27 in Z14.
b. Subtract 43 from 12 in Z13.
c. Multiply 123 by −10 in Z19.

Solution

2.41
2.2.4 Continued
Properties

2.42
2.2.4 Continued
Figure 2.14 Properties of mode operator

2.43
2.2.4 Continued
Example 2.18

The following shows the application of the above properties:

1. (1,723,345 + 2,124,945) mod 11 = (8 + 9) mod 11 = 6

2. (1,723,345 − 2,124,945) mod 16 = (8 − 9) mod 11 = 10

3. (1,723,345 × 2,124,945) mod 16 = (8 × 9) mod 11 = 6

2.44
2.2.4 Continued
Example 2.19

In arithmetic, we often need to find the remainder of powers


of 10 when divided by an integer.

mod x

(10 × 10 ×10 ×………10) mod x (n times)


(10 mod x× 10 mod x × 10 mod x ×………10 mod x) mode x
(n times)
(10 mod x)nmod x

2.45
2.2.5 Inverses

When we are working in modular arithmetic, we often need


to find the inverse of a number relative to an operation. We
are normally looking for an additive inverse (relative to an
addition operation) or a multiplicative inverse (relative to a
multiplication operation).

2.46
2.2.5 Continue
Additive Inverse

In Zn, two numbers a and b are additive inverses of each


other if

Note

In modular arithmetic, each integer has


an additive inverse. The sum of an
integer and its additive inverse is
congruent to 0 modulo n.
2.47
2.2.5 Continued
Example 2.21

Find all additive inverse pairs in Z10.

Solution
The six pairs of additive inverses are (0, 0), (1, 9), (2, 8), (3, 7),
(4, 6), and (5, 5).

2.48
2.2.5 Continue
Multiplicative Inverse
In Zn, two numbers a and b are the multiplicative inverse of
each other if

Note

In modular arithmetic, an integer may or


may not have a multiplicative inverse.
When it does, the product of the integer
and its multiplicative inverse is
congruent to 1 modulo n.

2.49
2.2.5 Continued

Example 2.22
Find the multiplicative inverse of 8 in Z10.
Solution
There is no multiplicative inverse because gcd (10, 8) = 2 ≠ 1.
In other words, we cannot find any number between 0 and 9
such that when multiplied by 8, the result is congruent to 1.
Example 2.23
Find all multiplicative inverses in Z10.

Solution
There are only three pairs: (1, 1), (3, 7) and (9, 9). The
numbers 0, 2, 4, 5, 6, and 8 do not have a multiplicative
inverse.
2.50
2.2.5 Continued
Example 2.24
Find all multiplicative inverse pairs in Z11.
Solution
We have seven pairs: (1, 1), (2, 6), (3, 4), (5, 9), (7, 8), (9, 5),
and (10, 10).

2.51
2.2.5 Continued

Note

The extended Euclidean algorithm finds


the multiplicative inverses of b in Zn
when n and b are given and
gcd (n, b) = 1.
The multiplicative inverse of b is the
value of t after being mapped to Zn.

2.52
Finding Multiplicative Inverse using
Extended Euclidean algorithm
a x s + b x t = gcd (a, b)
[if a= n] n x s + b x t = gcd (n, b)
multInv of b exists only if gcd(n,b)=1
nxs+bxt= 1
Taking (mod n) on both sides of eqn
0 x s + (b x t) = 1 (modn)
Use extended Euclidean algorithm to compute the gcd (n, b) if it
is 1 then the multiplicative inverse of b is the value of t in the
above EEA after being mapped to Zn.
2.53
2.2.5 Continued
Figure 2.15 Using extended Euclidean algorithm to
find multiplicative inverse

r=r1-q×r2;
s=s1-q×s2;
t=t1-q×t2;
where q represents the quotient of r1 and r2.
2.54
2.2.5 Continued
Example 2.25
Find the multiplicative inverse of 11 in Z26.
Solution

The gcd (26, 11) is 1; the inverse of 11 is 7 or 19.


r=r1-q×r2;
s=s1-q×s2;
t=t1-q×t2;
where q represents the quotient of r1 and r2.
2.55
2.2.5 Continued
Example 2.26
Find the multiplicative inverse of 23 in Z100.
Solution

The gcd (100, 23) is 1; the inverse of 23 is 13 or 87.


r=r1-q×r2;
s=s1-q×s2;
t=t1-q×t2;
2.56 where q represents the quotient of r1 and r2.
2.2.5 Continued
Example 2.27
Find the inverse of 12 in Z26.
Solution

The gcd (26, 12) is 2; the inverse does not exist.

r=r1-q×r2;
s=s1-q×s2;
t=t1-q×t2;
where q represents the quotient of r1 and r2.
2.57
2.2.6 Addition and Multiplication Tables
Figure 2.16 Addition and multiplication table for Z10

2.58
2.2.7 Different Sets
Figure 2.17 Some Zn and Zn* sets

Note

We need to use Zn when additive


inverses are needed; we need to use Zn*
when multiplicative inverses are needed.
2.59
Cryptographic Keys &
Additive & Multiplicative
Inverses
 If the operation (Encryption/ Decryption
Algorithm) is Addition, use additive inverse pairs
in Zn as Encryption/ Decryption keys.
 If the operation (Encryption/ Decryption
Algorithm) is Multiplication use Multiplicative
inverse pairs in Zn* as Encryption/ Decryption
keys.
 Zp* can provide Encryption/ Decryption key pairs
for both addition & multiplication algorithms.

You might also like