引言与古典密码体制
基础知识
-
对称加密和公钥加密
- 根据消息发送方和接收方使用的加密和解密密钥是否相同, 加密方案可分为对称加密和公钥加密。
- ==公加私解==
- 根据消息发送方和接收方使用的加密和解密密钥是否相同, 加密方案可分为对称加密和公钥加密。
-
消息认证码
- 消息发送方和接收方首先共享一个密钥,发送方为待发送的消息产生一个标识,并将消息和标识一同发送给接收方。
- 用于标志消息息在传递过程中没有被篡改
-
哈希函数
-
将任意长的消息映射为一个“较短的” “定长的” 抗碰撞的”消息摘要。
-
用于保护数据完整性,防篡改
-
-
数字签名
- 在数字世界中实现了“手写签名”的功能,保证了被签名消息的完整性和不可否认性。
- 案基于公钥密码体制:发送者使用自己的私钥对消息进行签名,接收者使用签名者的公钥验证数字签名的合法性。
现代密码学发展史
1940 ==香农==证明了一次一密的安全性
……
加密
-
语法
-
K 密钥空间
-
M 明文空间:现代密码学中,M是二进制字符串的集合
-
C 密文空间
-
加密方案(Gen; Enc; Dec)
- Gen :K (概率性的) 密钥生成算法。
- Enc : K x M→C 加密算法。
- Dec : K x C →M 解密算法。
-
-
科尔霍夫原则
- 密码算法的安全性应该依赖于密钥k的保密性,而不应依赖于算法 Gen;Enc; Dec 的保密性。
- 理由:
- 算法设计保密是不切实际的(逆向工程)。
- 短密钥更容易保护、生成和替换。
- 密码设计应该被公开讨论和分析。
古典密码
- 单表代换
- 移位密码:如凯撒密码、仿射密码
- 密文空间小时,直接爆破
- 密文空间大时,用字母频率猜测

- 多表代换
- 选择一串字符作为密钥,明文字符“加上”密钥字符得到密文字符
- 多表代换密码是安全的:密钥长度等于明文长度
- 当密钥长度小于明文长度时,多表代换密码易受到统计攻 击。
- 先确定密钥周期
- 拆分部分,分别频率检测
对称加密
完善保密性
-
基本概念
- 高熵、均匀一致、随机
- 现代随机数生成步骤:收集高熵数据、产生几乎独立无偏的比特串
-
完善保密性
- 获取密文的行为不改变敌手对所发送的实际消息的知识
- 密文不应泄露有关底层明文的额外信息

知识 vs 信息
信息是公开可用的,可直观获取的。 知识是困难计算的结果,任何人都能有效获得的都不能称为知识。应用于公开可用信息的简单计算的结果不被认为是知识。应用于公共可用信息的难以计算的函数的结果是知识。
流密码和分组密码
- 在实际中,PRG是使用流密码实例化的。
- PRP是使用分组密码进行实例化的。实际上,PRP也被称为分组密码。
- 但是 Block cipher 不是一种加密方案
流密码


大致就是切分明文串来加密,密钥流是用单密钥随机产生的
两种操作模式
- 同步模式
- 有状态,消息按顺序接收、加密
- 异步模式
- 无状态,每个块密钥流独立
- 每个密钥流独立生成(有自己的生成器)

设计原则
-
混淆原则
- 使密钥和密文之间的依赖关系尽可能模糊。即使敌手获取了一些密文的统计特性,也无法推测密钥。常使用代替方法实现混淆。
-
扩散原则
- 使明文和密文的关系变得尽可能的复杂,即密文中的每 一位受明文中的许多位的影响。常使用置换方法实现扩散
-
乘积密码
- 也叫迭代密码,通过轮函数的多次迭代,对数据重复迭代操作,实现扩散与混淆
-
分组密码的迭代方式
- 代换-置换SP网络(substitution-permutation)-Feistel网络