1、Encryption(加密)用来提供数据保密性,只有预期的接收方能够翻译该数据。
- Plain Text(明文):加密之前和解密之后的数据
- Cipher Text(密文):被加密的数据
2、简单加密:将明文转换成密文
简单加密有它的问题,比如:
- 无法扩展
- 很难做到安全
- 没有一个标准的算法(给不同人发送加密信息需要用不同的加密算法)
因此,出现了基于密钥的加密(Key Based Encryption)
- 它将经过行业审查的算法与密钥相结合
- 算法由专家所创建
- 密钥是随机生成的(用户很容易使用)
3、基于密钥加密的2种类型
- Symmetric Encryption(对称加密)
- 使用相同的密钥加解密
- 优势:加解密更快 - 低CPU占用;明文和密文大小相同
- 劣势:密钥必须被共享 - 安全性低
- 适合批量数据,更快、更高效
- 对称加密算法:
- DES 56 bit key 不再使用
- RC4 128 bit key 不再使用
- 3DES 168 bit key
- AES 128, 192, or 256 bit keys
- ChaCha20 128 or 256 bit keys
- Asymmetric Encryption(非对称加密)
- 使用不同的密钥加解密
- 2个不同密钥(加密密钥和解密密钥)在数学上是关联的
- 1个密钥加密,只有另外1个是解密的密钥
- 1个密钥称作公钥(Public Key),公钥可以被任何人获取
- 另1个密钥称作私钥(Private Key),私钥个人保存,不和他人共享
- 因而,任何人可以用我的公钥加密文件,但只有用我的私钥才能进行解密
- 优势:
- 私钥不会被分享,更安全
- 劣势:加解密更慢 - 需要更大的密钥大小(数学上更难);密文扩展,每次用非对称加密进行加密时,明文大小都会更大(增加密钥长度和存储空间)
- 受限于有限数据
- 非对称加密算法:
- DSA
- RSA - 推荐的密钥大小是2048 bits
- Diffie-Hellman
- ECDSA
- ECDH
参考文献
1、Practical Networking.net:Practical TLS