掌桥专利:专业的专利平台
掌桥专利
首页

一种用于后量子密码算法的乘法器硬件架构

文献发布时间:2024-04-18 19:58:26


一种用于后量子密码算法的乘法器硬件架构

技术领域

本发明涉及乘法器硬件设计领域,特别是涉及一种用于后量子密码算法的乘法器硬件架构。

背景技术

近些年来,量子技术研究取得了突破性的进展,这意味着在不久的将来,量子计算会被应用到各个领域。然而量子计算的发展会对传统的密码体制带来前所未有的冲击,量子计算机采用量子比特代替传统计算机的比特位,量子比特具备0和1两种状态,其可以通过与空间上相互独立的其他量子比特共享状态来实现高效并行计算。Shor算法和Grover算法的提出,标志着量子计算机可以在多项式时间内攻破传统的公钥加密算法,同时分组加密算法的安全性也被大幅削弱。因此亟需开展后量子密码(Post-Quantum Cryptography)算法研究,从而保证后量子时代信息的安全。

StreamlinedNTRU Prime是一种达到IND-CCA2安全级别,且采用密钥封装机制(Key EncapsulationMechanism,KEM)的后量子密码算法,Streamlined NTRU Prime算法结构和原始NTRU算法类似,其在经典NTRU算法基础上去除了分圆环结构以缩小攻击面,从而达到增强算法抗攻击能力、提高安全性的目的。StreamlinedNTRU Prime是NTRU Prime算法族的第一个完整算法,该算法具有更小的密文和更快的封装与解封装速度,但其密钥产生的速度较慢。算法分为两个层次,内层采用的是非对称加密算法,而外层采用密钥封装算法。

StreamlinedNTRU Prime算法的相关符号可以表示为:假设存在p、q和w,p和q为素数,w为正整数。其中2p≥3w、q≥16w+1且x

在StreamlinedNTRU Prime算法中,主要包括两种类型的多项式乘法运算,一种为

采用硬件实现StreamlinedNTRU Prime算法与软件实现的形式相比,在资源消耗、安全性、功耗、速度上都具有得天独厚的优势,其既可以应用于传统的高性能设备,也可以运行在资源受限的物联网终端设备。在算法密钥生成、封装、解封装三个阶段的操作对象大都为多项式,而多项式的乘法运算在算法的三个阶段多次被使用,并且乘法运算单元是系统中资源占用最多的模块,因此选择合适的多项式乘法算法,对于提高StreamlinedNTRUPrime算法运行效率、降低算法硬件实现功耗及资源消耗具有重要意义。

Peng提出一种基于Schoolbook算法的多项式乘法模块设计方案,该设计虽然结构较为简单,但存在计算速度较慢、工作频率低等问题。在性能要求较高的场景,此方案的优势就无法凸显,较难与外围硬件设备实现速度匹配。

因此,如何提供一个用于StreamlinedNTRU Prime算法的低资源消耗、高性能的多项式乘法运算硬件架构,成为本领域科研人员亟待解决的问题。

发明内容

为了克服现有技术的不足,本发明的目的是提供一种用于后量子密码算法的乘法器硬件架构。

为实现上述目的,本发明提供了如下方案:

一种用于后量子密码算法的乘法器硬件架构,包括:第一层Karatsuba模块、多个第二层Karatsuba模块、第三层Karatsuba模块和Schoolbook乘法模块;所述第一层Karatsuba模块分别与三个所述第二层Karatsuba模块连接,每个所述第二层Karatsuba模块分别与三个所述第三层Karatsuba模块连接;每个所述第三层Karatsuba模块均与一个所述Schoolbook乘法模块连接;

所述Schoolbook乘法模块用于并行进行三个子多项式的乘法运算,并行完成低位、中间位及高位乘法运算;所述第一层Karatsuba模块和所述第二层Karatsuba模块均用于对两个输入多项式各自的高位与低位对应位系数求和,将求和所得结果进行取模运算;所述第三层Karatsuba模块用于分别负责低位、中间位、高位乘法运算。

优选地,同一层的Karatsuba模块内部实现原理相同;同一层的Karatsuba模块的输入、输出端口位宽不同。

