ChaCha20算法的各种密码分析方法全面盘点
一、概述
ChaCha20自2008年由Bernstein提出以来,经过了广泛的密码分析检验。截至目前,所有已知攻击均针对简化轮数(≤7.5轮)的ChaCha20,完整20轮版本不存在任何有效的实用攻击。以下按攻击类型全面盘点。
二、基于概率中立位(PNB)的差分攻击
PNB(Probabilistic Neutral Bit)方法是ChaCha20密码分析中最核心的技术路线,由Aumasson等人在2008年首次提出。
核心思想:将密钥位分为“显著密钥位”和“非显著密钥位”(即PNB),后者对输出差分的影响较小,可在攻击中被忽略以降低复杂度。攻击采用“中途相遇”框架:前向使用截断差分,后向基于PNB进行密钥恢复。
演化历程:
|
年份 |
研究者 |
目标轮数 |
时间复杂度 |
数据复杂度 |
|
2008 |
Aumasson等 |
ChaCha7 |
2²⁴⁸ |
2²⁷ |
|
— |
Shi等 |
ChaCha7 |
2²⁴⁶·⁵ |
2²⁷ |
|
2015 |
Maitra等 |
ChaCha7 |
2²⁴⁷·² |
— |
|
2016 |
Maitra等 |
ChaCha7 |
2²³⁸·⁹⁴ |
2²³·⁸⁹ |
|
2017 |
Dey & Sarkar |
ChaCha7 |
2²³⁵·² |
— |
|
2021 |
Miyashita等 |
ChaCha7.25 |
2²⁵⁵·⁶² |
2⁴⁸·³⁶ |
|
— |
Ghafoori等 |
ChaCha7.25 |
2²⁵⁴·⁰¹¹ |
— |
|
2025 |
Paul等 |
ChaCha7 |
2¹⁶⁷·⁹⁰⁰⁸ |
— |
Paul等人(2025)提出的新方法基于单一输入比特差分的多重输出比特差分构造PNB集,显著优于所有现有PNB攻击。
三、差分-线性攻击
差分-线性攻击将差分分析与线性分析相结合,是ChaCha分析的另一重要方向。
关键进展:
- 2016年:Choudhuri和Maitra首次将差分-线性技术应用于Salsa20和ChaCha,实现ChaCha7攻击,时间复杂度2²³⁷·⁶⁵、数据复杂度2³¹·⁶
- 2020年:Coutinho等改进攻击,ChaCha7复杂度降至2²³¹·⁹
- 2020年(CRYPTO):Beierle、Leander和Todo提出单比特3.5轮区分器,ChaCha7攻击复杂度2²³⁰·⁸⁶
- 2021年:Coutinho等提出新线性近似,ChaCha7密钥恢复复杂度降至2²²⁸·⁵¹
- 2022年(EUROCRYPT):Dey等引入“可利用密钥”(exploitable keys)概念,复杂度进一步降至2²²¹·⁹⁵
- 2022年(ASIACRYPT):Coutinho等提出新的差分-线性区分器,时间与数据复杂度均为2²¹⁴
- 2023年:Bellini等利用MILP(混合整数线性规划)优化搜索,新区分器将ChaCha7的复杂度降低247倍,并首次实现ChaCha7.5轮的区分器(2²⁵¹·⁴);结合PNB框架后密钥恢复复杂度为2²⁰⁶·⁸
四、旋转分析
旋转分析利用ChaCha轮函数在旋转操作下的概率行为。
研究发现:
- ChaCha20在17轮时难以被视为随机置换,存在非随机性特征
- 旋转碰撞概率远低于随机置换的预期值(约2⁻⁴⁰⁰ vs 随机置换的2⁻⁵¹¹)
- 第一轮四分之一轮的旋转XOR概率为2⁻⁴⁸·³⁶,符合随机置换预期
- EChaCha20(增强版)采用非2的幂次旋转常数,对旋转差分攻击具有更强的抵抗能力
五、侧信道攻击
ARX结构(加-旋转-异或)天然避免了依赖密钥的数据访问和条件分支,被认为对时序侧信道具有内在抵抗力。但实际实现中仍存在风险。
主要攻击方法:
|
攻击类型 |
目标平台 |
关键结果 |
|
能量分析(CPA/DPA) |
STM32F3、XMEGA |
STM32仅需23条能量迹 即可提取密钥 |
|
电磁分析(EM) |
嵌入式平台 |
可成功提取密钥信息 |
|
缓存时序攻击 |
通用平台 |
存在潜在风险 |
“Bricklayer”攻击是唯一已知的成功侧信道攻击案例。此外,对Poly1305的侧信道攻击可间接威胁ChaCha20-Poly1305组合。
六、故障注入攻击
故障注入攻击通过物理手段(电压/时钟毛刺等)诱导计算错误,从而泄露密钥信息。
关键成果:
- 研究者提出指令跳过(instruction skip)和指令替换(instruction replacement)两种故障模型
- 在Atmel AVR 8位微控制器上,平均仅需5-8次故障注入即可恢复完整的256位密钥
- 故障注入攻击不依赖于nonce误用即可实施
七、量子攻击
随着量子计算的发展,量子攻击也进入研究视野。
主要方向:
- Grover算法的量子穷举搜索:可将256位密钥的搜索复杂度从经典2²⁵⁶降至量子2¹²⁸
- 量子差分攻击:研究者正在评估ChaCha上量子攻击的可行性
需要强调的是,这些量子攻击目前仍处于理论探索阶段,尚未形成对ChaCha20的实际威胁。
八、其他分析方法
- 字符串学分析(Stringology-Based Cryptanalysis):针对EChaCha20提出,用于评估轮函数的扩散特性
- 连续扩散分析(CDA):Coutinho等(2020)提出,用于研究ChaCha流密码的扩散特性
- 列链区分器(CCD)与概率中立向量(PNV):Shi等提出,是对传统PNB方法的扩展
总结
|
攻击类型 |
最高有效轮数 |
最优复杂度 |
实用性 |
|
PNB差分攻击 |
7.25轮 |
2¹⁶⁷·⁹(7轮) |
仅理论 |
|
差分-线性攻击 |
7.5轮(区分器) |
2²⁰⁶·⁸(7轮) |
仅理论 |
|
旋转分析 |
17轮(非随机性) |
— |
仅理论 |
|
侧信道攻击 |
完整轮数 |
23条能量迹 |
实际可行 |
|
故障注入 |
完整轮数 |
5-8次注入 |
实际可行 |
|
量子攻击 |
完整轮数 |
2¹²⁸(Grover) |
理论阶段 |
关键结论:完整20轮的ChaCha20在经典计算模型下安全,所有已知的数学密码分析均局限于简化轮数(≤7.5轮)。实际威胁主要来自侧信道攻击和故障注入攻击等物理层面的实现攻击,而非算法本身的结构性弱点。



