You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RSA算法中私钥指数d的计算方法咨询(附参数)

如何计算RSA私钥指数d

嘿,我来帮你理清这个RSA私钥指数d的计算逻辑——你之前对公式的理解跑偏啦!模运算里没有普通意义上的除法,咱们要找的是e在模φ(n)下的逆元,也就是满足 (e * d) ≡ 1 mod φ(n) 的整数d,这才是d的核心定义。

已知条件回顾

  • p=31,q=23
  • φ(n)=(p-1)(q-1)=3022=660
  • 公钥指数e=223
  • 目标:找到私钥指数d,使得 223*d ≡ 1 mod 660(已知结果是367)

计算方法:扩展欧几里得算法

求模逆元最标准的方法就是扩展欧几里得算法,它能在计算两个数最大公约数的同时,找到满足 a*x + b*y = gcd(a,b) 的整数x和y。因为e和φ(n)互质(gcd(223,660)=1),所以最终能得到 223*x + 660*y =1,这里的x就是我们要的d(如果x是负数,就加上φ(n)转成正整数)。

一步步推导过程

咱们用扩展欧几里得算法拆解计算:

  1. 660 = 2*223 + 214
  2. 223 = 1*214 + 9
  3. 214 = 23*9 + 7
  4. 9 = 1*7 + 2
  5. 7 = 3*2 + 1
  6. 2 = 2*1 + 0(此时gcd为1,停止)

接下来从最后一步回代,把1用223和660的线性组合表示:

1 = 7 - 3*2
# 把2替换成9-1*7
1 = 7 - 3*(9 - 1*7) = 4*7 - 3*9
# 把7替换成214-23*9
1 = 4*(214 - 23*9) - 3*9 = 4*214 - 95*9
# 把9替换成223-1*214
1 = 4*214 - 95*(223 - 1*214) = 99*214 - 95*223
# 把214替换成660-2*223
1 = 99*(660 - 2*223) - 95*223 = 99*660 - 293*223

从最后一行能看出:-293*223 ≡ 1 mod 660,但d需要是正整数,所以给-293加上660:660 - 293 = 367,这就是咱们要的d!

为啥你之前的公式不成立?

你提到的(1 mod φ(n))/e是错误的理解——模运算中没有普通除法,“除以e”的本质是乘以e的模逆元,也就是找到d使得e*d和1在模φ(n)下相等,这和普通算术里的除法完全不是一回事。

内容的提问来源于stack exchange,提问作者A. Szokalski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:55:22