8,9 其他分组密码算法综述
8.9.1 IDEA算法
瑞士的 Xuejia Lai和 James Massey于 1990年
公布了 IDEA密码算法第一版,称为 PES
(Proposed Encryption Standard)。为抗击
差分密码攻击,他们增强了算法的强度,
称 IPES( Improved PES),并于 1992年改
名为 IDEA( International Data Encryption
Algorithm,国际数据加密算法。)
? IDEA是一个分组长度为 64位的
分组密码算法,密钥长度为 128
位(抗强力攻击能力比 DES强),
同一算法既可加密也可解密。
? IDEA的“混淆”和“扩散”设计
原则来自三种运算,它们易于软、
硬件实现(加密速度快),
? 异或运算( )
? 整数模 216加( + )
? 整数模 216+1乘( ) (IDEA的 S盒)
? 扩散由称为 MA结构的算法基本构件提供。
Z6
F2 F1
Z5
G1 G2
? 实现上的考虑
? 使用子分组,16bit的子分组;
? 使用简单操作(易于加法、移位等
操作实现)
? 加密解密过程类似;
? 规则的结构(便于 VLSI实现)。
IDEA加密的总体方案图
循环 2
循环 8
循环 1
输出变换
64位密文
64位明文
Z1
Z6
Z7
Z12
Z43
Z48
Z49
Z52
子密钥生成器
128位密钥
Z1 Z52
16
IDEA的密钥产生
56个 16bit的子密钥从 128bit的密钥
中生成
? 前 8个子密钥直接从密钥中取出;
? 对密钥进行 25bit的循环左移,接
下来的密钥就从中取出;
? 重复进行直到 52个子密钥都产生
出来。
IDEA的解密
? 加密解密实质相同,但使用不同的密钥;
? 解密密钥以如下方法从加密子密钥中导
出,
? 解密循环 I的头 4个子密钥从加密循环 10- I
的头 4个子密钥中导出;解密密钥第 1,4个
子密钥对应于 1,4加密子密钥的乘法逆元;
2,3对应 2,3的加法逆元;
? 对前 8个循环来说,循环 I的最后两个子密钥
等于加密循环 9- I的最后两个子密钥;
? IDEA是 PGP的一部分;
? IDEA能抗差分分析和相关分析;
? IDEA似乎没有 DES意义下的弱
密钥;
? Bruce Schneier 认为 IDEA是
DES的最好替代,但问题是
IDEA太新,许多问题没解决。
8,9,2 RC6算法
□
+
○
+
f
○
+
f
□
+
□
+
□
+
□
+
□
+
A
B
C
D
S[1]
S[0]
l og
2
w l og
2
w
S[2 i ] S[2 i + 1]
S[2 r + 2] S[2 r + 3]
A
B
C
D
重
复
r
轮
图 8.9, 3 R C 6 - w / r/ b 加密流程,其中
)12()( ??? xxxf
? 解密过程:把 128比特明文放入 4个 32
比特的寄存器 A,B,C,D之中。
,For i=r to 1 do
,
即为明文。
]22[ ??? rSAA ]32[ ??? rSCC
),,,(),,,( CBADDCBA ?
)l o g),12(( 2 wDDR O Lu ???
)l o g),12(( 2 wBBR O Lt ???
utiSCR ORC ???? )],12[(
tuiSAR O RA ??? )],2[(
]0[SBB ?? ]1[SDD ??
),,,( DCBA
? 密钥扩展方案,
? 在密钥扩展中用到了两个常数
P32和 Q32,(十六进
制),(十六进制)。
首先,将种子密钥 K输入 c个 w比
特字的阵列,若不够,
用 0字节填充,其中 c为 8b/w的整
数部分。
1 5 1 6 3732 EBP ?
93 7 7 9932 BEQ ?
]1[,],0[ ?cLL ?
? RC6算法在加密过程中不需要查找表,加之
算法中的乘法运算也可以用平方代替,所以
该算法对内存的要求很低。这使得 RC6特别
适合在单片机上实现。比如 IC卡,它内部集
成的高速缓存,代价高昂,算法所需的内存
少,就能大大降低制作成本。
? RC6的简单性是非常吸引人的,尤其是便于
在有限的时间范围内进行安全性分析。就目
前的分析,对 RC6算法最有效的攻击是强力
攻击。当然由于分组长度和密钥长度都至少
是 128比特,穷举法并不可行。对 20轮的
RC6,用线性分析法至少需要 2155个明文,
用差分分析法至少需要 2238个明文。
小结
? 分组密码是现代密码学的重要分支之一,也
是许多其他密码组件的基础。分组密码可以
转化为流密码,也可被用来构造其他组件
? DES是分组密码的典型代表,也是第一个被
公布出来的标准算法
? 破密技术的快速演进已直接影响了 DES密码
系统的安全性,为此,美国和欧洲先后启动
AES和 NESSIE项目
? Feistel网络和 SP网络
? 如何设计效率高的线性变换层
? 密码抗差分和线性分析
? 评估阶段比设计阶段更费力,NESSIE的成
就在于发展了一套密码体制的评估方法。
8.9.1 IDEA算法
瑞士的 Xuejia Lai和 James Massey于 1990年
公布了 IDEA密码算法第一版,称为 PES
(Proposed Encryption Standard)。为抗击
差分密码攻击,他们增强了算法的强度,
称 IPES( Improved PES),并于 1992年改
名为 IDEA( International Data Encryption
Algorithm,国际数据加密算法。)
? IDEA是一个分组长度为 64位的
分组密码算法,密钥长度为 128
位(抗强力攻击能力比 DES强),
同一算法既可加密也可解密。
? IDEA的“混淆”和“扩散”设计
原则来自三种运算,它们易于软、
硬件实现(加密速度快),
? 异或运算( )
? 整数模 216加( + )
? 整数模 216+1乘( ) (IDEA的 S盒)
? 扩散由称为 MA结构的算法基本构件提供。
Z6
F2 F1
Z5
G1 G2
? 实现上的考虑
? 使用子分组,16bit的子分组;
? 使用简单操作(易于加法、移位等
操作实现)
? 加密解密过程类似;
? 规则的结构(便于 VLSI实现)。
IDEA加密的总体方案图
循环 2
循环 8
循环 1
输出变换
64位密文
64位明文
Z1
Z6
Z7
Z12
Z43
Z48
Z49
Z52
子密钥生成器
128位密钥
Z1 Z52
16
IDEA的密钥产生
56个 16bit的子密钥从 128bit的密钥
中生成
? 前 8个子密钥直接从密钥中取出;
? 对密钥进行 25bit的循环左移,接
下来的密钥就从中取出;
? 重复进行直到 52个子密钥都产生
出来。
IDEA的解密
? 加密解密实质相同,但使用不同的密钥;
? 解密密钥以如下方法从加密子密钥中导
出,
? 解密循环 I的头 4个子密钥从加密循环 10- I
的头 4个子密钥中导出;解密密钥第 1,4个
子密钥对应于 1,4加密子密钥的乘法逆元;
2,3对应 2,3的加法逆元;
? 对前 8个循环来说,循环 I的最后两个子密钥
等于加密循环 9- I的最后两个子密钥;
? IDEA是 PGP的一部分;
? IDEA能抗差分分析和相关分析;
? IDEA似乎没有 DES意义下的弱
密钥;
? Bruce Schneier 认为 IDEA是
DES的最好替代,但问题是
IDEA太新,许多问题没解决。
8,9,2 RC6算法
□
+
○
+
f
○
+
f
□
+
□
+
□
+
□
+
□
+
A
B
C
D
S[1]
S[0]
l og
2
w l og
2
w
S[2 i ] S[2 i + 1]
S[2 r + 2] S[2 r + 3]
A
B
C
D
重
复
r
轮
图 8.9, 3 R C 6 - w / r/ b 加密流程,其中
)12()( ??? xxxf
? 解密过程:把 128比特明文放入 4个 32
比特的寄存器 A,B,C,D之中。
,For i=r to 1 do
,
即为明文。
]22[ ??? rSAA ]32[ ??? rSCC
),,,(),,,( CBADDCBA ?
)l o g),12(( 2 wDDR O Lu ???
)l o g),12(( 2 wBBR O Lt ???
utiSCR ORC ???? )],12[(
tuiSAR O RA ??? )],2[(
]0[SBB ?? ]1[SDD ??
),,,( DCBA
? 密钥扩展方案,
? 在密钥扩展中用到了两个常数
P32和 Q32,(十六进
制),(十六进制)。
首先,将种子密钥 K输入 c个 w比
特字的阵列,若不够,
用 0字节填充,其中 c为 8b/w的整
数部分。
1 5 1 6 3732 EBP ?
93 7 7 9932 BEQ ?
]1[,],0[ ?cLL ?
? RC6算法在加密过程中不需要查找表,加之
算法中的乘法运算也可以用平方代替,所以
该算法对内存的要求很低。这使得 RC6特别
适合在单片机上实现。比如 IC卡,它内部集
成的高速缓存,代价高昂,算法所需的内存
少,就能大大降低制作成本。
? RC6的简单性是非常吸引人的,尤其是便于
在有限的时间范围内进行安全性分析。就目
前的分析,对 RC6算法最有效的攻击是强力
攻击。当然由于分组长度和密钥长度都至少
是 128比特,穷举法并不可行。对 20轮的
RC6,用线性分析法至少需要 2155个明文,
用差分分析法至少需要 2238个明文。
小结
? 分组密码是现代密码学的重要分支之一,也
是许多其他密码组件的基础。分组密码可以
转化为流密码,也可被用来构造其他组件
? DES是分组密码的典型代表,也是第一个被
公布出来的标准算法
? 破密技术的快速演进已直接影响了 DES密码
系统的安全性,为此,美国和欧洲先后启动
AES和 NESSIE项目
? Feistel网络和 SP网络
? 如何设计效率高的线性变换层
? 密码抗差分和线性分析
? 评估阶段比设计阶段更费力,NESSIE的成
就在于发展了一套密码体制的评估方法。