信息安全概论复习笔记 第五章 对称密码des算法

文章详细阐述了对称密钥密码模型中的分组密码和流密码的概念、区别与应用,重点介绍了DES分组密码的工作原理,包括其加密和解密过程、Feistel结构、子密钥生成以及安全性分析。DES因其设计精巧、实现方便而被广泛使用,但存在密钥长度较短的安全隐患,这促使了3DES的出现,以提供更强的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对称密钥密码模型
image.png
流密码与分组密码的区别
image.png
image.png
相同点: 都是对称密码模型
不同点:
①分组密码主要用于商业密码; 流密码主要用于军用密码;
②分组密码主要是进行替代和置换; 流密码主要是用于异或运算

分组密码
分组密码的加密方式是:首先将明文序列以固定长度进行分组,每组明文用相同的密钥和算法进行变换,得到一组密文。 分组密码是以块为单位,在密钥的控制下进行一系列线性和非线性变换而得到密文的。

分组密码的特点
分组密码的加/解密运算目的:输出块中的每一比特位是由输入密钥每一位比特位决定
加密算法中使用的方法:image.png

这个设计思想就是Shannon 1949年发现的隐藏信息的两种技术:混淆和扩散。(可以避免统计方法的密码分析)
混淆和扩散的定义:
混淆:就是改变数据块,使输出位与输入位之间没有明显的统计关系(替代技术实现);
扩散:就是通过密钥位转移到密文的其它位上(置换技术实现)。
分组密码的特点:良好的扩散性;对插入信息的敏感性,较强的适应性;加/解密速度慢;差错的扩散和传播。

替代与换位
替代
在输入一组数据时,输出另一组数据
image.png
输入数据与输出数据:
未必一样长(压缩,等长,扩展)
未必一一对应(一对一,多对一)
混淆:不同的输入,导致相同的(或者部分相同的)输出
扩散:输入数据中的1bit变化,将导致输出结果中的多bit变化
操作:算术/逻辑运算,非线性映射 由于计算机字长和计算能力的限制,替代所处理的数据宽度很有限,所以在处理长明文块时,需要多个替代模块。 各替代模块之间,没有关联
置换
交换各数据位的位置
image.png
通过对包含密钥的数据进行替代和置换,可以获得混杂的数据,可以当作密钥流,加密明文数据

Feistel结构
基于Shannon理论的大多数对称分组密码的基本结构
Feistel网络结构
一次加密 加密 解密
image.png
多次加密
image.png
image.png
F函数处理过程
image.png
DES
RC6
IDEA
AES
SMS4

