1.分组密码模型
待加密明文往往需要填充到分组块大小的整倍数
分组密码的工作模式
-
对于基本的分组密码算法,相同的数据分组输入和密钥会产生相同的输出;
-
对于较长的数据,直接应用分组密码算法就需要多次使用相同的密钥加密多个分组,从而引发许多安全问题;
-
在实际应用中,需要针对不同的需要采用不同的工作模式来增强密码算法的安全性;
-
常见的分组密码工作模式:ECB,CBC,CFB,OFE,CTR
2.分组密码的工作模式
(1)ECB--电子密码本模式(Electronic Code Book)
-
最简单的加密模式,明文消息被分成固定大小的块(分组),每个块被单独使用相同的方法并进行加密;
-
适用于数据较少的情形;
-
对于很长的信息或者具有特定结构的信息,其大量重复的信息或固定的字符结构会给攻击者提供大量的已知明密文对,安全性较差
(2)CBC--密码块链模式(Cipher Block Chaining)
-
每一个分组先和前一个分组的密文进行XOR异或操作,然后再加密;第一个分组进行加密之前用初始化向量IV进行异或操作
CBC特点:
-
密码块链的应用相当于对分组进行了两次加密,不同的分组的密文块不独立,每个密文块依赖该块之前的所有铭文块,增强了安全性,不过加解密过程不能进行并行处理。
-
具有一定随机性的初始化向量IV使得在相同的密钥和加密算法下,每条消息(即使内容相同的消息)的密文具有唯一性,增加了密码分析的难度;
-
链接模式的一个显著特点是差错传递,前面密文分组上的某些错误会影响到后面其他密文分组的解密
(3)CFB--密码反馈模式(Cipher Feedback)
具有流密码的特点,用前一个分组的密文加密产生下一个密钥流块,然后与当前明文分组异或操作生成当前分组的密文。第一个分组是用初始向量的密文作为第一个密钥流块。
解密过程仍用同样的加密算法,前一个密文加密之后的输出与当前密文分组进行异或得到当前明文分组。
CFB特点:
-
CFB模式的链接模式会有差错传递
-
应用流密码加解密数据,对称加密算法只是用于生成密钥流
-
若明文的最后一个分组长度小于分组整长,无需填充,对密钥流做移位和丢弃操作即可
(4)OFB--输出反馈模式(Output Feedback)
和CFB类似:应用流密码方式加密数据,因此解密和加密流程流程完全一样
和CFB不通:OFB可以根据明文长度先独立生成相应长度的密钥流,从而不需要填充数据为块的整倍数
OFB特点:
-
与链接模式相比,明文分组不参与对称加密过程,因而密文分组上的某些错误不会影响到其他密文分组的解密;
然而若攻击者改变密文的一部分可能并不会被察觉,因而其消息完整性难以验证;
-
若明文的最后一个分组长度小于分组整长,无需填充,做移位和丢弃操作即可。
-
密钥流只依赖于密钥K和初始向量,若初始向量不变极易被攻击
(5)CTR--计数器模式(Counter)
和OFB相同:将分组密码转换为流密码
和OFB不同:它通过加密连续的“计数器”值来产生密钥流块
CTR特点:
-
软硬件效率高,同链接模式相比,CTR能够并行加密和解密,没有差错传播
-
由于加密解密过程不依赖明文和密文,因此可以做预处理以提高效率
-
可以随机访问某一明文或者密文分组进行部分加密和解密
-
若明文最后一个分组长度小于分组整长度,无需填充,类似CFB做移位和丢弃操作即可
3.分组密码的工作模式的应用
4.常用的分组密码算法
(1)DES(数据加密标准)
-
分组长度64比特
-
密钥长度64比特,有效长度56比特
-
加解密算法完全相同
-
随着计算能力的提高,DES算法由于密钥长度太短面临安全威胁
-
二重DES
-
应用两个密钥的两次DES加密,密钥长度112比特
-
易遭受中间相遇攻击
-
-
三重DES
-
两个密钥的三重DES和三个密钥的三重DES
-
两个密钥的三重DES密钥长度112比特
-
三个密钥的三重DES密钥长度168比特
-
-
三重DES的特点
-
密钥长度增加到112或168位,安全性大大增强,能抵抗暴力破解和中间相遇攻击
-
软件实现的处理速度较慢
-
明文长度仍为64位,与密钥长度相比,效率偏低
-
(2)AES(高级加密标准)
加解密算法相似,但不完全相同
(3)IDA(国际数据加密算法)
在PGP中采用
5.我国分组密码算法标准
(1)SM1
分组长度和密钥长度都为128比特
算法安全保密强度及相关软硬件实现性能与AES相当,算法不公开,仅以IP核的形式存在于芯片中
广泛应用于电子政务,电子商务,国民经济的各个领域
(2)SM4
分组长度和密钥长度都为128比特
算法公开,2012年发布为我国密码行业标准GM/T 0002-2012
加密算法于密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反
此算法主要用于无线局域网产品
(3)SM7
分组长度和密钥长度都为128比特
算法不公开
SM7适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)