动态立方体攻击破解 Grain - 128 流密码
1. 攻击 Grain - 128 的具体细节
1.1 第二次攻击
为了攻击具有 250 轮初始化(共 256 轮)的几乎完整版本的 Grain - 128,我们将 $b_{251 - 21}=b_{230}$ 置零。此次攻击的参数如下表所示:
|参数|详情|
| ---- | ---- |
|大立方体维度|37|
|动态变量数量|24|
|数据和内存复杂度|$2^{37 + 24}=2^{61}$|
|初始需猜测的表达式数量|84|
|去除线性相关表达式后需猜测的表达式数量|59|
|立方体求和的总复杂度|约 $37×2^{37 + 59}<2^{101}$|
|仅含单个密钥位的表达式数量|29|
在部分模拟阶段,我们对大立方体中维度至少为 35 的所有子立方体求和,并分别计算每个维度(35、36 或 37)子立方体中 1 值的百分比。对数十个随机密钥进行了部分模拟阶段的测试,结果如下:
- 约 60% 的密钥:正确猜测的子立方体和在维度为 36 和 37 的子立方体中仅含 0 值,在 666 个维度为 35 的子立方体中 1 值少于 200 个。未优化版本攻击的复杂度主要由对剩余 $128 - 29 = 99$ 个密钥位的穷举搜索决定,整体复杂度约为 $2^{100}$ 次密码评估,且很可能进一步优化。
- 约 30% 的密钥:子立方体和的非随机性不如前 60% 显著,但仍足以使攻击比穷举搜索快得多。
- 约 10% 的密钥:观察到的非随机性不显著,攻击失败,但通过选择不同参数可能破解这些密钥。
超级会员免费看
订阅专栏 解锁全文
21

被折叠的 条评论
为什么被折叠?



