对称加密和非对称加密

297 阅读3分钟

非对称加密

  • 加密和解密使用的是不同的私钥,公钥加密后之后私钥能解开,私钥加密后只有公钥才能解开:RSA,ECC

  • 非对称虽然安全性高,但是加密和解密的速度相对比较慢

对称加密:

  • 加密和解密使用相同的私钥:DES,AES,3DES,其中AES相对而言是最好的

  • 对称加密通常使用相对较小的密钥,一般小于256bit,因为密钥越大,加密和解密的过程就越慢,密钥的大小要照顾到安全性,也要照顾到效率:trade-off: 权衡、交换

区别:对称加密算法相对比非对称加密算法来说,加解密的效率更加的高效,但是缺陷也很明显,那就是对于密钥的管理和分配3,在非安全信道中通讯时,密钥交换的安全性不能保证,所以实际的网络环境中,会将两者混合使用
**http的传输数据时明文传输的,http默认采用80端口作为通讯端口,对于传输采用不加密的方式,因此传送的信息容易被篡改或是劫持****https默认端口443,对于数据进行加密传输(http + ssl),**所有的请求信息都采用了TLS加密

非对称加密的例子:【A & B 通信】

  1. A发送自己的公钥给所有人,其中包含B

  2. B收到A的公钥之后,将自己的公钥用A的公钥加密,然后发送给A

  3. A收到了B发过来的信息,然后B用自己的密钥解开了A发送的信息,拿到了B的公钥

  4. 此时,A有了B的公钥,B有了A的公钥

  5. 后期的每次传输只需要用对方的公钥加密,因为解密之后有私钥的人才能解开,保证了安全

换言之:A想让B给自己寄一些私密文件,这些文件被放在一个盒子里面,然后A要做的事情,就是给B很多锁(这些锁的钥匙都是同一个,但是这些锁也只能被这个钥匙打开),不用担心别人能获取到这些锁,就算别人用这个锁在盒子里面放了很多其他的文件,这些文件也是无法在传送途中被第三者拦截的,也是安全的。当B获取到这些钥匙之后,在这一次通信中,B把自己要传送的文件放到盒子里面,然后寄出去就好了,中途其他人哪怕拦截到了,也无法打开这个锁,只有A才能打开这些锁,这样的话,B就可以向A传送文件了,反过来,如果要实现双向通信,B要做的事情就是,在第一次收到A给自己的锁后,B把自己的锁放到盒子里,用A的锁锁起来,然后快递出去,这样的话,A就又了B的锁,同时B也就有了A的锁,这样的话,双方拥有了对方的锁,后期通信,把自己想传送的信息放到盒子里面,用对方的锁锁起来,发送出去就可以了,这样对方用自己的钥匙打开,就能看到要传送的信息
但是无论如何,安全保障起来还是很难,目前终极的方案就是SSL 证书(需要购买)和CA机构
对称加密: AES(128位),非对称加密: ECC(160位)或RSA(1024),消息摘要: MD5(散列算法)数字签名:DSA