网安笔记03 DES概述

DES是一种64位分组长度的对称加密算法,使用56位密钥。它包括初始和逆初始置换,16轮迭代,每轮包含替换和扩展操作。S-盒提供了非线性,增强了安全性。加密和解密过程类似,主要区别在于密钥的使用。DES的安全性受到弱密钥和半弱密钥的影响,但可以通过TripleDES等方式增强。文章还讨论了不同的工作模式,如ECB、CBC、CFB和OFB,以及它们在安全性、并行性和错误传播方面的特性。
摘要由CSDN通过智能技术生成

DES 概述

  • 分组加密算法 : 明文、密文64位分组长度
  • 对称算法 : 加密和解密密钥编排不同,但使用同一算法
  • 密钥长度:56位 —— 每个第8位为奇偶校验位
  • 密钥为任意的56位数,存在 弱密钥, 容易避开
  • 混乱与扩散的组合,每个组合先代替后替换,16轮
  • 只使用标准的算数和逻辑运算、易于时间

其他加密算法

Triple DES Triple DES
IDEA
RC5
RC6
AES
其他一些较实用的算法,如Blowfish,CAST,以及RC2等

加密过程

  1. 输入64bit明文数据
  2. 初始置换 I P IP IP
  3. 密钥控制下 16 轮迭代
  4. 交换左右32bit
  5. 初始逆置换 I P − 1 IP^{-1} IP1

L 0 R 0 ← I P ( 64 b i t 输入法 ) L_0R_0\leftarrow IP(64bit输入法) L0R0IP(64bit输入法)
L i ← R i − 1 L_i \leftarrow R_{i-1} LiRi1
L i ← L i ⊕ f ( R i − 1 , k 1 ) L_i\leftarrow L_i \oplus f(R_{i-1}, k_1) LiLif(Ri1,k1)
64 b i t 密文 ← I P − 1 ( R 16 L 16 ) 64bit密文 \leftarrow IP^{-1}(R_{16}L_{16}) 64bit密文IP1(R16L16)

i为迭代次数, ⊕ \oplus 为逐位mod2求和,f是加密函数

以此推出解密过程

( R 16 L 16 ) ← I P ( 64 b i t 密文 ) (R_{16}L_{16})\leftarrow IP(64bit密文) (R16L16)IP(64bit密文)
R i − 1 ← L i R_{i-1} \leftarrow L_i Ri1Li
L i ← R i − 1 ⊕ f ( L i − 1 , k 1 ) L_i\leftarrow R_{i-1} \oplus f(L_{i-1}, k_1) LiRi1f(Li1,k1)
64 b i t 明文 ← I P − 1 ( L 0 R 0 ) 64bit明文 \leftarrow IP^{-1}(L_0R_0) 64bit明文IP1(L0R0)

置换、拓展、代替

初始置换 I P IP IP和初始逆置换 I P − 1 IP^{-1} IP1
在这里插入图片描述

初始置换IP表示,原来在第58位(8行2列)的数据放到第1行第1位

在这里插入图片描述

拓展置换E合 —— 32 扩展到48位

把32位分为4列

  1. 原来的第一列 --> 第2列和第6列
  2. 原来的第4列 --> 新第5列和第一列,注意他们相对于 行往前挪了一位

在这里插入图片描述

压缩替代S-盒-48位压缩到32位

找出一个4行16列的盒子

48位变为6位二进制
a 1 a 2 a 3 a 4 a 5 a 6 a_1a_2a_3a_4a_5a_6 a1a2a3a4a5a6
拿出首位和最后一位组成
a 1 a 6 a_1a_6 a1a6作为,剩余为 a 2 a 3 a 4 a 5 a_2a_3a_4a_5 a2a3a4a5作为选择,得到对应的32位

在这里插入图片描述

安全性分析

  1. DES其他算法线性,S-盒 非线性
  2. S- 盒不易于分析,提供更好安全性
  3. S-盒是关键

如何构造S盒

  1. 密码算法的 唯一非线性部件,决定算法安全强度
  2. 密码算法必须的混乱作用
  3. S-和密码强度,S-盒分组设计
  4. 非线性度、差分均匀、严格雪崩、可逆、无陷门

置换p-盒的构造

提供雪崩效应
明文、密钥变动引起密文变化

密钥

在这里插入图片描述

密钥置换算法准则

  1. 子密钥统计独立性、灵活性
  2. 简单
  3. 速度
  4. 但没有简单关系(给定两个有某种关系的种子密钥,可以预测他们轮子密钥的关系)
  5. 种子密钥对所有子密钥影响一致
  6. 子密钥获取其他子密钥比特比较困难
  7. 无弱密钥

工作模式

  1. 电子密码本 ECB (electronic codebook mode) ECB (electronic codebook mode)
  2. 密码分组链接 CBC (cipher block chaining)
  3. 密码反馈 CFB (cipher feedback)
  4. 输出反馈 OFB (output feedback)

ECB

每段明文单独加密

C i = E K ( P i ) P i = D K ( C i ) C_i = E_K (P_i)\quad P_i = D_K (C_i) Ci=EK(Pi)Pi=DK(Ci)

  1. 简单有效
  2. 可并行
  3. 不能隐藏明文的 模式信息
  4. 相同明文生成相同密文,同样信息多次出现造成泄漏
  5. 对明文可主动攻击 —— 替换、重拍、删除、重放
  6. 误差传递 : 密文坏-> 对应明文损坏
  7. 传输短信息

CBC

C i = E K ( P i ⊕ C i − 1 ) P i = D K ( C i ) ⊕ C i − 1 C_i = E_K (P_i\oplus C_{i-1})\quad P_i = D_K (C_i)\oplus C_{i-1} Ci=EK(PiCi1)Pi=DK(Ci)Ci1

