现代密码学 第3讲DES
现代密码学-第3章分组密码习题与解答-20091206

第3章 分组密码习题及参考答案1. 设DES 算法中,明文M 和密钥K 分别为:M =0011 1000 1100 0100 1011 1000 0100 0011 1101 0101 0010 0011 1001 1110 0101 1110K =1010 1001 0011 0101 1010 1100 1001 1011 1001 1101 0011 1110 1101 0101 1100 0011求L 1和R 2。
解:初始变换IP :1001 1010 1101 0101 1101 0010 0011 1000 0101 0110 0010 0101 1100 0101 1110 1000则,0L =1001 1010 1101 0101 1101 0010 0011 10000R =0101 0110 0010 0101 1100 0101 1110 1000K 去校验位得:0C =1101 0111 1100 0000 0010 0111 01110D =1010 1000 0111 0110 0011 0101 0010循环左移一位:1C =1010 1111 1000 0000 0100 1110 11111D =0101 0000 1110 1100 0110 1010 0101经过置换选择得到:1K =0000 1111 0110 1000 1101 1000 1001 1010 1000 0111 0011 0001同样可以得到:2K =0101 0101 0110 0001 1101 1101 1011 0101 0101 0000 0110 11101L =0R =0101 0110 0010 0101 1100 0101 1110 1000经过轮函数F 后,0R 经过扩展置换E 后为:0010 1111 1100 0001 0000 1011 1110 0000 1011 1111 0000 0000和1K 异或后经S 盒替换:0100 1100 0011 1000 0100 1100 0000 1010经过P 盒置换后输出:0001 1100 0000 1110 1000 0000 0101 1100和0L 异或得1R :1000 0110 1101 1011 0101 0010 0110 01001R 经过扩展置换E 得48位输出:1000 1010 0100 0010 0000 1000 0010 0101 1101 0100 10101010同上过程可得2R :1101 0100 1100 0111 0000 1101 0001 0110即:1L =0101 0110 0010 0101 1100 0101 1110 10002R =1101 0100 1100 0111 0000 1101 0001 01102. 设DES 算法中S 4盒的输入为010101,求其输出。
DES加密算法原理

DES加密算法原理DES(Data Encryption Standard)是一种对称加密算法,它使用相同的密钥进行加密和解密。
DES算法的原理可以分为以下几个方面。
1.初始置换(IP):DES加密过程的第一步是对明文进行初始置换,通过将明文中的每个位按照事先规定的顺序重新排列,得到一个初始排列的明文块。
2. 轮函数(Feistel function):DES算法采用了Feistel网络结构。
在每一轮中,明文块被分成左右两部分,右半部分经过扩展运算(Expansion),将其扩展为一个48位的数据块。
然后将扩展后的数据块与轮密钥进行异或运算,得到一个48位的结果。
3. S-盒变换(S-Box substitution):接下来,经过48位结果的S-盒变换。
S-盒是DES算法的核心部分,它将6位输入映射为4位输出。
DES算法使用了8个不同的S-盒,每个S-盒都有一个4x16表格,用于将输入映射为输出。
4. P-盒置换(P-Box permutation):经过S-盒变换后,输出结果通过一个固定的P-盒进行置换运算。
P-盒操作将32位输出重新排列,得到一个新的32位结果。
5. 轮密钥生成(Key schedule):DES算法使用了16轮的加密迭代过程。
每一轮使用一个不同的48位轮密钥。
轮密钥生成过程根据初始密钥生成所有的轮密钥。
轮密钥生成包括密钥置换选择1、密钥循环移位、密钥置换选择2等步骤。
6. 最后交换(Inverse Initial Permutation):经过16轮迭代后,得到最终的加密结果。
在最后交换步骤中,将加密结果的左右两部分进行互换,得到最终的加密结果。
DES算法依靠这些步骤进行加密和解密过程。
加密过程中,明文块经过初始置换后,进入16轮的迭代过程,每一轮中使用不同的轮密钥对明文进行加密。
最后得到加密结果。
解密过程与加密过程相反,使用相同的轮密钥对密文进行解密,最终得到明文。
DES算法的安全性主要依赖于密钥的长度和轮数。
现代密码学(第三章)讲述

