高效且抗一阶差分功耗分析的Keccak实现
1. 引言
Keccak是最著名的海绵函数家族,可用于广泛的对称加密功能模式,如加密、消息认证码(MAC)计算、认证加密等。这些功能可能会使用秘密密钥,并且需要保持其内部状态的保密性。然而,它们容易受到侧信道攻击,特别是差分功耗分析(DPA)攻击。DPA攻击利用设备瞬时功耗与加密算法中间结果之间的依赖关系,如果攻击者获得部分中间计算结果,可能会导致加密系统的安全崩溃,例如泄露密钥。
为了应对DPA攻击,人们提出了多种对策,如电路设计层面的功耗平衡方法、算法层面的掩码随机化方法等。但由于硬件泄露的信息未知,安全证明通常基于理想化的硬件模型,实际实现成本较高。
在阈值实现中,共享具有正确性、非完整性和均匀性三个属性。当输入共享均匀分布时,正确且非完整的共享在存在毛刺的情况下也能证明对一阶DPA免疫。在顺序计算中,保持共享的均匀性很重要,可以通过共享本身均匀或使用新鲜随机性(即重新掩码)来实现,但重新掩码需要每一轮都有新鲜随机性,实际成本可能较高。
Keccak的设计者提出了一种基于三共享的阈值实现硬件架构,但该架构不具有均匀性,因此不能证明对一阶DPA安全。
2. Keccak简介
Keccak是基于海绵结构的可变长度输入和任意长度输出的函数。在海绵结构中,一个b位的置换f被迭代执行。首先,输入被填充并通过简单的异或操作依次吸收到状态中,然后逐块从状态中挤出输出。块的大小r称为比特率,剩余的比特数c = b - r称为容量,决定了函数的安全级别。
海绵函数的简单用例包括作为哈希函数、MAC函数或流密码。Keccak - f[b]定义了七种置换,宽度b = 2
抗DPA的高效Keccak实现
超级会员免费看
订阅专栏 解锁全文
640

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



