NTRUEncrypt与NTRUSign:性能、安全与参数优化
1. NTRUSign签名方案基础
1.1 公私钥签名误差
在使用公钥生成签名时,存在一定的预期误差,其表达式为 $\sqrt{\frac{N}{12q}}$ 。通过合理选择 $|f|$ 和 $q$ ,私钥能够产生比公钥更小的签名误差。接收方可以通过确保签名误差小于公钥可能产生的误差,来验证签名是否由私钥所有者生成,从而确认签名的有效性。
1.2 抵御选择消息攻击
为防止选择消息攻击,消息代表 $m$ 需以伪随机的方式从输入文档 $D$ 生成。当前NTRUSign推荐使用简单的全域哈希函数。具体步骤如下:
1. 将消息哈希为“种子”哈希值 $H_m$ 。
2. 若参数设置导致签名失败概率较大,可引入随机化机制。额外输入随机数长度 $r_{len}$ 。
- 签名时:
1. 如前所述哈希消息生成 $H_m$ 。
2. 选择由 $r_{len}$ 个随机比特组成的随机数 $r$ 。
3. 以计数器模式对 $H_m | r$ 进行哈希,得到足够的输出作为消息代表 $m$ 。
4. 签名时检查签名是否能正确验证:
- 若签名验证失败,使用不同的 $r$ 重复上述过程。
- 若签名验证成功,将元组 $(r, s)$ 作为签名发送。
- 验证时:验证者使用接收到的 $r$ 和计算得到的 $H_m$ 作为输入,以计数器模式进行哈希,生成与签名者相同的消息代表 $m$ 。
随机数 $r$ 的大小应与签名失败概率相关。在大多数情况下, $r_{len} = 8$ 或 $32$ 通常足够,但
超级会员免费看
订阅专栏 解锁全文
17

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



