计算机安全其他常用分组密码算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.5其他常用分组密码算法
1. 三重DES
三重DES (即Triple DES )是DES 向AES 过渡的加密算法(1999年,NIST 将3-DES 指定为过渡的加密标准),是DES 的一个更安全变形。它以DES 为基本模块,通过组合分组方法设计出分组加密算法。其具体实现如下:设E k ( )和D k ( )代表DES 算法的加密和解
密过程,K 代表DES 算法使用的密钥,P
代表明文,C 代表密文。 三重DES 加密过程为:
C=E k1(D k2(E k1(P )))
三重DES 解密过程为:
P=D k1((E k2(D k1(C ))) 具体的加/解密过程如图3-22所示。 2. IDEA 加密算法
IDEA 算法是International Data Encryption Algorithmic 的缩写,意为国际数据加密算法,1992年由瑞士的Lai 和Massey 提出。 IDEA 的输入明文为64位,密钥为128位,生成的密文为64位。
密钥长度是128位,比DES 长了2倍多,所以如果用穷举强行攻击的话,需要2128 次搜索才能获得密钥。如果可以设计一种每秒能搜索十亿次的芯片,并且采用十亿个芯片来并行处理的话,也要用上1013年——比宇宙的年龄还要长。而对于其他攻击方式来说,由于此算法比较新,并且在设计时已经考虑到了如差分攻击等威胁,所以至今还未发现成功攻击IDEA 的方法。从这点来看,IDEA 还是很安全的。
3.2.6分组密码的运行模式
分组密码在加密时,明文分组的长度是固定的,而实际应用中待加密消息的数据量是不定的,数据格式可能是多种多样的。为了能在各种应用场合使用DES ,美国在FIPS PUS 74和81中定义了DES 的4种运行模式。这些模式也可用于其他分组密码,下面以DES 为例来介绍这4种模式:ECB 、CBC 、CFB 和OFB 。
1. 电子密码本模式ECB
一个明文分组加密成一个密文分组,相同的明文分组被加密成相同的密文分组。由于大多数消息并不是刚好分成64比特(或者任意分组长)的加密分组,通常需要填充最后一个分组,为了在解密后将填充位去掉,需要在最后一分组的最后一字节中填上填充长度。
ECB 模式的缺点是:如果密码分析者有很多消息的明密文对,那就可能在不知道密钥的情况下恢复出明文;更严重的问题是敌手通过重放,可以在不知道密钥情况下修改被加密过的消息,用这种办法欺骗接收者。例如在实际应用中,不同的消息可能会有一些比特序列是相同的(消息头),敌手重放消息头,修改消息体欺骗接收者。
图3.22 三重DES
(a)加密过程
(b)解密过程
图3-23 电子密码本模式
2.密码分组链模式CBC
明文要与前面的密文进行异或运算然后被加密,从而形成密文链。每一分组的加密都依赖于所有前面的分组。在处理第一个明文分组时,与一个初始向量(IV)组进行异或运算。IV不需要保密,它可以明文形式与密文一起传送。密文分组的计算为:
C i =E k(P i⊕C i -1)
接受方明文分组的计算为:
P i = C i-1⊕Dk( C i)
使用IV后,完全相同的明文被加密成不同的密文。敌手再用分组重放进行攻击是完全不可能的了。
图3-24 密码分组链模式
3.密码反馈模式CFB
在CFB模式(图3-25所示)下,设分组长度为n,数据可以在比分组长度小得多的k 比特字符里进行加密(1≤k≤n)。开始,仍然使用一个长度为n的初始向量(IV)。每个k 比特字符对应的密文Ci为该明文字符Pi与一个k比特密钥字符Ki进行异或得到的。该密钥字符是通过加密前n比特密文得到的。
为了初始化CFB过程,分组算法的输入必须用IV初始化,它并不需要保密,但必须是唯一的。如果在CFB模式下IV不是唯一的,密码分析者就可以恢复出相应的明文。
假定:Si 为移位寄存器,传输单位为j 位。
加密: Ci =Pi ⊕(EK(Si)的高j 位) Si+1=(Si< 图3-25密码反馈模式CFB 加密 解密: Pi=CiÅ(EK(Si)的高j 位) Si+1=(Si< 图3.26密码反馈模式CFB 解密 (4)输出反馈模式OFB 输出反馈模式OFB 加密(图3-26所示)时,加密算法的输入是64比特移位寄存器内的数据,其初值为某个初始向量IV 。加密算法输出的最左(最高有效位)j 比特与明文的第一个单元P 1进行异或,产生出密文的第1个单元C 1,并传送该单元。然后将移位寄存器的内容左移j 位并将C 1送入移位寄存器最右边(最低有效位)j 位。这一过程重复至明文的所有单元都被加密为止。 C i =P i ⊕(E K (S i )的高j 位);S i+1=(S i < 1 2 n 1 2 n 图3-26输出反馈模式OFB 加密 输出反馈模式OFB 的解密解密过程如图3-27所示。解密算法如下: P i =C i (E K (S i )的高j 位); S i+1=(S i < 1 2 n 图3-27输出反馈模式OFB 解密 P 1 P 2 P n