欧洲eSTREAM工程最终胜选的三个面向硬件的序列密码算法——Grain、Trivium和MICKEY——代表了三种不同的设计哲学和结构模型
一、Grain型序列密码
级联模型典范
1. 基本结构
Grain模型采用级联结构,将一个线性反馈移位寄存器(LFSR)和一个非线性反馈移位寄存器(NFSR)级联,再通过非线性滤波函数输出密钥流。
结构框图:
NFSR (非线性) LFSR (线性)│ │└───→ 非线性滤波函数 ←──┘│密钥流 z_t
2. Grain级联模型
级联更新机制:
- NFSR的更新不仅依赖自身的非线性反馈,还引入LFSR当前输出作为输入
- 数学表示:
\(b_{t+n} = s_t + b_t + g(b_{t+1}, b_{t+2}, \ldots, b_{t+n-1})\)
其中 \(s_t\) 是LFSR输出,\(g\) 是NFSR的非线性反馈函数
3. 典型实例:Grain v1
- 参数:80位密钥、64位初始向量(IV)
- 寄存器:80级LFSR + 80级NFSR
- 非线性滤波函数:从NFSR抽取7个固定抽头,与LFSR的5个抽头经过非线性函数 \(h\) 组合
- 初始化:运行160轮空转(密钥流反馈回寄存器)
4. 安全特性分析
- 优势:
- LFSR提供长周期保证
- NFSR提供非线性
- 级联结构增强混乱与扩散
- 抵抗攻击:条件差分分析是其主要威胁,但通过精心设计非线性函数和初始化过程可有效抵抗
二、Trivium型序列密码
1. 基本结构
Trivium采用非线性反馈组合模型,由三个NFSR通过简单非线性函数相互驱动,结构极为简洁。
结构图:
NFSR 1 (93级) → 非线性组合 →
NFSR 2 (84级) → 非线性组合 → 密钥流 z_i
NFSR 3 (111级) →
2. 互控更新
三个NFSR的更新方程相互耦合:
- 每个NFSR的更新不仅依赖自身状态,还包含另一个NFSR的特定状态位
- 密钥流是三个NFSR特定位置的简单异或
更新示例(Trivium):
t1 = s66 ⊕ s91·s92 ⊕ s93 ⊕ s171
t2 = s162 ⊕ s175·s176 ⊕ s177 ⊕ s264
t3 = s243 ⊕ s286·s287 ⊕ s288 ⊕ s69
3. 典型实例:Trivium算法
- 参数:80位密钥、80位IV
- 内部状态:288位(93+84+111)
- 非线性程度:仅使用二次项(与门),设计极为精简
- 初始化:1152轮空转
4. 安全特性分析
- 优势:
- 结构异常简洁,易于硬件实现
- 非线性虽简单但通过互控达到高度混乱
- 对代数攻击有良好抵抗
- 攻击现状:尚无优于穷举攻击的有效方法,但存在一些相关攻击和立方攻击的分析结果
三、MICKEY型序列密码
1. 基本结构
MICKEY(Mutual Irregular Clocking KEY stream generator)采用互控钟控模型,通过两个寄存器相互控制对方的时钟,制造不规则运动。
结构图:
寄存器 R (线性) ⥂ 控制逻辑 ⥂ 寄存器 S (非线性)↓ ↓控制S的时钟 控制R的时钟↓ ↓密钥流比特 ← 组合输出
2. 双向不规则钟控
MICKEY的核心是两个寄存器相互控制对方的反馈:
- 寄存器R控制寄存器S的反馈是否生效
- 寄存器S控制寄存器R的反馈是否生效
- 这种互控导致两个寄存器的运动完全不规则
3. 典型实例:MICKEY 2.0
- 参数:80位密钥、0-80位可变长度IV
- 寄存器:两个100位的寄存器R(线性)和S(非线性)
- 控制机制:
CONTROL_BIT_R = s34 ⊕ r67 CONTROL_BIT_S = s67 ⊕ r33 - 非线性来源:寄存器S的更新包含与门非线性
4. 安全特性分析
- 优势:
- 互控机制极大增加线性复杂度
- 不规则运动破坏传统分析方法
- 对时间-存储折中攻击有抵抗
- 攻击挑战:分析极为困难,需同时跟踪两个不规则运动的寄存器状态
三种模型的对比分析
| 特性 | Grain型 | Trivium型 | MICKEY型 |
|---|---|---|---|
| 核心结构 | LFSR+NFSR级联 | 三个NFSR互控 | 两个寄存器互控时钟 |
| 非线性来源 | 滤波函数+NFSR | 二次项互控 | 与门+不规则运动 |
| 设计哲学 | 级联增强混乱 | 简约互控 | 不规则钟控 |
| 硬件友好度 | 高 | 极高 | 高 |
| 安全性基础 | 级联的复杂非线性 | 互控的代数复杂度 | 不规则运动的不可预测性 |
| 已知攻击 | 条件差分分析 | 立方攻击、代数攻击 | 时间-存储折中攻击 |