可重构硬件上实现Dilithium算法:架构、优化与实践
在当今数字化时代,数字签名技术对于保障信息安全至关重要。Dilithium算法作为一种后量子密码算法,为应对量子计算威胁提供了有效的解决方案。本文将深入探讨Dilithium算法在可重构硬件上的实现,包括签名生成与验证、参数调整、架构设计以及具体的硬件实现细节。
1. 签名生成与验证
1.1 签名生成
在签名生成过程中,采用拒绝采样技术来防止秘密密钥的泄漏。若签名未能通过安全性和正确性检查,则需要重复签名生成过程。此外,由于验证过程需要用到 $t$,但公钥中仅包含 $t$ 的高 10 位,签名者需要计算在验证计算中由 $t$ 的未知部分产生的进位比特向量(“提示”)$h$。若找到通过检查的 $z$,则签名以 $(c, z, h)$ 的形式返回。
1.2 签名验证
签名验证时,将 $Az - ct$ 进行类似签名过程的舍入操作,并将结果的高阶比特设置为 $w’_1$。由于公钥中不包含 $t$ 每个系数的低阶比特,验证者需利用提示 $h$ 来执行此操作。接着,根据消息和 $w’_1$ 重新计算挑战 $c$,并与签名中提供的 $c$ 进行比较。同时,检查 $z$ 的范数是否有效,即检查每个系数是否具有签名生成过程中所检查的最大值。
2. 参数集调整
随着Dilithium算法规范3.1版本的引入,针对NIST安全级别II、III和V的支持安全参数集进行了调整。由于不同参数集在 $R_q$ 中的操作不变,因此调整了矩阵 $A$ 的性能关键维度,从而根据目标安全级别增加或减少操作数量。与第2轮相比,提出了以下调整:
-
超级会员免费看
订阅专栏 解锁全文
96

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



