Unit 3 (First Half)
Unit 3 (First Half)
Theory
18AIC307T & Cryptography
and Network Security The Devil said to Daniel Webster: "Set me a task I can't carry out, and
I'll give you anything in the world you ask for."
Daniel Webster: "Fair enough. Prove that for n greater than 2, the
equation an + bn = cn has no non-trivial solution in the integers."
They agreed on a three-day period for the labor, and the Devil
UNIT 3 : Number Theory & Asymmetric disappeared.
At the end of three days, the Devil presented himself, haggard, jumpy,
Key Cryptography biting his lip. Daniel Webster said to him, "Well, how did you do at
my task? Did you prove the theorem?'
"Eh? No . . . no, I haven't proved it."
Faculty : Ms. NITHYASRI A, "Then I can have whatever I ask for? Money? The Presidency?'
"What? Oh, that—of course. But listen! If we could just prove the
Assistant Professor following two lemmas—"
—The Mathematical Magpie, Clifton Fadiman
Fermat's Theorem
• ap-1 = 1 (mod p)
– where p is prime and GCD(a,p) = 1
• also known as Fermat’s Little Theorem
• also have: ap = a (mod p)
• useful in public key crypto and primality
testing
Euler Totient Function ø(n) Euler Totient Function ø(n)
• when doing arithmetic modulo n • to compute ø(n) need to count number of
• complete set of residues is: 0..n-1 residues to be excluded
• reduced set of residues is those numbers • in general need prime factorization, but
(residues) which are relatively prime to n – for p (p prime) ø(p)=p-1
– eg for n = 10, complete set of residues is – for p.q (p,q prime) ø(p.q)=(p-1)x(q-1)
{0,1,2,3,4,5,6,7,8,9}
– reduced set of residues is {1,3,7,9} • eg.
ø(37) = 36
• number of elements in reduced set of residues is
ø(21) = (3–1)x(7–1) = 2x6 = 12
called the Euler Totient Function ø(n)
Euler's Theorem
• a generalisation of Fermat's Theorem
• aø(n) = 1 (mod n)
– for any a,n where GCD(a,n) = 1
• eg.
a = 3 ; n = 10 ; ø(10) = 4;
hence 34 = 81 = 1 mod 10
a = 2 ; n = 11 ; ø(11) = 10;
hence 210 = 1024 = 1 mod 11
• also have: aø(n)+1 = a (mod n)
Primality Testing
• often need to find large prime numbers
• traditionally sieve using trial division
– ie. divide by all numbers (primes) in turn less than the
square root of the number
– only works for small numbers
• alternatively can use statistical primality tests
based on properties of primes
– for which all primes numbers satisfy property
– but some composite numbers, called pseudo-primes,
also satisfy the property
• can use a slower deterministic primality test
Primitive Roots
• by Euler’s theorem we have aø(n) mod n = 1
• consider ak (mod n)with GCD(a,n) = 1, for
various k, and look for m, where am = 1 (mod n)
– works for m = ø(n) but may work for a smaller m too
– once the powers of a reach m, the cycle will repeat
• if smallest value is m = ø(n) then a is called a
primitive root
• if we do this for n = p where p is prime, then
successive powers of a "generate" the
multiplicative group mod p
• these are useful but relatively hard to find
Powers mod 19 Discrete Logarithms
• the inverse problem to exponentiation is to find
the discrete logarithm of a number b modulo p
• that is to find i such that b = ai (mod p)
• this is written as i = dloga b (mod p)
• if a is a primitive root mod p then dloga always
exists, otherwise it may not, eg.
x = log3 4 mod 13 has no answer
x = log3 3 mod 13 = 4 by trying successive powers
• whilst exponentiation is relatively easy, finding
discrete logarithms is generally a hard problem
(which is good for cryptography, of course)