最近组里组织内训,每个组员要选择一个主题进行分享,我选择了加密技术这个主题。因为工作的需要,开始去接触、学习这方面的知识,是初识;也是因为学的比较浅,比较粗,所以只是分享了些基本概念和一些应用,不涉及到具体的算法。
学习了William Stallings.《网络安全基础 应用与标准(第5版)》[1];也在网上查了很多资料,引用了一些技术分享者的资料,详见参考文献,这里一并谢过。文中也难免有错误之处,恳请指正。
1 对称加密
对称加密,也称为常规加密、单钥加密,又叫传统加密。一个对称加密方案由5个部分组成:
发送者和接收者必须通过一个安全的方式获得密钥并且保证密钥的安全。对称加密的安全性取决于密钥的保密性而非算法的保密性,在已知密文和加密/解密算法的基础上不能够破译消息。
1.1 分组密码
最常用的对称加密算法是分组密码。
将明文进行分组后加密处理;分组密码处理固定大小的明文输入分组,且对每个明文分组产生同等大小的密文分组。分组密码主要有以下几种:
很多对称分组加密算法(包括DES),其结构由IBM的Horst Feistel在1973年首次详细描述。基本原理是明文分成2组,多次迭代,每次迭代用不同的子密钥,每个子密钥由原始密钥产生。AES没有使用Feistel结构,而是在每轮替换和移位时都并行处理整个数据分组。
1.2 流密码
对称加密算法还有一种流密码。从明文输入流逐位或逐字节用随机数加密产生密文输出;流密码与分组密码相比,速度更快,代码量更少。
RC4 (Rivest Cipher 4)是使用比较广泛的流密码,是Ron Rivest为RSA公司在1987年设计的一种流密码。
密钥大小可变的流密码,使用面向字节的操作。
流密码和分组密码,