算法导论31.7-2 证明

31.7-2 证明:如果Alice的公开指数e等于3,并且对方获得Alice的秘密指数d,0<d<φ(n).则对方能够在关于n的位数的多项式时间内对Alice的模n进行分解。
由ed=1(mod φ(n)),可设 ed = k*φ(n)+1,k∈Z
由e = 3,0<d<φ(n)得:0<ed<3*φ(n)
因此 0 < k*φ(n)+1 < 3*φ(n),0<k<3,k=1或2
即 ed = φ(n)+1 或 ed = 2φ(n)+1,φ(n) = ed-1或φ(n) = 2ed-1
现已知φ(n)=(p-1)(q-1)和n=pq
可求得 p+q=n+1-φ(n)
即 p,q 是方程 x² - (n+1-φ(n)) x + n = 0的两根
可解得:p,q = ((n+1-φ(n) ± √((n+1-φ(n))²-4n)) / 2

以上计算仅涉及n, d, e的有限次加减乘除和开方运算。
每种运算都能够在关于n的位数的多项式时间内完成。
(设n的位数是d,加减法和除2运算可在O(d)时间内完成,乘法可在O(d²)时间内完成,
开方模拟手算也可以在O(d²)时间内完成)
因此能够在关于n的位数的多项式时间内对Alice的模n进行分解。
只需说明:
1. φ(n)的取值只有C种(C是与n,d,e无关的常数)
2. 已知n和φ(n),则p,q有初等解析解
3. 每种基本运算都能够在关于n的位数的多项式时间内完成

关于手算开方,就是利用 (10a+b)² - 100a² = 20ab + b²
开方的每一步中:M是上一步的余数,a是到上一步为止已求出的部分结果。
1. 在M后面添上后2位,
2. 试商:取b=0..9,计算20ab + b²,得到满足20ab + b²<=M的最大b值
3. 求余:计算M = M - (20ab + b²)
4. 在a后添上一位b
注意到b是一位数,以上计算和比较都可以在O(d)时间内完成。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值