对简化轮数Skipjack的饱和攻击
1. 引言
饱和攻击是一种基于选择特定明文集合的攻击方法,其核心思想是选择一组 $k × 2^w$ 个明文,使得一个 $w$ 位置换的每个 $2^w$ 个输入恰好出现 $k$ 次。这种攻击利用了一个重要特性:如果 $w$ 位置换的输入集是饱和的,那么该置换的输出集也是饱和的。本文将详细介绍如何对简化轮数的 Skipjack 进行饱和攻击。
2. 预备知识
2.1 符号表示
- 用 $I_n$ 表示所有 $n$ 位数据的集合。在本文中,一个字(word)始终表示 16 位数据。
- 用 $(\alpha_i, \beta_i, \gamma_i, \delta_i)$ 表示第 $i$ 轮的输入数据,其中每个希腊小写字母都是一个常量字。$(\alpha_{i + 1}, \beta_{i + 1}, \gamma_{i + 1}, \delta_{i + 1})$ 则表示第 $i$ 轮的输出数据。
- 用 $(A_i, \beta_i, \gamma_i, \delta_i)$ 表示第 $i$ 轮的一组输入数据,其中 $A_i$ 是 $I_{16}$ 的一个子集,每个希腊小写字母都是常量字,即 $(A_i, \beta_i, \gamma_i, \delta_i) = {(\alpha_i, \beta_i, \gamma_i, \delta_i) \in I_{16}^4 | \alpha_i \in A_i}$。同理,还可以定义 $(A_i, B_i, \gamma_i, \delta_i)$、$(A_i, B_i, C_i, \delta_i)$ 等。
超级会员免费看
订阅专栏 解锁全文
40

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



