美文网首页
算法——RSA

算法——RSA

作者: 柳清檀 | 来源:发表于2019-05-14 16:17 被阅读0次

RSA算法

公钥加密系统
通过公钥加密系统,可以对传输于两个通信单位之间的消息进行加密,使窃听者即使得到被加密的信息也无法进行破译。公钥加密系统还能让通信的一方,在电子消息的末尾附加一个无法伪造的数字签名,这种签名是纸质文件上的手写签名的电子版本。任何人都可以轻松核对却不能伪造。数字签名可以为签名者身份和其签署的信息内容提供证明。

在公钥加密系统中,每个参与者都有一把公钥和一把私钥,在RSA加密系统中,每个私钥由一对整数组成。每个参与者都有自己的公钥和私钥

假设S为私钥,P为公钥,M为属于允许信息集合的一组信息
则有:M=S(P(M))
相应的,也有:M=P(S(M))
同样的,数字签名也可以通过S()函数加密,与所传信息放在一起,便于接收方确认身份。

RSA加密系统

RSA公钥加密系统基于:寻找大素数是容易的,但要把一个数分解成两个大素数的积却是相当困难的。

  • 随机选取两个大素数p,q(p!=q)
  • 计算n=pq
  • 选取一个与φ(n)=(p-1)(q-1)互质的小奇数e
  • 对模m,计算出e的乘法逆元d的值

例如,求3关于模14的乘法逆元:
1=3-2=3-(14-34)=35-14
因此,3关于模14的乘法逆元为5。

  • 相关算法:

密文=(明文^e)%n
明文=(密文^d)%n

  • P=(e,n)公开,作为参与者的RSA公钥
  • S=(d,n)保密,作为参与者的RSA私钥

RSA在HTTPS中的应用

  • HTTP:超文本传输协议HTTP协议用于在Web浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何形式的加密。因此不适宜传输敏感信息

  • HTTPS=HTTP+SSL:在HTTP的基础上加入SSL协议。他并不是绝对安全,只是大幅增加了中间人攻击的成本。


    客户端与服务器交互流程.png

SSH远程登录

  • 口令登录
    输入远程主机的密码,正确就可以成功登录了
    客户端首先发出登录请求,服务器返回一个公钥,客户端使用公钥对登录密码进行加密,传输给服务器后,服务器使用私钥对登录密码解密然后核对。
  • 公钥登录
    在本机生成密钥对并将公钥复制到远程主机
    客户端发出登录请求之后,服务器随机发送一段字符串,客户端使用自己的私钥加密之后返回给服务器,服务器使用存储的客户端的公钥进行解密,解密成功则登录成功。

参考资料:
[1] 算法导论
[2] RSA与SSL浅析

附加材料:(留几篇好文)
[1]跨越千年的RSA算法
[2]浅谈HTTPS以及Fiddler抓取HTTPS协议

相关文章

网友评论

      本文标题:算法——RSA

      本文链接:https://www.haomeiwen.com/subject/qcdjaqtx.html