DES的设计目的
①用于加密保护政府机构和商业部门的非机密的敏感数据。
②用于加密保护静态存储和传输信道中的数据。
③安全使用10 ~15年。
DES的整体特点
①分组密码:明文、密文和密钥的分组长度都是64位。
②面向二进制的密码算法:因而能够加解密任何形式的计算机数据。
③对合运算:因而加密和解密共用同一算法,使工程实现的工作量减半。
④综合运用了置换、代替、代数等多种密码技术。
⑤基本结构属于Feistel结构。
结论 用于其设计目标是安全的。 设计精巧、实现容易、使用方便,堪称典范。 为国际信息安全发挥了重要作用。
DES算法框架
密钥生成
16 Round Feistel
image.png
image.png
DES加密过程
1、64位密钥经子密钥产生算法产生出16个子密钥 :K1 ,K2 ,…,K16 ,分别供第一次,第二次 ,…,第十六次加密迭代使用。
2、64位明文经初始置换IP,将数据打乱重排并分成 左右两半。左边为L0 ,右边为R0 。
3、第一次加密迭代: 在子密钥K1的控制下,由加密函数 f 对R0加密:
L0⊕f(R0 ,K1 ) 以此作为第二次加密迭代的R1,以R0作为第二次加密迭代的L1。
4、第二次加密迭代至第十六次加密迭代分别用子密钥 K2 ,…,K16进行,其过程与第一次加密迭代相同。
5、第十六次加密迭代结束后,产生一个64位的数据 组。以其
左边32位作为R16
,以其右边32位作为L16
6、R 16与L16合并,再经过逆初始置换IP –1,将数据重 新排列,便得到64位密文。
7、DES加密过程的数学描述: Li = Ri-1 Ri =Li-1⊕f (Ri-1, Ki) i = 1,2,…,16
DES子密钥的产生
1、功能 64位密钥经过置换选择1、循环左移、置换选择2等变换,产生16个子密钥 K1,K2,… K16 分别供各次加密迭代使用。
image.png
3、置换选择1
①、作用 去掉密钥中的8个奇偶校验位。 打乱重排,形成C0 (左28位),D0 (右28位) 。
②、矩阵 C0 D0
image.png
③说明:矩阵中第一个数字57,表明原密钥中的第57位移到C0 中的第一位。
image.png
Key Setup
置换选择1
循环控制序列{bi}
置换选择2
4、循环移位
①、作用 对C0 ,D0 分别循环左移位。
②、循环移位表
image.png
5、置换选择2:
①、作用 从Ci 和 Di (56位)中选择出一个48位的子密钥Ki
②、矩阵 K i
image.png
③、说明:从Ci中取出24位,从Di中取出24位
形成48位的子密钥K i
image.pngimage.png
16 Round Feistel
初始置换 P
逆初始置换 P-1
加密函数F
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
加密过程
1、64位密钥经子密钥产生算法产生出16个子密钥:K1 ,K2 ,…,K16 ,分别供第一次,第二次,…,第十六次加密迭代使用。
2、64位明文经初始置换IP,将数据打乱重排并分成左右两半。左边为L0 ,右边为R0 。
3、第一次加密迭代: 在子密钥K1的控制下,由加密函数f对R0加密: L0⊕f(R0 ,K1 ) 以此作为第二次加密迭代的R1,以R0作为第二次加密迭代的L1。
4、第二次加密迭代至第十六次加密迭代分别用子密钥K2 ,…,K16进行,其过程与第一次加密迭代相同。
5、第十六次加密迭代结束后,产生一个64位的数据组。以其左边32位作为R16 ,以其右边32位作为L16 。
6、 L16与R16合并,再经过逆初始置换IP –1,将数据重新排列,便得到64位密文。
Li = Ri-1 Ri =Li-1⊕f (Ri-1,Ki) i =1,2,3,…16
image.png
初始置换和逆置换的保密意义
保密作用不大 由于没有密钥参与,在IP和IP-1公开的条件下,其保密意义不大

DES的解密过程
DES的运算是对和运算,解密和加密可共用同一个运算。
不同点:子密钥使用的顺序不同。** 第一次解密迭代使用子密钥K16**,第二次解密迭代使用子密钥K15,第十六次解密迭代使用子密钥K1
DES解密过程的数学描述:
image.png

加密函数 f
S盒的设计准则 1976年,NSA公布的DES的S盒设计准则:
P0:每个S盒的每一行都是整数0到15的一个置换;
P1:每个S盒的输出不是它的输入的线性或仿射函数;
P2:改变S盒的任一输入比特,其输出至少有两比特发生 改变;
P3:对任一S盒和任一输入x,S(x)和S(x⊕001100)至少有 两位发生变化(这里x是一个长度为6的比特串);
P4:对任何S盒和任一输入x,以及e,f∈{0,1},有 S(x)≠S(x⊕11ef00),其中x是一个长度为6的比特串;
P5:对任何S盒,当它的任一输入比特位保持不变,其它5 位改变时,输出数字中0和1的数目大致相等。
其它准则 美国NSA至今没有完全公布S盒的设计细节。研究表明,除了上述准则外,还有一些其它准则。
非线性度准则:S盒必须有足够的非线性度,否则不能抵 抗线性攻击;
差分均匀性准则: S盒的差分性应均匀,否则不能抵抗差 分攻击;
代数次数及项数分布准则 :S盒必须有足够的代线次数和 项数,否则不能抵抗插值攻击和高阶差分攻击;
结论:S盒的密码学特性确保了DES的安全!
置换运算P
把数据打乱重排。
在保密性方面,起扩散作用: 因为S盒是6位输入,4位输出,其非线性作用是局部的 因此,需要把S盒的混淆作用扩散开来
S盒与P置换的互相配合,共同确保DES的安全。

DES的安全性
攻击
穷举攻击。目前最有效的方法。
差分攻击。
线性攻击。
②安全弱点 密钥太短。 存在弱密钥。 存在互补对称性。 设C=DES(M,K),则有C=DES(M,K)。

des密钥多少位? 56
3重DES
3DES将取代DES成为新的标准。
3DES的优势:
3密钥的3DES:密钥长度是168位。
2密钥的3DES:密钥长度是112位。
安全:密钥足够长; 经过最充分的分析和实践检验。 兼容性好。
3DES的弱势: 速度慢。
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值