3 Mathematics of Cryptography
3 Mathematics of Cryptography
SECURITY
INTRODUCTION
VISION-MISSION DEPARTMENT
VISION
❖TO ACHIEVE EXCELLENCE IN COMPUTER SCIENCE &
ENGINEERING EDUCATION FOR GLOBAL COMPETENCY WITH
HUMAN VALUES
MISSION
❖PROVIDE INNOVATIVE ACADEMIC & RESEARCH ENVIRONMENT
TO DEVELOP COMPETITIVE ENGINEERS IN THE FIELD OF
COMPUTER SCIENCE AND ENGINEERING.
❖DEVELOP PROBLEM-SOLVING & PROJECT MANAGEMENT SKILLS
BY STUDENT CENTRIC ACTIVITIES & INDUSTRY
COLLABORATION.
❖NURTURE THE STUDENTS WITH SOCIAL & ETHICAL VALUES
INTRODUCTION
• [CS 3101.3] MAKE USE OF PUBLIC KEY ENCRYPTION WITH KEY EXCHANGE
FUNDAMENTALS.
• [PO.5]. MODERN TOOL USAGE: CREATE, SELECT, AND APPLY APPROPRIATE TECHNIQUES,
RESOURCES, AND MODERN ENGINEERING AND IT TOOLS INCLUDING PREDICTION AND
MODELLING TO COMPLEX ENGINEERING ACTIVITIES WITH AN UNDERSTANDING OF THE
LIMITATIONS.
• [PO.6]. THE ENGINEER AND SOCIETY: THE ENGINEERS ARE CALLED SOCIETY BUILDERS AND
TRANSFORMERS. B. TECH CCE GRADUATE SHOULD BE ABLE TO APPLY REASONING
INFORMED BY THE CONTEXTUAL KNOWLEDGE TO ASSESS SOCIETAL, HEALTH, SAFETY,
LEGAL AND CULTURAL ISSUES AND THE CONSEQUENT RESPONSIBILITIES RELEVANT TO THE
PROFESSIONAL ENGINEERING PRACTICE.
PROGRAM OUTCOME
• [[PO.7]. ENVIRONMENT AND SUSTAINABILITY: THE ZERO EFFECT AND ZERO DEFECT IS NOT
JUST A SLOGAN, IT IS TO BE PRACTICED IN EACH ACTION. THUS, A B. TECH. CCE SHOULD
UNDERSTAND THE IMPACT OF THE PROFESSIONAL ENGINEERING SOLUTIONS IN SOCIETAL
AND ENVIRONMENTAL CONTEXTS, AND DEMONSTRATE THE KNOWLEDGE OF, AND NEED
FOR SUSTAINABLE DEVELOPMENT.
• [PO.8]. ETHICS: PROTECTION OF IPR, STAYING AWAY FROM PLAGIARISM ARE IMPORTANT.
STUDENT SHOULD BE ABLE TO APPLY ETHICAL PRINCIPLES AND COMMIT TO PROFESSIONAL
ETHICS, RESPONSIBILITIES AND NORMS OF THE ENGINEERING PRACTICE.
• [PO.9]. INDIVIDUAL AND TEAMWORK: UNITED WE GROW, DIVIDED WE FALL IS A CULTURE
AT MUJ. THUS, AN OUTGOING STUDENT SHOULD BE ABLE TO FUNCTION EFFECTIVELY AS
AN INDIVIDUAL, AND AS A MEMBER OR LEADER IN DIVERSE TEAMS, AND IN
MULTIDISCIPLINARY SETTINGS.
• [PO.10]. COMMUNICATION: COMMUNICATE EFFECTIVELY FOR ALL ENGINEERING
PROCESSES & ACTIVITIES WITH THE PEER ENGINEERING TEAM, COMMUNITY AND WITH
SOCIETY AT LARGE. CLARITY OF THOUGHTS, BEING ABLE TO COMPREHEND AND
FORMULATE EFFECTIVE REPORTS AND DESIGN DOCUMENTATION, MAKE EFFECTIVE
PRESENTATIONS, AND GIVE AND RECEIVE CLEAR INSTRUCTIONS
PROGRAM OUTCOME
• [PO.11]. PROJECT MANAGEMENT AND FINANCE: DEMONSTRATE KNOWLEDGE AND
UNDERSTANDING OF THE ENGINEERING AND MANAGEMENT PRINCIPLES AND APPLY THESE
TO ONE’S OWN WORK, AS A MEMBER AND LEADER IN A TEAM, TO MANAGE PROJECTS
AND IN VARIED ENVIRONMENTS.
• [PO.12]. LIFE-LONG LEARNING: RECOGNIZE THE NEED FOR AND HAVE THE PREPARATION
AND ABILITY TO ENGAGE IN INDEPENDENT AND LIFE-LONG LEARNING IN THE BROADEST
CONTEXT OF TECHNOLOGICAL CHANGE.
2.1.1 Set of Integers
2.9
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.
2.10
2.1.2 Continued
Example 2.1
2.11
2.1.3 Integer Division
a=q×n+r
2.12
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.13
2.1.3 Two Restrictions for Cryptography
Figure 2.4 Division algorithm for integers
We impose two restrictions. First, we require that the divisor be a positive integer
(n>0). Second, we require that the remainder be a non-negative integer (r>=0).
2.14
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.
255 = 23 * 11 + 2
2.15
2.1.3 Continued
Figure 2.5 Graph of division alogorithm
Start from zero, the graph shows how we can reach the point representing the integer a on the
line.
• In case of a positive ‘a’, we need to move q*n units to the right and then move extra r units
in the same direction.
• In case of a negative ‘a’ , we need to move (q-1)*n units to the left (q is negative in this
case) and then move r units in the opposite direction. In both cases, the value of r is positive.
2.16
2.1.4 Divisbility
a=q×n
2.17
2.1.4 Continued
Example 2.4
2.18
2.1.4 Continued
Example 2.5
2.19
2.1.4 Continued
Properties
2.20
2.1.4 Continued
Example 2.6
2.21
2.1.4 Continued
Note
2.22
2.1.4 Continued
Figure 2.6 Common divisors of two integers
One integer often needed in cryptography is the greatest common divisor of two positive
integers. Two positive integers may have many common divisors, but only one greatest common
divisor.
2.23
2.1.4 Continued
2.24
Euclidean Algorithm
Euclid developed an algorithm to find the GCD of two positive integers.
2.25
2.1.4 Continued
Figure 2.7 Euclidean Algorithm
2.26
2.1.4 Continued
Note
2.27
2.1.4 Continued
Example 2.7
Find the greatest common divisor of 2740 and 1760.
Solution
We have gcd (2740, 1760) = 20.
2.28
2.1.4 Continued
Example 2.8
Find the greatest common divisor of 25 and 60.
Solution
We have gcd (25, 65) = 5.
2.29
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
2.30
2.1.4 Continued
Figure 2.8.a Extended Euclidean algorithm, part a
2.31
2.1.4 Continued
Figure 2.8.b Extended Euclidean algorithm, part b
2.32
2.1.4 Continued
Example 2.9
S = S1 – q*S2; t = t1 – q*t2
2.33
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.34
2.1.4 Continued
Example 2.11
2.35
2.1.4 Continued
Linear Diophantine Equation
We need to find integer values for x and y that satisfy the equation. This type of equation has
either no solution or an infinite number of solutions. Let d = gcd(a,b). If d not divisible by c, then
equation has no solution. If d|c, then we have an infinite number of solutions. One of them is
called particular; the rest are general.
Note
2.36
2.1.4 Continued
Linear Diophantine Equation
Note
Particular solution:
x0 = (c/d)s and y0 = (c/d)t
Note
General solutions:
x = x0 + k (b/d) and y = y0 − k(a/d)
where k is an integer
2.38
2.1.4 Continued
Example 2.12
Find the particular and general solutions to the equation
21x + 14y = 35.
Solution: We have d = gcd(21, 14) = 7. Since 7|35, the equation has an
infinite number of solutions. We can divide both sides by 7 to find the
equation 3x + 2y = 5. Using the extended Euclidean algorithm, we find s
and t such as 3s +2t = 1 . We have s =1, t = -1.
2.39
2-2 MODULAR ARITHMETIC
2.41
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.42
2.2.2 Set of Residues
2.43
2.2.3 Congruence
2.44
2.2.3 Continued
Figure 2.11 Concept of congruence
2.45
2.2.3 Continued
Residue Classes
A residue class [a] or [a]n is the set of integers congruent
modulo n. In other words, it is the set of all integers such
that x = a (mod n). For e.g.: if n = 5, we have five sets [0],
[1], [2], [3] and [4]
The integers in the set [0] are all reduced to 0 when we apply the modulo 5 operation
on them.
In each set, there is one element called the least (non-negative) residue. In the set [0],
this element is 0; in the set [1], this element is 1. The set of all these residues is what we
have shown as Z5 = {0, 1, 2, 3, 4}. In other words, the set Zn is the set of all least
residue modulo n.
2.46
2.2.3 Continued
Figure 2.12 Comparison of Z and Zn using graphs
2.47
2.2.4 Operation in Zn
2.48
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.49
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.50
2.2.4 Continued
Properties
2.51
2.2.4 Continued
Example 2.18
2.52
2.2.4 Continued
Example 2.19
2.53
2.2.5 Inverses
2.54
2.2.5 Continue
Additive Inverse
In Zn, the additive inverse of a can be calculated as b = n – a. For e.g. the additive
inverse of 4 in Z10 is 10 – 4 = 6
Note
2.55
For example, the additive inverse of 4 in Z10
is 10 − 4 = 6.
2.56
2.2.5 Continued
Example 2.21
Solution
The six pairs of additive inverses are (0, 0), (1, 9), (2, 8), (3, 7), (4,
6), and (5, 5).
In this list, 0 is the additive inverse of itself; so is 5. Note that the
additive inverses are reciprocal; if 4 is additive inverse of 6, then
6 is also additive inverse of 4.
2.57
2.2.5 Continue
Multiplicative Inverse
In Zn, two numbers a and b are the multiplicative inverse of each other if
For e.g. if modulus is 10, then the multiplicative inverse of 3 is 7. In other words,
we have (3*7) mod 10 = 1
Note
Note
2.59
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. We can see that (1*1) mod
10 = 1
(3*7) mod 10 = 1
(9*9)
2.60
mod 10n = 1
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, 9), and (10,
10). In moving from Z10 to Z11, the number of pair doubles. The reason
is that in Z11, gcd (11,a) is 1 (relatively prime) for all values of a except
0. It means all integers 1 to 10 have multiplicative inverses.
2.61
2.2.5 Continued
Note
2.62
2.63
2.2.5 Continued
Example 2.25
Find the multiplicative inverse of 11 in Z26.
Solution
2.64
2.2.5 Continued
Example 2.26
Find the multiplicative inverse of 23 in Z100.
Solution
2.65
2.2.5 Continued
Example 2.27
Find the inverse of 12 in Z26.
Solution
2.66
2.2.6 Addition and Multiplication Tables
Figure 2.16 Addition and multiplication table for Z10
2.67
2.2.7 Different Sets
Figure 2.17 Some Zn and Zn* sets
Note
2.69
2-3 MATRICES
2.70
2.3.1 Definition
2.71
2.3.1 Continued
2.72
2.3.2 Operations and Relations
Example 2.28
2.73
2.3.2 Continued
Example 2. 29
2.74
2.3.2 Continued
Example 2. 30
2.75
2.3.2 Continued
Example 2. 31
2.76
2.3.3 Determinant
Note
2.78
2.3.3 Continued
Example 2. 33
2.79
Additive Inverse: The additive inverse of the matrix A is
another matrix B such that A + B = 0.
2.80
2.3.4 Inverses
Note
Multiplicative inverses are only defined
for square matrices.
The multiplicative inverse is defined only for square matrices. The
multiplicative inverse of a square matrix A is a square matrix A is a
square matrix B such that A * B = B * A = I. Normally the
multiplicative inverse A is defined by A^-1.
Matrices with real elements have inverse only if det(A) not equal to 0.
2.81
2.3.5 Residue Matrices
Example 2. 34
2.82
2-4 LINEAR CONGRUENCE
2.83
2.4.1 Single-Variable Linear Equations
2.84
2.4.1 Continued
Example 2.35
Solve the equation 10 x ≡ 2(mod 15).
Solution
First we find the gcd (10 and 15) = 5. Since 5 does not divide 2,
we have no solution.
Example 2.36
Solve the equation 14 x ≡ 12 (mod 18). Note gcd(14, 18) = 2.
Since 2 divides 12, we have exactly two solutions. A*b mod n = 1
Solution
2.85
2.4.1 Continued
Example 2.37
Solution
First we change the equation to the form ax ≡ b (mod n). We add
−4 (the additive inverse of 4) to both sides, which give
3x ≡ 2 (mod 13). Because gcd (3, 13) = 1, the equation has only
one solution, which is x0 = (2 × 3−1) mod 13 = 18 mod 13 = 5.
We can see that the answer satisfies the original equation:
3 × 5 + 4 ≡ 6 (mod 13).
2.86
2.4.2 Single-Variable Linear Equations
2.87
2.4.2 Continued
Example 2.38
Solve the set of following three equations:
Solution
The result is x ≡ 15 (mod 16), y ≡ 4 (mod 16), and z ≡ 14 (mod
16). We can check the answer by inserting these values into the
equations.
2.88