对SNOW 3G的连续S盒查找时序攻击
1. 前期工作
映射S1和S2使用8×32位表T10, …, T13和T20, …, T23,其实现方式如下:
- (S1(x) = T10[x0] \oplus T11[x1] \oplus T12[x2] \oplus T13[x3])
- (S2(x) = T20[x0] \oplus T21[x1] \oplus T22[x2] \oplus T23[x3])
1.1 攻击框架
攻击框架基于线性反馈移位寄存器(LFSR)时钟操作涉及表查找的假设。设((st, …, st+n−1) \in IFn_{2m})表示时间(t \geq 0)时LFSR的状态。当LFSR在时间(t)进行时钟操作时,每次表查找会使用(st+i)((i = 0, …, n - 1))的某些位。根据缓存行大小,缓存时序测量会揭示这些位中的一部分。由于LFSR时钟操作是(IF2)线性操作,每个观察到的位都可以表示为初始状态位的线性组合。因此,一旦收集到足够多涉及初始状态位的线性方程,就可以通过求解方程组来恢复初始状态。如果每次时钟操作可以推导出(b)个线性方程,那么大约需要(mn/b)次时钟操作才能以高概率恢复初始LFSR状态。
该框架仅利用LFSR查找获得的信息,而不利用其他查找(如S盒)的缓存时序信息。因此,该框架主要关注初始LFSR状态的恢复,其他未知状态值(如有限状态机(FSM)中的寄存器)的恢复则留待单独研究。
1.2 对SNOW 2.0和SNOW 3G的应用
SNOW 2.0和SNOW 3G的LFSR更新函数相同。与(\alpha)和(\alpha^{-1})的乘法通
超级会员免费看
订阅专栏 解锁全文
2209

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



