摘要:
公钥密码学对全球数字信息系统的安全起着至关重要的作用.然而, 随着量子计算机研究的发展和 Shor 算法等的出现,公钥密码学的安全性受到了潜在的极大的威胁.因此, 能够抵抗量子计算机攻击的密码算法开始受到密码学界的关注, 美国国家标准与技术研究院(National Institute of Standards and Technology, NIST)发起了后量子密码(Post-quantum cryptography, PQC)算法标准全球征集竞赛.在参选的算法中, 基于格的算法在安全性、公钥私钥尺寸和运算速度中达到了较好的权衡, 因此是最有潜力的后量子加密算法体制.而CRYSTALS-KYBER作为基于格的密钥封装算法(Key encapsulation mechanism, KEM), 通过了该全球征集竞赛的三轮遴选.对于后量子密码算法, 算法的硬件实现效率是一个重要评价指标.因此, 本文使用高层次综合工具(High-level synthesis, HLS), 针对CRYSTALS-KYBER的三个主模块(密钥生成, 密钥封装和密钥解封装), 在不同参数集下探索了硬件设计的实现和优化空间.作为一种快速便捷的电路设计方法, HLS可以用来对不同算法的硬件实现进行高效和便捷的探索.本文利用该工具, 对CRYSTALS-KYBER的软件代码进行了分析, 并尝试不同的组合策略来优化HLS硬件实现结果, 并最终获得了最优化的电路结构.同时, 本文编写了tcl-perl协同脚本, 以自动化地搜索最优优化策略, 获得最优电路结构.实验结果表明, 适度优化循环和时序约束可以大大提高HLS综合得到的KYBER电路性能.与已有的软件实现相比, 本文具有明显的性能优势.与 HLS 实现工作相比, 本文对 Kyber-512 的优化使得封装算法的性能提高了 75%, 解封装算法的性能提高了55.1%.与基准数据相比, 密钥生成算法的性能提高了 44.2%.对于 CRYSTALS-KYBER 的另外两个参数集(Kyber-768 和Kyber-1024), 本文也获得了类似的优化效果.