上篇我们讲到“非对称加密”弥补了“对称加密”密钥传送问题的麻烦!
那下面我就具体的讲一下“非对称加密”的加密原理。
“非对称加密”是在“对称加密”之后出现的,在“非对称加密”中融入了 大量的数学运算,“私钥”和“公钥”是两个非常的素数,凭现在计算机的运算速度就是一般的密码,也需要很长的时间来运算,解密没有什么技巧,就是穷举法,所以说密码对现在的计算机技术来说是固若金汤的。
“非对称加密”一共有两把密钥,一把是只有自己知道的“私钥”一把就是公开的“公钥”。这就是和“对称加密”的最大的不同之处……
上篇我们说“对称密钥”是用一把“密钥”来给文件“加密解密”的,“非对称加密”是用一把密钥加密,然后用另一把密钥解密的。“私钥”加密的文件“公钥”可以解密,相反“公钥”加密的文件“私钥”一样可以解密。
假设a主机向b主机发送邮件,那么在发送之前b主机会先把自己的“公钥”发送给a主机,然后a主机用b主机的“公钥”把要发送的邮件加密,发送给b主机,当b主机收到邮件以后b主机就用自己的“私钥”来解密。
如图:
![对称加密和非对称加密(原理篇2)_PKI](https://i-blog.csdnimg.cn/blog_migrate/a442b8a4e5c3a64e027c416141b1b713.gif)
但是“非对称加密”有一个致命的弱点,那就是它的传送速度,非常的慢,是“对称加密”的上千倍,所以一般再生产中很少单用这种方法,我们一般是把“对称加密”和“非对称加密”一起用,这样就很好的保证了速度,也很好的证了安全。那它们在一起怎么用呢?很简单,我们第一步就是用“对称加密”的密钥,把要传送的文件加密,这样文件就可以直接的传过去,就算在中间有人夺取了,他也是打不开的,因为他没有“密钥”啊,下一步就是我们怎么把“对称加密”的密钥,传送给对方了,我们用“非对称加密”来解决这个问题,还是如上图吧,a主机怎么把密钥给b主机呢?我们可以用b主机的“公钥”来给a主机的“密钥”加密,然后传给b主机,b主机再用自己的“私钥”把a主机的“密钥”解密出来,再用a主机的“密钥”来解密文件, 到这里,OK 了。
其实加密技术是博大精深的,上面的一些只是根据我自己理解写的,希望能给初学网络技术的朋友有帮助。