分组密码(块密码):是一种对称密钥算法,它将明文分成多个等长的模块,使用确定的算法和对称密钥对每组分别加密解密。大多数的分组密码在加密算法中会重复使用某个函数进行多轮运算,典型的轮数在4-32次之间。DES自身并不是加密的实用手段,而必须以某种工作模式进行实际操作。
差分分析
线性分析
微分密码分析(DC):很多算法分析的通用技术
线性密码分析(LC):很多算法分析的通用技术
戴维斯分析:针对DES的特别技术
扩散(diffusion)、扰乱(confusion):扰乱是指让密钥与密文的统计信息之间的关系变得复杂,从而增加通过统计方法进行攻击的难度。
RC5,Blowfish,IDEA,NewDES,SAFER,CAST5,FEAL
DES(Data Encryption Standard):数据加密标准,基于使用56位密钥的对称算法,块长度64位。
AES(Advanced Encryption Standard):高级加密标准
暴力破解法(依次尝试所有可能的密钥);
拟随机数生成器
消息认证码(MAC,Message Authentication Code):用来保证数据完整性的一种工具,防止数据未经授权被篡改。
MAC(Media Access Control)地址:用来定义网络设备的地址,在OSI模型中,数据链路层负责MAC地址,采用十六进制数表示,共六个字节(48位)。
杂凑函数:即哈希函数,是认证和数字签名的基本组成部分,有密钥控制的叫密码杂凑函数,无密钥控制的叫一般杂凑函数。
消息认证技术
数据完整性机构
实体认证协议
字长为m的数字序列的代换密码
数据扩展的分组密码
数据压缩的分组密码
置换子集
要求:1、分组长度n要足够大(防止明文穷举攻击法奏效)
2、密钥量要足够大
3、由密钥确定置换的算法要足够复杂
4、加密和解密运算简单
5、数据扩展:同态置换,随机化加密技术
6、差错传播尽可能小
代换
全代换网络密钥个数要满足条件:#{k}>=(2^n)!
逆代换网络
代换盒/(S盒) Substitution Box
扩充盒(expansion box ,E盒),替换盒(substitution box,S 盒),置换盒(permutation box,P盒)
E盒的作用是确保最终的密文与所有的明文位都有关;
扩散与混淆
扩散将明文的统一特性散布到密文中,实现的方式是将明文的每一位影响密文中的多位的值。
坐标置换(P-盒)
Feistel 网络(Feistel Network):用于分组密码中的一种对称结构。
迭代分组密码
对合密码(Involution Cipher)
Ⅰ型迭代分组密码
对合置换
Ⅱ型迭代分组密码
DES、FEAL、LOKI
Ⅲ型迭代分组密码
群密码
初始向量(IV,Initialization Vector):在很多工作模式中用于随机化加密的一块数据,因此可以由相同的明文,相同的密钥产生不同的密文,而无需重新产生密钥。
工作模式:
电子码本(ECB,Electronic Codebook):同样的平文块会被加密成相同的密文块,因此,不能很好地隐藏数据模式。
密码分组链接(CBC,Cipher-block chaining):每个平文块先与前一个密文块进行异或后,再进行加密。
密码反馈(CFB,Cipher feedback):可以将块密码变为自同步的流密码。
输出反馈(OFB,Output feedback):可以将块密码变成同步的流密码,它产生密钥流的块,然后将其与平文块进行异或,得到密文。密文中一个位的翻转会使平文中同样位置的位也产生翻转。这种特性使得许多错误校正码,例如奇偶校验位,即使在加密前计算而在加密后进行校验也可以得出正确结果。
填充(padding)
k-比特密码反馈CFB模式
ECB模式,简单、高速,但最弱、易受重发攻击,一般不推荐。
CBC适用于文件加密,但较ECB慢。安全性加强,当有少量错误时,也不会造成同步错误。
OFB和CFB较CBC慢很多,每次迭代只有少数bit完成加密。若可以容忍少量错误扩展,则可换来恢复同步能力,此时用CFB。在字符为单元的流密码中多用CFB模式。
OFB用于高速同步系统,不容忍差错传播。
分组密码的工作模式通常应用于对称加密,亦可应用与公钥加密,但在实际应用中,公钥密码学通常不用于加密较长的信息,而是使用混合加密方案。