优选地,每个Karatsuba模块均包括四个双端口RAM,所述四个双端口RAM分别为RAM_0、RAM_1、RAM_2和RAM_result,RAM_0、RAM_1和RAM_2分别用于暂存输入至下层Karatsuba模块或Schoolbook模块的数据,RAM_result则存储下层模块所产生的计算结果。

优选地,所述Schoolbook模块中设置有三个RAM,所述三个RAM分别用于存储低位、中间位、高位产生的数据,RAM采用双口设计,双口均可进行读写操作。

优选地,所述Schoolbook模块的输入端包括时钟信号clock、复位信号reset、低位输入数据din_0、中间位输入数据din_1、高位输入数据din_2;所述Schoolbook模块的输出端包括完成信号done、输出有效信号dout_valid、低位输出数据dout_0、中间位输出数据dout_1、高位输出数据dout_2。

优选地,所述第一层Karatsuba模块的输入端包括时钟信号clock、多项式A(x)输入din_a、多项式B(x)输入din_b、复位信号reset及开始信号start;所述第一层Karatsuba模块的输出端包括完成信号done、计算结果输出dout及输出有效信号dout_valid。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明提供了一种用于后量子密码算法的乘法器硬件架构,包括:第一层Karatsuba模块、多个第二层Karatsuba模块、第三层Karatsuba模块和Schoolbook乘法模块;所述第一层Karatsuba模块分别与三个所述第二层Karatsuba模块连接,每个所述第二层Karatsuba模块分别与三个所述第三层Karatsuba模块连接;每个所述第三层Karatsuba模块均与一个所述Schoolbook乘法模块连接;所述Schoolbook乘法模块用于并行进行三个子多项式的乘法运算,并行完成低位、中间位及高位乘法运算;所述第一层Karatsuba模块和所述第二层Karatsuba模块均用于对两个输入多项式各自的高位与低位对应位系数求和,将求和所得结果进行取模运算;所述第三层Karatsuba模块用于分别负责低位、中间位、高位乘法运算。本发明基于三层Karatsuba算法与Schoolbook算法的乘法器,采用三层Karatsuba算法可以有效降低运算过程中子多项式的乘法次数,从而提高多项式乘法的计算速度。并针对乘法器的硬件架构进行了精简化的设计,降低了乘法器的硬件资源消耗。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的乘法器硬件架构核心模块层次示意图;

图2为本发明实施例提供的Schoolbook算法示意图;

图3为本发明实施例提供的Schoolbook模块结构示意图;

图4为本发明实施例提供的顶层Karatsuba模块结构示意图;

图5为本发明实施例提供的第三层Karatsuba模块结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种用于后量子密码算法的乘法器硬件架构,基于三层Karatsuba算法与Schoolbook算法的乘法器,采用三层Karatsuba算法可以有效降低运算过程中子多项式的乘法次数,从而提高多项式乘法的计算速度。并针对乘法器的硬件架构进行了精简化的设计,降低了乘法器的硬件资源消耗。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示,本发明为适用于StreamlinedNTRU Prime算法的多项式乘法器硬件架构,主要包括第一层Karatsuba模块(图中为顶层Karatsuba模块)、多个第二层Karatsuba模块、第三层Karatsuba模块和Schoolbook乘法模块。

其中,Schoolbook模块为Schoolbook算法的硬件实现,Schoolbook算法的示意图如图2所示,其为两个三次多项式的乘积示意图。假设存在两个多项式A(x)和B(x),两个多项式的乘积结果用C(x)表示。固定C(x)的幂次x

其中,Karatsuba模块为Karatsuba算法的硬件实现,Karatsuba算法比Schoolbook算法的求解速度更快,该算法通过降低运算过程中子多项式的乘法次数来提高计算效率。对于StreamlinedNTRU Prime算法而言,单层Karatsuba算法将多项式分成两个部分,每部分系数个数均为

应用多层Karatsuba算法可以将子多项式的粒度进一步缩减,计算速度相较于单层Karatsuba算法具有一定提升。假设多项式A(x)和B(x)可以表示为:

