View
224
Download
0
Embed Size (px)
Citation preview
7/24/2019 Sa200 Lecture RSA10
1/24
.
2015 5- 1
7/24/2019 Sa200 Lecture RSA10
2/24
QSIEVE
p,q
N
p, q
N
7/24/2019 Sa200 Lecture RSA10
3/24
.| -
3/24
7/24/2019 Sa200 Lecture RSA10
4/24
RSA
7/24/2019 Sa200 Lecture RSA10
5/24
.
Cd mod n = P
d p,q .
.| -
5/24
7/24/2019 Sa200 Lecture RSA10
6/24
200- .
QSIEVE . QSIEVE- -
sage .
:
$ aptaddr e p o s i t o r y y ppa : aims/ sagemath$ aptg e t u pd at e
$ aptg et i n s t a l l sagemathupstreamb i n a r y$ s a ge$ s a g e : f a c t o r ( 0 x 0c b7 4e 97 5c 8a 77 69 90 c1 4d d5 89 )
$ s a g e : 9 6 53 5 83 8 77 7 45 6 9 1043621447459873
.| -
6/24
7/24/2019 Sa200 Lecture RSA10
7/24
QSIEVE-
.
.| -
7/24
7/24/2019 Sa200 Lecture RSA10
8/24
N=a2 b2 = (a+b) (a b) .
N a, b a, b
.
Fer matFactor (N):
a
7/24/2019 Sa200 Lecture RSA10
9/24
.
.| -
9/24
7/24/2019 Sa200 Lecture RSA10
10/24
QSIEVE
.
a=
N a- . -
.
a21b1:a22b2 (mod N)b1 b2=y2 .a2
1a2
2x2
b1
b2
y2 (mod N) .
x2 y2 = (x+y) (x y) =N ra= gcd(x y, N), b= gcd(x+y, N) .
.| -
10/24
7/24/2019 Sa200 Lecture RSA10
11/24
: N= 1649
412 32 : 422 115 : 432 200 (mod 1649)
32 = 25 : 200 = (23) (52)
(32) (200) = (25+3) (52) = ((24) (5))2 = 802
(32) (200) = 802 (412) (432)1142 (mod 1649)
(gcd[114 80, 1649]) (gcd[114 + 80, 1649]) = (17) (97) = 1649
.| -
11/24
7/24/2019 Sa200 Lecture RSA10
12/24
p,q
p, q pq .
.| -
12/24
7/24/2019 Sa200 Lecture RSA10
13/24
N
N p, q 0
p, q .
:
N = pq = 10000004400000259 . p, q .
p= a1 10x1 +a2 10x2 +...+an 10xn
q=b1 10y1 +b2 10y2 +...+bn 10yn
0 p, q 2
.
.| -
13/24
7/24/2019 Sa200 Lecture RSA10
14/24
p= a1
10x1 +a2 , q=b1
10y1 +b2,
N=a1b1 10x1+y1 +a2b1 10y1 +a1b2 10x1 +a2b2a2 b2= 259,
a2b1 10y1
+a1b2 10x1
= 44000 . . . 0,
a1b1 10x1+y1 = 1000 . . . 0
a2= 7, b2= 37, a1= 1, b1= 1
7 + 37 = 44 x1 =y1= 8 .
p= 1 108 + 7, q= 1 108 + 37
.| -
14/24
7/24/2019 Sa200 Lecture RSA10
15/24
p, q
2p 1 . 27 1 = 127 =0b1111111
. p, q 0 1- .
N= 127 8191 = 1040257 = 0b11111101111110000001
000 . . . 001 .
.| -
15/24
7/24/2019 Sa200 Lecture RSA10
16/24
N
N , -
N p, q .
.
.| -
16/24
7/24/2019 Sa200 Lecture RSA10
17/24
c1me1 (mod n)c2
me2 (mod n)
gcd(e1, e2) = 1 e1a+e2b = 1 a, b . .
a, b
mca1 cb2 (mod n) = (me1)a (me2)b (mod n) =me1a+e2b (mod n) =m (mod n) =m
.| -
17/24
7/24/2019 Sa200 Lecture RSA10
18/24
a, b . - . a- .
c1- .
i= c11 mod n
m= ia cb2modn
m .
.| - 18/24
7/24/2019 Sa200 Lecture RSA10
19/24
n
gcd(n1, n2) =p, p >1, p=n
n p, q .
.
.| - 19/24
7/24/2019 Sa200 Lecture RSA10
20/24
.
.
d < 13N 14 .
kd> e
N .
k = ed1(N) ,
.
S={k1d1
, k2d2
, . . . , krdr
, }
.| - 20/24
7/24/2019 Sa200 Lecture RSA10
21/24
ti = edi1ki - .
ti
X2
(N ti+ 1)X+N= 0 N -
, ti = (N) .
.|
- 21/24
7/24/2019 Sa200 Lecture RSA10
22/24
Convergents u/v u1/v1- .
219313/427381 = 0.5131557088405896
x= a0+ 1
a1+ 1
a2+ 1
a3+ 1a4
.
a0 0 .
.
x= [a0; a1, a2, . . . , an] .
:
.|
- 22/24
7/24/2019 Sa200 Lecture RSA10
23/24
S= ([a0; ], [a0; a1], [a0; a1, a2], [a0; a1, a2, a3], [a0; a1, a2, a3, a4], . . .) .
:
219313 = 0 427381 + 219313427381 = 1
219313 + 208068
219313 = 1 208068 + 11245208068 = 18 11245 + 565811245 = 1 5658 + 55875658 = 1 5587 + 715587 = 78
71 + 49
71 = 1 49 + 2249 = 2 22 + 522 = 4 5 + 2
.|
- 23/24
7/24/2019 Sa200 Lecture RSA10
24/24
5 = 2 2 + 12 = 2 1 + 0
219313/427381 = 0.5131557088405896 = [0; 1, 1, 18, 1, 1, 78, 1, 2, 4, 2, 2]
: S= (12 ,1937 ,
2039 ,
3976)
.|
- 24/24