流密码的缓存时序分析与改进的快速相关攻击
一、HC - 256 缓存时序攻击的设计建议
在尝试破解 HC - 256 流密码(以及对其他流密码进行初步分析)时,我们遇到了一些可能是抵御缓存时序攻击的防御机制。以下是一些设计建议,若无法完全避免使用表,这些建议可使缓存时序攻击更困难:
1. 增加单次函数调用的表访问次数 :这会让同步攻击者更难将观察到的索引与内部状态匹配。以 HC - 256 为例,这种匹配相对容易,才使得攻击成为可能。
2. 增大内部状态大小 :使内部状态大小相对于一次缓存测量获得的信息大。对于 HC - 256,一次调用 Next() 产生 32 位密钥流信息和 52 位边信道信息。由于内部状态大,至少需要进行 65536 / 84 ≈ 780 次精确的缓存访问测量(或更多有噪声的测量)才能恢复内部状态。
3. 利用表索引的最低有效位未知性 :通过使用不依赖 S 盒就能产生大量扩散的状态更新和输出生成函数来实现。例如,使用进位的函数(如加法和乘法)就适合此目的。
4. 使用可变表而非固定内容的 S 盒 :这会让攻击者对表的输入和输出都不确定。
二、攻击模型
为了分析流密码,我们需要一个通用的攻击模型,以下是不同类型攻击者的介绍:
1. 标准攻击者
- 可用预言机 :
- KeySetup():请求用新密钥重新初始化密码,无输出。
- IVSetup(N):
超级会员免费看
订阅专栏 解锁全文
1432

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



