rsa已知e*d分解N

  1. 基本特征
  2. 简述
    1. 定理
    2. 范围
  3. 例题
  4. 总结:

基本特征

  • 前面说过RSA的基本参数,我们知道ed≡1 mod (p-1)(q-1).

  • 这个题型是说,当我们从题目中得到e*d和N的值时,如何通过分解N来解密rsa

    简述

  • 输入e,d

  • e,d都是奇数,因为它们相对于(p-1)*(q-1)都是素数

  • 通过建立e*d=1 mod Φ(N)

  • 让e*d-1=2^k * r(r 是奇数)

  • 让(1<b<N),从中随机挑选b

  • 如果gcd(b,N)>1,我们就停止

  • 否则 b∈ZN, 那么b^(ed-1)=1 mod N

  • 让ed-1=2^k *r 当r是奇数,b^(ed-1)=1 mod N ,求mod N\

  • a0 = b^r, a1 = (a0)^2, a2 = (a1)^2,…, ak = (ak-1)^2.

1
2
1.我们知道ak=1  让j是aj =1mod  N 的最小指数
2. 如果0<j并且a(j-1) 不等于N-1那么a(j-1)是关于1mod N 的一个非平凡根

定理

1
2
3
4
5
6
7
8
9
至少有一半的b,1<b<N,满足是1 mod N 的一个非平凡根


证明过程:
如果x^2=1 mod N 并且 x不等于1,N-1 那么gcd(x+1,N)>0

证明过程:x^2 -1 =(x+1)*(x-1) . N除以乘积,但是x不等于N-1,1.
因此N不能除以(x-1)或者(x+1)
所以p必须除以其中一个,q除以另外一个

范围

1
2
3
4
5
6
7
8
输入d,e,N,随机选择b
让e*d-1=2^k *r (r是奇数),b^(e*d-1)=1 mod N
求mod N
a0 = b^r, a1 = (a0)^2, a2 = (a1)^2,…, ak = (ak-1)^2.
由定理可知,对于概率大于 0.5,aj中的一个是1模N的非平凡平方根,这样的根产生N的因式分解


所有的操作都是在log N内

例题

1
2
3
4
5
6
7
8
9
10
N=2773   e=17   d=157

计算过程:
e*d-1=2668=2^2 *667
随机挑选b,进行mod 2773的操作
b=7 7^667=1 mod N 不好
b=8 8^667=471 mod N, 并且 471^2=1 mod N,所以471是1 mod 2773的非平凡平方根

Gcd(472,N)=59 gcd(470,N)=47
2773//59=47

总结:

1
2
3
4
5
1、设定k=e*d-1
2、从2到N-1的范围内随机选择一个数字g
3、将k写成2^t *r 的形式
4、如果t能被2整除,那么t=t/2,并且x=g^t mod N ,直到x>1
5、在满足x>1的情况下,如果y=gcd(x-1,N)>1,那么其中一个因数p=y, 另一个因数为N/y,如果不满足条件,返回步骤2,重新选择数字g

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1259742453@qq.com

💰

×

Help us with donation