NTRU签名方案的密码分析与应对策略
1. 伪造攻击
在某些情况下,(vs, vt) 或 (−vs, −vt) 可能成为零偏差的有效伪造签名。然而,寻找短向量 (vs, vt) 是一个困难的格问题,对于像 Lpq 这样的大格,无法在合理时间内解决。
为了应对这一问题,我们不直接对 Lpq 进行约减,而是选择 Lpq 的 c 列,这些列对应于 (s′′, t′′) 中未选定的系数,定义 Lfinal 为包含这些 c 列的 Lpq 子矩阵。Lfinal 生成的格是 c 维的,对其进行格约减可得到一个 c 维输出向量。输出向量中落在区间 (−q/2, q/2] 内的系数为无偏差系数。一般来说,经过此过程后,s(或 t)的预期偏差数为 (2N − 2k − c)/3 + ∆/2,其中 ∆ 是 c 维输出向量中落在区间 (−q/2, q/2] 外的系数的预期数量。
例如,在攻击“NSS 的实际实现”时,攻击者可将 k 设为 95,c 设为 150,并使用块大小为 20 对生成的格进行约减。格约减算法在几分钟内完成,经验表明,得到的 s 和 t 通常各有大约 56 个位置出现偏差。为确保 NSS 安全,Dmax 必须设置得远低于 56,以保证混合伪造攻击大概率失败。
2. 转录攻击
2.1 攻击描述
通过检查签名转录本可以恢复私钥 f 和 g。转录本包含 NSS 签名算法生成的一些消息 - 签名对 (m, s),并通过关系 t = s ∗ h (mod q) 得到每个消息的 t。攻击的基础是检查部分消息 m 的 s 或 t 系数的分布。将 m 的一个系数设为固定值后,s 和 t 系数的分布会收敛到一个依赖于私钥 f 或 g
超级会员免费看
订阅专栏 解锁全文
54

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



