当前位置:文档之家› 《应用密码学》 第三讲 数据加密标准(DES) 课件

《应用密码学》 第三讲 数据加密标准(DES) 课件


1 58 50 42 34 26 18 16 10 2 59 51 43 35 27 24 19 11 3 60 52 44 36 32 63 55 47 39 31 23 15 40 7 62 54 46 38 30 22 48
49 50 51 52 53 54 55 56
14 6 61 53 45 37 29 56
8×6
101010 101010 101010 101010 101010 101010 101010 101010
2020/2/1
三、DES算法
④选择替换S(S盒) (1)作用 :把48位中间结果做代替操作;并进行压缩。 (2)S盒描述:
●S 盒是DES唯一的非线性变换。 ●S盒是DES安全的关键。 ● 共有8个S盒。 ● 每个S盒有6个输入,4个输出,是一种非线性压缩 变
2020/2/1
子密钥产生过程示意图
三、DES算法
③密钥置换A
(1)作用:去掉密钥中的8个奇偶校验位;打乱重排。
(2)输入密钥矩阵与置换矩阵A
12345678
57 49 41 33 25 17 9 8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
2020/2/1
三、DES算法
2、 DES算法框图
2020/2/1
三、DES算法
明文 m
3、DES算法
L0
+
IP
k1
R0
f
DES
加 密 算 法 结 构
2020/2/1
L1=R0 +
k2 f
R1=L0⊕f(R(R1,k2)
L15=R14
k16
+
f
R16=L15⊕f(R15,k16)
大。
2020/2/1
三、DES算法
1、DES算法介绍 DES是Data Encryption Standard(数据加密标准)的
缩写。它是由IBM公司研制的一种加密算法,二十年来, 它一直活跃在国际保密通信的舞台上,扮演了十分重要的 角色。 DES是一个分组加密算法,它以64位为分组对数据加密。 同时DES也是一个对称算法:加密和解密用的是同一个算 法。它的密钥长度是56位(因为每个第8位都用作奇偶校 验),密钥可以是任意的56位的数。 DES由于密钥长度短,因此不够安全,而且它不易于硬件 实现,未来会被渐渐替代(AES),但其设计方法是没有 过时的。
分组密码算法从本质上来讲是定义了一种从 分组的明文到相应的密文的可逆变换。
2020/2/1
一、分组密码概述
分组密码的思想:将明文消息编码表示后的数字序列划分成长为n的组,各组分 别在密钥k控制下变换成等长的输出数字序列。。。。。。
编码转换
010100101……11111 1110100101……11111 010111101……11111…
IP-1 密文 C
R15=L14⊕f(R14,k15) L16=R15
三、DES算法
DES加密过程
①64位密钥经子密钥产生算法产生出16个子密钥: K1,K2,…K16,分别供第一次,第二次, …,第十 六次加密迭代使用。
②64位明文经初始置换IP,将数据打乱重排并分成 左右两半。左边为L0,右边为R0。
2020/2/1
三、DES算法
6、加密函数f
①功能:DES的核心;加密数据;数据处理宽度32位。
②函数f框图
R(32bit) E
K (48bit)
E(R) (48bit)
+
2020/2/1
B1 B2 B3 B4 B5 B6 B7 B8 (48bit)
S1 S2 S3 S4 S5 S6 S7 S8
C1 C2 C3 C4 C5 C6 C7 C8 P
2020/2/1
一、分组密码概述
3、设计思想 扩散和混淆是由Shannon提出的设计密码系
统的两个基本方法,目的是抗击敌手对密码系统 的统计分析。 扩散:将明文的统计特性散布到密文中去,实 现方式是使得明文的每一位影响密文中多位的值, 等价于说密文中每一位均受明文中多位影响。 混淆是使密文和密钥之间的统计关系变得尽可 能复杂,以使敌手无法得到密钥。
2020/2/1
三、DES算法
⑥子密钥产生举例:
例1:若采用的初始密钥:
k=01110000 01110011 01101110 01100111 01110011 01100001 01101101 00110100
试计算第一轮加密迭代所使用的子密钥k1。
2020/2/1
三、DES算法
⑥子密钥产生举例: 解:⑴密钥置换A
2020/2/1
三、DES算法
4、子密钥的产生
①功能: 64位密钥经过置换选择1,循环左移、置换选 择2等变换,产生16个子密钥,分别供各次加密迭代 使用。
②子密钥产生过程:子密钥产生过程的输入,为使用者 持有的64位初始密钥。加密或解密时,使用者将初始 密钥输入至子密钥产生流程中。首先经过密钥置换A, 将初始密钥的8个奇偶较验位去掉。留下真正的56位 初始密钥。接着,分为两个28位分组C0及D0,再分 别经过一个循环左移函数,连结成56位数据,再按密 钥置换B做重排,便可输出K1(48位),依此类推。
目录
11、数字签名(1) 12、数字签名(2) 13、身份认证 14、密钥管理 15、PKI技术 16、复习公钥密码 17、总复习
2020/2/1
一、分组密码概述
1、分组密码的思想: 将明文消息编码表示后的数字序列划分成长为
n的组,各组分别在密钥k控制下变换成等长的输 出数字序列。
在相同密钥下,分组密码对长为n的输入明文 组所实施的变换是等同的,所以只需研究对任一 组明文数字的变换规则。
57 58 59 60 61 62 63 64
21 13 5 28 20 12 4 64
2020/2/1
三、DES算法
④循环左移
(1)作用:对Ci,Di分别循环移位。 (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
xi-1=Li-1Ri-1, Li=Ri-1,Ri=Li-1 f(Ri-1,ki) i=1,2,…,16;
⑤第十六次加密迭代结束后,产生一个64位的数据 组,以其左边32位作为R16,以其右边32位作为 L16。
⑥L16与R16合并,再经过逆初始置换IP-1,将数据重 新排列,得到64位密文。
x16=L16R16,y=IP-1(x16)
明文 P1:010100101……11111 P2:1110100101……11111 P3:010111101……11111
分组加密
分组加密
分组加密
密文
C1:1101011……000111 C2:1010101010……01011 C3:110100101……10001
编码转换
※^%d*(>…@!~>kjI**&*$%#36^78h*%$@35789%%……$#@!*&&
密码学基础
(第三讲) 数据加密标准(DES)
2020/2/1
目录
1、密码学的基本概念 2、古典密码 3、数据加密标准(DES) 4、高级数据加密标准(AES) 5、分组密码技术的应用 6、序列密码 7、习题课:复习对称密码 8、公开密钥密码(1) 9、公开密钥密码(2) 10、Hash函数
2020/2/1
(32bit)
三、DES算法
③扩展变换E (1)作用 :把32位输入扩充为48位中间数据;重复输
入数据实现扩充。 (2)扩展变换矩阵
32 1 2 3 4 5 456789 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(2)循环左移 1位
C1 : 0000000 01111111 11111111 1001 0 D1 : 0011110 11001100 01000100 0011 0
(3)密钥置换B
K1 :1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 0 00101110 10110101 01100100 10000101
分组长度一般64,……128. 加密算法:DES,AES,IDEA,RSA,ECC
2020/2/1
一、分组密码概述
2、密码算法的要求
对密码算法的要求: (1)分组长度足够大 (2)密钥量足够大 (3)由密钥确定置换的算法要足够复杂 (4)加密和解密运算简单,易于软件和硬件高速实现。 (5)数据扩展。 (6)差错传播尽可能地小。
⑤密钥置换B
(1)作用:从Ci和Di(56位)中选择出一个48位的子 密钥Ki
2020/2/1
三、DES算法
⑤密钥置换B(密钥压缩置换)
(2)密钥置换矩阵B
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
RD1 LD0 F RD0, K16 RE16 F RE15, K16 LE15 F RE15, K16 F RE15, K16
LE15
相关主题