我学《密码学》
第一章 绪论
信息安全与密码学
- 信息安全概念:保证信息的保密性、完整性、可用性、可控性和不可否认性。相应的信息系统应具有信息防护、检测、反应和恢复的能力。同时系统本身应具有物理安全、硬件安全和软件安全。
- 信息安全的“五性”:
- 保密性
- 完整性
- 可用性
- 可控性
- 抗抵赖性(不可否认性)
密码概述
- 密码的历史源远流长
- “密码”从隐藏信息的技巧变为一门系统科学——“密码学”
- “密码学”发展的里程碑:1976年,美国著名学者Diffie和Hellman的著名论文“密码学的新方向”
- “密码学”的研究和应用从秘密走向公开:1977年,美国公布并实施的数据加密标准(DES),使密码学的研究和应用从秘密走向公开,从此,密码学成为一门蓬勃发展的学科
- “密码学”作为信息安全的核心的地位被确立:1997年美国发布了美国“21世纪国家密码战略”,美国国家安全局(NSA)局长于1999年11月15日至2000年3月30日发起了“百日变革”行动,把“根本确保世界密码的领先地位,具有利用信息和保护信息所需的技术,为美国夺取信息优势”作为NSA唯一目标
密码学和密码系统
- 密码系统模型
密码体制及其分类
- 密码体制:
- 明文空间M
- 密文空间C
- 密钥空间K
加密算法E和解密算法D:对任意/所有/每个密钥k∈K,都存在一个加密法则ek∈E和相应的解密法则dk∈D,并且对每一ek和dk,对任意明文m∈M,均有dk(ek(m))=m.
常将26个英文字母(不分大小写)与整数0~25一一对应
- 从原理(密钥)分类:
- 单(私)钥体制
- 流密码(序列密码)
- 块密码(分组密码)
- 双(公)钥体制
- 无密钥(杂凑函数)
- 单(私)钥体制
- 双钥密码
- 特点:将加密和解密能力分开,因而可以实现多个用户加密的消息只能由一个用户解读。用于公共网络中实现保密通信。
- 系统的安全性在于从公开钥kB1和密文推出明文或解密钥kB2在计算上是不可行的(困难性问题)。
第二章 古典密码及其破译
第一节 古典密码
古典密码概述
- 代替密码
- 特点:加密后信息元素的形态有所变化
- 分类
- 单表代替密码
- 多表代替密码
- 移位密码
- 特点:加密变换后信息元素只有位置变化而形态不变(明文空间和密文空间完全相同),并且密文保持了明文中信息单元出现的频
- 分类
- 单置换移位密码
- 多置换移位密码
- 乘积密码——若干个古典密码组合,要求组合后密码的安全强度必须高于原密码
典型古典密码体制
- 典型单表代替密码体制
- Caesar密码
- 标准字头密码
- 方格密码
- 典型多表代替密码体制——明密等差规律
- Playfaie密码
- Vigenere密码
- Beaufort密码
- 滚动密钥密码
- Vernam密码
- Hill密码
- 典型单置换移位密码体制
- 长方形单置换移位密码
- 典型多置换移位密码体制——“一阶频次不变”规律
基本加密运算
- 密钥量
- 单表古典密码
- 加法密码
- 乘法密码:
- 仿射密码:
- 置换密码:
- 多表古典密码
- 简单加法密码:
- 简单乘法密码:
- 简单仿射密码:
- 简单置换密码(如多置换移位密码):
- 简单加法密码:
- 单表古典密码
第二节 古典密码的破译
密码破译概述
- 密码破译分类
- 唯密文攻击(最弱)
- 已知明文攻击
- 选择明文攻击
- 选择密文攻击(最强)
典型古典密码体制的破译
- 两个参数
- 粗糙度:
- 重合指数:
- 粗糙度:
第三章 Shannon理论基础
Shannon对“密码学”的贡献
- 提出“完善保密性”思想
- 最先将“熵”用在密码学中
- 讨论通过“乘积”来组合密码体制
密码体制的数学模型(统计特性=概率)
- 明文的统计特性(信源无记忆):对任意明文m∈M,
- 密钥的统计特性:对任意密钥k∈K,
- 密文的统计特性:对任意密文c∈C,
- 已知明文条件下密文空间的统计特性:给定明文m,密文c的概率:
- 已知密文条件下明文空间的统计特性:给定密文c,明文m的概率:
密码体制的完善保密性
- 定理:
- “一次一密”要求:
- 密钥数量必须至少和明文的数量相等
- 密钥具有随机性
- 每个密钥仅用一次
第四章 序列密码与移位寄存器
线性反馈移位寄存器及其序列
线性反馈移位寄存器
- 结构常数
- 结构示意图
- 递推公式/反馈函数
- 联接多项式
- 初态
序列的表示与本原多项式
序列的表示
- 幂级表示
- 有理表示
m-序列的伪随机性
m-序列的性质
- 0、1平衡性
- 游程特性
- 自相关特性
线性反馈移位寄存器的综合——破译序列密码
方法一:解方程组法
方法二:B-M算法
- 步骤
- 置初值 f0(x)=1,L0=0
- 由fn计算dn
- 由dn确定fn+1
- 当dn=0时,取fn+1(x)=fn(x),Ln+1=Ln
- 当dn=1时
- 若Ln=0,则取fn+1(x)=x^n+1+1,Ln+1=n+1
- 若Ln≠0,存在m(0<=m<n),使得Lm<Lm+1=Lm+2=...=Ln,取fn+1(x)=fn(x)+fm(x)*x^(n-m),Ln+1=max{Ln,n+1-Ln}
- 例题
- 结论
- m-序列(伪随机)+线性复杂度足够大(高度非线性)→随机