算法——RSA

2019-05-14  本文已影响0人  柳清檀

RSA算法

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

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

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

RSA加密系统

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

例如,求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中的应用

SSH远程登录

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

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

上一篇下一篇

猜你喜欢

热点阅读