【考研—密码学】单钥密码体制

Pre:

  1. 明文: 需要秘密传送的信息
  2. 密文:明文经过密码变换后的信息
  3. 加密:把明文变成密文的过程
  4. 解密:把密文变成明文的过程
  5. 破译:从密文恢复成密文的过程
  6. 加密算法:对明文进行加密时采用的一组规则
  7. 解密算法: 对密文进行解密时采用的一组规则
  8. 密钥: 加密和解密时使用的(秘密的)关键性信息

一、密码系统的组成:

明文空间、密文空间、
密钥空间、加密算法、解密算法

数学符号 记 密码系统 为 集合 S = { P, C, K, E, D}
P = 明文空间
C = 密文空间
K = 密钥空间
E = 加密算法
D = 解密算法

当给定密钥 k ∈ K 时, 加密算法为 Ek, 解密算法为Dk
对应密码系统为 Sk = { P, C, k, Ek, Dk }
且符合逻辑关系: C= Ek §; P= Dk© = Dk( Ek§ )

二、密码学核心:

1. 密码的两个基本工作原理:混淆、扩散

置换 <=> 扩散: 扩散密钥的影响

代换 <=> 混淆: 防止统计分析攻击

2. 加密信息的安全性,不取决于算法的保密,而取决于密钥的保密

注:军用 不公开算法,商用 公开算法。

三、密码体制分类:单钥体制(对称密码)、双钥体制(非对称密码)

记 加密密钥为 Ke,解密密钥为 Kd
单钥体制: Ke = Kd
双钥体制: Ke ≠ Kd

单钥体制分类:流密码、分组密码

流密码 Stream Cipher : 数据逐位(比特/字符)加密,即数据流和密钥流 逐位(比特/字符) 进行 异或(XOR)运算
分组密码 Block Cipher : 对数据分组,分组后再进行处理

双钥体制分类:分组密码

【考研—密码学】单钥密码体制_第1张图片

三、密码分析 / 破译 (not oriented)

<1> 密码分析的条件与工具:

  1. 已知加密算法
  2. 语言特性
  3. 计算机
  4. 截取到明文、密文中已知或推测的数据项
  5. 数论工具、统计工具
  6. 技巧 和 运气(玄学)

<2> 密码分析类型

  1. 唯密文攻击: 已知加密算法和密文
  2. 已知明文攻击: 已知加密算法、待破译密文、明文-密文对
  3. 选择明文攻击: 已知加密算法、待破译密文、选择的明文信息和对应密文
  4. 选择密文攻击: 已知加密算法、待破译密文、猜测的密文和对应的明文
  5. 选择文本攻击:已知加密算法、待破译的密文、选择的明文信息与对应密文、猜测的密文与对应明文

<3> 无条件安全 的定义:
指无论提供多少密文,密文中信息都不能唯一地决定对应的明文,则密码体制无条件安全。
除了一次一密的方案外,没有无条件安全的其他算法

<4> 安全性的体现: 破译成本>信息本身价值;破译时间>信息的有效期
小常识1: 暴搜密钥 O ( 2^n ) ,n为密钥的长度(bit为单位),即二进制长度

四、古典密码

置换密码、单表代换密码、多表代换密码、多字母代换密码
详见:
B站公开课链接
个人笔记链接

  1. 置换密码:置换表格,列变换
  2. 单表代换:凯撒密码,后移k位
  3. 多表代换:加和取模法
  4. 多字母代换:5*5 密钥表格法

五、常见分组密钥体制

1> DES 数据加密标准

(Data Encryption Standard)

分组: 64位/组,56位密钥
流程: 初始置换IP运算 -> 迭代16轮 -> IP的逆置换

2> AES 数据加密标准

(Advanced Encryption Standard)

分组:128位/组,128/192/256位密钥
流程:对应迭代轮数10 / 12 / 14,每轮迭代包括字节代换、行移位、列混淆、轮密钥加

