6[1].数据加密标准DES
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19:04
9
电子商务安全
DES每轮结构
• 上一轮的右边Ri-1直接变换为下一轮的左 边Li • 上一轮的左边Li-1与加密函数F异或后作为 下一轮的右边Ri • 加密函数F则是上一轮右边Ri-1和子密钥Ki 的函数。即 • Li = Ri–1 • Ri = Li–1 ⊕ F(Ri–1, Ki)
19:04 10
19:04 18
电子商务安全
图3.11 DES的输入密码
19:04 19
电子商务安全
19:04
20
电子商务安全
• 56位密钥首先经过置换选择1(如图3.13所 示)将其位置打乱重排 • 将前28位作为C0(如图3.13的上面部分), 后28位D0(如图3.13的下面部分)
19:04
21
电子商务安全
19:04 17
电子商务安全
DES 子密钥产生
• DES加密过程共迭代16轮,每轮用一个 不同的48位子密钥 • 子密钥由算法的56位密钥产生 • DES算法的输入密钥长度是64位,但只 用了其中的56位 • 如图3.11所示, 图中无阴影部分,也就是 每行的第8位被忽略,主要用于奇偶校验, 也可以是随意设置 • 子密钥的产生过程如图3.12所示
19:04 28
电子商务安全
• 为防止中间相遇攻击,可以采用3次加密方 式,如图3.17所示 • 这是使用两个密钥的三重EDS,采用加密— 解密—加密(E-D-E)方案 • 注意的是, 加密与解密在安全性上来说是等 价的。这种加密方案穷举攻击代价是2112
K1
M E A K2 D B
K1
E C
加密
S1
S2
S3
S4
S5
S6
S7
S8
P F (32 bits)
19:04 13
电子商务安全
图3.8 扩展置换E
19:04
图3.9 置换函数P
14
电子商务安全
S盒
• • • • • 在加密函数计算过程中使用了8个S盒; S盒是DES保密性的关键所在; S盒有6 位输入,4 位输出; 48位数据经过8个S盒后输出32位数据 ; 每个S盒都由4行(表示为0,1,2,3)和16列 (0,1,…,15)组成,如图3.10所示
19:04
15
电子商务安全
19:04
16
电子商务安全
• 每行都是全部的16个长为4比特串的一个全排 列 • 每个比特串用它对应的二进制整数表示,如 1001用9表示。 • 对每个S盒,将6位输入的第一位和最后一位组 成一个二进制数,用于选择S盒中的一行。用 中间的4位选择S盒16列中的某一列,行列交叉 处的十进制数转换为二进制数可得到4位输出。 • 例如对于S1盒而言, 如果输入为011001,则行 是01(十进制1,即S盒的第2行),列1100(12, 即S盒的第13列),该处的值是9,转换为二进 制数为1001,即为该S盒的输出
电子商务安全
Li-1
Ri-1 Ki F
+ Li Ri
图3.6 DES每一轮结构
19:04
11
电子商务安全
• 加密函数F 本质上是Ri-1和子密钥Ki的异或 • 从图3.6可以看出加密函数F是32位,而Ri-1 是32位,子密钥Ki是48位,因此Ri-1和Ki不 能直接异或 • DES这样处理这个问题:
19:04
4
电子商务安全
DES加密过程
• DES同时使用了代换和置换两种技巧 • 它用56位密钥加密64位明文,最后输出64 位密文 • 整个过程分为两大部分组成:一是加密过 程,另一是子密钥产生过程 • 图3.4是DES加密算法简图
19:04
5
电子商务安全
19:04
6
电子商务安全
• 图3.4左半边的处理过程可以分三个部分: (1) 64位明文经过初始置换被重新排列,然后分 左右两半,每半各32位; (2) 左右两半经过16轮置换和代换迭代,即16次 实施相同的变换。然后再左右两半互换; (3) 互换后的左右两半合并,再经过逆初始置换 输出64位密文。 • 图3.4右半部则由56位密钥,产生16个48位子密 钥,分别供左半边的16轮迭代加密使用
19:04 27
电子商务安全
• 但是双重DES不安全 • 双重DES存在中间相遇攻击,使它的强度跟 一个56位DES强度差不多 • 如果C=EK2[EK1[M]],令X=EK1[M]=DK2[C]。若 已知(M, C),攻击方法如下: -- 先用256个可能的K1加密M,得到256个可能 的值,将这些值从小到大存入一个表中 --再对256个可能的K2解密C,每次做完解密, 将所得的值与表中的值比较,如果产生匹配, 则它们对应的密钥可能是K1和K2 --用一个新的明文密文对检测所得两个密钥, 如果两密钥产生正确的密文,则它们是正确 的密钥
K1 C D B K2 E 解密
19:04 29
K1 A D M
电子商务安全
• 目前还没有针对两个密钥的三重DES实际的 攻击方法 • 但是感觉它不大可靠,如果采用三把密钥的 三重DES则比较放心 • 三把密钥的三重DES的密钥长度是168位, 采用加密—解密—加密(E-D-E)方案 • 其加密过程为C=EK3[DK2 [EK1[M]]],解密过 程为M=DK1[EK2 [DK3[C]]] • 这种加密方式已经被一些网络应用采用,如 本书后面章节要讨论的PGP和S/MIME采用 了这种方案
19:04
7
电子商务安全
初始置换
• 初始置换(Initial Permutation, IP) 是数据加密的 第1步 • 将64位的明文按照图3.5置换。置换表中的数字 表示输入位在输出中的位置
19:04
8
电子商务安全
• 置换后将数据M分成两部分:左半部分L0和右半 部分R0各32位。划分方法原则是偶数位移到左半 部,奇数位移到右半部,即:
19:04 25
电子商务安全
• 1997年,克罗拉多州的程序员Verser在Inrernet上数 万名志愿者的协作下用96天的时间找到了密钥长度 为40位和48位的DES密钥 • 1998年电子边境基金会(EFF)使用一台价值25万 美元的计算机在56小时之内破译了56位的DES • 1999年,电子边境基金会(EFF)通过互联网上的 10万台计算机合作,仅用22小时15分破译了56位的 DES • 另外,DES存在弱密钥。如果一个密钥所产生的所 有子密钥都是一样的,则这个外部密钥就称为弱密 钥 • DES的密钥置换后分成两半,每一半各自独立移位。 如果每一半的所有位都是“0”或者“1”,那么在算 法的任意一轮所有的子密钥都是相同的
19:04
26
电子商务安全
三重DES
• DES由于安全问题,美国政府于1998年12月宣布DES 不再作为联邦加密标准 • 新的美国联邦加密标准是高级加密标准(ASE) • 在新的加密标准实施之前,为了使已有的DES算法投 资不浪费,NIST在1999年发布了一个新版本的DES标 准(FIPS PUB46-3),该标准指出DES仅能用于遗留 的系统,同时将三重DES(简写为3DES)取代DES成 为新的标准 • 3DES存在几个优点。首先它的密钥长度是168位,足 以抵抗穷举攻击。其次,3DES的底层加密算法与DES 的加密算法相同,该加密算法比任何其它加密算法受 到分析的时间要长得多,也没有发现有比穷举攻击更 有效的密码分析攻击方法
• 接下来经过16轮,产生16个子密钥 • 每一轮迭代中, Ci-1和Di-1循环左移1位或 者2位,如图3.14所示 • Ci-1和Di-1循环左移后变为Ci和Di,将Ci和 Di合在一起的56位,经过置换选择2(如 图3.15所示),从中挑出48位作为这一轮 的子密钥 • 再将Ci和Di循环左移后,使用置换选择2 产生下一轮的子密钥,如此继续,产生 所有16个子密钥。
先用扩展置换E(如图3.8所示)将Ri-1扩展为48位, 与48位子密钥异或,输出48位; 再使用8个S盒压缩成32位; 然后经置换函数P(如图3.9所示)输出32位的加 密函数F。
19:04 12
电子商务安全
加密函数F的计算过程
Ri-1 (32 bits)
E
48 bits + Ki (48 bits)
电子商务安全
数据加密标准DES
(Data Encryption Standard )
19:04
1
电子商务安全
内容提要:
• 数据加密标准(DES) • 3DES
19:04
2
电子商务安全
数据加密标准
• 美国国家标准局(NBS),即现在的国家标准和技术 研究所(NIST)于1973年5月向社会公开征集标准加 密算法 • 并公布了它的设计要求: -- 算法必须提供高度的安全性 --算法必须有详细的说明,并易于理解 --算法的安全性取决于密钥,不依赖于算法 --算法适用于所有用户 --算法适用于不同应用场合 --算法必须高效、经济 --算法必须能被证实有效
19:04
24
电子商务安全
DES的强度
• 从发布时起,DES就备受争议 • 争论的焦点主要集中在密钥的长度、迭代次数以 及S盒的设计等方面 • DES的安全性是依赖S盒,但是S盒设计详细标准至 今没有公开 • 有人怀疑S盒里隐藏了陷门(trapdoors)。然而到 目前为止也没有任何证据证明DES里确实存在陷 门。事实上,后来表明S盒是被设计成能够防止差 分密码分析 • DES是将Lucifer算法作为标准,Lucifer算法的密 钥长度128位,但DES将密钥长度改为56位, 这不 能抵抗穷尽密钥搜索攻击
19:04 22
电子商务安全
图3.14每轮左移次数的规定
图3.15置换选择2
19:04 23
电子商务安全
DES解密
• DES解密过程与加密过程本质上一致 • 加密和解密使用同一个算法,使用相同 的步骤和相同的密钥 • 主要不同点是将密文作为算法的输入, 但是逆序使用子密钥ki,即第1轮使用子 密钥k16,第2轮使用子密钥k15,最后一 轮使用子密钥k1
19:04 30
电子商务安全
19:04
31
19:04 3
Baidu Nhomakorabea子商务安全
• 1974年8月27日, NBS开始第二次征集,IBM提交 了算法LUCIFER,该算法由Feistel领导的团队研 究开发,采用64位分组以及128位密钥 • IBM用改版的Lucifer算法参加竞争,最后获胜, 成为数据加密标准 (Data Encryption Standard, DES) • 1976年11月23日,采纳为联邦标准,批准用于非 军事场合的各种政府机构。1977年1月15日,数据 加密标准,即FIPS PUB 46正式发布 • DES是分组密码的典型代表,也是第一个被公布 出来的加密标准算法。现代大多数对称分组密码 也是基于Feistel密码结构