密码学回顾

本来不想看这个的,但是工作需要,要考证书,所以不得不看
基础概念
术语&基础知识
- 1976年,提出公钥密码学系统的学者是Diffie & Hellman
- 发送者(Sender)是信息的发起方
- 接收者(Receiver)或信宿是信息的接收方
- 信道(Channel)是信息传输的媒介
- 原始信息通常称为明文(Plaintext),加密后的信息称为密文(Ciphertext)
- 密码学理论研究分支
- 密码编码学
- 密码分析学
- 我国商密纳入国际标准组织ISO/IEC
- SM2数字签名算法
- SM3密码杂凑算法
- SM4分组密码算法
- 祖冲之密码算法
- 对称加密算法
- DES算法
- SM4算法
- AES算法
- 非对称加密算法
- 算法
- Diffie-Hellman算法
- RSA算法
- 目前公开密钥密码【非对称加密】主要用来进行数字签名,或用于保护传统密码的密钥,而不主要用于数据加密,主要因为公钥密码的效率比较低
- 算法
- 同步序列密码
- 概念:密钥序列的产生独立于明文和密文消息
- 特点:密钥流的生成仅依赖于初始密钥和内部状态,与明文/密文无关。
- 安全性取决于密钥流
- 优势:无错误传播
- 示例:RC4、AES-CTR模式、ChaCha20
- 其他
- 非同步序列密码:密钥流受明文或密文影响
- 自同步序列密码:密钥流由前若干位密文推导(如CFB模式),属于非同步的一种。
- 杂凑函数,又称哈希函数或散列函数,是一种将任意长度的输入数据(如消息、文件)转换为固定长度的输出(称为哈希值、摘要或指纹)的数学函数。核心特点是不可逆性和唯一性
- 核心特性
- 确定性:相同的输入永远生成相同的哈希值。
- 不可逆性(单向性):从哈希值无法还原原始输入(除非暴力穷举)
- 抗碰撞性:极难找到两个不同的输入产生相同的哈希值(即避免哈希碰撞)
- 输出长度位n,则抗碰撞复杂度位O(2^{n/2})
- 雪崩效应:输入数据的微小变化(如1比特)会导致哈希值完全不同
- 常见hash函数
- MD5:128位
- SHA-1:160位
- SHA-256:256位
- SHA-3:可变长度
- 核心特性
- 密码体制要素
- 明文
- 密文
- 加密算法
- 解密算法
- 密钥
- 密钥空间
- 初始向量
- 工作模式
- 认证与完整性机制
- 随机数生成器
- 序列密码(流密码)的安全强度
- 取决于 密钥流生成器的设计:序列密码的核心是通过密钥流生成器产生伪随机密钥流,与明文逐比特(或逐字节)异或加密
- 次要因素初始向量长度:初始向量(IV)用于避免重复密钥流,但其安全性建立在密钥流生成器本身的设计上
- 安全性基础原理
- 多变量公钥密码:求解有限域上随机生成的多变量非线性多项式方程组的困难性,NP-Hard。
- RSA:大整数分解
- 编码密码(如McEliece):任意线性码的译码问题
- 格密码:最小整数解问题
- 密码协议攻击方法
- 重放攻击
- 并行会话攻击
- 中间人攻击
- 预言者会话攻击
Kerckhoffs
Kerckhoffs原则:密码系统的安全性主要依赖密钥
密码分析
- 根据密码分析者所掌握的分析资料的不同
- 唯密文攻击【公开的网络中能获得的最现实的能力】
- 已知明文攻击
- 选择明文攻击
- 选择密文攻击
密码算法
对称密码
- 特点:加解密密钥相同,效率高
分组密码
- 算法
- DES:56位有效密钥
- AES:SP结构,轮数依密钥长度定
- 步骤
- 字节代替
- 行移位
- 列混淆
- 轮密钥加
- 步骤
- SM4:非平衡Feistel结构,32轮,128位分组/密钥
- IDEA:128位密钥
- 工作模式
- ECB:无扩散,并行
- CBC:错误扩散,需填充
- CTR/OFB/CFB:流模式,无需填充,错误不扩散
序列密码
- 核心:密钥流生成器设计
- 算法
- ZUC:128位密钥/IV,同步流密码,用于4G/5G
- RC4
扩散和混淆
- 理想的扩散
- 让密文中的每一位受明文中每一位的影响
- 让明文中的每一位影响密文中的所有位
- 理想的混淆
- 使密文和密钥之间的统计关系变得尽可能复杂
- 使得对手即使获得了关于密文的一些统计特性,也无法推测密钥
- 使用复杂的非线性代换
非对称密码
- 特点:加解密密钥分离,效率低,用于密钥交换/签名
- 数学难题基础
- 大整数分解:RSA
- 离散对数:ElGamal、ECC
- 椭圆曲线离散对数:SM2(256位密钥)
- 多变量方程组:多变量公钥密码
SM2
RSA
SM9
密码杂凑函数
- 特性:单向性、抗碰撞、固定长度输出
SM3
MD结构,256位输出,512位分组,64轮压缩
应用:数字签名、消息认证、密钥派生
国际算法:SHA-256(MD结构)、SHA-3(Sponge结构,题1042)
- 攻击
- 生日攻击
- 长度扩展攻击(MD结构缺陷)
消息认证码(MAC)
作用:完整性 + 消息源认证
- 实现方式:
- HMAC(基于杂凑函数)
- CBC-MAC(基于分组密码)
- 防重放攻击:时间戳、Nonce、序号
中国商用密码体系
SM2
椭圆曲线公钥算法(数字签名、加密、密钥交换)
SM3
杂凑算法,256位输出,ISO标准
算法执行过程
sm3算法的执行过程共有五部分,分别是:消息填充、消息分组、消息扩展、迭代压缩、输出结果。sm3算法是一个分组加密算法,即加密过程需要先将消息按每512比特(64字节)进行分组,然后对每组都进行消息扩展、消息压缩,执行到最后一组时进行消息填充,再压缩,最后输出结果,其执行过程如下图:
- 初始IV:
sm3
使用8个字寄存器来存储每一轮迭代压缩的过程数据及结果,压缩过程中也会使用到这8个寄存器,规范中这8个寄存器分别定义为A,B,C,D,E,F,G,H,我们可以理解成8个unsigned int
变量。
SM4
分组密码,非平衡Feistel结构,128位分组/密钥
ZUC
序列密码,128位密钥,3GPP标准。祖冲之算法集是由我国学者自主设计的加密和完整性算法,包括祖冲之算法(ZUC)、加密算法128-EEA3和完整性算法128-EIA3
结构
- 上层是16级线性反馈移位寄存器(LFSR)
- 中层是比特重组(BR)
- 下层是非线性函数F
LFSR
31上层的LFSR由16个31比特寄存器单元变量组成,每个变量在集合{1,2,3,…,2^31-1}中取值。线性反馈移位寄存器以有限域GF(231-1)上的16次本原多项式
线性反馈移位寄存器的运行模式有两种:初始化模式和工作模式。
- 初始化模式
- 工作模式
BR
非线性F函数
SM9
标识密码
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果