密码学第四章 分组密码 4.4 国际数据加密算法(IDEA)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
,
Z1( 2 )
,
Z
2(2,) 然后将上述128
比特密钥循环左移25位,并将由此产生的128比特密钥再
从 左 到 右 分 成 8 个 16 比 特 子 块 , 得 到 随 后 的 8 个 子 密 钥
,重Z3(复2) , 这Z4(2个) ,Z过5(2)程,Z6,(2) ,直Z1(到3) ,Z产2(3)生,Z53(32) ,个Z4(13)6比特子密钥为止。
… …
wk.baidu.com
k126 , k127 ,, k124 , k125
z41, z42 , z43, z44 , z45, z46 , z47 , z48
k23, k24 ,, k86; k87 ,, k21, k22
Z (1) 5
Z (1) 3
Z
(1) 4
Z (1)
6
第 一 圈
Z (9) 1
Z (9) 2
Y1
Y2
Z (9) 3
Z (9) 4
Y3
Y4
二、IDEA算法描述
其中Xi(i=1, 2, 3, 4)是16比特明文子分组; Yi(i=1, 2, 3, 4)是16比特密文子分组; Zi (r)(对r=1,…,8, i=1,2,3,4,5,6; 对r=9, i=1, 2, 3, 4 )是
a + b (mod216) = c 其中a = a15 a14…a0,b = b15 b14…b0,c = c15 c14…c0, ai , bi , ci{0, 1}, i = 0, 1, …, 15。
由于进位的原因,输出c的比特位ci包含有输入 a 和b 的比特位ai、bi、ai-1、bi-1、…、a0、b0的信息。
1991年对PES作了改进,并将改进后的算法 称 为 IPES ( Improved Proposed Encryption Standard,改进型推荐加密标准)。
IPES 于 1992 年 改 名 为 IDEA ( International Data Encryption Algorithm,国际数据加密算法) 。
其中 ab(div216 ) 表示ab 除以216所得的商。
设 那么就有 注意到 即证
ab 216 h l
ab 216 h l l h mod(216 1)
l ab(mod 216 )
h ab(d iv216 )
二、IDEA算法描述
(二)密钥生成算法
IDEA分组密码的子密钥生成算法比较容易。用于8
16比特圈子密钥; ⊕表示16比特的逐位异或运算; + 表示16比特整数的模216加法运算; 表示16比特整数的模216+1乘法运算,其中全零子块
用216代替。
三种基本运算:按位模2加,模216加法,模216+1乘 法。
二、IDEA算法描述
模216加法运算是IDEA算法中使用的非线性环节 (相对异或运算而言),记
圈迭代和输出变换的52个(8圈迭代每圈6个,输出变换4
个)16比特子密钥是由128比特初始密钥按下述方式生成
的:首先将128比特初始密钥从左到右分成8个16比特子
块,并将所得的 8 个子块直接作为加密算法中最前面的8
个子密钥
Z1(1)
,
Z
(1) 2
,
Z
(1) 3
,
Z
(1) 4
,
Z
(1) 5
,
Z
(1) 6
经过模216加法运算,实现了将输入的低位信息 向输出的高位的扩散。
二、IDEA算法描述
模216+1乘法的具体运算过程如下:
(1)
如果
a=0,则
ab
mod(216
1)
1 b 216 1 b
b 0,1 2 b 216 1
(2)
如果
b=0,则
ab
mod(216
1)
1 216
a 1
a
a 0,1 2 a 216 1
二、IDEA算法描述
基本参数
分组长度:64比特
密钥长度:128比特
迭代圈数:8圈(每圈6个子密钥块) 再附加一个输出变换(4个子密钥块)
IDEA的分组长度为64比特,密钥长度为128比特。其加、 脱密运算用的是同一个算法,二者的不同之处仅在于密钥调 度不同。其加、脱密运算是在128比特初始密钥作用下,对 64比特的输入数据分组进行操作,经8圈迭代后,再经过一 个输出变换,得到64比特的输出数据分组。整个运算过程全 部在16位子分组上进行,因此该算法对16位处理器尤其有效 。
证明 (1) b=0时,abmod(2161)= 216 216 mod(216+1)
=1=1-0,
b=1时,abmod(2161)= 216 mod(216+1)=0=1-1,
2 b 216 1 时,abmod(2161)
= 216 bmod(216+1)
= -bmod(216+1) = 216 +1-b
IDEA 加密总 体方案 流程图
64bit 明文X
x1 x2 x3 x4
第1圈
z1 z6
第2圈
z7 z12
第8圈
z43 z48
输出变换
y1 y2 y3
y4
z49 z52
64bit密文Y
二、IDEA算法描述
(一)加密算法
IDEA分组密码算法的加密过程如图所示。
X1
X2
X3
X4
Z
(1) 1
Z
(1) 2
密码学
第四章 分组密码
4.4 国际数据加密算法(IDEA)
4.4 国际数据加密算法(IDEA)
IDEA背景 IDEA算法描述 IDEA的设计原理
一、IDEA背景
Xuejia Lai和James Massey于1990年提出了 PES (Proposed Encryption Standard,推荐加密 标准)分组密码算法。
二、IDEA算法描述
(3) 若a、b为两个非零整数,则有
ab mod(216 1)
ab(mod 216 ) ab(div216 )
若ab(mod 216) ab(div216)
ab(mod 216 ) ab(div216 ) 216 1
若ab(mod 216) ab(div216)
二、IDEA算法描述
52个密钥子块的生成
k1, k2 ,, k127 , k128 k26 , k27 ,, k24 , k25 k51, k52 , , k49 , k50
z1, z2 , z3, z4, z5, z6, z7 , z8 z9 , z10 , z11, z12 , z13, z14 , z15, z16 z17 , z18, z19 , z20 , z21, z22 , z23, z24