一、分组密码的基本概念
分组密码的优缺点
分组密码的加解密算法(E,D)简洁快速,所占用的 计算资源小,易于软件和硬件实现。一般来说,用 硬件实现时,流密码比分组密码更简单快速;用软 件实现时,分组密码比流密码更简单快速。 加解密算法(E,D)参数固定,比流密码更容易实现 标准化。 由于明文流被分段加密,因此容易实现同步,而且传 输错误不会向后扩散。 分组密码的安全性很难被证明,至多证明局部安全性。
2018/12/21 17
一、分组密码的基本概念
透明性和灵活性
透明性即要求算法是可证明安全的(虽然 这是很困难的)。这就要求算法尽可能 使用通用部件,避免黑盒。 灵活性即要求算法的实现可以适应多种计 算环境;明文分组长度可以伸缩;算法 可以移植和变形。
2018/12/21 18
一、分组密码的基本概念
要求:加解密算法(E,D)不存在弱明文和弱密钥。
2018/12/21 6
一、分组密码的基本概念
为了抵抗已知明文攻击(甚至选择明文攻 击),分组密码应该满足的性质
混淆性:所设计的密码应使得明文、密文、密钥之 间的依赖关系相当复杂,以至于这种依赖关系对 密码分析者来说是无法利用的。密码分析者利用 这种依赖关系的方法非常多,因此混淆性也是一 个极为繁杂的概念。
2018/12/21 3
一、分组密码的基本概念
分组密码所面对的主要威胁: 已知明文攻击
分组密码的密钥z被重复使用,即多次一密。 因此最主要的威胁就是已知明文攻击。 设攻击者Eve获得了一组明文/密文对(m,c)。 他试图在加密方程c=E(m, z) 或解密方程 m=D(c, z)中求出密钥z 。
2018/12/21 4
2018/12/21 26
DES加密算法详解

DES加密算法详解DES(Data Encryption Standard)是一种对称加密算法,是最早被广泛使用的加密算法之一、它于1977年被美国国家标准局(NIST)作为联邦信息处理标准(FIPS)发布,并在接下来的几十年内被广泛应用于数据加密领域。
下面将对DES加密算法进行详细解释。
DES算法使用一个56位的密钥来加密64位的数据块。
密钥经过一系列的处理后生成16个48位的子密钥,然后对数据块进行16轮的加密处理。
每轮加密又包括初始置换、扩展置换、与子密钥异或、S盒置换、P置换等步骤。
初始置换(IP)是DES算法的第一步,通过将输入的64位数据块按照特定的规则重新排列来改变其位的位置。
这样可以提高后续处理的随机性和复杂性。
扩展置换(E)是DES算法的第二步,将32位的数据块扩展成48位,并重新排列其位的位置。
这样可以增加密钥和数据的混淆度。
与子密钥异或(XOR)是DES算法的第三步,将扩展后的数据块与生成的子密钥进行异或操作。
这样可以将密钥的信息混合到数据中。
S盒置换是DES算法的核心部分,利用8个不同的4x16位置换表(S 盒)进行16次S盒置换。
S盒将6位输入映射为4位输出,通过混淆和代替的方式增加了加密的随机性。
P置换是DES算法的最后一步,在经过S盒置换后,对输出的32位数据块进行一次最终的置换。
这样可以使得密文在传输过程中更难以破解。
DES算法的解密过程与加密过程相似,只是在16轮中使用的子密钥的顺序是相反的。
解密过程中同样包括初始置换、扩展置换、与子密钥异或、S盒置换、P置换等步骤,最后经过逆初始置换得到明文。
虽然DES算法曾经是数据安全领域的标准算法,但是随着计算机计算能力的提高,DES算法的密钥长度过短(56位)容易被暴力破解,安全性逐渐变弱。
因此,在2001年,DES被高级加密标准(AES)取代,并成为新的数据加密标准。
总结来说,DES加密算法采用对称密钥体制,使用相同的密钥进行加密和解密。
现代密码学知识点整理:

