RSA加密算法数学推导
参考博客:
https://blog.csdn.net/qq_25847123/article/details/103141321
RSA算法取名于三位开发者姓名的首字母,作为最出名的公钥加密算法,其形式非常简洁,构造非常简单。
但是初学者可能会出现一些疑问,我在初学时的两个疑问最近又学了一遍才完全理解。
我们先看一下RSA的具体构造过程:
1、选择两个大质数 ,两个数的数量级大概是 的几百次方,计算模数 ;
2、计算 ;(有的版本是 ,两个版本都对,先按前一个)
3、找到小于 且 的数 ,数对 作为公钥;
4、求模 意义下 的逆元 ,数对 作为私钥。
RSA对原数据的要求:消息 的取值范围是 ,注意到是开区间,大于等于 在模 后无法恢复原消息,因此位数较多的消息会按 的位数进行分块。 也不能取 ,否则得到的密文也为 。
RSA的核心在于 ,那么就要求 ,网上一个普遍的解释是依据欧拉定理,,而此时的 就是 ,因此 。
那么,我们的第一个疑问就来了,我们前面所说的 取值范围是小于 的正整数,没说必须和 互质,但是欧拉定理的使用条件是 ,当 和 有公因子 时( 同理),取模的结果肯定也是 的倍数,怎么可能是 呢。
所以我们要在数论上推导RSA的正确性时,也要把 的情况拓展进来。
我们设 ( 等价);
此时 与 互质,可以使用欧拉定理,;
设 ;
那么 ;
考虑在模 意义下,;
最后一步是怎么消掉的,因为 展开后,除了最后一项是 ,其他项都有 ,那么 相乘是 的倍数,取模完就只剩下 乘以 了。
所以RSA的核心并不是 ,而是 ,后者是更普遍的性质,可以容许 。
但是还是有一点需要保证,就是 只能和 有一个共同的质因子,比如 , 就不满足上式。在RSA中, 只有两个质因子, 小于 ,最多和 共享一个质因子,因此一定满足上式。
另一个疑问就是为什么网上有的版本是 ,这样就不能用欧拉定理的 来解释了,但是由于 和 是互质的这一特殊性, 仍然是成立的,推导方式和上面类似。
首先是 ,设 ;
则 ;
;
;
在模 和 意义下都是 ,由中国剩余定理可得 。
然后是 ,这个情况下,其实和 差不多;
我们得到了 ;
;
这个推导方式只关心 是不是 的倍数,不用考虑 的具体值,因此 时依然适用。
__EOF__

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具