Block cipher
什么是Block Cipher
依赖工作流(Mode of operation),加密定长明文的算法
常见的工作模式
ECB 模式
按照可加密的长度切分明文之后,直接进行加密
因为该模式可能泄露明文之间的关系,可被选择明文攻击不应该使用
CBC 模式
每次先把明文和一个随机生成的
优点
- 加密是基于概率的
- 如果函数
满足 PRF
安全,那么CBC
模式满足CPA
安全,即豁免选择明文攻击
缺点
- 整个加密流程是串行(sequential)的,并且无法进行并行化
OFB 模式
首先生成随机的串,经过
优点
- 密钥生成的部分是可以预处理的,所以理论上可以更快
- 函数
不要求是可逆的(因为此时其实只需要正向运用 得到每一次的密文就可以了) - 如果函数
是满足 PRF
的,那么加密算法满足PCA
安全
CTR 模式
首先生成一个串 ctr
然后依次使用
优点
- 如果函数
是满足 PRF
的,那么加密算法满足PCA
安全 - 同样
不要求为可逆 - 密钥生成部分不仅可以预处理,还可以做并行化
雪崩效应
我们希望如果输入发生一个微小的变化,那么每一位的输出都能够发生变化,这称之为 雪崩效应
如何理解雪崩效应:
可以从差分隐私保护的角度理解,如果变化不够大,可以通过差分攻击的方式获取更多信息
关于 confusion-diffusion 模式
- 该模式一般会重复多轮的 confusion 的 diffusion
- 输入会被拆分成若干个小块
- 在每一轮中:
- 每一个小块会被输入一个小的随机函数中进行混淆
- 然后混淆的结果会在 diffusion 步骤中被混合到一起
Substitution-permutation network(SPN)
单轮SPN
在该模式下,每一轮包含一下步骤:
- Key mixing: in each round, the input is first xor-ed with the current-round sub-key or (round key)
- Substitution: after key mixing, each block i is inputted into a fixed, invertible “substitution function” (i.e. permutation) Si called S-box.
- Permutation: the bits of all S-boxes’ outputs are permuted.
在该模式下,整个加密过程可以被公开,只有输入的key
需要加密传输
单轮加密示意图
多轮SPN
多轮的本质改变就是上面的模式不止进行一轮,而是把上一轮的输出再贴上下一轮的key
然后做下一轮
如何保证雪崩效应
- S盒在设计的时候,如果改变一位,输出至少改变两位
- 每一轮的输出都会在混合后进入下一轮
注意事项
该模式下的
Feistel Network
该模式下的函数不要求是可逆的
每一轮使用的
加密方案
解密方案
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.