在这里插入图片描述

  1. 没有已知的并行实现算法
  2. 可隐藏模式信息
  • 共同初始化向量 I V IV IV
  • 相同明文生成不同密文
  • 初始化向量IV可以用来改变第一块
  1. 难主动攻击明文
  • 信息块不容易被替换、重排、删除、重传
  • 误差传递: 密文坏 -> 两块文件坏
  1. 安全性好于ECB
  2. 适合于传输长度大于64位的报文,还可以进行用户鉴别 – SSL 或 IPSec

CFB

分组密码 ⇒ 流密码 分组密码\Rightarrow 流密码 分组密码流密码

假定

  1. S i S_i Si是移位寄存器,传输jbit
  2. 加密 C i = P i ⊕ E k ( S i ) 的高 j 位 C_i = P_i\oplus E_k(S_i)的高j位 Ci=PiEk(Si)的高j
    S i + 1 = ( S i < < j ) ∣ C i S_{i+1}=(S_i << j) | C_i Si+1=(Si<<j)Ci
  3. 解密 P i = C i ⊕ E k ( S i ) 的高 j 位 P_i = C_i\oplus E_k(S_i)的高j位 Pi=CiEk(Si)的高j
    S i + 1 = ( S i < < j ) ∣ C i S_{i+1}=(S_i << j) | C_i Si+1=(Si<<j)Ci

在这里插入图片描述
在这里插入图片描述

特点

  1. 分组密码 ⇒ 流密码 分组密码\Rightarrow 流密码 分组密码流密码
  2. 无并行实现算法
  3. 隐藏明文
  4. 共同的移位寄存器初始值 I V IV IV —— 不同信息,IV唯一
  5. 误差传递: 一个单元损坏影响多个单元

OFB

分组密码 ⇒ 流密码 分组密码\Rightarrow 流密码 分组密码流密码

假定与CFB一样
但是加密如下
C i = P i ⊕ E k ( S i ) 的高 j 位 C_i = P_i\oplus E_k(S_i)的高j位 Ci=PiEk(Si)的高j
S i + 1 = ( S i < < j ) ∣ ( E k ( S i ) 的高 j 位 ) S_{i+1}=(S_i << j) | (E_k(S_i)的高j位) Si+1=(Si<<j)(Ek(Si)的高j)
(S的变化有别于CFB)

解密
P i = C i ⊕ E k ( S i ) 的高 j 位 P_i = C_i\oplus E_k(S_i)的高j位 Pi=CiEk(Si)的高j
S i + 1 = ( S i < < j ) ∣ ( E k ( S i ) 的高 j 位 ) S_{i+1}=(S_i << j) | (E_k(S_i)的高j位) Si+1=(Si<<j)(Ek(Si)的高j)

在这里插入图片描述
在这里插入图片描述

特点
前四点和CFB一样

  1. 分组密码 ⇒ 流密码 分组密码\Rightarrow 流密码 分组密码流密码
  2. 无并行实现算法
  3. 隐藏明文
  4. 共同的移位寄存器初始值 I V IV IV —— 不同信息,IV唯一

第五点开始

  1. 误差传递:一个单元损坏只影响对应单元
  2. 对明文的主动攻击是可能的 – 被替换、重排、删除、重放
  3. 安全性不如CFB

多重DES

安全性

  1. F函数(S-Box)设计原理未知
  2. 密钥长度的争论
  3. DES的破译
  4. 弱密钥与半弱密钥

长度问题
2 56 ≈ 1 0 17 2^{56} \approx 10^{17} 2561017

现在可以一天内破解密钥

弱密钥、半弱密钥

弱密钥:
E K ⋅ E K = I E_K \cdot E_K= I EKEK=I
DES存在4个弱密钥
p = E k ( E k ( P ) ) p = E_k(E_k(P)) p=Ek(Ek(P))

半弱密钥:
E K 1 = E K 2 E_{K1} = E_{K2} EK1=EK2
至少有12个半弱密钥
C = E k 1 ( P ) = E k 2 ( P ) C = Ek_1(P) = E_{k2}(P) C=Ek1(P)=Ek2(P)

使用常规加密进行保密通信

针对 易受攻击的位置
有 链路加密和端到端加密

链路层加密

针对某一次通信链路

消息在被传输之前进行加密,在每一个节点对接收到的消息进行解密,然后先使用下 个链路的密钥对消 一个链路的密钥对消
进行加密,再进行传输

优点

  • 中间传输节点消息均被解密后重新进行加密
  • 链路上数据以密文形式出现
  • 掩盖消息源点终点
  • 填充技术的使用 -》 消息频率、长度被掩盖,防止通信业务的分析

缺点

  • 要对链路两端加密设备进行同步, 给网络性能、可管理性带来副作用
  • 网络节点中,链路加密只在通信链路上提供安全性,节点上是明文 —— 需要节点的物理安全
  • 对称加密系统,要建立专用网络措施,但网络节点分布宽阔,且密钥连续分配较难

节点加密

类似链路加密。 中间节点解密再加密

差异:不允许消息在节点以明文方式存在,解密后用另一个密钥加密 —— 在节点的另一个安全模块进行

安全性: 报头和路由信息以明文传输,对攻击者分析通信业务无能为力

端到端加密

从源点到终点的传输过程中始终以密文形式存在

又叫脱线加密 包加密,到底终点前不解密。节点损坏不会导致消息泄露

优点

  • 便宜,更可靠,容易设计、实现、维护
  • 避免同步问题 ——报文包是独立加密的,报文包传输错误不影响后续
  • 端到端加密更自然,不影响网络其他用户

缺点

  1. 不允许对目的地址加密
  2. 不掩盖消息源、目的地,对攻击者分析通信业务无能为力
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值