CN114297571A - 一种适用于格密码算法的多项式乘法硬件实现系统 - Google Patents
一种适用于格密码算法的多项式乘法硬件实现系统 Download PDFInfo
- Publication number
- CN114297571A CN114297571A CN202111649271.6A CN202111649271A CN114297571A CN 114297571 A CN114297571 A CN 114297571A CN 202111649271 A CN202111649271 A CN 202111649271A CN 114297571 A CN114297571 A CN 114297571A
- Authority
- CN
- China
- Prior art keywords
- unit
- calculation
- control unit
- polynomial
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明属于信息安全硬件电路设计领域,公开了一种适用于格密码算法的多项式乘法硬件实现系统,包括运算控制单元、存储控制单元、存储器单元、数论变换单元、参数运算单元;所述运算控制单元用于对所述多项式乘法硬件实现系统的计算流程进行控制;所述存储控制单元用于控制存储器单元中数据的读写地址;存储控制单元对运算控制单元发出的控制信号进行解析,以实现数论变换单元、参数运算单元在计算前所需要从存储器单元读取或计算后向存储器单元写入的数据的地址进行控制;所述存储器单元由多个SRAM组成,用于存放多项式数据、各类参数、计算中间数据和计算结果。本系统进行了硬件单元的复用,有效地减少了硬件资源的使用,提高了硬件利用率。
Description
技术领域
本发明属于信息安全硬件电路设计领域,尤其涉及一种适用于格密码算法的快速多项式乘法计算单元硬件实现系统。
背景技术
量子计算的发展给现有的公钥密码体制的安全性带来巨大的挑战。量子计算研究中的Shor算法实现了在多项式时间内求解大整数分解问题,这意味着包括RSA算法在内的一批以大整数分解问题为基础的公钥密码算法已不再安全。格密码系统作为新一代的抗量子密码体制得到了密码学研究者们的广泛关注。美国国家标准与技术研究院(NationalInstitute of Standards and Technology,NIST)从2016年就开始征集抗量子计算攻击的密码算法标准。NIST在2020年公布的后量子密码标准竞赛的第三轮入选的7个算法中,有5个都属于格密码的范畴。同样地,在2020年度的国际三大密码学年会上,格密码体制作为后量子密码中最重要的一种也是研究的一大热点。除了其抗量子计算攻击的特性,格密码还能构造一些新的密码学算法及应用,如09年由gentry提出的首个全同态加密算法就是基于理想格构造的,而后Brakerski和Vaikuntanathan基于格密码的一种假设错误学习(Learning with Error,LWE)提出来一种新的全同态加密系统。
现有的许多格密码算法是基于环上错误学习(Ring Learning with Error,R-LWE)构造的,这类算法的大量运算都是在多项式环上进行的,多项式乘法是其最核心的底层运算,并且产生大量的时间开销。因此,对多项式乘法快速运算的研究能够大大提高格密码算法的计算效率。使用快速数论变换(Number Theoretic Transform,NTT)来计算多项式乘法是一种有效的优化方法,基于NTT的多项式乘法将时间复杂度从O(n2)降低到线性复杂度O(nlogn)。数论变换是快速傅里叶变换FFT在有限域上的推广,NTT继承了FFT的思想,并使用有限域上的原单位根来取代FFT中的复平面上的单位根,以实现在多项式环上快速地计算多项式乘法。此外,NTT算法有较高的计算并行度,硬件电路可以利用其并行度来提高计算速度。因此,通过硬件电路实现多项式乘法快速计算对于提升格密码算法的计算效率很有意义。
发明内容
针对多项式乘法的特性,本发明基于NTT算法,提出一种适用于格密码算法的多项式乘法硬件实现系统,利用基于NTT算法中较高的并行度实现多项式乘法的快速计算。具体技术方案如下:
一种适用于格密码算法的多项式乘法硬件实现系统,包括运算控制单元、存储控制单元、存储器单元、数论变换单元、参数运算单元;其特征在于:
所述运算控制单元用于对所述多项式乘法硬件实现系统的计算流程进行控制;
所述存储控制单元用于控制存储器单元中数据的读写地址;存储控制单元对运算控制单元发出的控制信号进行解析,以实现数论变换单元、参数运算单元在计算前所需要从存储器单元读取或计算后向存储器单元写入的数据的地址进行控制;
所述存储器单元由多个SRAM组成,用于存放计算过程中的多项式数据、各类参数、计算中间数据和计算结果。
进一步的,所述数论变换单元用于完成数论变换运算和逆数论变换运算。
进一步的,所述参数运算单元用于完成参数生成、参数运算和多项式乘法运算。
进一步的,所述数论变换单元由多个蝶形计算单元组成,蝶形计算单元用于数论变换和逆数论变换中的蝶形计算,
进一步的,所述蝶形计算单元包括模乘单元、模加单元、模减单元和多个寄存器。
进一步的,所述模乘单元为蒙哥马利模乘单元,由乘法器和蒙哥马利模约简组合构成。
本发明的适用于格密码算法的多项式乘法硬件实现系统具有以下优点:
1.本硬件实现系统的硬件架构具有高并行度,能够充分利用多项式乘法计算过程中可并行计算的部分,大大提高多项式乘法的计算效率。
2.本系统均使用硬件实现,针对数论变换和逆数论变换过程中相同的计算,本系统进行了硬件单元的复用,有效地减少了硬件资源的使用,提高了硬件利用率,同时保证较高的预算性能。
附图说明
图1是基于NTT的多项式乘法运算流程图;
图2是本发明多项式乘法硬件实现系统的硬件架构图;
图3是实施例中蝶形计算单元的硬件架构图;
图4是实施例中蒙哥马利模约简单元的硬件架构图;
图5a和图5b分别是实施例中模加单元和模减单元的硬件架构图;
具体实施方式
以下将结合具体实施例及附图对本发明进一步阐述。
如图1所示,本发明的多项式乘法硬件实现系统所遵循的基于NTT的多项式乘法的运算流程,包括如下步骤:
本发明实施例展示了一种适用于格密码算法的多项式乘法硬件实现系统。本发明实施例依照前述的基于NTT的多项式快速乘法算法进行硬件实现,在参数配置上可支持小于216且适用于格密码算法的模数,本系统默认使用参数为模数q=12298,阶数n=1024。本系统计算过程中的所有数据均在以q为模数的有限域Zq中,参与计算的多项式均在多项式环Rq=Zq[X]/(Xn+1)上,ω为Zq中的n阶原单位根,ψ为2n阶原单位根。
如图2所示,本发明的适用于格密码算法的多项式乘法硬件系统,包括运算控制单元、存储控制单元、存储器单元、数论变换单元、参数运算单元。该系统的计算流程如下:外界数据与信号通过运算控制单元进行配置,数据通过存储控制单元存入存储器单元。当系统配置完成后,运算控制单元的状态机开始执行。先由参数运算单元对多项式数据进行预处理,预处理完成后由数论变换单元开始计算;当所有多项式系数计算完成,由参数运算单元将变换后的两多项式的对应项相乘,结果再由数论变换单元执行逆数论变换;最终经过参数运算单元的后处理,整个多项式乘法运算完成。
所述运算控制单元按照图1的多项式乘法运算流程对系统中各硬件单元进行控制。如在控制数论变换单元计算数论变换或逆数论变换时,运算控制单元需要控制参数运算单元计算出相应的参数并输入数论变换单元进行计算;同时运算控制单元根据当前运算状态向存储控制单元发出数据读写的地址信号。
所述存储控制单元用于对RAM中数据读写地址的控制。
所述存储单元由多块RAM组成,并且每份数据都会同时存储在两块RAM中作为备份,以供数论变换单元中并行的蝶形计算单元同时读写数据。
所述数论变换单元是本系统的核心单元,用于执行数论变换和逆变换运算。所述数论变换单元中有多条并行的蝶形计算路径(路径的数量可根据所需并行度高低设置),在每条蝶形计算路径上由多个蝶形计算单元组成流水线。本发明实施例实现的数论变换单元遵循的是Cooley-Tukey数论变换算法,对于该算法在此不做专门阐述。
所述参数运算单元主要由蒙哥马利模乘单元组成,用于计算数论变换参数(如原单位根ω和预计算旋转因子ψ的幂,以及数论变换后多项式对应项的乘积。对于数论变换中的上述参数,本实施例采用的是预存初始值ω与ψ,然后实时计算出所需要的幂;相比将所有参数预存在存储器中,虽然会产生一定的延时,但能够节省很大的存储资源。
所述蝶形计算单元用于执行数论变换运算中的蝶形计算。如图3所示,蝶形计算单元主要由一个蒙哥马利模乘单元、一个模加单元、一个模减单元及多个寄存器组成。通过一个多路选择器来选择参与计算的参数,以实现数论变换或逆变换的切换。图3中,蝶形计算单元有两条数据通路,较低的一条数据通路上有一个蒙哥马利模乘单元。为了使模加单元/模减单元的两个输入端数据同时到达,在较高的数据通路上插入一组寄存器来平衡模乘单元的延时,使整个蝶形计算单元形成一个流水线结构。
对于蝶形计算单元中使用到的模乘运算,本发明实施例采用蒙哥马利模乘算法实现。蒙哥马利模约简是一种常用的快速取模算法,本发明实施例中的蒙哥马利模约简单元遵循以下算法实现:
步骤1:将输入进来的32位乘积分为高16位Ah和低16位Al,用低16位Al与模数的逆q-1相乘得到B;
步骤2:乘积结果B对216取模,得到低16位Bl,再与模数q相乘得到C;
步骤3:乘积结果C再右移16位,得到高16位Ch,用Ah减去Ch得到r;
步骤4:比较r和q,若r>q则最终结果为r-q,否则最终结果为r。
基于此,本发明实施例提供一种蒙哥马利模约简单元的硬件架构,如图4所示。乘法器和蒙哥马利模约简组合构成一个蒙哥马利模乘单元。为了提升硬件单元的工作频率,蒙哥马利模约简中的每个乘法器后都插入了寄存器,同时整个硬件单元也形成了流水线结构,以实现较高的数据吞吐。
进一步地,实施例提供了一种模加单元的硬件架构,如图5a所示。模加单元需要一个时钟周期来执行一次模加运算。模加单元使用模数q的二进制补码与(A+B)结果C相加,并通过加法器的进位来判断C是否大于q,若进位为1则说明C>q,输出C-q作为模加结果。这种硬件架构省去了一个比较器。
实施例还提供了一种模减单元的硬件架构,如图5b所示。模减单元的电路与模加单元相似,同样可以在一个时钟周期得到模减结果。将A与B的二进制补码相加,若进位为1则说明A<B,此时将A-B的结果加上q作为输出结果;若进位为0,则说明A>B,同时因为A和B均为小于q的数,所以A-B为小于q的正整数,可以作为结果输出。
本发明实施例通过Verilog HDL实现。支持q<216,n<1024的多项式计算。按照本发明提供的多项式乘法硬件实现系统架构实现的适用于格密码算法的多项式乘法硬件加速器,经过测试得出其所实现的运行结果正常。在SMIC55nm工艺下综合,频率达到350MHz。多项式乘法运算的仿真结果,与ARM cortex-M4平台的软件实现相比,性能有大幅提升。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (6)
1.一种适用于格密码算法的多项式乘法硬件实现系统,包括运算控制单元、存储控制单元、存储器单元、数论变换单元、参数运算单元;其特征在于:
所述运算控制单元用于对所述多项式乘法硬件实现系统的计算流程进行控制;
所述存储控制单元用于控制存储器单元中数据的读写地址;存储控制单元对运算控制单元发出的控制信号进行解析,以实现数论变换单元、参数运算单元在计算前所需要从存储器单元读取或计算后向存储器单元写入的数据的地址进行控制;
所述存储器单元由多个SRAM组成,用于存放计算过程中的多项式数据、各类参数、计算中间数据和计算结果。
2.如权利要求1所述的适用于格密码算法的多项式乘法硬件实现系统,其特征在于:所述数论变换单元用于完成数论变换运算和逆数论变换运算。
3.如权利要求1所述的适用于格密码算法的多项式乘法硬件实现系统,其特征在于:所述参数运算单元用于完成参数生成、参数运算和多项式乘法运算。
4.如权利要求2所述的适用于格密码算法的多项式乘法硬件实现系统,其特征在于:所述数论变换单元由多个蝶形计算单元组成,蝶形计算单元用于数论变换和逆数论变换中的蝶形计算。
5.如权利要求4所述的适用于格密码算法的多项式乘法硬件实现系统,其特征在于:所述蝶形计算单元包括模乘单元、模加单元、模减单元和多个寄存器。
6.如权利要求5所述的适用于格密码算法的多项式乘法硬件实现系统,其特征在于:所述模乘单元为蒙哥马利模乘单元,由乘法器和蒙哥马利模约简组合构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111649271.6A CN114297571A (zh) | 2021-12-24 | 2021-12-24 | 一种适用于格密码算法的多项式乘法硬件实现系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111649271.6A CN114297571A (zh) | 2021-12-24 | 2021-12-24 | 一种适用于格密码算法的多项式乘法硬件实现系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114297571A true CN114297571A (zh) | 2022-04-08 |
Family
ID=80972772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111649271.6A Pending CN114297571A (zh) | 2021-12-24 | 2021-12-24 | 一种适用于格密码算法的多项式乘法硬件实现系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297571A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115765990A (zh) * | 2022-11-02 | 2023-03-07 | 华中科技大学 | 一种后量子密码算法的ntru安全协处理器 |
CN115801226A (zh) * | 2022-11-02 | 2023-03-14 | 武汉亦芯微电子有限公司 | 后量子密码算法crystals-kyber安全处理器 |
CN116308989A (zh) * | 2022-12-09 | 2023-06-23 | 杭州后量子密码科技有限公司 | 一种全同态快速数论变换的gpu加速方法 |
CN116865979A (zh) * | 2023-09-05 | 2023-10-10 | 南京航空航天大学 | 一种基于后量子数字签名的mdc-ntt架构 |
CN117714054A (zh) * | 2024-02-01 | 2024-03-15 | 山东大学 | 基于数论变换的密钥封装轻量化方法、系统、介质及设备 |
-
2021
- 2021-12-24 CN CN202111649271.6A patent/CN114297571A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115765990A (zh) * | 2022-11-02 | 2023-03-07 | 华中科技大学 | 一种后量子密码算法的ntru安全协处理器 |
CN115801226A (zh) * | 2022-11-02 | 2023-03-14 | 武汉亦芯微电子有限公司 | 后量子密码算法crystals-kyber安全处理器 |
CN115765990B (zh) * | 2022-11-02 | 2023-07-18 | 华中科技大学 | 一种后量子密码算法的ntru安全协处理器 |
CN115801226B (zh) * | 2022-11-02 | 2024-04-09 | 武汉亦芯微电子有限公司 | 一种后量子密码算法crystals-kyber安全处理器 |
CN116308989A (zh) * | 2022-12-09 | 2023-06-23 | 杭州后量子密码科技有限公司 | 一种全同态快速数论变换的gpu加速方法 |
CN116308989B (zh) * | 2022-12-09 | 2023-10-13 | 杭州后量子密码科技有限公司 | 一种全同态快速数论变换的gpu加速方法 |
CN116865979A (zh) * | 2023-09-05 | 2023-10-10 | 南京航空航天大学 | 一种基于后量子数字签名的mdc-ntt架构 |
CN116865979B (zh) * | 2023-09-05 | 2023-11-10 | 南京航空航天大学 | 一种基于后量子数字签名的mdc-ntt装置 |
CN117714054A (zh) * | 2024-02-01 | 2024-03-15 | 山东大学 | 基于数论变换的密钥封装轻量化方法、系统、介质及设备 |
CN117714054B (zh) * | 2024-02-01 | 2024-04-23 | 山东大学 | 基于数论变换的密钥封装轻量化方法、系统、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114297571A (zh) | 一种适用于格密码算法的多项式乘法硬件实现系统 | |
Zhang et al. | Highly efficient architecture of NewHope-NIST on FPGA using low-complexity NTT/INTT | |
De Clercq et al. | Efficient software implementation of ring-LWE encryption | |
EP2009543B1 (en) | Speeding up galois counter mode (GCM) computations | |
Kim et al. | Hardware architecture of a number theoretic transform for a bootstrappable RNS-based homomorphic encryption scheme | |
Zhang et al. | An efficient and parallel R-LWE cryptoprocessor | |
Wang et al. | FPGA implementation of a large-number multiplier for fully homomorphic encryption | |
CN113628094B (zh) | 一种基于gpu的高吞吐量sm2数字签名计算系统及方法 | |
CN112464296B (zh) | 一种用于同态加密技术的大整数乘法器硬件电路 | |
Cao et al. | Accelerating fully homomorphic encryption over the integers with super-size hardware multiplier and modular reduction | |
WO2010048719A1 (en) | Method and apparatus for modulus reduction | |
CN103761068A (zh) | 优化的蒙哥马利模乘方法、模平方方法和模乘硬件 | |
Feng et al. | Accelerating an FHE integer multiplier using negative wrapped convolution and ping-pong FFT | |
Koppermann et al. | 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices | |
CN113342310B (zh) | 一种应用于格密码的串行参数可配快速数论变换硬件加速器 | |
KR20230141045A (ko) | 암호 프로세서 장치 및 이를 채용하는 데이터 처리 장치 | |
CN109144472B (zh) | 一种二元扩域椭圆曲线的标量乘法及其实现电路 | |
CN112819168B (zh) | 一种格密码加解密中的环多项式乘法器电路 | |
CN112799634B (zh) | 一种基于基22mdc ntt结构的高性能环多项式乘法器 | |
Liu et al. | Efficient digit-serial KA-based multiplier over binary extension fields using block recombination approach | |
CN109284085B (zh) | 一种基于fpga的高速模乘和模幂运算方法及装置 | |
CN116679905A (zh) | 一种基于bram的迭代型ntt交错存储系统 | |
CN111786775A (zh) | 基于基转换的sm4算法s盒的实现方法及系统 | |
Nguyen et al. | High-speed NTT Accelerator for CRYSTAL-Kyber and CRYSTAL-Dilithium | |
CN116893797A (zh) | 一种基于fifo存储的迭代型ntt系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |