对称加密和非对称加密
2020-04-20 本文已影响0人
砂壶
对称加密
用相同的密钥。指有一个密钥,用它可以对一段明文加密,加密之后也只能用这个密钥来解密得到明文。密钥在互联网上传输的过程,如果在传输过程中被别人监听到了,那么后续的所有加密都是无用功。
非对称加密
用一对密钥。有两个密钥,一个是公钥,另一个是私钥。一般来说,公钥用来加密,这时密文只能用私钥才能解开。非对称加解密耗时要远大于对称加解密,对性能有很大损耗。
私钥除了解密外的真正用途就是数字签名,是一种防伪技术,只要有人篡改了证书,那么数字签名必然校验失败。
非对称加密的签名过程是,私钥将一段消息进行加签,然后将签名部分和消息本身一起发送给对方,收到消息后对签名部分利用公钥验签,如果验签出来的内容和消息本身一致,表明消息没有被篡改。
非对称加密+对称加密的方案
- 服务端有非对称加密的公钥A1,私钥A2;
- 客户端发起请求,服务端将公钥A1返回给客户端;
- 客户端随机生成一个对称加密的密钥K,用公钥A1加密后发送给服务端;
- 服务端收到密文后用自己的私钥A2解密,得到对称密钥K,此时完成了安全的对称密钥交换,解决了对称加密时密钥传输被人窃取的问题
- 之后双方通信都使用密钥K进行对称加解密。
参考资料:
https://juejin.im/post/5e95ed89518825739208ec79#heading-5