460 likes | 710 Vues
The RSA Cryptosystem and Factoring Integers (I). Rong-Jaye Chen. OUTLINE. [1] Modular Arithmetic Algorithms [2] The RSA Cryptosystem [3] Quadratic Residues [4] Primality Testing [5] Square Roots Modulo n [6] Factoring Algorithms [7] Other Attacks on RSA [ 8] The Rabin Cryptosystem
E N D
The RSA Cryptosystem and Factoring Integers (I) Rong-Jaye Chen
OUTLINE • [1] Modular Arithmetic Algorithms • [2] The RSA Cryptosystem • [3] Quadratic Residues • [4] Primality Testing • [5] Square Roots Modulo n • [6] Factoring Algorithms • [7] Other Attacks on RSA • [8] The Rabin Cryptosystem • [9] Semantics Security of RSA
[1] Modular Arithmetic Algorithms • 1. The integers • a divides b a|b • If b has a divisor , then a is said to be nontrivial. • a is prime if it has no nontrivial divisors; otherwise, a is composite. • The prime theorem: • If c|a and c|b, then c is common divisor of a and b. • If d is a great common divisor of a and b, then we write d=gcd(a,b).
Euclidean algorithm(a,b) (for great common divisor) input: output: (1) Set r0=a and r1=b (2) Determine the first so that rn+1=0, where ri+1=ri-1 mod ri (3) Return (rn) • Extended Euclidean algorithm(a,b) input:a>0, b>0 output: (r, s, t) with r=gcd(a,b) and sa+tb=r (Omitted)
If gcd(a,b)=1, then a and b are said to be relatively prime. • Phi function:
2. The integers modulo n • a is congruent to b modulo n, written , if n|a-b. • Zn={0,1,…,n-1} • Given , if , then a is said to be invertible and its inverse x is denoted a-1.
Euclidean algorithm to find gcd(a,n) Extended Euclidean algorithm to write gcd(a,b)=sa+tn • Use Extended Euclidean Algo to calculate a-1 mod n • Example:a=7 and n=9
Zn*={a|gcd(a,n)=1 and 0<a<n} • For example, Z12*={1,5,7,11}, Z15*={1,2,4,7,8,11,13,14} • (Zn*, *) forms a multiplication group
Fermat’s little theorem: • Euler’s theorem: • The order of , written ord(a), as the least positive integer t such that • If , has , then a is said to be a generator of Zn*; in this case,
1 2 4 7 8 11 13 14 1 4 2 4 2 2 4 2 • Example :n=15 Z15*={1,2,4,7,8,11,13,14} ψ(15)= ψ(3) ψ(5)=2*4=8
3. Chinese remainder theorem If the integers n1,…,nk are pairwise relatively prime, then the system of congruences has a unique solution modulo n=n1*n2*…*n k
Algorithm:Gauss algorithm (1) Input k , ni , ai , for i=1,2,…,k (2) Compute for i=1,2,…,k (3) Compute inverse for i =1,2,…,k (4) Compute
4. Square-and-Multiply • Algorithm: Square-and-Multiply(x, c, n) Input: , c with binary representation Output:
Example : 97263533 mode 11413=?
[2] The RSA Cryptosystem • Proposed by Rivest, Shamir, and Adleman (1977) • Used for encryption and signature schemes • Based on the intractability of the integer factorization problem • Key generation • Let p, q be large prime, n=pq and (n)=(p-1)(q-1) • Choose randomly b s.t. gcd(b,(n))=1 • Compute a b-1 mod (n) • Public-key: (n, b) • Private-key: (n, a) or (p, q, a)
RSA Cryptosystem Let n=pq, where p and q are primes. Let P = C = Zn, and define K ={(n,p,q,a,b): ab=1 (mod (n))}. For K= (n,p,q,a,b), define eK(x)=xb mod n and dK(y)=ya mod n • Public-key: (n, b) • Private-key: (n, a) or (p, q, a)
Verify the encryption and decryption are inverse operations ab=1 (mod (n)), we have ab = t(n)+1, for t>=1 Suppose that x in Zn*; then we have (xb)a = xt(n)+1 (mod n) = (x(n))tx = 1tx (mod n) = x (mod n) As desired. For x in Zn but not in Zn*, (do exercise)
Eg. p=7, q=13, n=91, (n)=(p-1)(q-1)=72 • Choose b=5, compute a=b-1=29 • Public-key: (91,5) • Private-key: (7,13,29) • Assume message m=23 So cipher-text c = me mod n = 235 mod 91 = 4 and can be decrypted by m = cd mod n = 429 mod 91 = 23
n = pq b*a = 1 (mod ø(n)) Private key KRBob = (n, a) Public key KUBob = (n, b) KUBob KRBob M C M E D EKUBob(M)= Mb (mod n) DKRBob(C)= Ca (mod n) Encryption Decryption • RSA encryption Alice Bob
n = pq b*a = 1 (mod ø(n)) Signing key KRAlice = (n, a) Verification key KUAlice = (n, b) M M H Compare KRAlice KUAlice A H E D EKRAlice(H(M))= H(M)a (mod n) DKUAlice(A)= Ab (mod n) Signing Verification • RSA signature scheme Alice Hash Bob
[3] Quadratic Residue • 1. Quadratic residue modulo n • Let , then a is a quadratic residue modulo n if there exists with In this case, x is a square root of a modulo n. Otherwise, a is a quadratic nonresidue modulo n. • Qn:the set of quadratic residues modulo n. • :the set of quadratic nonresidues modulo n.
3. Corollary : p > 2 is prime and α is a generator of Zp* • (1) • (2) • (3) • (4) • 4. Legendre symbol :p > 2 is prime and
5. Theorem :Euler’s criterion • 6. E.g : use Square-and-Multiply
7. Jacobi symbol : n > 2 is an odd integer, pi is prime and
8. Properties of Jacobi symbol:m, n > 2 are odd integers • (1) • (2) • (3) • (4) • (5) • (6)
9. E.g :calculate Jacobi symbol without factoring n (property 2) (property 6) (property 3) (property 4)
10. Jacobi symbol V.S. Quadratic residue modulo n • The element of are called psedosquares modulo n.
1 2 4 7 8 11 13 14 1 -1 1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 1 1 1 -1 1 -1 -1 -1 • 11. E.g :n=15 The Jacobi symbol are calculated in the following table:
12. Quadratic residuosity problem(QRP) Determine if a given is a quadratic residue or pseudosquare modulo n
[4] Primality Testing (1)Prime numbers • 1. How to generate large prime numbers? (1) Generate as candidate a random odd number n of appropriate size. (2) Test n for primality. (3) If n is composite, return to the first step.
2. Distribution of prime numbers (1) prime number theorem Let Π(x) denote the number of prime numbers ≦x. Π(x) ~ x/ln(x) when n∞. (2)Dirichlet theorem If gcd(a, n)=1, then there are infinitely many primes congruent to a mod n.
(3) Let Π(x, n, a) denote the number of primes in the interval [2, x] which are congruent to a modulo n, where gcd(a, n)=1 . Then Π(x, n, a) ~ The prime numbers are roughly uniformly distributed among the φ(n) congruence classes in Zn* (4) Approximation for the nth prime number pn
(2) Solovay-Strassen primality test • 1. Trial method for testing n is prime or composite • 2. Definition :Euler witness Let n be an odd composite integer and . (1) If then a is an Euler witness (to compositeness) for n.
(2) Otherwise, if then n is said to be an Euler pseudoprime to the base a. The integer a is called an Euler liar (to primality) for n.
3. Example (Euler pseudoprime) • Consider n = 91 (= 7x13) Since 945 =1 mod 91, and so 91 is an Euler pseudoprime to the base 9. • 4. Fact At most Φ(n)/2 of all the numbers a, are Euler liars for n.
5. Algorithm :Solovay-Strassen(n, t) • INPUT: n is odd, n ≧3, t ≧1 • OUTPUT: “prime” or “composite” • 1. for i = 1 to t do :1.1 choose a random integer a, 2 ≦ a≦n-2 if gcd(a,n) ≠1 then return ( “composite” ) 1.2 compute r=a(n-1)/2 mod n (use square-and-multiply) if r ≠ 1 and r ≠ n-1 then return ( “composite” ) 1.3 compute Jacobi symbol s= if r ≠ s then return ( “composite” ) • 2. return ( “prime” )
6.Solovay-Strassen error-probability bound • For any odd composite integer n, the probability that Solovay-Strassen (n, t) declares n to be “prime” is less than (1/2)t
(3) Miller-Rabin primality test • 1. Fact • P : odd primep-1 = 2sr, where r is odd , gcd (a, p) = 1then ar = 1 (mod n)or a2jr = -1 (mod n) for some j, 0≦ j≦s-1 • Why ?(1)Fermat’s little theorem, ap-1 = 1 mod p(2) 1, -1 are the only two square roots of 1 in Zp*
2. Definition • n : odd composite integern-1 = 2sr, where r is odd 1≦a ≦n-1 • a is a strong witness to compositeness for nif ar ≠ 1 (mod n), and a2jr ≠ -1 (mod n) for all j, 0≦ j≦s-1 • n is a strong pseudoprime to the base aif ar = 1 (mod n)or a2jr = -1 (mod n) for some j, 0≦ j≦s-1(a is called astrong liar to primality for n)
3. Algorithm: Miller-Rabin (n, t) • INPUT: n is odd, n ≧3, t ≧1 • OUTPUT: “prime” or “composite” • 1. write n-1 = 2sr such that r is odd. • 2. for i = 1 to t do :2.1 choose a random integer a, 2 ≦ a≦n-22.2 compute y=ar mod n (use square-and-multiply)2.3 if y ≠ 1 and y ≠ n-1 do : j 1 while j ≦ s-1 and y ≠n-1 do : y y2 mod n if y = 1 then return ( “composite” ) j j+1 if y ≠ n-1 then return ( “composite” ) • 3. return ( “prime” )
4. Example (strong pseudoprime) • Consider n = 91 (= 7x13) • 91-1 = 2*45, s=1, r=45 • Since 9r = 945 =1 mod 91, 91 is a strong pseudoprime to the base 9. • The set of all strong liars for 91 is {1, 9, 10, 12, 16, 17, 22, 29, 38, 53, 62, 69, 74, 75, 79, 81, 82, 90} • The number of strong liars of for 91 is 18 = Φ(91)/4
5. Fact • If n is an odd composite integer, then at most ¼ of all the numbers a, 1 ≦a ≦n-1 are strong liars for n. In fact if n=!9, then number of strong liars for n is at most Φ(n)/4.
6.Miller-Rabin error-probability bound • For any odd composite integer n, the probability that Miller-Rabin (n, t) declares n to be “prime” is less than (1/4)t • 7. Remark • For most composite integers n, the number of strong liars for n is actually much smaller than the upper bound of Φ(n)/4. • Miller-Rabin error-probability bound is much smaller than (1/4)t.