当p为偶数时,可以把A(x)拆分为A

则A(x)和B(x)可以表示为:

定义三个多项式T

则多项式乘法计算结果可以表示为

当p为奇数时,可以把A(x)拆分为A

则A(x)和B(x)可以表示为:

则多项式乘法计算结果可以表示为C(x)=T

当多项式项数p为偶数时,多项式可以均匀的分为两个部分,A

采用Karatsuba算法计算获得多项式乘法结果C(x),只需要进行3次系数个数为p/2级别的多项式乘法运算T

如图3所示为Schoolbook模块结构示意图,该模块输入端包括时钟信号clock、复位信号reset、低位输入数据din_0、中间位输入数据din_1、高位输入数据din_2。输出端包括完成信号done、输出有效信号dout_valid、低位输出数据dout_0、中间位输出数据dout_1、高位输出数据dout_2。低位和高位输入数据用于计算T

将每次累加结果输入取模运算单元中,取模单元根据取模运算规则对结果处理,最终输出一个属于

如图4为顶层Karatsuba模块结构示意图,顶层Karatsuba模块输入端包括时钟信号clock、多项式A(x)输入din_a、多项式B(x)输入din_b、复位信号reset及开始信号start。输出端包括完成信号done、计算结果输出dout及输出有效信号dout_valid。顶层Karatsuba模块划分的子问题由第二层Karatsuba模块负责进一步分解并向下传递,三个二层Karatsuba模块Karatsuba_0、Karatsuba_1、Karatsuba_2分别用于计算T

如图5为第三层Karatsuba模块结构示意图,其核心为Schoolbook乘法模块。第三层Karatsuba模块的输入端口和输出端口设置与顶层Karatsuba模块类似,但输入端口位宽略有不同。由于在计算中间位乘法前需要对子多项式对应位置系数求和,

以上仅是本发明的优选实施方案,本发明的保护范围并不仅限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

本发明所要解决的技术问题以及与现有技术相比优点是什么?

StreamlinedNTRU Prime算法的密钥生成、封装、解封装三个阶段的操作对象大都为多项式,而多项式的乘法运算在算法的三个阶段多次被使用,其效率对StreamlinedNTRUPrime算法实现的性能具有显著影响。本发明为基于三层Karatsuba算法与Schoolbook算法的乘法器,采用三层Karatsuba算法可以有效降低运算过程中子多项式的乘法次数,从而提高多项式乘法的计算速度。并针对乘法器的硬件架构进行了精简化的设计,降低了乘法器的硬件资源消耗。

本发明适用于Streamlined NTRU Prime算法的多项式乘法器硬件实现具有以下优点:

1.本发明利用三层Karatsuba算法与Schoolbook算法完成多项式乘法运算,三层Karatsuba算法能够将两个原始多项式的乘法运算转化为多个子多项式的乘法运算,有效降低运算过程中乘法计算的代价,从而提高运算速度。子多项式的乘法运算在Schoolbook模块中实现,Schoolbook模块具有结构简单的特点,故采用Schoolbook模块可以有效降低硬件资源消耗。

2.本发明的Karatsuba模块和Schoolbook模块中,均使用了双端口RAM对数据进行缓存。在模块中设计了3个分别用于暂存高位、中间位、低位输入的RAM,及一个用于缓存计算结果的RAM,从而有效的提高了存储效率。

3.本发明的硬件设计具有较高的模块复用性,当需要调整算法的安全级别时,只需要针对部分模块的端口位宽进行调整,而无需重新设计,可以降低开发成本。

4.本发明的硬件设计具有较高的并行性,能够充分利用现有的硬件资源,并行完成多项式乘法运算过程中可并行执行的运算,从而提高计算效率。

5.本发明提出的针对StreamlinedNTRU Prime算法的多项式乘法器硬件,具有较高的推广性,具备高计算速度、低资源消耗等优势,能够满足物联网终端设备对性能与功耗的要求。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 用于后量子密码算法Kyber的密文压缩及解压电路
  • 用于资源受限处理器的后量子密码算法实现方法及系统
技术分类

06120116487751