密码技术学习——Keccak三轮破解论文整理
Step 1
题目摘要引言
题目
使用分配手段解决降低轮次的 Keccak-224/256 的攻击。
摘要
寻找一个分配方法,不再寻找 1 个 message block 而实转而寻找 2 个 message block
寻找一个系统,系统限制由两部分构成,第一部分由初始状态全 0 决定,第二部分由 hash 值决定。
为保证两阶段复杂性都低于寻找 1 块原像的复杂度,中间状态约束必须弱于上面提到的两种系统约束。
(感觉,变量一定的前提下,约束越少求解越容易)
基本理论概况
结论部分
极大的降低了之前 K224/256 算法的复杂度(指数减半)。
回答基本问题
- 类别
基于现有系统的攻击
- 内容
- 正确性
正确
- 创新点
拆成两个 message,保证中间的约束弱于两边的状态约束。
- 清晰度
阅读选择
Step 2
细读笔记
3.1 节讲中间约束状态,提到了 Ref 15 中提到的 Cross-Linear。
目标的模式:
- 输入模式:输入变量(线性位)要多,自由度要高。
- 输出模式: 变量位越少,扩散越小越好
- 输出模式:不可有非线性
(好像这个系统指的大致是 \(\chi\) )
一个更巧妙的 Liner Structure,保证两轮的\(\theta\)运算后还可以达到一个巧妙地 constant 状态。
理论 1 应用于添加第二个消息后地轮转。
所以总结,攻击 Keccak-224/256 的分治攻击方法分为两步
- 预处理阶段:找到一个第一次 message block,满足构造的线性系统的输入
- 在现阶段:根据所要求的 Hash Value,构造第二 message block 输入,结合第一个的输出满足最终的 Hash Value。
第三章第二节,描述攻击过程。
第四章,理论攻击结果。
4.2 优化,4.1 的预处理阶段复杂度远高于在线阶段,目标,降低预处理阶段复杂度。高的原因:(4)方程的约束要求,我们
第五章
问题记录
新的结构是如何设计的,与之前 Linear Structure。
未读(且值得读)文献记录
Step 3
思路复现
证明与推理复现
实验验证复现
几个问题
Q1
论文中描述上面括住的 5 个式子是通过“线性代数”运算变换到下面 5 个式子。请帮忙解释下是怎么运算的(就是行列式变化?),尤其着重解释下为什么 ➕ 号右侧可以变成一致的内容(line 和 c 并不相等,只表征线性和常数部分)
Q2
题目说要 enumerate 剩下 31 个线性项(由于出现在 cross-linear 结构中。所以又称为 cross-linear factors),这 31 个标号怎么来的,为什么要 enumerate 的值?我没能把他们和上下文连接起来。
Q3
为何在 K256 攻击中,最后要分奇偶性讨论(红线标出的地方),前一章节 practical 可解的那个简化 Keccak 模型最后就没有分奇偶讨论。
150 复杂度的构成,1+(64-1)+
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!