差分密码分析的复杂度-Read
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
DES的产生背景
美国国家标准局(NBS)1973 年公开征求计算机加密算 法标准,要求如下:
• • • • • • • • • 该算法必须提供较高的安全性; 该算法必须完全确定并且易于理解; 该算法的安全性不应依赖于算法本身,而是应该依赖 于密钥; 该算法必须对所有的用户有效; 该算法必须适用于各种应用; 该算法必须能够通过价格合理的电子器件得以实现; 该算法必须能够有效使用; 该算法必须能够得以验证; 该算法必须能够得以出口。
13
DES的加密过程
第一步:初始置换IP。 – 对于给定的明文m,通过初始置换IP获得 m0 ,并将 m0 分为两部分,前面32位记为 L0 ,后面32位记为 R0 , 即 m0 IP(m) L0 R0 。
14
DES的加密过程
第二步:乘积变换( 16轮)。 – 在每一轮中依据下列方法计算 Li Ri( 1 i 16 )(16 轮中的计算方法相同): Li Ri 1 ,Ri Li 1 f ( Ri 1 , K i ) – 其中,K i 为第i轮使用的子密钥,各 K i 均为 K 的一 个置换选择,所有 K i 构成密钥方案。函数 f ( X , X ) 中的变量 X 为16位字符串,X 为48位字符串, 函 数 f ( X , X ) 输出的结果为32位字符串。
7
分组密码的设计原则
可实现性角度: • 应该具有标准的组件结构 (子模块),以适应超大规 模集成电路的实现。 • 分组密码的运算能在子模块上通过简单的运算进行。
8
Feistel密码结构
9
数据加密标准 DES ( Data Encryption Standard )
明文和密文的长度均为64位,密钥长度为56位。
密钥计算方法如下(不考虑以上所述的8个校验比特): – 第一步:对于一个给定的初始密钥K,删去其中的8 个校验比特,通过固定的置换 PC 1对其余的56位进 行置换,并将置换所得的结果分为两部分,前面的 PC 1( K ) C0 D0 28位记为 D0 ,后面的28位记为 C0 ,即: Di LSi ( Di 1 ) , K i PC 2(Ci Di ) – 第二步:计算 Ci LSi (Ci1 ) , ( 1 i 16 ), LS i表示一个或两个位置的左循环移位。
17
DES的密钥计算
• DES在各轮中所用的密钥均为由初始密钥(即种子密 钥)导出的48位密钥。 • 初始密钥为64位,其中第8、16、24、32、40、48、56、 64位均为校验位。 • 如此设置校验位的目的是使每8个字节所含的字符“1” 个数为奇数,以便能够检测出每个字节中的错误。
18
DES的密钥计算
11
DES的生命期
• NBS最终采纳了 IBM 的 LUCIFER 方案,于 1975 年公 开发表。 • 1977 年正式颁布为数据加密标准(DES - Data Encryption Standard)。 • 1979 年,美国银行协会批准使用 DES。 • 1980 年,DES 成为美国标准化协会 (ANSI) 标准。 • 1984 年,ISO 开始在 DES 基础上制定数据加密的国际 标准。 • 美国国家安全局NSA每隔年对该算法进行评估 ,1994 年,决定1998年12月之后不再使用DES 。 • 现已经确定了选用Rijndael算法作为高级加密算法AES。
12
DES算法描述
• 算法设计中采用的基本变换和操作: – 置换(P) • 重新排列输入的比特位置。 – 交换(SW) • 将输入的左右两部分的比特进行互换。 – 循环移位 • 将输入中的比特进行循环移位,作为输出。 – 一个复杂变换( fK ) • 通常是一个多阶段的乘积变换; • 与密钥 Key 相关; • 必须是非线性变换; • 实现对密码分析的扰乱; • 是密码设计安全性的关键。
D(, k )
m
,它是
E (, k ) 的逆。
6
分组密码的设计原则
安全性角度: • “混乱原则”:为了避免密码分析者利用明文与密 文之间的依赖关系进行破译,密码的设计应该保证 这种依赖关系足够复杂。 • “扩散原则” :为避免密码分析者对密钥逐段破译, 密码的设计应该保证密钥的每位数字能够影响密文 中的多位数字 ;同时,为了避免避免密码分析者利 用明文的统计特性,密码的设计应该保证明文的每 位数字能够影响密文中的多位数字,从而隐藏明文 的统计特性。
第 5章 对称密钥密码体制—分组密码
1
分组密码的原理
• 密文中的每位数字不仅仅与某时刻输入的明文数字有 关,而是与该明文中一定组长的明文数字有关。
2
分组密码的基本模型
密钥 K
明文 x 密文 y
密钥 K
明文 x
加密
解密
3
分组密码的长度
明文为分组长度为m的序列,密文为分组长度为n的序列: • n>m,称其为有数据扩展的分组密码; • n<m,称其为有数据压缩的分组密码; • n=m,称其为无数据扩展与压缩的分组密码。 我们一般所说的分组密码为无数据扩展与压缩的分组密码。
1 2
1
2
1
2
wenku.baidu.com
15
DES的加密过程
第二步各轮中的加密过程
16
DES的加密过程
第三步:初始置换 IP 的逆置换 IP 1 。 1 – 应用初始置换 IP 的逆置换 IP 对 L16 R16 进行置换,得 1 c IP (L16 R16 )。 到密文 c ,即 – 在最后一轮计算之后,将 R16 L16 (而非左右部分交换 后的结果 L16 R16 )作为 IP 1 的输入,以便DES能够同 时被用于加密和解密。
4
分组密码的特点
• 主要优点: – 易于标准化; – 易于实现同步。 • 主要缺点: – 不善于隐藏明文的数据模式、对于重放、插入、删 除等攻击方式的抵御能力不强。
5
分组密码的数学表示
记明文空间和密文空间为 F2 (明文与密文分组的长度均为m),密 r 钥空间为 S k ( S k 是的 F2 子集,r为密钥长度): • 密钥k下的加密函数为 E (, k ) ,m表示待加密的信息,k为密钥, m m 则可将该映射记为 E : F2 Sk F2 ,这个映射应满足:k S k , m m E (, k ) 是 F2 到F2 的一个置换; • 密钥k下的解密函数记为