Number Theory and Cryptography Algorithms

advertisement
Number Theory Algorithms and
Cryptography Algorithms
Analysis of Algorithms
Prepared by
John Reif, Ph.D.
Number Theory Algorithms
a)
b)
c)
d)
e)
GCD
Multiplicative Inverse
Fermat & Euler’s Theorems
Public Key Cryptographic Systems
Primality Testing
Number Theory Algorithms (cont’d)
• Main Reading Selections:
• CLR, Chapter 33
Euclid’s Algorithm
• Greatest Common Divisor
GCD(u, v)  largest a s.t.
a is a divisor of both u,v
• Euclid’s Algorithm
procedure
begin
if
else return
GCD(u,v)
v0
then return(u)
(GCD(v,u mod v))
Euclid’s Algorithm (cont’d)
• Inductive proof of correctness:
if a is a divisor of u,v
 a is a divisor of u - (  u/v  ) v
= u mod v
Euclid’s Algorithm (cont’d)
• Time Analysis of Euclid’s Algorithm for n
bit numbers u,v
T(n)  T(n-1) + M (n)
= O(n M(n))
= O(n 2log n log log n)
(where M(n) = time to mult two n bit integers)
Euclid’s Algorithm (cont’d)
• Fibonacci worst case:
u = Fk , v = Fk+1
where F0 = 0, F1 = 1, Fk+2 = Fk+1 + Fk, k  0
k
Fk =
5
, =
1
(1  5)
2
 Euclid's Algorithm takes log ( 5 N) = O(n)
stages when N = max(u,v).
Here n = number of bits of N.
Euclid’s Algorithm (cont’d)
• Improved Algorithm
T(n)  T
n
( 2 ) + O(M(n))
= O(M(n) log n)
Extended GCD Algorithm
procedure ExGCD(u, v)
where u = (u1, u2, u3) , v = (v1, v2, v3)
begin
if v3 = 0 then return(u)
else return ExGCD(v, u - (v ë u 3 / v 3û))
Extended GCD Algorithm (cont’d)
• Theorem
ExGCD((1,0,x),(0,1,y))
= (x', y', GCD(x,y))
where x x' + y y' = GCD(x,y)
• Proof
inductively can verify on each call
 xu1 + yu 2 = u 3

 xv1 + yv 2 = v3
Extended GCD Algorithm (cont’d)
• Corollary
If gcd(x,y) = 1 then x' is the
modular inverse of x modulo y
• Proof
we must show x x' = 1 mod y
but by previous Theorem,
1 = x x' + y y' = x x' mod y
so 1 = x x' mod y
Modular Laws
• Gives Algorithm for
Modular Inverse !
• Modular Laws
for n  1
let x  y if x  y mod n
Modular Laws (cont’d)
Law A if a  b and x  y then ax  by
Law B if a  b and ax  by and
gcd(a, n)  1 then x  y
Modular Laws (cont’d)
let {a1 ,..., a k }  {b1 ,..., bk } if
a i  b ji for i  1,..., k and
{j1 ,..., jk }  {1,..., k}
Fermat’s Little Theorem
• If n prime then an = a mod n
• Proof by Euler
if a  0 then a n  0  a
else suppose gcd(a,n)  1
Then x  ay for y  a x and any x
-1
so {a,2a,..., (n-1)a}  {1,2,..., n-1}
Fermat’s Little Theorem (cont’d)
So by Law A,
(a) (2a)  (n-1)a  1  2  (n-1)
So a n-1 (n-1)!  (n-1)!
So by Law B
a
n-1
 1 mod n
Euler’s Theorem
• Φ(n) = number of integers in {1,…, n-1}
relatively prime to n
• Euler’s Theorem
If gcd(a,n)  1
then a ( n ) = 1 mod n
• Proof
let b1 ,...,b(n) be the integers  n
relatively prime to n
Euler’s Theorem (cont’d)
• Lemma
{b1 ,...,b(n) }  {ab1 , ab 2 ,..., ab (n) }
• Proof
If abi  ab j then by Law B, bi  b j
Since 1  gcd(b i ,n)  gcd(a,n)
then
gcd(abi ,n)  1
so
for {j1 ,...,j(n) }  {1,..., (n)}
ab i  b ji
Euler’s Theorem (cont’d)
• By Law A and Lemma
(ab1 )(ab 2 )  (ab(n) )  b1b 2  b(n)
so a
 (n)
