Code前端首页关于Code前端联系我们

RSA算法到底是什么?

terry 2年前 (2023-09-27) 阅读数 86 #数据结构与算法
RSA 算法到底是个什么鬼?

节目石头(id:tangleithu)

我是石头哥。

大家一定听说过RSA算法。它是一种常见的非对称加密算法,常用于对网络上传输的一些敏感信息进行加密。

但是不知道大家是否知道具体流程?本文将概述RSA算法的流程,并用一个简单的例子进行讲解,最后讲解一种意想不到的“侧门”破解方法。

RSA算法流程

具体算法流程如下:

  1. 找到两个互质,p和❿,⸀❿ N = p*q
  2. 确定一个数 e,使得 e(p-1)♿ 互为倒数。此时公钥为(N,e),请对方
  3. 确定私钥d,使得-2C为:

    RSA 算法到底是个什么鬼?

  4. 消息接收方收到密文消息C,在算法上解密消息M:m RS版本约为ap 互质,则:

    RSA 算法到底是个什么鬼?

    as

    RSA 算法到底是个什么鬼?

    s 幂对p 以余为1为例,( enp-1的次方减去可以❀分为d p

    欧拉定理的证明比较复杂,可以参考参考如下文末。

    举例

    我们用一个简单的例子来说明:

    N = pq,取两个素数p *♿ = 11,q3 = 11,q3,取 e(p-1)(q-1) = 20 互质 e = 3e 验证私钥,即取一个 d因此 ​​3*d -1 可以被 20 整除,前提是 d=7 = 6 7 。(3*7-1=20当然可以被20整除,3*67-1=200也可以被20整除)因此是(N=33) ,e=3),私钥为d=7d=67

    假设密文M=8,通过加密算法RSA 算法到底是个什么鬼?,得到密文C3=C3C3。

    再看解密,从RSA 算法到底是个什么鬼?,我们得到明文M = 17^7% 33 = 8或❓❓=3,是不是很神奇? (这里^代表多少次幂,后文有的代表异或)

    来,安利一个计算器工具,bc

    RSA 算法到底是个什么鬼?

    bc

    RSA 算法到底是个什么鬼?

  5. 精准指令,支持,其实可以通过前面介绍的Alfred轻松完成Mac上的简单计算。 RSA 算法到底是个什么鬼?linux计算器

    RSA破解

    如果需要破解RSA,需要找到p和❀和❀♿,所以❓pq=33 ,如果你知道pq,就可以通过公钥♾N❀和♸ed提取私钥。

    当然,上面描述的情况是比较简单的,但是当N很大的时候,就变得特别困难了。纵观历史,分解大数一直是数学中的一个难题。

    有人曾经花了五个月的时间分解这个数字39505874583265144526419767800614481996020776460304936454139376051579355626529450683609727842468219535093544305870490251995655335710209799226484977949442955603(159位),RSA-155(512位)[来自维基百科]。

    这条路行不通,所以有人走了“旁路”。斯坦福的几位研究人员花了两个小时破解了OpenSSL 0.9.7的1024位RSA私钥(有兴趣的同学可以看他们的论文Remote Timing Attacks are Practical),使用的方法就是上面提到的定时攻击。稍后(或翻译为“定时攻击”)。

    定时攻击(timingattack)

    定时攻击是侧信道攻击(或“Side Channel Attack”,缩写为SCA)的一种。它主要是一种利用不同的输入来进行不同的攻击的攻击方式。这个函数的执行时间是被执行的。

    当我第一次看到这个的时候,我震惊了。直观上我感觉干扰因素太多,不利于实际应用。我可以忽略它吗?

    不过,由于上述论文中有成功突破的实际案例,以及各大编程语言的更新,所以这样做还是非常有必要的。

    例如,JDK 1.6.0_17版本的发行说明中提到了修复MessageDigest.isEqual中的Bug,如下图所示: RSA 算法到底是个什么鬼?e 关于本主题,了解更多信息,看到我之前写的这篇文章——这10行比较字符串相等性的代码完全把我搞糊涂了。不信你看一下

    参考资料:

    1. 【RSA的计时攻击:通过第四维度揭露你的秘密】(http://www.cs.sjsu.edu/faculty/stamp/ Students/article.html)
    2. [远程定时攻击很实用](http://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf)
    3. [费马小定理](https:/ /zh.wikipedia.org/wiki/%E8%B4%B9%E9%A9%AC%E5 %B0%8F%E5%AE%9A%E7%90%86)

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门