Lecture 3- Number-Theory - Notes
Lecture 3- Number-Theory - Notes
Lecture 3
1
Reminder of last week
• Symmetric Encryption
– Substitution ciphers and frequency analysis
– One time pad (perfectly secure/impractical)
– Stream and block ciphers (RC4/DES/AES)
– Block cipher modes of operation
• Error propagation
2
Today’s Lecture
• Number theory
– Background maths to public key crypto
• CILO5
(properties/design of security
mechanisms)
3
Number Theory
Slides 5-23
4
Divisors
Two integers: a and b (b is non-zero)
– b divides a if there exists some integer m such that
a = m·b
– Notation: b|a
– eg. 1,2,3,4,6,8,12,24 divide 24
– b is a divisor of a
Relations
1. If b|1 b = 1
2. If b|a and a|b b = a
3. If b|0 any b 0
4. If b|g and b|h then b | (mg + nh) for any integers m and n.
5
5
Congruence
a is congruent to b modulo n if n | a-b.
Notation: a b (mod n)
Examples
1. 23 8 (mod 5) because 5 | 23-8
2. -11 5 (mod 8) because 8 | -11-5
3. 81 0 (mod 27) because 27 | 81-0
Properties
1. a b (mod n) implies b a (mod n)
2. a b (mod n) and b c (mod n) imply a c (mod n)
Examples
1. m=3 (5|15)
2. m=-2 (8|-16
3. m=3 (27|81)
6
Modular Arithmetic
• modular reduction: a mod n = r
r is the remainder when a is divided by a natural number n
• r is also called the residue of a mod n
▪ it can be represented as: a = qn + r where 0 r < n, q = a/n
where x is the largest integer less than or equal to x
▪ q is called the quotient
• 18 mod 7 = ?
• 29345723547 mod 2 = ?
• Relation between modular reduction and congruence
▪ -12 ≡ -5 ≡ 2 ≡ 9 (mod 7)
▪ -12 mod 7 = 2 (what’s the quotient?)
▪ -12 = q*n+r= -2*7+2
-12 mod 7 =2
7
Modular Arithmetic Operations
8
Prime and Composite Numbers
• An integer p is prime if its only divisors are 1 and p only.
• Otherwise, it is a composite number.
• E.g. 2,3,5,7 are prime; 4,6,8,9,10 are not
• List of prime numbers less than 200:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79
83 89 97 101 103 107 109 113 127 131 137 139 149 151 157
163 167 173 179 181 191 193 197 199
9
Prime Factorization
• It is generally hard to do (prime) factorization when
the number is large
• E.g. factorize
1. 24070280312179
2. 10893002480924910251
3. 938740932174981739832107481234871432497617
4. 93874093217498173983210748123487143249761717
10
10
Greatest Common Divisor (GCD)
• GCD (a,b) of a and b is the largest number that divides both a and b
– E.g. GCD(60,24) = 12
• If GCD(a, b) = 1, then a and b are said to be relatively prime
– E.g. GCD(8,15) = 1
– 8 and 15 are relatively prime (co-prime)
Question: How to compute gcd(a,b)?
Naive method: factorize a and b and compute the product of
all their common factors.
e.g. 540 = 22 x 33 x 5
144 = 24 x 32
gcd(540, 144) = 22 x 32 = 36
11
Euclidean Algorithm
Euclid's Algorithm:
A=a, B=b
Rationale while B>0
Theorem gcd(a, b) = gcd(a, b mod a) R = A mod B
A = B, B = R
return A
Compute gcd(911, 999) :
A =qxB + R
999 = 1 x 911 + 88
911 = 10 x 88 + 31
88 = 2 x 31 + 26
31 = 1 x 26 + 5
26 =5x5+1
5 =5x1+0
Hence gcd(911, 999) = gcd(911, 999 mod 911) = gcd(911 mod 88, 88)
= gcd(31, 88 mod 31) = gcd(31 mod 26, 26) = gcd(5, 26 mod 5)
= gcd(5, 1) = 1. 12
12
Modular Inverse
A is the modular inverse of B mod n if
AB mod n = 1.
e.g.
•3 is the modular inverse of 5 mod 7. In other words, 5-1 mod 7 = 3.
•7 is the modular inverse of 7 mod 16. In other words, 7-1 mod 16 = 7.
Question:
What’s the modular inverse of 911 mod 999?
14
14
Extended Euclidean Algorithm
The extended Euclidean algorithm can be used to solve the integer
equation
ax + by = gcd(a, b)
For any given integers a and b.
Example
Let a = 911 and b = 999. From the Euclidean algorithm,
999 = 1 x 911 + 88
911 = 10 x 88 + 31
88 = 2 x 31 + 26
31 = 1 x 26 + 5
26 =5x5+1 gcd(a, b) =1
Tracing backward, we get
1 = 26 – 5 x 5
= 26 – 5 x (31 – 1 x 26) = -5 x 31 + 6 x 26
= -5 x 31 + 6 x (88 – 2 x 31) = 6 x 88 – 17 x 31
= 6 x 88 – 17 x (911 – 10 x 88) = -17 x 911 + 176 x 88
= -17 x 911 + 176 x (999 – 1 x 911) = 176 x 999 – 193 x 911
15
15
Calculating the Modular Inverse
we now have
gcd(911, 999) = 1 = -193 x 911 + 176 x 999.
If we do a modular reduction of 999 to this equation, we have
1 (mod 999) = -193 x 911 + 176 x 999 (mod 999)
1 = -193 x 911 mod 999
1 = (-193 mod 999) x 911 mod 999
1 = 806 x 911 mod 999
1 806 x 911 (mod 999).
Hence 806 is the modular inverse of 911 modulo 999.
16
16
The Euler phi Function
For n 1, (n) denotes the number of integers in the interval [1, n]
which are relatively prime to n. The function is called the Euler phi
function (or the Euler totient function).
• From these two facts, we can find for any composite n if the
prime factorization of n is known.
• Let n = p1e1 p2e2 … pkek where p1,…, pk are prime and each ei is a
nonzero positive integer.
• Then
(n) = p1e1-1 (p1-1) . p2e2-1 (p2-1) … pkek-1 (pk-1)
17
17
The Euler phi Function
• (2) = |{1}| = 1
• (3) =|{1,2}| = 2
• (4) = |{1,3}| = 2
• (5) = |{1,2,3,4}| = 4
• (6) = |{1,5}| = 2
• (37) = 36
• (21) = (3–1)×(7–1) = 2×6 = 12
18
18
Fermat’s Little Theorem
Let p be a prime. Any integer a not divisible by p
satisfies ap-1 1 (mod p).
19
19
Modular Exponentiation
Let Z = { …, -2, -1, 0, 1, 2, … } be the set of integers.
Let a, e, n Z.
Modular exponentiation ae mod n is defined as repeated
multiplications of a for e times modulo n.
20
20
Modular Exponentiation
Method 2 : Square-and-Multiply Algorithm
e.g. 1115 mod 13 = 118+4+2+1 mod 13 = 118x114x112x11 mod 13 — (1)
• 112 = 121 4 (mod 13) — (2)
2 2
• 114 = (112) (4) 3 (mod 13) — (3)
2 2
• 118 = (114) (3) 9 (mod 13) — (4)
Put (2), (3) and (4) into (1) and get
1115 9 x 3 x 4 x 11 5 (mod 13)
21
This means we are working with square of less than n, rather than
larger exponentiation.
21
Modular Exponentiation
Pseudo-code of Square-and-Multiply Algorithm to
compute ae mod n :
Let the binary representation of e be (et-1 et-2 … e1 e0).
Hence t is the number of bits in the binary representation of e.
1. z=1
2. for i = t-1 downto 0 do
3. z = z2 mod n
4. if ei = 1 then z = z x a mod n
22
22
Side Channel
• Platform on which software runs leaks
information
• Power usage, electromagnetic…acoustic
– Consider again (square multiply) – timing?
– Power (embedded hardware) and acoustic (PC, GNU
RSA)
23
http://www.cs.tau.ac.il/~tromer/acoustic/
http://www.ecs.umass.edu/~tbashir/timing_attack_rsa_theory.ht
m
23
The end!
?
Any questions…
24
24
Exercise (Inverse)
e=79 and e.d mod 3220 1 mod 3220 – find d
d 79-1 mod 3220
Euclidean Algorithm
3220 = 40.79+60
79=1.60+19
60=3.19+3
19=6.3+1
25
25
Exercise 2 (Inverse)
Calculate 2084-1 mod 2357
Euclidean Algorithm
• 2357 = 1.2084 + 273
• 2084 = 7.273 + 173
• 273 = 1.173 + 100
• 173 = 1. 100 + 73
• 100 = 1.73+27
• 73=2.27+19
• 27=19+8
• 19=2.8+3
• 8=2.3+2
• 3=2+1
26
26
Exercise 2 (Inverse) ctd
• 1= 3-1.2=3-(8-2.3)= 3.3-8
• 3.(19-2.8)-8=3.19-7.8 = 3.19-7(27-19)=10.19-7.27
• -771(2357-2084)+101.2084 = 872.2084-771.2357
27
Exercise (Square/Mult)
Calculate 17130 mod 11
This means we are working with square of less than n, rather than
larger exponentiation.
28
Exercise 2 (Square/Mult)
Calculate 17170 mod 13
This means we are working with square of less than n, rather than
larger exponentiation.
29