b1  b (n)  b1  b (n)
• By Law B
a
 (n)
 1 mod n
Taking Powers mod n by “Repeated
Squaring”
• Problem: Compute ae mod b
e  e k e k-1  e1 e0
binary representation
[1] X  1
[2] for i  k, k-1,..., 0
begin
do
X  X 2 mod b
if ei  1 then X  Xa mod b
end
k
output
a
i=0
ei 2i
=a
 ei 2i
=a e mod b
Taking Powers mod n by “Repeated
Squaring” (cont’d)
• Time Cost
O(k) mults and additions mod b
k = # bits of e
Rivest, Sharmir, Adelman (RSA)
Encryption Algorithm
• M = integer message
e = “encryption integer” for user A
• Cryptogram
C  E(M)  M e mod n
Rivest, Sharmir, Adelman (RSA)
Encryption Algorithm (cont’d)
• Method
(1) Choose large random primes p,q
let n  p  q
(2) Choose large random integer d
relatively prime to (n)  (p)  (q)
 (p-1)  (q-1)
(3) Let e be the multiplicative inverse
of d modulo
(n)
e  d  1 mod (n)
(require e  log n, else try another d)
Rivest, Sharmir, Adelman (RSA)
Encryption Algorithm (cont’d)
• Theorem
If M is relatively prime to n,
and D(x) = x d (mod n) then
D(E(M))  E(D(M))  M
Rivest, Sharmir, Adelman (RSA)
Encryption Algorithm (cont’d)
• Proof
D(E(M))  E(D(M))
 Med mod n
There must  k  0 s.t.
1  gcd(d,(n))  -k(n)  de
So, Med  M k (n)1 mod n
Since (p-1) divides (n)
M k (n)1  M mod p
Rivest, Sharmir, Adelman (RSA)
Encryption Algorithm (cont’d)
• By Euler’s Theorem
By Symmetry,
M k (n)+1  M (mod q)
Hence M ed  M k (n)+1  M mod n
So M ed  M mod n
Security of RSA Cryptosystem
• Theorem
If can compute d in polynomial time,
then can factor n in polynomial time
• Proof
e· d-1 is a multiple of φ(n)
But Miller has shown can factor n
from any multiple of φ(n)
Security of RSA Cryptosystem (cont’d)
If can find d' s.t.
d'
M =M d mod n
 d' differs from d by lcm(p-1, q-1)
 so can factor n.
