密码技术学习——Keccak三轮破解论文整理

Step 1

题目摘要引言

题目

使用分配手段解决降低轮次的 Keccak-224/256 的攻击。

摘要

寻找一个分配方法,不再寻找 1 个 message block 而实转而寻找 2 个 message block

寻找一个系统,系统限制由两部分构成,第一部分由初始状态全 0 决定,第二部分由 hash 值决定。

为保证两阶段复杂性都低于寻找 1 块原像的复杂度,中间状态约束必须弱于上面提到的两种系统约束。

(感觉,变量一定的前提下,约束越少求解越容易)

基本理论概况

结论部分

极大的降低了之前 K224/256 算法的复杂度(指数减半)。

回答基本问题

  1. 类别

基于现有系统的攻击

  1. 内容
  1. 正确性

正确

  1. 创新点

拆成两个 message,保证中间的约束弱于两边的状态约束。

  1. 清晰度

阅读选择

Step 2

细读笔记

3.1 节讲中间约束状态,提到了 Ref 15 中提到的 Cross-Linear。

目标的模式:

  • 输入模式:输入变量(线性位)要多,自由度要高。
  • 输出模式: 变量位越少,扩散越小越好
  • 输出模式:不可有非线性

(好像这个系统指的大致是 \(\chi\)

一个更巧妙的 Liner Structure,保证两轮的\(\theta\)运算后还可以达到一个巧妙地 constant 状态。

理论 1 应用于添加第二个消息后地轮转。

所以总结,攻击 Keccak-224/256 的分治攻击方法分为两步

  1. 预处理阶段:找到一个第一次 message block,满足构造的线性系统的输入
  2. 在现阶段:根据所要求的 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)+