对称加密算法简介
对称加密(symmetric encryption)
- 对称加密就是加密/解密都用相同密钥的加密算法
- 明文(plaintext):指任何没有经过加密的信息
- 加密算法(encryption algorithm):对明文进行替换,变形等操作的步骤规则
- 密钥(secret key):明文转换为密文或将密文转换为明文的算法中输入的参数
- 密文(ciphertext):明文经过加密算法处理后的输出
- 解密算法(decryption algorithm):加密算法的逆向操作
好的对称加密算法标准
一个好的对称加密算法,让破解者就算知道了算法流程,知道了明文和对应的密文,但是还是很难破解出密钥key。
不过一般而言,破解者只知道算法流程和密文。所以总的来说对称加密算法最重要的就是保护好密钥key。
一般而言,信息发送源要将自己的密钥共享给信息目的地,需要通过安全的通道专门传输密钥,一旦密钥泄漏那么对称加密算法也就不起作用了。
加密方法分类
加密算法,包括对称和非对称,使用的加密手段可以总的归纳为两类操作:
- 替换(substitution):将明文中的字母,或者比特,或者单词等映射为另外的值;
- 换位(transposition):明文中的元素被重新排列
根据处理数据的形式不同,可以划分为块加密和流加密:
- 块加密(block cipher):一次加密处理固定大小的块数据
- 流加密(stream cipher):连续处理明文中的元素
加密算法安全性定义
如果一个加密算法是无条件安全的(unconditionally secure),就是说无论破解者用多少时间去暴力破解密钥,还是不断分析密钥都无法破解。但无条件安全的加密算法是不存在的。所以加密算法的目标就是到达计算安全的(computationally secure):
- 破解密钥的成本高于获取加密信息的价值
- 破解密钥的时间超出加密信息的保密生命期