Factoring Methods
Download
Report
Transcript Factoring Methods
A Survey on Factoring Large Numbers
~ 巨大数の因数分解に関する調査 ~
Kanada Lab. M1
47-56338 Yoshida Hitoshi
Introduction
Factoring a number means representing it as the
product of smaller numbers.
It is difficult to factor a large number.
Some cryptosystems are based on the difficulty of
the factoring integer problem.
It measures the security of the cryptosystems to
factor large numbers in short time.
page2
Contents
Introduction
Factoring Methods
Calculation Records
Cryptosystem Security
page3
Contents
Introduction
Factoring Methods
Calculation Records
Cryptosystem Security
page4
Factoring Methods
Trial Division
Euler’s Method
Square Forms
Factorization
Pollard’s
(p-1)-Method
Pollard’s
ρ Method
Elliptic Curve
Method
Difference of
Squares
Quadratic Sieve
Multiple Polynomial
Quadratic Sieve
Pollard’s
(p+1)-Method
Continued Fraction
Method
General Number
Field Sieve
page5
Trial Division
Algorithm
Merit
Check if “n mod i = 0” for i = 2,3,4,…
It can factor a number into prime numbers.
Demerit
‘i’ may be nearly
same size.
when n is the product of 2 primes of
page6
Trial Division
Improvement
Don’t use multiples of 2,3,5 for “i”.
Use only prime numbers for “i”.
Cannot reduce operational costs.
This method can use at most 1030.
π(1015)=29,844,570,422,669 ≒ 30T
If one trial division can do in 50 clock
π(1015)×50[clock]÷3G[Hz] = 500K [sec] = 5.8[day]
page7
Difference of Squares
Algorithm
Demerit
May not factor a number into prime numbers.
Merit
Find x and y which implement x2-y2=n
Factor n with x2-y2=(x+y)(x-y)
Factor a large composite number into small numbers
Operational cost
O(y)
page8
Difference of Squares
Improvement
How about using “x2-y2≡0 (mod n)” ?
602-52≡0 (mod 143) ⇒ 65・55≡0
65 or 55 must have prime factor(s) of 143.
GCD(65,143)=13, GCD(55,143)=11
How to find such x, y that implement “x2–y2≡0 (mod n)”?
Find many (ai, bi) pairs that implement ai≡bi (mod n)
Make a combination that implements Πai=x2, Πbi=y2
14・67≡ 3 mod 187
31・67≡20 mod 187
14・31≡60 mod 187
(14・31・67)2≡602 mod 187
page9
Difference of Squares
How can we find those numbers efficiently?
Quadratic Sieve (QS)
Cf. Multiple Polynomial Quadratic Sieve (MPQS)
General Number Field Sieve (GNFS)
page10
Quadratic Sieve
Algorithm
1. for
i = [√n]±1,2,… , factor i2-n into prime numbers
(i2≡i2-n=p1p2p3…)
2. search
a combination that make every exponent number
even
3. x=Πi and y=√(Πprimes) implements x2-y2≡0
page11
Quadratic Sieve
Example
n=3937, √n=62.7
i=63 632≡632-n= 32=25
i=64 642≡642-n=159=3・53
i=65 652≡652-n=288=25・32
i=66 662≡662-n=419=419
i=67 672≡672-n=552=23・3・23
page12
Quadratic Sieve
Example
n=3937, √n=62.7
i=63 632≡632-n= 32=25
i=64 642≡642-n=159=3・53
i=65 652≡652-n=288=25・32
i=66 662≡662-n=419=419
i=67 672≡672-n=552=23・3・23
(63・65)2≡210・32=(25・3)2
∴GCD(63・65-25・3, n)=31
page13
Quadratic Sieve
Operational cost
O(exp((9/8)(logn)1/2(loglogn)1/2))
Now,
QS is one of the fastest method to factor 30~60
decimal digit numbers.
Make faster
Large
prime factors appear rarely
Smaller number has smaller primes.
How can we get small numbers efficiently?
page14
Quadratic Sieve
Example
n=3937, √n=62.7
i=63 632≡632-n= 32=25
i=64 642≡642-n=159=3・53
i=65 652≡652-n=288=25・32
i=66 662≡662-n=419=419
i=67 672≡672-n=552=23・3・23
(63・65)2≡210・32=(25・3)2
∴GCD(63・65-25・3, n)=31
page15
Quadratic Sieve
Operational cost
O(exp((9/8)(logn)1/2(loglogn)1/2))
Now,
QS is one of the fastest method to factor 30~60
decimal digit numbers.
Make faster
Large
prime factors appear rarely
Smaller number has smaller primes.
How can we get small numbers efficiently?
page16
Quadratic Sieve
Make faster
(Multiple Polynomial QS) ; i2-n ⇒ (ai+b)2-n
MPQS is the fastest to factor 60~120 digit numbers
MPQS
QS
MPQS
page17
General Number Field Sieve (GNFS)
Original “Number Field Sieve” was for special
numbers ⇒ Special Number Field Sieve (SNFS)
Algorithm
Polynomial definition step
Sieving step
Matrix solving step
Making square root step
Operational cost
O(exp((64/9)1/3(logn)1/3(loglogn)2/3))
[Cf. QS→O(exp((9/8)(logn)1/2(loglogn)1/2)) ]
page18
Contents
Introduction
Factoring Methods
Calculation Records
Cryptosystem Security
page19
Calculation Records
Factoring records
page20
Calculation Records
Factoring records
1. 200 decimal digits number (RSA200)
Bonn university
Algorithm : GNFS
Sieving step
Matrix step
Various machines and time
Dec 2003 ~ Oct 2004 (≒ 2.2GHz Opteron × 55 years)
80 × 2.2GHz Opteron (Cluster) × 3 months (Dec 2004 ~)
May 2005 factoring completed
page21
Calculation Records
Factoring records
2. 176 decimal digits number (A factor of 11281+1)
Yuji Kida (Rikkyo university) and NTT laboratory
Algorithm : GNFS
Sieving step
Matrix step
Various machines (≒ 3.2GHz Pentium4 × 9.7 years)
16 Mar 2005 ~ 12 Apr 2005 (27days)
32 × 3.2GHz Pentium4 (Cluster) × 2.5 days
Apr 2005 factoring completed
page22
Contents
Introduction
Factoring Methods
Calculation Records
Cryptosystem Security
page23
Cryptosystem Security
RSA use 1024 bit length key
How long does it take to factor 1024bit number?
5.8×105~1.4×106 years(?) [Kida, 2003]
RSA Factoring Challenge
8 composite numbers (576~2048bit) to factor
576 bit number was factored (Dec 3, 2003)
200 decimal digit number (old problem) was factored
640 bit number is 193 decimal digit
page24
Cryptosystem Security
TWIRL
Make sieving step of GNFS in device
It will take 1 year to sieve 1024bit length number
Not in practice yet
Quantum Computing
Shor’s algorithm may run very fast
Quantum computer is not in practice
page25
That’s All
Thank you
page26