打开网易新闻 查看精彩图片

01 写在开篇

RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。

在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。而加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。

正是基于这种理论,1978年出现了著名的RSA算法。它通常是首先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,这将使加密的计算量变很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密;然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密,并可核对信息摘要。

02 加密过程

打开网易新闻 查看精彩图片

Rsa加密过程举例:

打开网易新闻 查看精彩图片

为了更好地编写脚本,我们对笔记进行简化和理解,并使用python进行常规的rsa加密。

打开网易新闻 查看精彩图片

03 常见的rsa攻击手段

RSA题目:模不共素

打开网易新闻 查看精彩图片

证明过程:

两个n不互素,代表拥有相同的公因数和乘积。通过求解两者的公因数,即可得到 p或者q,由此求出其他数值。由于此处是两个加密后的结果,所以需要拼接起来,有2个明文,二者为一。

exp为:https://zhuanlan.zhihu.com/p/76228394

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片