非对称加密和数字签名的原理

信息,尤其是重要的或者私密的信息传递,一直伴随着安全问题,如何保证信息在传递过程中的安全,是几千年来人们一直在关注的问题。
从早期的隐藏信息传递介质,如:把信藏起来,埋在大米里面,或者把信息放入意想不到的地方,比如鸡蛋里,写在送信者的身上等等。
到后来开始对信息本身进行加密,如移位法,替代法,以及后来的密码本等等,加密技术层出不穷。同时,解密的技术也是紧随其后。
随着近代计算机的发明,加密技术也更进一步,重之前的字母层面,深入到数字层面,并基于此产生了一种相对实用的加密系统,叫做路西法加密系统(又名魔王系统),他在很大程度上解决了信息传输过程中的安全问题,但是它有一个软肋:秘钥。如果两个人之间需要使用这个系统进行加密通讯,为了保证秘钥安全,通讯双方需要先见一次面,把秘钥交给对方。如果秘钥需要定期更换的话,双方就需要定期见面,这使得这套加密系统使用起来非常不便。

非对称加密

为了解决以上的问题,有人发明了非对称秘钥加密系统,即RSA加密,它的原理是,通过一系列数学计算,生成一对秘钥:一个私钥,一个公钥。公钥用于加密,私钥用于解密。由于数学原理的原因,私钥可以推出公钥,而公钥无法推出私钥。
在使用的时候,私钥自己保存好,而公钥可以在不加密的情况下,发给任何你想要通讯的人。当对方需要向你发送消息时,可以使用拿到的公钥对信息进行加密,然后发送给你。你在收到信息后,可以使用自己的私钥对信息进行解密。
由于其他人没有你的私钥,所以即使有人监听或者窃取了发送给你的信息,也是无法解密。从而保证了信息传输的安全。同时,因为不用再定期见面交换秘钥,从而使这种加密方式的便利性大大提高。
非对称加密,解决了信息传输安全和秘钥传输安全的双重问题,但是它也有缺陷,即:非对称加密的信息,在解密时的耗时相对较长,不适合频繁交互的通讯。
为了弥补这一缺陷,人们进一步改进了信息加密传输方式:使用非对称加密技术,传输对称加密需要使用的秘钥,在之后的通讯中,还是使用对称加密技术。这样,既保证了秘钥的安全,又保证了解密的效率。这也就是我们现在常用的信息加密传输方式。这方面的典型应用有很多,比如,SSH远程登录服务中使用的秘钥连接方式。

电子签名

信息传输过程中的安全问题解决了,伪造发信人的问题又浮出水面。由于公钥是可以在网络上任意传播的,任何人只要想给你发消息,都可以使用你的公钥,发信给你。假如你是Bob,你怎么区分给你发信息的人是Alice,而不是Eve呢?
非对称加密的私钥和公钥,还有一个特性:使用私钥加密的信息,也可以使用公钥解密。由于私钥之后拥有者自己才有,所以就可以通过这个特性,验证发信人的身份。具体的操作是这样的:

  • Alice首先使用自己的私钥,对将要发给Bob的信息进行加密,然后再用Bob的公钥对信息加密一次。最后发给Bob。
  • Bob在收到信息后,首先用自己的私钥解密,确定信息是发给自己的。再用Alice的公钥解密一次,验证信息是否来自Alice。

以上过程,既保证了信息的安全,也验证了信息的来源。这就是数字签名的原理。

发布了13 篇原创文章 · 获赞 0 · 访问量 227

猜你喜欢

转载自blog.csdn.net/sinat_28296423/article/details/103968712
今日推荐