对称加密与非对称加密
对称加密
加密 encryption
与解密 decryption
使用的是同样的密钥 secret key
,对称加密是最快速、最简单的一种加密方式。加密和解密算法是公开的,秘钥必须严格保存,如果秘钥泄露,别人就能够用密文+秘钥还原成你的明文。
对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。
对称加密通常使用的是相对较小的密钥,一般小于 256bit
。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用 1bit
来做这个密钥,那黑客们可以先试着用 0
来解密,不行的话就再用 1
解;但如果你的密钥有 1MB
大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。
For Example
比如常见的 DES/AES
都是属于对称加密算法。
优点
算法公开、计算量小、加密速度快、加密效率高。
缺点
秘钥的管理和分发非常困难,不够安全。在数据传送前,发送方和接收方必须商定好秘钥,然后双方都必须要保存好秘钥,如果一方的秘钥被泄露,那么加密信息也就不安全了。
非对称加密
非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(简称公钥)和私有密钥(简称私钥),即常说的“公钥加密,私钥加密”或“私钥加密,公钥加密”。
私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。
非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。
For Example
RSA
就是最常用的非对称加密算法。
比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人–银行才能对你的消息解密。
与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。
虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。
优点
安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。
缺点
加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
总结
对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。