当前位置:文档之家› DES算法详解

DES算法详解


24
6. DES举例
➢再和k1作异或运算得到(分成8组)
101111 011001 100000 110011 101101 111110 101101 001110
➢通过S盒后输出位32比特,
01110110 00110100 00100110 10100001
➢S盒的输出又经过P置换得到
01000100 00100000 10011110 10011111
17
4.子密钥生成
➢压缩置换(也称为置换选择2):将56位密钥压缩成48位。 置换:例如,原第14位在输出时移到了第1位。 压缩:第9、18、22、25以及第35、38、43、54均被略 去。
14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32
18
4.子密钥生成
19
5. DES解密
在经过所有的替代、置换、异或和循环移动之后,获 得了这样一个非常有用的性质:加密和解密可使用相同 的算法。 DES解密结构与其加密结构是对称相似的,使得能用 相同的函数来加密或解密每个分组。
二者的唯一不同之处是密钥的次序相反。这就是说,如 果各轮的加密密钥分别是K1,K2,K3…,K16,那么解 密密钥就是K16,K15,K14……,K1。为各轮产生密 钥的算法也是循环的。密钥向右移动,每次移动位数为0, 1,2,2,2,2,2,2,1,2,2,2,2,2,2,1。
000000000000000......00000000 100000000000000......00000000
3次循环以后密文有21个比特不同;16 次循环后有34个比特不同。
如果用只差一比特的两个密钥加密 同样明文:
3次循环以后密文有14个比特不同,16 次循环后有35个比特不同
15
4.子密钥生成
20
5. DES解密
L R f R ,k
i 1
i
i
i
21
5. DES解密
IP
子密钥 子密钥 子密钥 子密钥
IPˉ
子密钥 子密钥 子密钥
22
6. DES举例
已知明文m=computer,密钥k=program,用ASCII码 表示为:
m=01100011 01101111 01101101 01110000 01110101 01110100 01100101 01110010
少要引起两位的输出改变;
13
3. 单轮加密详述
➢ P盒置换: P置换使得一个S盒的输出对下一轮多个S盒产生影
响,形成雪崩效应:明文或密钥的一点小的变动都引 起密文的较大变化
➢ 将P盒置换的结果与最初的64位分组的左半 部分异或,接着开始另一轮。
14
Байду номын сангаас
3. 单轮加密详述
雪崩效应 Avalanche Effect 明文或密钥的一比特的变化,引起密 文许多比特的改变。如果变化太小, 就可能找到一种方法减小有待搜索的 明文和密文空间的大小。 如果用同样密钥加密只差一比特的 两个明文:
➢已知主密钥为64位(其中每个字节的第8位作为奇偶校验位)。略去 奇偶校验位,DES的密钥由64位减至56位,对这56位密钥进行如下置 换(置换选择1) ➢ 经置换后的56位密钥,被分成左右两部分,每部分28位。
57 49 41 33 25 17 9 1 58 50 42 34 26 18 L 10 2 59 51 43 35 27 19 11 3 60 52 44 36
1. 概述
➢对称密码技术是最普及的数据加密标准和方法。其中 DES算法应用最为广泛。
DES算法的特点是什么?
密钥
密钥如何安全传递共享?
1
1. 概述
➢DES(Data Encryption Standard)算法
一种用56位密钥来加密64位数据的方法。
发明人:
IBM公司 W.Tuchman和C.Meyer. 基础:
保密为基础; 密钥可为任意的56位数,具有复杂性,使得破译的开销超过
可能获得的利益; 采用替代和置换的组合,共16轮; 只使用了标准的算术和逻辑运算,易于实现
3
2.DES的基本工作流程
DES的基本工作原理 用56位的密钥对64位长的数据块进行16轮加密处理由此得 到64位长的密文。
4
2.DES的基本工作流程
25
L0= 11111111 10111000 R0= 00000000 11111111
➢密钥k通过PC-1得到
01110110 01010111 00000110 10000011
C0= 11101100 10011001 00011011 D0= 10110100 01011000 10001110
密钥与扩展分组异或以后,将48位的结果进行代替运 算。替代由8个 代替盒(S盒)完成。48位块通过S盒压缩到32位块。 48位的输入被分为8个6位的分组,每一分组对应一个S盒代替操作: 每一个S盒都有6位输入,4位输出,且这8个S盒是不同的。
key
11
S盒操作
3. 单轮加密详述
• 每个S盒是一个4行、16列的表。盒中的每一项都是一个4bit的数。S 盒的6bit输入确定了其对应的输出在哪一行哪一列。 •假定将S盒的6bit的输入标记为b1、b2、b3、b4、b5、b6,则b1和 b6对应0到3,由此可选择表中的一行。b2到b5 对应0到15,由此可 选择表中的一列。
k=01110000 01110010 01101111 01100111 01110010 01100001 01101101
因为k只有56位,必须插入第8,16,24,32,40,48, 56,64位奇偶校验位,合成64位。而这8位对加密过程没有 影响。
23
6. DES举例
➢m经过IP置换后得到
63 55 47 39 31 23 15 7 62 54 46 38 30 22 R
14 6 61 53 45 37 29 21 13 5 28 20 12 4
16
4.子密钥生成
➢循环左移 每轮中,这两部分分别循环左移l位或2位。下表
给出了每轮移动的位数。
轮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 位 数1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
它产生了与密钥同长度的数据进行异或运算 它产生了更长的结果,使得在代替运算时能进行压缩
操作:
•先把32位分成8个4位的块, •第i块向左,向右各扩展一位,其中左扩展位与第i-1块 的最右一位 相同,右扩展位与第i+1块的最左一位相同。
9
3. 单轮加密详述
10
3. 单轮加密详述
➢压缩替代S(经过异或操作后)
b1b2b3b4b5b6 110011
行:b1b6 112 3 列:b2b3b4b5 10012
9
S6-盒子 3行9列 值:14=110012
3. 单轮加密详述
DES中其它算法都是线性 的,而S盒运算则是非线性 的,S盒不易于分析,它提 供了更好的安全性;所以, S盒是算法的关键所在。 提供了密码算法所必须的 混淆作用; 改变S盒的一个输入位至
1967年美国Horst Feistel提出的理论; 产生:
美国国家标准局1973年开始研究除国防部外的其它部门的计算机 系统的数据加密标准,于1973年5月15日和1974年8月27日先后 两次向公众发出了征求加密算法的公告,最终选定DES。
2
1. 概述
➢DES技术特点
分组加密算法:明文和密文为64位分组长度; 对称算法:加密和解密除密钥编排不同外,使用同一算法; DES的安全性不依赖于算法的保密,安全性仅以加密密钥的
再各自左移一位,通过PC-2得到48位
1011 0110
k1=00111101 10001111 11001101 00110111 00111111 00000110
➢R0(32位)经E作用扩展为48位,
10000000 00010111 11111110 10000000
11010100 00000110
5
2.DES的基本工作流程
➢置换和逆置换 IP 1
16轮加密开始先进行 初始置换
16轮加密结束后进行 逆置换
6
2.DES的基本工作流程
7
2.DES的基本工作流程
Single Round of DES Algorithm
8
3. 单轮加密详述
➢ 扩展置换E: 将输入的32位块扩展到48位的输出块 作用:
➢计算L1和R1
结果是: 00000000 11111111 00000110 10000011 10111011 10011000 11101000 11001000
➢迭代16次以后,得到密文:
01011000 10101000 01000001 10111000 01101001 11111110 10101110 00110011
相关主题