SNTRUP后量子密码算法硬件设计研究
摘要
近些年来,量子技术研究取得了突破性的进展,这意味着在不久的将来,量子计
算会被应用到各个领域。然而量子计算的发展会对传统的密码体制带来前所未有的冲
击,因此亟需开展后量子密码(Post-QuantumCryptography)算法研究,从而保证后
量子时代信息的安全。现有的后量子密码算法中,基于格的密码算法占据着主流地位,
因格密码算法具有结构简单、安全性高等特点,格基后量子密码算法已经成为密码学
界的研究重点。SNTRUP(StreamlinedNTRUPrime)是一种格基后量子密码算法,
本文在详细分析该算法原理的基础上,提出了一种低资源消耗的硬件实现方案,此方
案能够快速的执行SNTRUP算法。
首先对SNTRUP算法的实现原理及工作流程进行研究分析,确定了该硬件设计
的总体方案,并对核心模块进行了优化设计以降低资源占用。针对算法中资源消耗最
多的多项式乘法运算单元,开展了多项式乘法算法研究,并提出了一种基于三层
Karatsuba算法与Schoolbook算法的乘法器设计方案,该乘法器利用三层Karatsuba算
法将两个较为复杂的多项式的乘法运算转化为多个更小粒度的多项式乘法运算,通过
降低乘法运算的次数,达到提高计算效率的目的。针对SHA-512模块、编码和解码
模块、Short多项式生成模块等,均进行了精简化的架构设计,从而降低系统资源开
销。最后完成密钥生成、封装、解封装顶层模块硬件架构设计,顶层模块以
SNTRUP内层算法模块为核心,在其外围配置其他核心模块与电路,从而实现
SNTRUP算法的全部功能。
在Vivado2020.2中进行硬件设计的功能仿真与实现,从仿真结果可以看出,该
设计能够正确的完成SNTRUP算法密钥生成、封装和解封装操作。Vivado给出的时
序报告显示本设计最高工作频率为169MHz。从资源使用报告可知,当参数集为
sntrup761时,该设计共消耗17766个LUT、1387个LUTRAM、7198个FF及19个
DSP。与国际上最新的相关成果对比,本文所提出的硬件设计在性能、资源消耗方面
具有一定的优势,适用于资源敏感且对速度有较高要求的边缘计算场景。
关键词:后量子密码;格密码;StreamlinedNTRUPrime;硬件设计
SNTRUP后量子密码算法硬件设计研究
Abstract
Researchonquantumtechnologyhasmadestridesinrecentyears,whichsuggests
thatquantumcomputingwillsoonbeusedinavarietyoffields.However,thedevelopment
ofquantumcomputingwillbringunprecedentedimpactonthetraditionalcryptography
system,sothereisanurgentneedtoresearchpost-quantumcryptographyalgorithmsto
ensurethesecurityofinformationinthepost-quantumera.Amongtheexistingpost-
quantumcryptographyalgorithms,lattice-basedcryptographyalgorithmsoccupythe
mainstreamposition.Becauselatticecryptographyalgorithmshavethecharacteristicsof
simplestructureandhighsecurity,lattice-basedpost-quantumcryptographyalgorit