快速相关攻击与SHAvite - 3 - 256分析
1. 流密码相关攻击基础
在流密码领域,相关攻击是一种重要的攻击手段。例如,eSTREAM候选算法Grain的初始版本(密钥长度80位)被成功破解,这促使了改进版本Grain v1的出现。相关攻击的核心在于推导流密码中非线性输出函数的线性近似,这也为布尔函数的设计带来了新的标准。
布尔函数的相关性免疫是一个关键概念。设(X_1, X_2, \cdots, X_n)是独立的平衡二进制变量(即每个变量取(0)和(1)的概率均为(\frac{1}{2}))。一个(n)变量的布尔函数(f)是(m)阶相关免疫的,当对于(m)个随机变量(X_{i1}, X_{i2}, \cdots, X_{im})的每个子集,随机变量(Z = f(X_1, X_2, \cdots, X_n))与随机向量((X_{i1}, X_{i2}, \cdots, X_{im}))在统计上是独立的。不过,布尔函数的相关免疫阶数和代数次数之间存在权衡关系。低代数次数会影响安全性,因为Berlekamp - Massey算法和代数攻击表明,组合或滤波生成器的输出函数的次数不应过低。
为了防止输出函数(f)被线性函数很好地统计近似,(f)应与所有仿射函数有较大的距离。Bent函数就是一类具有良好密码学性质的布尔函数,它具有最大的非线性,即与仿射函数的距离最大,并且具有良好的相关抗性和最优的差分性质。例如,AES块密码的S盒中使用的有限域(GF(2^8))中的乘法逆映射就是一个典型的向量布尔函数。
2. 带记忆的组合器
如果组合函数允许有记忆,就可以避免相关免疫和代数次数之间的权衡。带记忆的组合器是一个有限状态机,一个((k, m
超级会员免费看
订阅专栏 解锁全文
41

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



