前言
在数字时代、数据就像钱一样金贵,甚至有时候比钱还要宝贵。无论是企业做系统开发,还是个人用各种APP,背后总有一堆加密算法在默默撑场子。今天我们就来聊聊什么是对称加密,什么是非对称加密
对称加密与非对称加密
对称加密
对称秘钥就是加密和解密使用相同的秘钥,所谓的秘钥就是一段数据,我们使用秘钥对数据进行加密,需要进行解密时我们只需要使用相同的秘钥进行解密就可以了
对称加密的算法有几个很重要的优势:快、效率高,适合处理大量数据
缺点也很明显:那就是钥匙怎么安全的传递给对方,这里这么说大家可能很难理解,我们所说的钥匙也就是加密算法的秘钥,所谓的秘钥无非就是一段数据,一旦秘钥泄露那任何都都能解密使用该秘钥加密的数据。那这段数据怎么才能安全的交给对方就成了困难了,通过网络发送难免会泄露,通过邮寄等方式时间成本又很高。
非对称加密
所谓非对称加密和对称加密的最大区别就是它有两个秘钥,一个公钥一个私钥,顾名思义,公钥是可以公开的秘钥,私钥是需要自己保管,需要保密的秘钥。数据使用公钥或私钥进行加密后只能使用对应的私钥或公钥才能进行解密。
那非对称加密有什么作用呢?举个例子,我们把公钥进行公开,其他人想要给我发送数据,那其他人只需要使用公钥进行加密,我拿到数据后使用私钥进行解密即可,由于公钥是公开的,那我也就根本不需要对公钥是否会被泄露而操心了。如果我需要向对方发送数据,那只需要让对方把公钥告诉我,我使用对方的公钥进行加密,对方拿到密文数据后使用他的私钥进行解密即可
这么看起来非对称加密简直不要太好用,但是其实非对称加解密也有缺点,那就是速度太慢了,加解密的速度要远远低于对称秘钥
不知道大家有没有发现上面的场景中有什么问题,那就是我们如何确保对方给我的公钥就是对方的而不是其他人伪造的公钥呢?在或者说我如何确认对方发给我的密文数据就是对方的而不是其他人再得到公钥后伪造的密文数据呢?这里先留一个疑问,我们在下一篇文章中介绍签名和证书中再进行讲解
对称秘钥的传输问题
那如果我有一段很大的数据需要发送给对方我们应该选用什么样的加密算法呢?选择对称加密秘钥的安全本身就是个问题,但是如果选择非对称加密,那加解密的速度又无法满足我们的需求
不知道在上面为大家介绍了对称加密与非对称加密后大家有没有想到解决方案呢?下面我来揭露答案,那就是对称加密和非对称加密结合起来一起使用。数据我们使用对称加密的方式进行加密,加密完成后我们使用非对称加密的方式将对称秘钥发送给对方,因为秘钥的数据并不会很大,所以性能问题我们是完全可以接受的,这样我们依靠非对称秘钥的优势将秘钥安全的传送给了对方,对方接收到对称秘钥后又可以使用对称加密的效率优势了