BLAKE - 32与BMW压缩函数的攻击分析
1. BLAKE - 32的回旋镖攻击
在对BLAKE - 32的研究中,回旋镖攻击是一种有效的分析手段。
1.1 半轮回旋镖与自由度
当拥有半轮回旋镖时,可以自由改变该半轮中未作为输入的消息字,而不改变半轮的输入和输出值,此时具有 (2^{8\times32}=2^{256}) 个自由度。从中间状态能获取初始和最终状态(以及链值)。对于6.5轮的回旋镖攻击,总复杂度为 (2^{84}+4\times2^{2\times(3 + 1+3)}+2^{6}+2\times(6 + 1)+128 = 2^{184}) 次调用。需要注意的是,与4轮和5轮回旋镖攻击不同,此时初始状态与初始化一致的概率为 (2^{-128}),原因是在中间而非开始进行消息修改。底部轨迹可轻松扩展半个轮次,概率为 (2^{-24}),所以7轮的回旋镖攻击大约需要 (2^{184}+2\times24 = 2^{232}) 次压缩函数调用。
1.2 带密钥置换的回旋镖攻击
对于BLAKE - 32的带密钥置换的回旋镖攻击,假设攻击者不知道密钥。这种攻击可作为BLAKE - 32内部密码的区分器。该密码接收512位明文和512位密钥,经过10轮后输出512位密文(忽略初始化和终结化过程)。
从压缩函数的回旋镖攻击转向带密钥置换的回旋镖攻击,对攻击者而言既有优势也有劣势。优势在于攻击者不再需要关注初始化过程,并且可以使用任何回旋镖轨迹;劣势在于由于密钥未知,无法使用消息修改技术来提高回旋镖的概率。
不同轮次的带密钥置换的回旋镖攻击概率如下:
| 轮数 | 概率 | 考虑放