密钥长度可变,密钥越长越难破译;迭代轮数越多越难破译

安全性:

可抵抗穷举、差分、线性、Square、侧信道攻击

3> SM4

分组:128位/组,128位密钥
数据处理单位:8位字节,32位字
计算方法:模2加、循环移位运算
流程:32轮迭代。每轮迭代包括:置换运算(S盒)、线性变换、非线性变换、合成变换、轮函数;通过密钥扩展算法生成每轮迭代的轮密钥;
算法特点

对合运算(即 解密算法 与 加密算法 一致
密钥生成算法 与 加密算法结构 类似
⇒ 工程实现更加简单

六、分组密码的工作模式:

pre:

Input 输入:密码(加密算法)的输入
output 输出:密码(加密算法)的输出
明文、密文:对应分组下的 明文段、密文段
当前组的密钥:对当前分组进行加密所使用的密钥,二进制下加和取模过程(XOR)所使用的密钥段。
注:当前组的密钥 ≠ 整个加密算法的密钥

1. 电码本模式(ECB)Electronic Code Book

每一分组的加密方式相同

无法抵抗统计分析

加/解密模式图:

【考研—密码学】单钥密码体制_第2张图片
注: K为密钥,P[i] 表示第 i 段明文, C[i]表示第 i 段密文。

2. 密码分组链接模式(CBC)Cipher Block Chaining

本段参考博客:链接(写得比我看的那本书写得更通俗易懂)

当前组的密钥= function(上一组的密文)

先加和取模,再加密算法,得密文。

加密过程: 在所有分组前插入一个分组IV,每个分组的加密方式(密钥)具有递推关系,即跟上一组的密文有关。
分组随机性: 被插入的分组IV被称为初始化矢量,是一个随机的n比特分组(长度和内容均随机)。由此可以使得后续分组随机、密文翻译方式随机。
注:因为插入原因,对于m个明文分组,CBC模式将输出m+1个密文分组

加/解密模式图:

【考研—密码学】单钥密码体制_第3张图片

3. 密码反馈模式(CFB)Cipher FeedBack

本段参考博客:链接(写得比我看的那本书写得更通俗易懂)

当前组的密钥= function( 加密后的 (上一组的密文))

先加密算法,再加和取模,得密文
加密过程: 把上一组的 Input、和密文进行逻辑连接,作为当前组的 input输入,然后对input进行加密算法。
分组随机性: 在所有分组前插入随机分组IV(长度、内容均随机)。
注:因为插入原因,对于m个明文分组,CBC模式将输出m+1个密文分组

加/解密模式图:

【考研—密码学】单钥密码体制_第4张图片

4. 输出反馈模式(OFB)

本段参考博客:链接(写得比我看的那本书写得更通俗易懂)

当前组的密钥=function(加密后的(上一组的密钥))

先加密算法,再加和取模,得密文
加密过程: 把上一组的 Input、和密文进行逻辑连接,作为当前组的 input输入,然后对input进行加密算法。
分组随机性: 在所有分组前插入随机分组IV(长度、内容均随机)。
注:因为插入原因,对于m个明文分组,CBC模式将输出m+1个密文分组

加/解密模式图:

【考研—密码学】单钥密码体制_第5张图片
【考研—密码学】单钥密码体制_第6张图片

5. 计数器模式(CTR)

本段参考博客:链接(写得比我看的那本书写得更通俗易懂)

当前组的密钥 = function( 加密后的(计数器))

加密过程: 计数器CTR,每进行一段明文->密文加密过程,CTR++;将计数器输入到加密算法,得到的输出作为密钥。

加/解密模式图:

【考研—密码学】单钥密码体制_第7张图片

6. 优缺点分析

  1. 加密速度方面: 密钥链接关系⇒ 无连接关系的计数器可以同时进行,加密速度更快,其他的则必须顺次进行,加密速度慢
  2. 对解密的影响: 密文链接关系⇒ 单组明文/密文损坏,对于后续链接组将会造成影响,无链接关系则受影响面较小
  3. 对密文结果的影响: 密文链接关系 ⇒单组明文/密文被篡改,所有后续密文发生改变(该性质适用于Hash / MAC验证码)

7. 辅助记忆表格

【考研—密码学】单钥密码体制_第8张图片

七、流密码(序列密码)

1. 基本概念与分类

定义

Basic:加和取模
密钥更换频率要高: 改为研究密钥生成算法
但是一次一密,成本过高,所以想到序列密码方法:
密钥生成算法,根据种子密钥,生成密钥,使加密效果接近于 一次一密

同步序列密码

对双方同步性的严格要求,有弊有利
要求: 严格要求双方同步
弊端:一旦发生1bit的丢包现象,序列的后续密文均发生错误。
优势:抵抗“重播”和“插入删除“攻击,一旦有攻击者用这两种方法,立马可以被通讯双方检测到

自同步序列密码

借助 n级移位寄存器存储的密文反馈型 (OFB),流密码。
即 每个密文数字 影响后n个明文数字的加密结果。

非线性序列密码

使用 与 或 非 等 逻辑运算,实现非线性组合。
防止线性(代数)相关推导破解同步序列密码。

2. RC4算法

密钥长度可变,算法基于随机置换

基于 非线性数据表(计算机查表
256字节的S表,和两个指针 I 和 J,S[ 0 ~255],存储的数字为 0 ~ 255 随机顺序。

S表的随机化方法

先将S顺序填充,再创造R[0~255]表,用户将密钥写入R内,用R表将S表进行随机化。
【参考代码】

for(int i=0;i<=255;i++){//初始化序列
	s[i]=i;
	T[i]=key[i%keylen];
}j=0;
for(int i=0;i<=255;i++){//随机置换
	j=(j+s[i]+T[i]) % 256;
	swap(s[i],s[j]);
}

实现随机置换S表的效果。

3. ZUC 祖冲之算法

即密钥序列产生算法

输入:

128bit 密钥 和 128bit 初始向量

输出:

32bit 密钥字序列

过程:

三层逻辑,16级线性反馈移位寄存器+比特重组+非线性函数

八、多重加密与三重 DES【待填】

  1. 3DES: 密钥长度放大到3倍,168位密钥,暴力算法无法破解,但加密时间很长,音视频加密不适用。

九、伪随机数发生器和伪随机函数

pre / definition

理解1: 对于流密码体制而言,加密方式固定,所以可以作文章的地方便是 “密钥序列”。
理解2: 根据先前密码学的铺垫结论,“一次一密” 体制安全性最佳,而“随机数生成”是实现“一次一密”的关键步骤。
周期性:
序列a[i] 称为周期序列,即 存在 周期T 使得 a[i+T]=a[i]

1. 伪随机性的衡量

周期性:周期越长越安全

真随机序列应当为 非周期性的,所以周期越长越接近真随机,越安全。

不可预测性:越不可预测越安全

自相关性低; 线性复杂度 是不可预测性的重要指标。

2. 伪随机序列生成器的方法

LFSR(线性反馈移位寄存器)

n级线性反馈移位寄存器:
f(x) = Σ c[i] * x[i] ,c[i]为常系数

分组密码的序列化

即通过分组密码加密生成随机序列。

软件实现的快速加密算法

RC4等算法。

计算复杂性的方法

RSA生成器等。

基于混沌理论的方法

扩散、混淆等。

十、其他单钥密码体制

  1. IDEA 欧洲数据加密标准:64位/组,128位密钥,可对抗差分分析和线性分析
  2. RC5: RC系列为RSA公司设立的一系列密码,分组长度 密钥长度 均可变的 分组迭代密码算法

对称密钥体制的固有缺陷:密钥管理

密钥管理、分发、更换,成本高

你可能感兴趣的:(考研--密码学与网络安全,考研,密码学,web安全,网络安全,算法)