第一章 基本概念1. 密钥体制组成部分:明文空间,密文空间,密钥空间,加密算法,解密算法 2、一个好密钥体制至少应满足的两个条件:(1)已知明文和加密密钥计算密文容易;在已知密文和解密密钥计算明文容易; (2)在不知解密密钥的情况下,不可能由密文c 推知明文 3、密码分析者攻击密码体制的主要方法: (1)穷举攻击 (解决方法:增大密钥量)(2)统计分析攻击(解决方法:使明文的统计特性与密文的统计特性不一样) (3)解密变换攻击(解决方法:选用足够复杂的加密算法) 4、四种常见攻击(1)唯密文攻击:仅知道一些密文(2)已知明文攻击:知道一些密文和相应的明文(3)选择明文攻击:密码分析者可以选择一些明文并得到相应的密文 (4)选择密文攻击:密码分析者可以选择一些密文,并得到相应的明文【注:①以上攻击都建立在已知算法的基础之上;②以上攻击器攻击强度依次增加;③密码体制的安全性取决于选用的密钥的安全性】第二章 古典密码(一)单表古典密码1、定义:明文字母对应的密文字母在密文中保持不变2、基本加密运算设q 是一个正整数,}1),gcd(|{};1,...,2,1,0{*=∈=-=q k Z k Z q Z q q q(1)加法密码 ①加密算法:κκ∈∈===k X m Z Z Y X q q ;,;对任意,密文为:q k m m E c k m od )()(+== ②密钥量:q (2)乘法密码 ①加密算法:κκ∈∈===k X m Z Z Y X q q ;,;*对任意,密文为:q km m E c k m od )(== ②解密算法:q c k c D m k mod )(1-==③密钥量:)(q ϕ (3)仿射密码 ①加密算法:κκ∈=∈∈∈===),(;},,|),{(;21*2121k k k X m Z k Z k k k Z Y X q q q 对任意;密文q m k k m E c k m od )()(21+==②解密算法:q k c k c D m k mod )()(112-==-③密钥量:)(q q ϕ (4)置换密码 ①加密算法:κσκ∈=∈==k X m Z Z Y X q q ;,;对任意上的全体置换的集合为,密文)()(m m E c k σ==②密钥量:!q③仿射密码是置换密码的特例 3.几种典型的单表古典密码体制 (1)Caeser 体制:密钥k=3 (2)标准字头密码体制: 4.单表古典密码的统计分析(二)多表古典密码1.定义:明文中不同位置的同一明文字母在密文中对应的密文字母不同2.基本加密运算 (1)简单加法密码 ①加密算法:κκ∈=∈====),...,(,),...,(,,11n n n nq n q n n k k k X m m m Z Z Y X 对任意设,密文:),...,()(11n n k k m k m m E c ++==②密钥量:nq (2)简单乘法密码 ①密钥量:n q )(ϕ 1.简单仿射密码①密钥量:n n q q )(ϕ2.简单置换密码 ①密钥量:nq )!( (3)换位密码 ①密钥量:!n(4)广义置换密码①密钥量:)!(nq(5)广义仿射密码 ①密钥量:n n r q3.几种典型的多表古典密码体制 (1)Playfair 体制: ①密钥为一个5X5的矩阵②加密步骤:a.在适当位置闯入一些特定字母,譬如q,使得明文字母串的长度为偶数,并且将明文字母串按两个字母一组进行分组,每组中的两个字母不同。
DES

3 DES算法安全性问题
3.1 DES算法密钥的长度 最初的罗斯福密码中密钥长度为128位,DES的加密单位仅有64位二进制,而且其中某些位还要用于奇偶校验或其他通讯开销,有效密钥只有56位,这对于数据传输来说太小,各次迭代中使用的密钥 K i 是递推产生的,这种相关性必然降低了密码体制的安全性。因此,人们会对56位密钥的安全性产生质疑,那么56位密钥是否足够, 已成为人们争论的焦点之一。 至今,最有效的破解DES算法的方法是穷举搜索法,那么56位长的密钥总共要测试 256 次,如果每lOOms可以测试1次,那么需要7.2× 1015 s,人约是228,493,000年。但是,仍有学者认为在可预见的将米川穷举法寻找正确密钥已趋于可行,所以若要安全保护10年以上的数据最好不用DES算法。 近年来有人提出用差分和线性攻击方案来破解DES算法,虽然,从理论上来说破译的性能高于穷举搜索法,但要有超高速计算机提供支持,以至于美国国家保密局和计算机科学技术学会组织各界专家研究DES密码体制的安全性问题后,得出乐观的结论:没有任何可以破译DES密码体制的系统分析法。若使用穷举法,则在1990年以前基本上不可能产生处每天能破译一个DES密钥的专用计算机。即使届时能制造出这样的专用机,它的破译成功率也只会在0.1到0.2之间,而且造价可能高达几千万美元。根据目前的计算技术和DES的分析情况,16一圈DES采刚16轮迭代仍然是安全的,但提醒使用者不要使用低于16一圈的DES,特别是10-圈以下的DES。尽管如此,我们仍然需要考虑对DES算法进行改进,使密钥长度增加些,以实现更好的保密功能。
DES的名词解释

DES的名词解释DES(Data Encryption Standard),即数据加密标准,是一种加密算法,用于保护敏感数据的安全性。
它是美国国家标准局(NBS)于1977年发布的,曾经是全球最广泛使用的对称密钥加密算法之一。
DES的诞生标志着密码学领域的一个重要里程碑,为数据保护提供了一个基准。
1. DES的历史和背景DES的产生与上世纪70年代计算机技术的迅猛发展以及日益增长的通信量密切相关。
当时,随着计算能力的提高,传统加密方式受到了严重挑战。
为了解决这个问题,美国政府决定采取行动,提出了一个国家级的加密标准。
于是,DES应运而生。
2. DES的原理和机制DES采用了对称密钥加密算法,即加密和解密使用相同的密钥。
其核心思想是将明文数据通过一系列复杂的计算转换为密文,以达到保护数据安全的目的。
DES 算法的关键在于轮函数和S盒,轮函数将输入数据进行置换、替换和混淆,而S盒则是一种非线性函数,使得DES的加密过程更加难以逆向破解。
3. DES的安全性和弱点DES在发布时被认为是非常安全的加密算法,但随着计算机技术的进步,DES 的密钥长度(56位)逐渐显得不够安全。
出于对更高安全级别的需求,DES的128位衍生版本的3DES问世,用于加强数据保护的能力。
此外,单次加密过程的速度较慢也是DES的劣势之一。
4. DES的对称密钥管理DES采用的对称密钥机制要求通信双方持有相同的密钥,因此密钥管理成为DES的一个重要问题。
密钥的生成、分发和存储需要得到妥善处理,以确保数据的安全。
5. DES的发展和应用DES的发布引发了密码学领域的革新,激发了更多的研究和新算法的诞生。
尽管DES已经在一些领域中被其他更安全的加密算法所取代,但它仍然是密码学的重要里程碑,对后续加密算法的发展产生了深远影响。
DES的基本思想也被应用于电子支付、虚拟货币等领域。
6. DES的影响和争议尽管DES在数据保护领域有重要作用,但它也引起了一些争议。
杨波,_《现代密码学(第2版)》第三章 3.1-3.4节

图3.1 分组密码框图
通常取m=n。 。 通常取 若m>n,则为有数据扩展的分组密码; ,则为有数据扩展的分组密码; 若m<n,则为有数据压缩的分组密码。 ,则为有数据压缩的分组密码。
设计的算法应满足下述要求: 设计的算法应满足下述要求: 分组长度n要足够大 要足够大, ① 分组长度 要足够大,使分组代换字母表中的元素 个数2 足够大,防止明文穷举攻击法奏效。 个数 n足够大,防止明文穷举攻击法奏效。 DES、IDEA、FEAL和LOKI等分组密码都采用 、 等分组密码都采用n=64, 、 和 等分组密码都采用 , 在生日攻击下用232组密文成功概率为1/2,同时要求 在生日攻击下用 组密文成功概率为 , 存贮, 232×64b=215MB存贮,故采用穷举攻击是不现实的。 存贮 故采用穷举攻击是不现实的。
• 如将分组 化分为子段,每段长为 、16或者 。 如将分组n化分为子段 每段长为8、 或者 化分为子段, 或者32。 • 软件实现时,应选用简单的运算,使作用于子段上 软件实现时,应选用简单的运算, 的密码运算易于以标准处理器的基本运算,如加、 的密码运算易于以标准处理器的基本运算,如加、 移位等实现, 乘、移位等实现,避免用以软件难于实现的逐比特 置换。 置换。 • 为了便于硬件实现,加密和解密过程之间的差别应 为了便于硬件实现, 仅在于由秘密密钥所生成的密钥表不同而已。这样, 由秘密密钥所生成的密钥表不同而已 仅在于由秘密密钥所生成的密钥表不同而已。这样, 加密和解密就可用同一器件实现。 加密和解密就可用同一器件实现。 • 设计的算法采用规则的模块结构,如多轮迭代等, 设计的算法采用规则的模块结构,如多轮迭代等, 以便于软件和VLSI快速实现。 快速实现。 以便于软件和 快速实现
数据扩展尽可能地小。一般无数据扩展, ⑤ 数据扩展尽可能地小。一般无数据扩展,在采用同 态置换和随机化加密技术时可引入数据扩展。 态置换和随机化加密技术时可引入数据扩展。 差错传播尽可能地小。 ⑥ 差错传播尽可能地小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1 3.2 3.3 3.4 3.5 3.6 分组密码概述 数据加密标准 差分密码分析 分组密码的运行模式 IDEA AES算法 算法——Rijndael 算法
1
2010-10-9
3.1 分组密码概述
2010-10-9
2
分组密码概述
分组密码是许多系统安全的一个重要组 成部分。 成部分。可用于构造
2010-10-9 7
分组密码算法应满足的要求
加密和解密运算简单: 加密和解密运算简单: 易于软件和硬件高速实现。 易于软件和硬件高速实现。 加密和解密可用同一器件实现。 加密和解密可用同一器件实现。 数据扩展: 数据扩展: 一般无数据扩展, 一般无数据扩展 , 在采用同态置换和随 机化加密技术时可引入数据扩展。 机化加密技术时可引入数据扩展。 差错传播尽可能地小。 差错传播尽可能地小。
扩散和混淆—抗统将明文及密钥的影响尽可能迅速地散布到较多 输出的密文中,使比特0 输出的密文中,使比特0、1均匀分布
混淆(confusion) 混淆(confusion)
使明文、 使明文、密钥和密文之间的关系复杂化 分组密码设计思想:扩散、混淆 分组密码设计思想:扩散、 置换和代换方法可实现扩散 扩散、 置换和代换方法可实现扩散、混淆
M34 M36 M38 M40 M33 M35 M37 M39
M26 M28 M30 M32 M25 M27 M29 M31
M18 M20 M22 M24 M17 M19 M21 M23
M10 M2 M12 M4 M14 M6 M16 M8 M9 M1 M11 M3 M13 M5 M15 M7
初始置换IP 初始置换
DES加密算法框图 加密算法框图
M1 M9 M17 M25 M33 M41 M49 M57
M2 M10 M18 M26 M34 M42 M50 M58
M3 M4 M11 M12 M19 M20 M27 M28 M35 M36 M43 M44 M51 M52 M59 M60
M5 M6 M7 M8 M13 M14 M15 M16 M21 M22 M23 M24 M29 M30 M31 M32 M37 M38 M39 M40 M45 M46 M47 M48 M53 M54 M55 M56 M61 M62 M63 M64
2010-10-9
11
3.1.3 Feistel密码结构
乘积密码: 乘积密码: 顺序地执行两个或多个基本密码系统 密码强度高于每个基本密码系统的强度。 密码强度高于每个基本密码系统的强度。 Feistel密码基本思想: 密码基本思想: 密码基本思想 利用乘积密码实现混淆和扩散
2010-10-9
12
Feistel网络参数 网络参数
分组大小。分组越大则安全性越高 越大则安全性越高, ① 分组大小。分组越大则安全性越高,但 加密速度就越慢。 加密速度就越慢。最为普遍使用的分组大 小是64比特 比特。 小是 比特。 密钥大小。密钥越长则安全性越高, ②密钥大小。密钥越长则安全性越高,但 加密速度就越慢。现在普遍认为64比特或 加密速度就越慢。现在普遍认为 比特或 更短的密钥长度是不安全的, 更短的密钥长度是不安全的,通常使用 128比特的密钥长度。 比特的密钥长度。 比特的密钥长度 轮数。单轮结构远不足以保证安全性, ③ 轮数。单轮结构远不足以保证安全性, 多轮结构可提供足够的安全性。典型地, 多轮结构可提供足够的安全性。典型地, 轮数取为16。 轮数取为 。 子密钥产生。算法的复杂性越大, ④ 子密钥产生。算法的复杂性越大,则密 码分析的困难性就越大。 码分析的困难性就越大。 轮函数。轮函数越复杂, ⑤ 轮函数。轮函数越复杂,密码分析的困 难性也越大。 难性也越大。
若n>m,则为有数据压缩的分组密码。 ,则为有数据压缩的分组密码。 若n<m,则为有数据扩展的分组密码。 ,则为有数据扩展的分组密码。
2010-10-9 6
分组密码算法应满足的要求
分组长度n要足够大: 分组长度 要足够大: 要足够大
防止明文穷举攻击法奏效。 防止明文穷举攻击法奏效。
密钥量要足够大: 密钥量要足够大:
2010-10-9
4
分组密码概述
明文序列 x1, x2,…, xi,… 加密函数E: 加密函数 Vn×K→Vm →
密钥k=(k0, k1,…, kt-1 ) 明文 x=(x0, x1,…, xn-1) 加密算法
密钥k=(k0, k1,…, kt-1 ) 明文 x=(x0, x1,…, xn-1) 解密算法
2010-10-9 17
3.2.1 DES描述 描述
明文分组长为64比特,密钥长为 比特 比特。 明文分组长为 比特,密钥长为56比特。 比特 一个初始置换IP,用于重排明文分组的64比特数 一个初始置换 ,用于重排明文分组的 比特数 据。 具有相同功能的16轮变换 轮变换, 具有相同功能的 轮变换,和Feistel密码结构完 密码结构完 全相同。 轮变换的输出左右两半交换次序。 全相同。第16轮变换的输出左右两半交换次序。 轮变换的输出左右两半交换次序 经过一个逆初始置换IP 产生64比特的密文 经过一个逆初始置换 -1产生 比特的密文
消息认证码(MAC)和杂凑函数 消息认证码(MAC)和杂凑函数 单钥数字签字体制的核心组成部分 拟随机数生成器
2010-10-9
3
应用中对于分组码的要求
安全性 运行速度 存储量(程序的长度、数据分组长度、高速缓 存储量(程序的长度、数据分组长度、 存大小) 存大小) 实现平台( 软件、芯片) 实现平台(硬、软件、芯片) 运行模式
Feistel网络中每轮结构都相同 网络中每轮结构都相同 代换substitution:每轮中右半数据 代换 : 被作用于轮函数F后 被作用于轮函数 后,再与左半数据 进行异或运算。 进行异或运算。 置换permutation :代换完成后, 代换完成后, 置换 再交换左、 再交换左、右两半数据 Feistel网络结构:Shannon提出的 网络结构: 网络结构 提出的 代换—置换网络 置换网络( 代换 置换网络(SPN)的特有形式。 )的特有形式。
Feistel加密结构 加密结构
第i轮迭代的输入为前一轮输 轮迭代的输入为前一轮输 出的函数: 出的函数: 其中Ki是第 轮用的子密钥, 是第i轮用的子密钥 其中 是第 轮用的子密钥, 由加密密钥K得到 得到。 由加密密钥 得到。
Li = Ri 1
Ri = Li 1 ⊕ F ( Ri 1 , K i )
2010-10-9 8
代换Substitution
代换:明文分组到密文分组的可逆变换 代换:明文分组到密文分组的可逆变换 明文和密文的分组长都为n比特 比特, 明文和密文的分组长都为 比特,则明文的每一个分组 都有2n个可能的取值;不同可逆变换的个数有2n!个 都有 个可能的取值;不同可逆变换的个数有 个 实际中常将n分成较小的段 如下: 分成较小的段, 实际中常将 分成较小的段,如下:
相 关 证 明
所以解密过程第1轮的输出等于加密过程第 所以解密过程第 轮的输出等于加密过程第16 轮的输出等于加密过程第 轮输入左右两半交换后的结果。 轮输入左右两半交换后的结果。 可证对应关系在16轮中均成立 可证对应关系在 轮中均成立
3.2 数据加密标准
数据加密标准( 数据加密标准(data encryption standard, DES)是迄今 ) 为止世界上最为广泛使用和流行的一种分组密码算法. 为止世界上最为广泛使用和流行的一种分组密码算法 DES由IBM研制 分组长度为 比特,密钥长度为 比特 研制,分组长度为 比特, 比特. 由 研制 分组长度为64比特 密钥长度为56比特 1998年5月美国 月美国EFF宣布,他们以一台价值 万美元的计算 宣布, 年 月美国 宣布 他们以一台价值20万美元的计算 机改装成的专用解密机, 小时破译了56 比特密钥的 比特密钥的DES。 机改装成的专用解密机,用56小时破译了 小时破译了 。 美国已决定1998年12月以后将不再使用 月以后将不再使用DES。 美国已决定 年 月以后将不再使用 。 美国国家标准和技术协会征集并进行几轮评估、筛选, 美国国家标准和技术协会征集并进行几轮评估、筛选,产生 了称之为AES(advanced encryption standard) 新加密标准。 新加密标准。 了称之为 尽管如此, 尽管如此,DES对于推动密码理论的发展和应用毕竟起了重 对于推动密码理论的发展和应用毕竟起了重 大作用,对于掌握分组密码的基本理论、 大作用,对于掌握分组密码的基本理论、设计思想和实际应用 仍然有着重要的参考价值。 仍然有着重要的参考价值。
58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
尽可能消除弱密钥并使所有密钥同等地好, 尽可能消除弱密钥并使所有密钥同等地好,以防止 密钥穷举攻击奏效。
由密钥确定置换的算法要足够复杂: 由密钥确定置换的算法要足够复杂:
充分实现明文与密钥的扩散和混淆, 充分实现明文与密钥的扩散和混淆,没有简单的关 系可循,要能抗击各种已知的攻击。 系可循,要能抗击各种已知的攻击。
初始置换前后
40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1 48 47 46 45 44 43 42 41
逆初始置换IP 逆初始置换 -1
16 15 14 13 12 11 10 9 56 55 54 53 52 51 50 49 24 23 22 21 20 19 18 17 64 63 62 61 60 59 58 57 32 31 30 29 28 27 26 25