在一个用于考试演算的小型RSA示例中,取素数p=11、q=17,公钥指数e=7。按φ(n)=(p-1)(q-1)且ed≡1 mod φ(n)计算,私钥指数d为()。
先算φ(n)=(11-1)×(17-1)=10×16=160。d是e=7模160的乘法逆元,需要满足7d≡1 mod160。因为7×23=161=1+160,所以d=23。
选项分析
错误。17是题目给出的素数q,不是7模160的逆元;7×17 mod160=119。
正确。7×23=161,对160取模余1。
错误。80是φ(n)的一半,且7×80 mod160=80,不满足逆元条件。
错误。160是φ(n),不是私钥指数;7×160 mod160=0。
本题为什么容易错
RSA演算题经常把n、φ(n)、e和d四个数混在一起。最稳的方法不是背某组答案,而是每一步写清角色,并在最后用ed mod φ(n)=1回代。
简短答案
RSA 已知 p、q 和 e,私钥指数 d 怎么求,正确答案是 B(23)。先算φ(n)=(11-1)×(17-1)=10×16=160。d是e=7模160的乘法逆元,需要满足7d≡1 mod160。因为7×23=161=1+160,所以d=23。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 17 | 本题干扰项 | 错误。17是题目给出的素数q,不是7模160的逆元;7×17 mod160=119。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 23 | 本题正确答案 | 正确。7×23=161,对160取模余1。 | 看到题干核心场景时优先联想到它 |
| 80 | 本题干扰项 | 错误。80是φ(n)的一半,且7×80 mod160=80,不满足逆元条件。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 160 | 本题干扰项 | 错误。160是φ(n),不是私钥指数;7×160 mod160=0。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 17:错误。17是题目给出的素数q,不是7模160的逆元;7×17 mod160=119。
- 80:错误。80是φ(n)的一半,且7×80 mod160=80,不满足逆元条件。
- 160:错误。160是φ(n),不是私钥指数;7×160 mod160=0。
知识点详解
RSA密钥生成先选择两个大素数p、q并计算n=pq。经典教材演算常使用φ(n)=(p-1)(q-1),选择与φ(n)互素的公钥指数e,再求乘法逆元d,使ed≡1 modφ(n)。公钥包含n和e,私钥核心参数包含d及相关素数信息。小素数只能用于课堂计算,不能用于实际安全系统;真实工程还要使用标准填充方案、可靠随机数和经过审计的密码实现。
备考速记
d不是除出来的,是让e乘d除以φ后余1的那个模逆。
RSA 在欧拉函数场景中的作用
RSA在本题中的核心价值,是解决“在一个用于考试演算的小型RSA示例中,取素数p=11、q=17,公钥指数e=7。按φ(n)=(p-1)(q-1)且ed≡1 mod φ(n)计算,私钥指数d为()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给p、q、e,计算n、φ(n)和d。
- 判断某个e是否与φ(n)互素、是否能生成私钥。
- 区分RSA加密、签名和密钥生成中公私钥的使用方向。
RSA 在信息安全工程师软考中的考法
软考选择题通常不会只考概念定义,还会把RSA放到欧拉函数场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
这题不用尝试做大数幂。先得到φ=160,然后找一个数让7乘它比160的整数倍多1。160除以7余6,再往上看161恰好是7×23,所以d=23。回代7×23 mod160=1,答案就锁定了。
考点定位
RSA参数题的顺序是n=pq、φ(n)=(p-1)(q-1)、检查gcd(e,φ)=1,再求e关于φ的模逆d。d不是φ除以e的普通商。
易错提醒
- 把φ(n)误写成pq,或者写成(p-1)+(q-1)。
- 没有检查e与φ(n)互素;若不互素,乘法逆元不存在。
- 把模逆当成普通倒数或普通除法,写出小数。
备考提示
- 小数值题可直接试倍数,大数值题使用扩展欧几里得算法求模逆。
- 考试演算使用很小的素数只是为了手算,真实RSA必须使用足够长的密钥和成熟密码库。
你可能还想了解
- RSA为什么要求e和φ(n)互素?
- 怎样用扩展欧几里得算法求d?
- n和φ(n)有什么区别?
- 小素数RSA为什么不能用于真实系统?
本文小结
p=11、q=17时φ(n)=160。因为7×23=161,对160取模余1,所以e=7对应的私钥指数d为23。