《国际数据加密算法》PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 链接起来后形成64比特的密文分组。
• 每轮需使用6个16比特的子密钥,输出变换需使用 4个16比特的子密钥,所以子密钥总数为52。
每轮开始时有一个变换,该变 换的输入是4个子段和4个子密 钥,变换中的运算是两个乘法 和两个加法,输出的4个子段经 过异或运算形成了两个16比特 的子段作为MA结构的输入。
第9步仅需4个子密钥,而前面8轮 中每轮需要6个子密钥。
子密钥的产生
56个16bit的子密钥从128bit的密钥中生成 前8个子密钥Z1,Z2,…,Z8直接从加密密钥中取 ,即Z1取前16比特(最高有效位),Z2取下面的16 比特,依次类推。 然后加密密钥循环左移25位,再取下面8个子密钥 Z9,Z10,…,Z16,取法与Z1,Z2,…,Z8的取法相 同。 这一过程重复下去,直到52子密钥都被产生为止 。
IDEA加密算法简介
• IDEA(International Data Encryption Algorithm) 是瑞士的James Massey,Xuejia Lai等人提出的加密 算法,在密码学中属于数据块加密算法(Block Ci pher)类。IDEA使用长度为128bit的密钥,数据块 大小为64bit。从理论上讲,IDEA属于“强”加密 算法,至今还没有出现对该算法的有效攻击算法 。
1. 密码强度 算法的强度主要是通过有效的混淆和扩散特性
而得以保证。
混淆是通过使用以下3种运算而获得,3种运算 都有两个16比特的输入和一个16比特的输出 :
① 逐比特异或。 ② 模216(即65536)整数加法,表示为,其输
入和输出作为16位无符号整数处理。 ③ 模216+1(即65537)整数乘法,表示为⊙,
• IDEA是一种由8个相似圈(Round)和一个 输出变换(Output Transformation)组成的迭 代算法。IDEA的每个圈都由三种函数:模(2 16+1)乘法、模216加法和按位XOR组成。
• 在加密之前,IDEA通过密钥扩展(Key Exp ansion)将128bit的密钥扩展为52Byte的加密 密钥EK(Encryption Key),然后由EK计算出解 密密钥DK(Decryption Key)。EK和DK分为8组 半密钥,每组长度为6Byte,前8组密钥用于8 圈加密,最后半组密钥(4Byte)用于输出变 换。IDEA的加密过程和解密过程是一样的,只 不过使用不同的密钥(加密时用EK,解密时 用DK)
• 密钥扩展的过程如下: • 1. 将128bit的密钥作为EK的前8byte; • 2. 将前8byte循环左移25bit,得到下一8byte,将这个过程循环7次; • 3. 在第7次循环时,取前4byte作为EK的最后4byte; • 4. 至此52byte的EK生成完毕。
IDEA设计原理
• 算法中明文和密文分组长度都是64比特,密钥 长128比特。其设计原理可从强度和实现两方面考 虑。
• 类似于DES,IDEA算法也是一种数据块加 密算法,它设计了一系列加密轮次,每轮加 密都使用从完整的加密密钥中生成的一个子 密钥。
• 与DES的不同处在于,它采用软件实现和 采用硬件实现同样快速。
• 由于IDEA是在美国之外提出并发展起来的 ,避开了美国法律上对加密技术的诸多限制 ,因此,有关IDEA算法和实现技术的书籍都可 以自由出版和交流,可极大地促进IDEA的发展 和完善。但由于该算法出现的时间不长,针 对它的攻击也还不多,还未经过较长时间的 考验。因此,尚不能判断出它的优势和缺陷 。
其输入、输出中除16位全为0作为216处理外, 其余都作为16位无符号整数处理。例如 0000000000000000⊙1000000000000000=100000 0000000001 这是因为216×215 mod (216+1)= (216+1)×215- 215= 215= 215+1 mod (216+1)
MA结构也有两个输入的子密钥, 输出是两个16比特的子段。
变换的4个输出子段和MA结构 的两个输出子段经过异或运算 产生这一轮的4个输出子段。
由X2产生的输出子段和由X3产 生的输出子段交换位置后形成 W12和W13,目的在于进一步 增加混淆效果,使得算法更易 抵抗差分密码分析。
输出变换的结构和每一轮开始的 变换结构一样,不同之处在于 输出变换的第2个和第3个输入 首先交换了位置,目的在于撤 销第8轮输出中两个子段的交换 。
钥的模216加法逆元。
② 第i(i=1,…,8)轮解密的后两个子密钥等于加密 过程第(9-i)轮的后两个子密钥
输出
• 左边为加密过程,由上至下,右边为解密过程,由下至上。将 每一轮进一步分为两步,第1步是变换,其余部分作为第2步, 称为子加密。
• 解密过程第1轮第1步的输 出等于加密过程最后一步 输入第2个子段和第3个子 段交换。
解密方法
• 加密解密实质相同,但使用不同的密钥; • 解密密钥以如下方法从加密子密钥中导出:
• 解密循环I的头4个子密钥从加密循环10-I的头4个子密钥中导出;解密密钥第1、4 个子密钥对应于1、4加密子密钥的乘法逆元;2、3对应2、3的加法逆元;
• 对前8个循环来说,循环I的最后两个子密钥等于加密循环9-I的最后两个子密钥
• 实现上的考虑
• 使用子分组:16bit的子分组; • 使用简单操作(易于加法、移位等操作实现) • 加密解密过程类似; • 规则的结构(便于VLSI实现)
• 加密过程
图表示由初始的128比特 密钥产生52个子密钥的子 密钥产生器
• 加密过程由连续的8轮迭代和1个输出变换组成.
• 每轮迭代以4个16比特的子段作为输入,输出也为 4个16比特的子段,
• 算法中扩散是由称为乘 加( MA)结构的基本 单元实现的。
• 该结构的输入是两个1 6比特的子段和两个16 比特的子密钥,输出也 为两个16比特的子段。
2. 实现
IDEA可方便地通过软件和硬件实现。
① 软件实现采用16比特子段处理,可通过使用容易 编程的加法、移位等运算实现算法的3种运算。
② 硬件由于加、解密相似,差别仅为使用密钥的方 式,因此可用同一器件实现。
J11 J12
J13 J14
小结
• IDEA是PGP的一部分; • IDEA能抗差分分析和相关分析; • IDEA似乎没有DES意义下的弱密钥; • Bruce Schneier 认为IDEA是DES的最好替代,但问
题是IDEA太新,许多问题没解决。
谢谢!
ຫໍສະໝຸດ Baidu
① 第i(i=1,…,9)轮解密的前4个子密钥由加密过程 第(10-i)轮的前4个子密钥得出:
其中第1和第4个解密子密钥取为相应的第1和 第4个加密子密钥的模216+1乘法逆元,第2和第3
个子密钥的取法为: 当轮数i=2,…,8时,取为
相应的第3个和第2个加密子密钥的模216加法逆元
。i=1和9时,取为相应的第2个和第3个加密子密
国际数据加密算法(I DEA)
目录
IDEA算法的产生 IDEA加密算法简介
IDEA设计原理 IDEA子密钥的产生
IDEA解密方法
IDEA算法的产生
• 国际数据加密算法(IDEA)是瑞士的著名 学者提出的。它在1990年正式公布并在以后 得到增强。这种算法不同于DES/3DES的结构 ,设计上采用后来成为Lai-Messay的结构,设 计思想基于“相异代数群上的混合运算”。 发展IDEA也是因为感到DES具有密钥太短等缺 点。IDEA的密钥为128位,这么长的密钥在今 后若干年内应该是安全的。
• 每轮需使用6个16比特的子密钥,输出变换需使用 4个16比特的子密钥,所以子密钥总数为52。
每轮开始时有一个变换,该变 换的输入是4个子段和4个子密 钥,变换中的运算是两个乘法 和两个加法,输出的4个子段经 过异或运算形成了两个16比特 的子段作为MA结构的输入。
第9步仅需4个子密钥,而前面8轮 中每轮需要6个子密钥。
子密钥的产生
56个16bit的子密钥从128bit的密钥中生成 前8个子密钥Z1,Z2,…,Z8直接从加密密钥中取 ,即Z1取前16比特(最高有效位),Z2取下面的16 比特,依次类推。 然后加密密钥循环左移25位,再取下面8个子密钥 Z9,Z10,…,Z16,取法与Z1,Z2,…,Z8的取法相 同。 这一过程重复下去,直到52子密钥都被产生为止 。
IDEA加密算法简介
• IDEA(International Data Encryption Algorithm) 是瑞士的James Massey,Xuejia Lai等人提出的加密 算法,在密码学中属于数据块加密算法(Block Ci pher)类。IDEA使用长度为128bit的密钥,数据块 大小为64bit。从理论上讲,IDEA属于“强”加密 算法,至今还没有出现对该算法的有效攻击算法 。
1. 密码强度 算法的强度主要是通过有效的混淆和扩散特性
而得以保证。
混淆是通过使用以下3种运算而获得,3种运算 都有两个16比特的输入和一个16比特的输出 :
① 逐比特异或。 ② 模216(即65536)整数加法,表示为,其输
入和输出作为16位无符号整数处理。 ③ 模216+1(即65537)整数乘法,表示为⊙,
• IDEA是一种由8个相似圈(Round)和一个 输出变换(Output Transformation)组成的迭 代算法。IDEA的每个圈都由三种函数:模(2 16+1)乘法、模216加法和按位XOR组成。
• 在加密之前,IDEA通过密钥扩展(Key Exp ansion)将128bit的密钥扩展为52Byte的加密 密钥EK(Encryption Key),然后由EK计算出解 密密钥DK(Decryption Key)。EK和DK分为8组 半密钥,每组长度为6Byte,前8组密钥用于8 圈加密,最后半组密钥(4Byte)用于输出变 换。IDEA的加密过程和解密过程是一样的,只 不过使用不同的密钥(加密时用EK,解密时 用DK)
• 密钥扩展的过程如下: • 1. 将128bit的密钥作为EK的前8byte; • 2. 将前8byte循环左移25bit,得到下一8byte,将这个过程循环7次; • 3. 在第7次循环时,取前4byte作为EK的最后4byte; • 4. 至此52byte的EK生成完毕。
IDEA设计原理
• 算法中明文和密文分组长度都是64比特,密钥 长128比特。其设计原理可从强度和实现两方面考 虑。
• 类似于DES,IDEA算法也是一种数据块加 密算法,它设计了一系列加密轮次,每轮加 密都使用从完整的加密密钥中生成的一个子 密钥。
• 与DES的不同处在于,它采用软件实现和 采用硬件实现同样快速。
• 由于IDEA是在美国之外提出并发展起来的 ,避开了美国法律上对加密技术的诸多限制 ,因此,有关IDEA算法和实现技术的书籍都可 以自由出版和交流,可极大地促进IDEA的发展 和完善。但由于该算法出现的时间不长,针 对它的攻击也还不多,还未经过较长时间的 考验。因此,尚不能判断出它的优势和缺陷 。
其输入、输出中除16位全为0作为216处理外, 其余都作为16位无符号整数处理。例如 0000000000000000⊙1000000000000000=100000 0000000001 这是因为216×215 mod (216+1)= (216+1)×215- 215= 215= 215+1 mod (216+1)
MA结构也有两个输入的子密钥, 输出是两个16比特的子段。
变换的4个输出子段和MA结构 的两个输出子段经过异或运算 产生这一轮的4个输出子段。
由X2产生的输出子段和由X3产 生的输出子段交换位置后形成 W12和W13,目的在于进一步 增加混淆效果,使得算法更易 抵抗差分密码分析。
输出变换的结构和每一轮开始的 变换结构一样,不同之处在于 输出变换的第2个和第3个输入 首先交换了位置,目的在于撤 销第8轮输出中两个子段的交换 。
钥的模216加法逆元。
② 第i(i=1,…,8)轮解密的后两个子密钥等于加密 过程第(9-i)轮的后两个子密钥
输出
• 左边为加密过程,由上至下,右边为解密过程,由下至上。将 每一轮进一步分为两步,第1步是变换,其余部分作为第2步, 称为子加密。
• 解密过程第1轮第1步的输 出等于加密过程最后一步 输入第2个子段和第3个子 段交换。
解密方法
• 加密解密实质相同,但使用不同的密钥; • 解密密钥以如下方法从加密子密钥中导出:
• 解密循环I的头4个子密钥从加密循环10-I的头4个子密钥中导出;解密密钥第1、4 个子密钥对应于1、4加密子密钥的乘法逆元;2、3对应2、3的加法逆元;
• 对前8个循环来说,循环I的最后两个子密钥等于加密循环9-I的最后两个子密钥
• 实现上的考虑
• 使用子分组:16bit的子分组; • 使用简单操作(易于加法、移位等操作实现) • 加密解密过程类似; • 规则的结构(便于VLSI实现)
• 加密过程
图表示由初始的128比特 密钥产生52个子密钥的子 密钥产生器
• 加密过程由连续的8轮迭代和1个输出变换组成.
• 每轮迭代以4个16比特的子段作为输入,输出也为 4个16比特的子段,
• 算法中扩散是由称为乘 加( MA)结构的基本 单元实现的。
• 该结构的输入是两个1 6比特的子段和两个16 比特的子密钥,输出也 为两个16比特的子段。
2. 实现
IDEA可方便地通过软件和硬件实现。
① 软件实现采用16比特子段处理,可通过使用容易 编程的加法、移位等运算实现算法的3种运算。
② 硬件由于加、解密相似,差别仅为使用密钥的方 式,因此可用同一器件实现。
J11 J12
J13 J14
小结
• IDEA是PGP的一部分; • IDEA能抗差分分析和相关分析; • IDEA似乎没有DES意义下的弱密钥; • Bruce Schneier 认为IDEA是DES的最好替代,但问
题是IDEA太新,许多问题没解决。
谢谢!
ຫໍສະໝຸດ Baidu
① 第i(i=1,…,9)轮解密的前4个子密钥由加密过程 第(10-i)轮的前4个子密钥得出:
其中第1和第4个解密子密钥取为相应的第1和 第4个加密子密钥的模216+1乘法逆元,第2和第3
个子密钥的取法为: 当轮数i=2,…,8时,取为
相应的第3个和第2个加密子密钥的模216加法逆元
。i=1和9时,取为相应的第2个和第3个加密子密
国际数据加密算法(I DEA)
目录
IDEA算法的产生 IDEA加密算法简介
IDEA设计原理 IDEA子密钥的产生
IDEA解密方法
IDEA算法的产生
• 国际数据加密算法(IDEA)是瑞士的著名 学者提出的。它在1990年正式公布并在以后 得到增强。这种算法不同于DES/3DES的结构 ,设计上采用后来成为Lai-Messay的结构,设 计思想基于“相异代数群上的混合运算”。 发展IDEA也是因为感到DES具有密钥太短等缺 点。IDEA的密钥为128位,这么长的密钥在今 后若干年内应该是安全的。