(lcm is the "least common multiple)
Rabin’s Public Key Crypto System
• Use private large primes p, q
public key
n=q p
message
M
cryptogram M2 mod n
• Theorem
If cryptosystem can be broken,
then can factor key n
Rabin’s Public Key Crypto System
(cont’d)
• Proof
  M 2 mod n has solutions
M   ,  , n- , n-
where   { , n- }
But then  2 - 2  ( - )(   )  0 mod n
So either (1) p | ( - ) and q | (   )
or either (2) q | ( - ) and p | (   )
• In either case, two independent
solutions for M give factorization of n,
i.e., a factor of n is gcd (n, γ -β).
Rabin’s Public Key Crypto System
(cont’d)
• Rabin’s Algorithm for factoring n, given a
way to break his cryptosystem.
Choose random  , 1    n s.t. gcd( , n)=1
let    2 mod n
find M s.t. M 2 = mod n
by assumed way to break cryptosystem
with probability  12 ,
M  { , n- }
 so factors of n are found
else repeat with another 
Note: Expected number of rounds is 2
Quadratic Residues
a is quadratic residue of n
if x  a mod n has solution
Euler:
If n is odd, prime and gcd(a,n)=1, then
2
a is quadratic residue of n
iff
a
(n-1)/2
 1 mod n
Jacobi Function
1 if gcd(a,n)  1 and

 a is quadratic residue of n


J(a,n)   -1 if gcd(a,n)  1 and
 a is not quadratic residue of n


 0 if gcd(a,n)  1

Jacobi Function (cont’d)
• Gauss’s Quadratic Reciprocity Law
if p,q are odd primes,
J(p,q)  J(q,p)  (-1)(p-1) (q-1)/4
• Rivest Algorithm
1 if a=1

(n 2 -1)/8
J(a,n)   J(a/2, n)  (-1)
if a even
(a-1) (n-1)

2
2
J(n
mod
a,
a)

(-1)
else

Jacobi Function (cont’d)
• Theorem (Fermat)
n  2 is prime iff
x , 1  x  n
(1) x n-1  1 mod n
(2) x i  1 mod n for all
i  {1, 2,..., n-2}
Theorem: Primes are in NP
• Proof
input n
n  2  output "prime"
n  1 or (n even and n  2)  output "composite"
else guess x to verify Fermat's Theorem
Check (1) x n-1  1 mod n
To verify (2) guess prime factorization
of n-1=n1  n 2  n k
(a) recursively verify each n i prime
(b) verify x (n-1)/ni  1 mod n
Theorem & Primes NP (cont’d)
• Note
if x (n-1) =1 mod n
the least y s.t. x y =1 mod n must
divide n-1. So x ya =1 mod n
let a=
(n-1)
yn i
so 1  x ya =x (n-1)/ni mod n
Primality Testing
• Testing
wish to test if n is prime
technique Wn (a)  "a witness that n is composite"
Wn (a)  true  n composite
Wn (a)  false  don't know
• Goal of Randomized Primality Testing
for random a {1,..., n-1}
n composite  Prob (Wn (a) true) > 12
So
1
2
of all a  {1,..., n-1}
are "witness to compositeness of n"
Primality Testing (cont’d)
• Solovey & Strassen Primality Test quadratic
reciprocal law
Wn (a)  (gcd(a,n)  1)
or J(a, n)  a (n-1)/2 mod n

test if Gauss's
Quadratic Reciprocal Law
is violated
Definitions
Z  set of all nonnegative numbers  n
*
n
which are relatively prime to n.
generator
g of Z*n
such that for all x  Z*n
there is i such that g i  x mod n
Theorem of Solovey & Strassen
• Theorem
If n is composite, then | G |
n -1
2
where G = {a | Wn (a mod n) false}
• Proof
Case G  Z
*
n
 G is subgroup of Z
*
n
*
n
|Z | n-1
 |G| 

2
2
Theorem of Solovey & Strassen (cont’d)
Case G  Zn
Use Proof by Contradiction
(n-1)/2
so a
=J(a,n) mod n
for all a relatively prime to n
Let n have prime factorization
n=P11 P2 2  P33 , 1   2  ...   k
*
m1
Let g be a generator of Z
1
where m1 =P
Theorem of Solovey & Strassen (cont’d)
• Then by Chinese Remainder Theorem,
 unique a s.t. a  g mod m1
a  1 mod ( mn1 )
• Since a is relatively prime to n,
aZ
*
n
a
n-1
so
 1 mod n
n-1
and g =1 mod n
Theorem of Solovey & Strassen (cont’d)
Case 1  2.
Then order of g in Z*n
1 -1
is p1 (p1 -1) by known formula,
a contradiction since the order divides n-1.
Theorem of Solovey & Strassen (cont’d)
Case 1   2  ...   k  1
Since n  p1  p k
J(a,n) 
k

J(a,pi )
i 1
k
 J(g,p1 )   J(a, pi )
i2
g mod pi i  1
Since a  
1 mod pi i  1
So J(a,n)  -1 mod n
since J(1,pi )  1
and J(g,p1 )  -1
Theorem of Solovey & Strassen (cont’d)
We have shown J(a,n)  -1 mod n
 -1 mod n ( mn1 )
But by assumption a  1 mod ( mn1 )
so a
(n-1)/2
=1 mod ( mn1 )
Hence a (n-1)/2  J(a,n) mod ( mn1 )
a contradiction with Gauss ' s Law!
Miller
• Miller’s Primality Test
Wn (a)  (gcd(a,n)  1)
or (a
n-1
 1 mod n)
or gcd (a
mod n-1, n)  1
for i  {1,..., k}
(n-1)/2i
where k  max {i| 2i divides n-1}
Miller (cont’d)
• Theorem (Miller)
Assuming the extended RH,
if n is composite, then Wn(a) holds for some
a ∈ {1,2,…, c log 2 n}
• Miller’s Test assumes
extended RH (not proved)
Miller – Rabin Randomized Primality Test
choose a random a {1,..., n-1}
test Wn (a)
• Theorem
if n is composite then
Prob (Wn (a) holds) 
1
2
 gives another randomized, polytime
algorithm for primality!
Number Theory Algorithms and
Cryptography Algorithms
Analysis of Algorithms
Prepared by
John Reif, Ph.D.
Download