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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⑤密钥置换B
(1)作用:从Ci和Di(56位)中选择出一个48位的子 密Hale Waihona Puke BaiduKi
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
目录
11、数字签名(1) 12、数字签名(2) 13、身份认证 14、密钥管理 15、PKI技术 16、复习公钥密码 17、总复习
2020/2/1
一、分组密码概述
1、分组密码的思想: 将明文消息编码表示后的数字序列划分成长为
n的组,各组分别在密钥k控制下变换成等长的输 出数字序列。
在相同密钥下,分组密码对长为n的输入明文 组所实施的变换是等同的,所以只需研究对任一 组明文数字的变换规则。
2020/2/1
三、DES算法
5、初始置换IP
①功能:把64位明文打乱重排;左一半为L0(左32位), 右一半为R0(右32位)。
②初始置换(IP)矩阵
even odd
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
2020/2/1
三、DES算法
⑥子密钥产生举例:
例1:若采用的初始密钥:
k=01110000 01110011 01101110 01100111 01110011 01100001 01101101 00110100
试计算第一轮加密迭代所使用的子密钥k1。
2020/2/1
三、DES算法
⑥子密钥产生举例: 解:⑴密钥置换A
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(R0,k1)
L2=R1
R2=L1⊕f(R1,k2)
L15=R14
k16
+
f
R16=L15⊕f(R15,k16)
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)
IP-1 密文 C
R15=L14⊕f(R14,k15) L16=R15
三、DES算法
DES加密过程
①64位密钥经子密钥产生算法产生出16个子密钥: K1,K2,…K16,分别供第一次,第二次, …,第十 六次加密迭代使用。
②64位明文经初始置换IP,将数据打乱重排并分成 左右两半。左边为L0,右边为R0。
2020/2/1
二、Feistel分组密码
2020/2/1
Li Ri1
Ri Li1 F Ri1, Ki
二、Feistel分组密码
Feistel加解密过程
LE16 RE15
RE16 LE15 F RE15, K16
2020/2/1
LD1 RD0 LE16 RE15
01110000 01110011 01101110 01100111 01110011 01100001 01101101 00110100
2020/2/1
三、DES算法
PC置换之后 :C0: 00000000 01111111 11111111 1001 D0: 00011110 11001100 01000100 0011
(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
RD1 LD0 F RD0, K16 RE16 F RE15, K16 LE15 F RE15, K16 F RE15, K16
LE15
二、Feistel分组密码
Feistel分组密码的参数
Feistel密码的实现与以下参数和特性有关: ① 分组大小 分组越大则安全性越高,但加密速度就越慢。
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
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
分组密码设计中最为普遍使用的分组大小是64比特。 ② 密钥大小 密钥越长则安全性越高,但加密速度就越慢。
现在通常使用128比特的密钥长度。 ③ 轮数 单轮结构远不足以保证安全性,但多轮结构可提
供足够的安全性。典型地,轮数取为16。 ④ 子密钥产生算法 该算法的复杂性越大,则密码分析的
困难性就越大。 ⑤ 轮函数 轮函数的复杂性越大,密码分析的困难性也越
2020/2/1
一、分组密码概述
3、设计思想 扩散和混淆是由Shannon提出的设计密码系
统的两个基本方法,目的是抗击敌手对密码系统 的统计分析。 扩散:将明文的统计特性散布到密文中去,实 现方式是使得明文的每一位影响密文中多位的值, 等价于说密文中每一位均受明文中多位影响。 混淆是使密文和密钥之间的统计关系变得尽可 能复杂,以使敌手无法得到密钥。
明文 P1:010100101……11111 P2:1110100101……11111 P3:010111101……11111
分组加密
分组加密
分组加密
密文
C1:1101011……000111 C2:1010101010……01011 C3:110100101……10001
编码转换
※^%d*(>…@!~>kjI**&*$%#36^78h*%$@35789%%……$#@!*&&
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
分组长度一般64,……128. 加密算法:DES,AES,IDEA,RSA,ECC
2020/2/1
一、分组密码概述
2、密码算法的要求
对密码算法的要求: (1)分组长度足够大 (2)密钥量足够大 (3)由密钥确定置换的算法要足够复杂 (4)加密和解密运算简单,易于软件和硬件高速实现。 (5)数据扩展。 (6)差错传播尽可能地小。
x0=L0R0=IP(x) ③第一次加密迭代:
在子密钥K1的控制下,由加密函数f对R0加密: L0⊕f(R0,K1)
以此作为第二次加密迭代的R1,以R0作为第二次加 202密0/2/1迭代的L1。
三、DES算法
④第二次加密迭代至第十六次加密迭代分别用子密 钥K2, …,K16进行,其过程与第一次加密迭代 相同。
2020/2/1
三、DES算法
例2:假设有32位输入如下:
01010101,01010101,01010101,01010101
求经过选择运算E后的输出结果?
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
(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
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
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个输出,是一种非线性压缩 变
密码学基础
(第三讲) 数据加密标准(DES)
2020/2/1
目录
1、密码学的基本概念 2、古典密码 3、数据加密标准(DES) 4、高级数据加密标准(AES) 5、分组密码技术的应用 6、序列密码 7、习题课:复习对称密码 8、公开密钥密码(1) 9、公开密钥密码(2) 10、Hash函数
2020/2/1
分组密码算法从本质上来讲是定义了一种从 分组的明文到相应的密文的可逆变换。
2020/2/1
一、分组密码概述
分组密码的思想:将明文消息编码表示后的数字序列划分成长为n的组,各组分 别在密钥k控制下变换成等长的输出数字序列。。。。。。
编码转换
010100101……11111 1110100101……11111 010111101……11111…
2020/2/1
三、DES算法
4、子密钥的产生
①功能: 64位密钥经过置换选择1,循环左移、置换选 择2等变换,产生16个子密钥,分别供各次加密迭代 使用。
②子密钥产生过程:子密钥产生过程的输入,为使用者 持有的64位初始密钥。加密或解密时,使用者将初始 密钥输入至子密钥产生流程中。首先经过密钥置换A, 将初始密钥的8个奇偶较验位去掉。留下真正的56位 初始密钥。接着,分为两个28位分组C0及D0,再分 别经过一个循环左移函数,连结成56位数据,再按密 钥置换B做重排,便可输出K1(48位),依此类推。
大。
2020/2/1
三、DES算法
1、DES算法介绍 DES是Data Encryption Standard(数据加密标准)的
缩写。它是由IBM公司研制的一种加密算法,二十年来, 它一直活跃在国际保密通信的舞台上,扮演了十分重要的 角色。 DES是一个分组加密算法,它以64位为分组对数据加密。 同时DES也是一个对称算法:加密和解密用的是同一个算 法。它的密钥长度是56位(因为每个第8位都用作奇偶校 验),密钥可以是任意的56位的数。 DES由于密钥长度短,因此不够安全,而且它不易于硬件 实现,未来会被渐渐替代(AES),但其设计方法是没有 过时的。
相关文档
最新文档