CN110990767A - 一种应用于格密码体制的可重构数论变换单元和方法 - Google Patents
一种应用于格密码体制的可重构数论变换单元和方法 Download PDFInfo
- Publication number
- CN110990767A CN110990767A CN201911211620.9A CN201911211620A CN110990767A CN 110990767 A CN110990767 A CN 110990767A CN 201911211620 A CN201911211620 A CN 201911211620A CN 110990767 A CN110990767 A CN 110990767A
- Authority
- CN
- China
- Prior art keywords
- output
- input
- data
- adder
- bit carry
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开了一种应用于格密码体制的可重构数论变换单元和方法,属于信息安全算法的电路实现领域。本发明包括输入输出控制器、蝶形运算单元、地址运算器、状态控制器、动态重构控制器;输入输出控制器用于控制对外部储存器的数据读写操作,蝶形运算单元用于对输入的数据实现模乘运算和蝶形运算,地址运算器用于实现对数据地址的运算,并为蝶形运算单元提供旋转因子和逆元,动态重构控制器用于控制参数的选择、运算长度的控制以及模的选择,状态控制器用于控制整个可重构数论变换单元的工作流程。本发明通过动态可重构设计,能设置不同参数及对数论变换单元内相关随机存储器中存储的数据进行更新,以实现多种模、多种数据个数下的数论变换。
Description
技术领域
本发明属于信息安全算法的电路实现领域,更具体地,涉及一种应用于格密码体制的可重构数论变换单元和方法。
背景技术
Shor提出的量子算法将基于大整数分解的RSA加密算法(Rivest ShamirAdleman)与基于离散对数问题的椭圆曲线密码算法(Elliptic Curve Cryptography,ECC)指数级的破解运算变成多项式级别,使得理论上量子计算能够破解RSA与ECC。2017年IBM商业量子计算服务的推出与量子计算机的不断发展,使得传统公钥加密体制的安全性已经面临着越来越严峻的挑战。
量子计算机的发展使得后量子加密算法,即能在传统计算机上实现的能抵御量子计算攻击的加密算法受到大量的关注。现有的后量子密码加密算法可分为六类:基于哈希的算法、基于多变量的算法、基于格的算法、基于超奇异同源的算法、基于编码的算法、其它类型的算法。其中基于格的算法具有很强的安全性,能够适用于密钥交换、数字签名以及全同态加密等,因此受到了相当的关注与研究。
格密码体制的安全性是基于格的最短向量问题(Shortest Vector Problem,SCP)与最近向量问题(Closest Vector Problem,CVP)。SCP与CVP问题目前不存在量子算法能够在多项式时间内破解,因此是能够抗量子攻击的。目前在格密码体制中,多项式乘法运算的大开销与速度慢制约了其应用与发展。数论变换(number theoretic transforms,NTT)与傅里叶变换相比,在计算多项式乘法时不涉及精度以及浮点数,能够显著减少电路面积且易于实现。然而,现有的数论变换只能实现单一模、单一数据个数下的运算,使得其应用场景受到限制。因此,需要一种能够应用于格密码体制的可重构数论变换单元,使格密码体制应用于更多领域与场景。
发明内容
针对现有格密码体制运算存在的参数单一、应用场景受限的技术问题,本发明提供了一种应用于格密码体制的可重构数论变换单元,旨在通过动态重构进行多种不同参数下的数论变换运算,以便适用于多种应用场景,提高格密码体制运算的灵活性。
为实现上述目的,本发明提供了一种应用于格密码体制的可重构数论变换单元,包括输入输出控制器、蝶形运算单元、地址运算器、状态控制器、动态重构控制器;
所述输入输出控制器用于控制对外部储存器的数据读写操作,所述蝶形运算单元包括模乘运算单元、可重构模加器和可重构模减器,用于对输入的数据实现模乘运算和蝶形运算,所述地址运算器用于实现对数据地址的运算,并为蝶形运算单元提供旋转因子和逆元,所述动态重构控制器用于控制参数的选择、运算长度的控制以及模的选择,所述状态控制器用于控制整个可重构数论变换单元的工作流程。
进一步地,所述输入输出控制器的地址输出端、控制信号输出端分别与外部存储器的地址输入端、读写输入端相连;所述输入输出控制器还通过数据线与外部存储器双向连接;所述输入输出控制器的输出还与地址运算器的输入相连,用于动态重构中的数据输入;
所述蝶形运算单元与输入输出控制器双向连接,进行蝶形运算及模乘结果存储器的动态重构。
进一步地,所述动态重构控制器的输入与外部重构控制端相连,用于外部对该可重构数论变换单元进行动态重构控制;所述动态重构控制器的第一输出端与蝶形运算单元的输入端相连,用于对蝶形运算单元中的运算进行动态重构控制;所述动态重构控制器的第二输出端与地址运算器的输入端相连,用于控制地址运算器运算出的地址上限以及运算轮数;所述动态重构控制器的第三输出端与状态控制器的输入端相连,用于实现状态控制器的重构控制。
进一步地,所述可重构模加器包括第一32位进位传播加法器、第二32位进位传播加法器、输出器、32位进位保留加法器、移位寄存器和输出选择器;
其中,所述第一32位进位传播加法器的两个输入端分别与外部输入的两个32位待求和数据相连,所述32位进位保留加法器的三个输入端分别与外部输入的两个32位待求和数据及32位模相连;
所述32位进位保留加法器的第一输出端连接第二32位进位传播加法器的第一输入端,其第二输出端连接所述移位寄存器,所述移位寄存器的输出与所述第二32位进位传播加法器的第二输入端连接,用于选择相应的数据位数输出;
所述32位进位保留加法器的第二输出端和第二32位进位传播加法器的输出均与输出选择器的输入相连,用于参与输出选择器中的运算从而进行输出选择;所述输出选择器的输入还与外部输入的重构控制信号相连,用于得到相应的选择信号;
所述输出器的第一输入端与第一32位进位传播加法器的输出端连接,用于实现普通加法结果的输出;其第二输入端与第二32位进位传播加法器的第一输出端相连,用于减模加法结果的输出;其第三输入端与输出选择器的第一输出端相连,用于获得输出选择信号;其第四输入端与外部输入的重构控制信号相连,用于选择相应的数据位数输出。
进一步地,所述可重构模减器包括第一32位进位传播加法器、第二32位进位传播加法器、第三32位进位传播加法器、第四32位进位传播加法器、或非门、输出器、32位进位保留加法器、移位寄存器;
所述第一32位进位传播加法器的两个输入端与外部输入的数据端相连,第一32位进位传播加法器的第一输出端与所述第二32位进位传播加法器的第一输入端相连,用于传递求和数据;其第二输出端与或非门的输入端相连,用于控制输出器的输出选择;
所述第二32位进位传播加法器的第二输入端接收待运算数据,第二32位进位传播加法器的第一输出端输入第一路求和数据给输出器,其第二输出端与或非门的输入端相连,用于控制输出器的输出选择;或非门的输出传递数据选择信号到输出器。
进一步地,所述32位进位保留加法器的三个输入端接收外部输入的待运算数据和模,其第一输出端和第三32位进位传播加法器的第一输入端相连,用于传递求和数据,其第二输出端与移位寄存器的输入端相连,移位寄存器的输出端与第三32位进位传播加法器的第二输入端相连,用于传递移位后的进位数据;
所述第三32位进位传播加法器的输出与第四32位进位传播加法器的第一输入端相连,第四32位进位传播加法器的第二输入端与32位常数1相连,用于输入求和数据,第四32位进位传播加法器输出第二路求和数据至输出器;
所述输出器的输入端还与外部重构控制信号相连,用于配置输出的数据。
本发明还提供了上述可重构数论变换单元的变换方法包括以下步骤:
步骤一、动态重构控制器根据外部输入的重构信号选择预设的数据个数、数据位数以及模,传递给各模块进行运算,再使用外部存储器中的数据对蝶形运算单元中的除法结果存储器、地址运算器中的旋转因子以及逆元存储器进行数据更新;
步骤二、外部输入使能信号,在状态控制器的控制下,各模块开始工作:地址运算器将对应的地址经输入输出控制器传输给外部存储器,并生成对应的旋转因子传输给蝶形运算单元;输入输出控制器从一个外部存储器读出数据,根据设置信号将数据输送到蝶形运算单元中参与运算,蝶形运算单元将运算结果传输到输入输出控制器中,再写入另一个外部存储器;
步骤三、重复步骤二直到本轮蝶形运算完毕后,交换对两块外部存储器的读写控制,开始下一轮的蝶形运算;
步骤四、当所有蝶形运算结束,判断为数论变换正变换还是逆变换,若是正变换则结束并输出完成信号,若是逆变换则进入步骤五;
步骤五、状态控制器控制地址运算器输出对应的逆元,传输给蝶形运算单元;输入输出控制器从上次写入的外部储存器读取数据,送入蝶形运算单元中进行模乘运算,再将蝶形运算单元中得到的结果经输入输出控制器写入第二外部储存器;
步骤六、待所有数据通过模乘运算乘以逆元后,结束整个数论变换逆变换。
进一步地,所述可重构模加器的工作方法包括以下步骤:
所述可重构模加器通过两路加法运算分别实现普通加法与减去模后的加法,两路运算完成后选择正确的结果通过输出器输出;对于第一路,普通加法通过第一32位进位传播加法器运算后,直接将结果传输给输出器;对于第二路,32位进位保留加法器计算出一个初步的结果,将该结果传递给第二32位进位传播加法器,进位信息送入移位寄存器进行移位后传到第二32位进位传播加法器中,第二32位进位传播加法器将输入的数据求和送至输出器;
输出选择器获取32位进位保留加法器的进位数据,根据进位数据和重构控制信号判断加法结果是否大于模,如果小于模选择第一路的普通加法结果,如果大于或等于模则选择第二路的减模加法结果;输出器根据输出选择器传递的选择信号与重构控制信号,对加法结果不同位进行重组后再输出。
进一步地,所述可重构模减器的工作方法包括以下步骤:
所述可重构模减器通过普通减法和加模减法进行两路减法运算,然后在外部重构控制信号的控制下根据选择信号选择其中一路减法结果输出;
对于第一路普通减法,第一32位进位传播加法器将输入的数据与32位常数1相加;第二32位进位传播加法器将加1后的数据与待求和数据相加,计算出普通减法结果并传递给输出器,第二32位进位传播加法器的进位数据则送至或非门;
对于第二路加模减法,32位进位保留加法器将处理过的待运算数据送到第三32位进位传播加法器中,进位信息通过移位寄存器进行移位操作后送入第三32位进位传播加法器中进行求和;然后,将第三32位进位传播加法器的求和结果送至第四32位进位传播加法器中与32位常数1进行相加后,将加模减法结果送至输出器。
与现有技术相比,本发明所构思的以上技术方案通过动态可重构设计,能够设置不同数据个数、不同模及对数论变换单元内相关随机存储器中存储的数据进行更新,以此来实现多种模、多种数据个数下的数论变换运算;另外,本发明提供的应用于数论变换的可重构模加器、模减器,能够根据设置,实现对应不同模、不同数据位下的快速模加与模减计算,提高了运算的灵活性。
附图说明
图1为本发明实施例的一种应用于格密码体制的可重构数论变换单元结构图。
图2为本发明实施例的一种应用于格密码体制的可重构数论变换单元中所涉及的可重构模加器电路结构图。
图3为本发明实施例的一种应用于格密码体制的可重构数论变换单元中所涉及的可重构模减器电路结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例的一种应用于格密码体制的可重构数论变换单元结构图,该单元包括输入输出控制器11、蝶形运算单元12、地址运算器13、状态控制器14、动态重构控制器15。
其中,输入输出控制器11用于控制对外部储存器的读写、数据传输操作;蝶形运算单元12对输入的数据实现模乘运算以及蝶形运算;地址运算器13实现对数据地址的运算,并为蝶形运算单元提供旋转因子以及逆元;状态控制器14控制整个数论变换单元的工作流程;动态重构控制器15控制参数的选择、运算长度的控制以及模的选择。
所述输入输出控制器11的地址输出端与外部存储器的地址输入端相连,用于对外部存储器的地址控制;所述输入输出控制器11的控制信号输出端与外部存储器的读写输入端相连,用于对外部存储器进行读写控制;所述输入输出控制器11还通过数据线与外部存储器双向连接,用于输入输出控制器11与外部存储器间进行数据交换。所述输入输出控制器11的输出还与地址运算器的输入相连,用于动态重构中的数据输入。
所述蝶形运算单元12与输入输出控制器11双向连接,用于在输入输出控制器11与蝶形运算单元12中进行数据交换,进行蝶形运算及模乘结果存储器的动态重构。
所述地址运算器13的输出端与输入输出控制器11的输入端相连,用于输入输出控制器11与外部存储器的地址供给;所述地址运算器13的输出端与蝶形运算单元12的输入端相连,用于地址运算器13中旋转因子的传递。
所述状态控制器14的第一输出端与输入输出控制器11的第一输入端相连,用于控制输入输出控制器11和外部存储器的输入或输出状态;所述状态控制器14的第二输出端与地址运算器13的第二输入端相连,用于状态控制器14控制地址运算器13的工作步骤;状态控制器14与蝶形运算单元12双向连接,用于状态控制器14控制蝶形运算单元12的运算步骤及蝶形运算单元12进行状态反馈。
所述动态重构控制器15的输入与外部重构控制端相连,用于外部对该数论变换单元进行动态重构控制。所述动态重构控制器15的第一输出端与蝶形运算单元12的输入端相连,用于对蝶形运算单元12中的运算进行动态重构控制;所述动态重构控制器15的第二输出端与地址运算器13的输入端相连,用于控制地址运算器13运算出的地址上限以及运算轮数;所述动态重构控制器15的第三输出端与状态控制器14的输入端相连,用于实现状态控制器14的重构控制。
本实施例中动态重构控制器15支持的设置数据个数有:64、128、256、512、1024、2048,共6种;支持设置的模有:7681、12289、40961、65537、786433、5767169、7340033、23068673、104857601、167772161、469762049、998244353、1004535809、1998585857、2013265921、2281701377、3221225473,共17种;而数据宽度根据设置的模相应选择。
上述数论变换单元的运算方法如下:
步骤一、从外部输入重构信号,动态重构控制器15根据所述重构信号选择预设的数据个数、数据位数以及模,传递给各模块进行运算,再使用外部存储器中的数据对蝶形运算单元12中的除法结果存储器、地址运算器13中的旋转因子以及逆元存储器进行数据更新;
步骤二、外部输入使能信号,在状态控制器14的控制下,各模块开始工作:地址运算器13将对应的地址经输入输出控制器11传输给外部存储器,并生成对应的旋转因子传输给蝶形运算单元12;输入输出控制器11从一个外部存储器读出数据,根据设置信号将数据输送到蝶形运算单元12中参与运算,蝶形运算单元12将运算结果传输到输入输出控制器11中,再写入另一个外部存储器;
步骤三、重复步骤二直到本轮蝶形运算完毕后,交换对两块外部存储器的读写控制,开始下一轮的蝶形运算;
步骤四、当所有蝶形运算结束,判断为数论变换正变换还是逆变换,若是正变换则结束并输出完成信号,若是逆变换则进入步骤五;
步骤五、状态控制器14控制地址运算器13输出对应的逆元,传输给蝶形运算单元12;输入输出控制器11从上次写入的外部储存器读取数据,送入蝶形运算单元12中进行模乘运算,再将蝶形运算单元12中得到的结果经输入输出控制器11写入第二外部储存器;
步骤六、待所有数据通过模乘运算乘以逆元后,结束整个数论变换逆变换。
上述蝶形运算单元包括模乘运算单元、可重构模加器和可重构模减器,其中可重构模加器电路结构如图2所示,包括第一32位进位传播加法器21、第二32位进位传播加法器22、输出器23、32位进位保留加法器24、移位寄存器25和输出选择器26。其中,32位进位保留加法器的加法结果是将三个输入数据进行异或运算,进位结果是分别将三个输入数据两两进行与运算后再进行或运算;32位进位传播加法器的加法结果是将两个输入数据进行相加,进位结果即加法产生的进位。
各部件的连接关系如下:第一32位进位传播加法器21的两个输入端分别与外部输入的两个32位待求和数据相连,用于实现数据的输入。
32位进位保留加法器24的三个输入端分别与外部输入的两个32位待求和数据及32位模相连,用于实现数据的输入。32位进位保留加法器24的第一输出端连接第二32位进位传播加法器22的第一输入端;32位进位保留加法器24的第二输出端连接移位寄存器25用于实现进位,同时移位寄存器25的输出与32位进位传播加法器22的第二输入端连接,用于选择相应的数据位数输出。
32位进位保留加法器24的第二输出端和第二32位进位传播加法器22的输出均与输出选择器26的输入相连,用于参与在输出选择器26中的运算从而进行输出选择。同时,输出选择器26的输入还与外部输入的重构控制信号相连,用于得到相应的选择信号。
输出器23的第一输入端与第一32位进位传播加法器21的输出端连接,用于实现普通加法结果的输出;输出器23的第二输入端与第二32位进位传播加法器22的第一输出端相连,用于减模加法结果的输出;输出器23的第三输入端与输出选择器26的第一输出端相连,用于获得输出选择信号;输出器23的第四输入端与外部输入的重构控制信号相连,用于选择相应的数据位数输出。
工作时,可重构模加器通过两路加法运算分别实现普通加法与减去模后的加法,两路运算完成后选择正确的结果通过输出器23输出。对于第一路,普通加法通过第一32位进位传播加法器21运算后,直接将结果sum0传输给输出器23。对于第二路,减去模后的加法通过32位进位保留加法器24、第二32位进位传播加法器22、移位寄存器25实现。32位进位保留加法器24计算出一个初步的结果suml,将结果sum1传递给第二32位进位传播加法器22,进位信息Carry0送入移位寄存器25进行移位得到Carry1,之后传到第二32位进位传播加法器22中。32位进位传播加法器22将输入的数据sum1和Carry1求和得到的sum2送至输出器23中。
输出选择器26获取32位进位保留加法器24的进位数据Carry0,根据进位数据Carry0和重构控制信号判断加法结果是否大于模,如果小于模选择第一路的普通加法结果,如果大于或等于模则选择第二路的减模加法结果。输出器23根据输出选择器26传递的选择信号与重构控制信号,对加法结果不同位进行重组后再输出。
输出器23用于将输入数据的有效数据的位数选择出来,无效数据的对应位设为0,然后根据选择信号选择输出。例如,32位进位传播加法器22传递给输出器23的sum2,在低于32位的数据运算中,由于进位信息在sum2中,若不将进位位设为0,就会影响结果的正确性。
移位寄存器25用于将输入的数据向高位移一位,最低位用0补足。
输出选择器用于根据重构控制信号,选择对应的信号与位数。如数据宽度为n,则选择信号等于Carry0的第n位和sum2的第n+1位进行或运算,即se1=Carry0[n]sum2[n+1],其中若n+1大于32则取32。
图3为上述蝶形运算单元涉及的可重构模减器电路结构图。可重构模减器包括第一32位进位传播加法器31、第二32位进位传播加法器32、或非门33、输出器34、32位进位保留加法器35、移位寄存器36、第三32位进位传播加法器37与第四32位进位传播加法器38。
第一32位进位传播加法器31的第一输入端和第二输入端与外部输入的数据端相连,获取待运算数据。第一32位进位传播加法器31的第一输出端与第二32位进位传播加法器32的第一输入端相连,用于传递求和数据;其第二输出端与或非门33的输入端相连,用于控制输出器34的输出选择。
第二32位进位传播加法器32的第一输出端连接输出器34的输入端,用于输入第一路求和数据;第二32位进位传播加法器32的第二输出端与或非门33的输入端相连,用于控制输出器34的输出选择。或非门33的输出传递数据选择信号到输出器34。
32位进位保留加法器35的三个输入端接收外部输入的待运算数据和模,其第一输出端和第三32位进位传播加法器37的第一输入端相连,用于传递求和数据,其第二输出端与移位寄存器26的输入端相连,用于传递进位数据;移位寄存器26的输出端与第三32位进位传播加法器37的第二输入端相连,用于传递移位后的进位数据。
第三32位进位传播加法器37的输出与第四32位进位传播加法器38的第一输入端相连,第四32位进位传播加法器38的第二输入端与32位常数1相连,用于输入求和数据;第四32位进位传播加法器38的输出端与输出器34的输入端相连,用于输入第二路求和数据。
输出器34的输入端还与外部重构信号相连,用于配置输出的数据;其输出端与外部相连,用于输出数据。
继续参见图3,类似于上述模加器,工作时模减器通过普通减法和加模减法进行两路减法运算,然后在外部重构控制信号的控制下根据选择信号Sel选择其中一路减法结果输出。普通减法由第一32位进位传播加法器31和第二32位进位传播加法器32实现;加模减法由32位进位保留加法器35、移位寄存器36、第三32位进位传播加法器37和第四32位进位传播加法器38构成。
其中,普通减法的工作流程为:第一32位进位传播加法器31将输入的数据y与32位常数1相加,输出的进位信号Sel0可用于判断输入的数据是否为0,如果为0则控制输出器34输出普通减法结果;第二32位进位传播加法器32将加1后的数据Sum0与待求和数据x相加,计算出普通减法结果Sum1,并传递给输出器34中。第二32位进位传播加法器32的进位数据Sel1送至或非门33中。
加模减法的工作流程为:32位进位保留加法器35将处理过的待运算数据Sum2送到第三32位进位传播加法器37中,进位信息Carry0通过移位寄存器36进行移位操作后得Carry1,再送入第三32位进位传播加法器37中进行求和。然后,将第三32位进位传播加法器37的求和结果Sum3送至第四32位进位传播加法器中与32位常数1进行相加后,将加模减法结果Sum4送至输出器34中。
下面以重构控制信号设置动态重构器选择模为12289、14位数据宽度、数据个数为2048为例,说明本发明的一个优选实施例。
第一路普通加法为:x[31∶0]与y[31∶0]在第一32位进位传播加法器21中进行相加,结果为sum0[31∶0],传输至输出器23。第二路减模加法为:x[31∶0]、y[31∶0]与~q+1[31∶0]在32位进位保留加法器24中进行运算,Sum1=x^y^(~q+1),Carry0=(x&y)|y&(~q+1)|(x&(~q+1))。然后进位数据Carry0传输至移位寄存器,由于本例为14位数据宽度,故使Carry1[31∶0]={17’d0,Carry0[13∶0],1’d0}。Suml与Carry1在第二32位进位传播加法器22中相加,第二路加法结果Sum2也传输至输出器23。
输出选择器26根据接收到的数据Sum2[31∶0]与Carry0[31∶0],得到选择信号sel=Sum2[14]|Carry0[13]。如果两数相加大于等于模12289,Carry0[13]或Sum2[14]就会为1,则输出器23选择第二路减模加法,否则不大于模12289,选择第一路普通加法输出。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种应用于格密码体制的可重构数论变换单元,其特征在于,包括输入输出控制器、蝶形运算单元、地址运算器、状态控制器、动态重构控制器;
所述输入输出控制器用于控制对外部储存器的数据读写操作,所述蝶形运算单元包括模乘运算单元、可重构模加器和可重构模减器,用于对输入的数据实现模乘运算和蝶形运算,所述地址运算器用于实现对数据地址的运算,并为蝶形运算单元提供旋转因子和逆元,所述动态重构控制器用于控制参数的选择、运算长度的控制以及模的选择,所述状态控制器用于控制整个可重构数论变换单元的工作流程。
2.如权利要求1所述的可重构数论变换单元,其特征在于,所述输入输出控制器的地址输出端、控制信号输出端分别与外部存储器的地址输入端、读写输入端相连;所述输入输出控制器还通过数据线与外部存储器双向连接;所述输入输出控制器的输出还与地址运算器的输入相连,用于动态重构中的数据输入;
所述蝶形运算单元与输入输出控制器双向连接,进行蝶形运算及模乘结果存储器的动态重构。
3.如权利要求2所述的可重构数论变换单元,其特征在于,所述动态重构控制器的输入与外部重构控制端相连,用于外部对该可重构数论变换单元进行动态重构控制;所述动态重构控制器的第一输出端与蝶形运算单元的输入端相连,用于对蝶形运算单元中的运算进行动态重构控制;所述动态重构控制器的第二输出端与地址运算器的输入端相连,用于控制地址运算器运算出的地址上限以及运算轮数;所述动态重构控制器的第三输出端与状态控制器的输入端相连,用于实现状态控制器的重构控制。
4.如权利要求1所述的可重构数论变换单元,其特征在于,所述可重构模加器包括第一32位进位传播加法器、第二32位进位传播加法器、输出器、32位进位保留加法器、移位寄存器和输出选择器;
其中,所述第一32位进位传播加法器的两个输入端分别与外部输入的两个32位待求和数据相连,所述32位进位保留加法器的三个输入端分别与外部输入的两个32位待求和数据及32位模相连;
所述32位进位保留加法器的第一输出端连接第二32位进位传播加法器的第一输入端,其第二输出端连接所述移位寄存器,所述移位寄存器的输出与所述第二32位进位传播加法器的第二输入端连接,用于选择相应的数据位数输出;
所述32位进位保留加法器的第二输出端和第二32位进位传播加法器的输出均与输出选择器的输入相连,用于参与输出选择器中的运算从而进行输出选择;所述输出选择器的输入还与外部输入的重构控制信号相连,用于得到相应的选择信号;
所述输出器的第一输入端与第一32位进位传播加法器的输出端连接,用于实现普通加法结果的输出;其第二输入端与第二32位进位传播加法器的第一输出端相连,用于减模加法结果的输出;其第三输入端与输出选择器的第一输出端相连,用于获得输出选择信号;其第四输入端与外部输入的重构控制信号相连,用于选择相应的数据位数输出。
5.如权利要求1所述的可重构数论变换单元,其特征在于,所述可重构模减器包括第一32位进位传播加法器、第二32位进位传播加法器、第三32位进位传播加法器、第四32位进位传播加法器、或非门、输出器、32位进位保留加法器、移位寄存器;
所述第一32位进位传播加法器的两个输入端与外部输入的数据端相连,第一32位进位传播加法器的第一输出端与所述第二32位进位传播加法器的第一输入端相连,用于传递求和数据;其第二输出端与或非门的输入端相连,用于控制输出器的输出选择;
所述第二32位进位传播加法器的第二输入端接收待运算数据,第二32位进位传播加法器的第一输出端输入第一路求和数据给输出器,其第二输出端与或非门的输入端相连,用于控制输出器的输出选择;或非门的输出传递数据选择信号到输出器。
6.如权利要求5所述的可重构数论变换单元,其特征在于,所述32位进位保留加法器的三个输入端接收外部输入的待运算数据和模,其第一输出端和第三32位进位传播加法器的第一输入端相连,用于传递求和数据,其第二输出端与移位寄存器的输入端相连,移位寄存器的输出端与第三32位进位传播加法器的第二输入端相连,用于传递移位后的进位数据;
所述第三32位进位传播加法器的输出与第四32位进位传播加法器的第一输入端相连,第四32位进位传播加法器的第二输入端与32位常数1相连,用于输入求和数据,第四32位进位传播加法器输出第二路求和数据至输出器;
所述输出器的输入端还与外部重构控制信号相连,用于配置输出的数据。
7.基于权利要求1-3任一项所述的可重构数论变换单元的变换方法,其特征在于,包括以下步骤:
步骤一、动态重构控制器根据外部输入的重构信号选择预设的数据个数、数据位数以及模,传递给各模块进行运算,再使用外部存储器中的数据对蝶形运算单元中的除法结果存储器、地址运算器中的旋转因子以及逆元存储器进行数据更新;
步骤二、外部输入使能信号,在状态控制器的控制下,各模块开始工作:地址运算器将对应的地址经输入输出控制器传输给外部存储器,并生成对应的旋转因子传输给蝶形运算单元;输入输出控制器从一个外部存储器读出数据,根据设置信号将数据输送到蝶形运算单元中参与运算,蝶形运算单元将运算结果传输到输入输出控制器中,再写入另一个外部存储器;
步骤三、重复步骤二直到本轮蝶形运算完毕后,交换对两块外部存储器的读写控制,开始下一轮的蝶形运算;
步骤四、当所有蝶形运算结束,判断为数论变换正变换还是逆变换,若是正变换则结束,若是逆变换则进入步骤五;
步骤五、状态控制器控制地址运算器输出对应的逆元,传输给蝶形运算单元;输入输出控制器从上次写入的外部储存器读取数据,送入蝶形运算单元中进行模乘运算,再将蝶形运算单元中得到的结果经输入输出控制器写入第二外部储存器;
步骤六、待所有数据通过模乘运算乘以逆元后,结束整个数论变换逆变换。
8.基于权利要求4所述的可重构数论变换单元的变换方法,其特征在于,所述可重构模加器的工作方法包括以下步骤:
所述可重构模加器通过两路加法运算分别实现普通加法与减去模后的加法,两路运算完成后选择正确的结果通过输出器输出;对于第一路,普通加法通过第一32位进位传播加法器运算后,直接将结果传输给输出器;对于第二路,32位进位保留加法器计算出一个初步的结果,将该结果传递给第二32位进位传播加法器,进位信息送入移位寄存器进行移位后传到第二32位进位传播加法器中,第二32位进位传播加法器将输入的数据求和送至输出器;
输出选择器获取32位进位保留加法器的进位数据,根据进位数据和重构控制信号判断加法结果是否大于模,如果小于模选择第一路的普通加法结果,如果大于或等于模则选择第二路的减模加法结果;输出器根据输出选择器传递的选择信号与重构控制信号,对加法结果不同位进行重组后再输出。
9.基于权利要求5或6所述的可重构数论变换单元的变换方法,其特征在于,所述可重构模减器的工作方法包括以下步骤:
所述可重构模减器通过普通减法和加模减法进行两路减法运算,然后在外部重构控制信号的控制下根据选择信号选择其中一路减法结果输出;
对于第一路普通减法,第一32位进位传播加法器将输入的数据与32位常数1相加;第二32位进位传播加法器将加1后的数据与待求和数据相加,计算出普通减法结果并传递给输出器,第二32位进位传播加法器的进位数据则送至或非门;
对于第二路加模减法,32位进位保留加法器将处理过的待运算数据送到第三32位进位传播加法器中,进位信息通过移位寄存器进行移位操作后送入第三32位进位传播加法器中进行求和;然后,将第三32位进位传播加法器的求和结果送至第四32位进位传播加法器中与32位常数1进行相加后,将加模减法结果送至输出器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911211620.9A CN110990767B (zh) | 2019-11-29 | 2019-11-29 | 一种应用于格密码体制的可重构数论变换单元和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911211620.9A CN110990767B (zh) | 2019-11-29 | 2019-11-29 | 一种应用于格密码体制的可重构数论变换单元和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990767A true CN110990767A (zh) | 2020-04-10 |
CN110990767B CN110990767B (zh) | 2021-08-31 |
Family
ID=70089305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911211620.9A Active CN110990767B (zh) | 2019-11-29 | 2019-11-29 | 一种应用于格密码体制的可重构数论变换单元和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990767B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343262A (zh) * | 2021-06-22 | 2021-09-03 | 海光信息技术股份有限公司 | 同态加密装置、同态加密芯片及同态加密方法 |
CN113660076A (zh) * | 2021-07-15 | 2021-11-16 | 南京大学 | 基于可重构技术的同态加密系统及同态加密执行方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630306A (zh) * | 2009-08-14 | 2010-01-20 | 西北工业大学 | 动态可重构装置以及用该装置进行动态可重构的方法 |
CN104065478A (zh) * | 2014-06-18 | 2014-09-24 | 天津大学 | 基于格密码体系的多项式模乘协处理器 |
KR101593673B1 (ko) * | 2014-08-29 | 2016-02-15 | 고려대학교 산학협력단 | 래티스 기반의 암호서명 생성 방법 및 장치, 래티스 기반의 암호서명 복원 방법 및 장치 |
CN106155814A (zh) * | 2016-07-04 | 2016-11-23 | 合肥工业大学 | 一种支持多种工作模式的可重构运算单元及其工作方式 |
CN106951211A (zh) * | 2017-03-27 | 2017-07-14 | 南京大学 | 一种可重构定浮点通用乘法器 |
CN106970775A (zh) * | 2017-03-27 | 2017-07-21 | 南京大学 | 一种可重构定浮点通用加法器 |
CN110138549A (zh) * | 2019-04-19 | 2019-08-16 | 北京信息科学技术研究院 | 一种基于格的数字签名方法 |
-
2019
- 2019-11-29 CN CN201911211620.9A patent/CN110990767B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630306A (zh) * | 2009-08-14 | 2010-01-20 | 西北工业大学 | 动态可重构装置以及用该装置进行动态可重构的方法 |
CN104065478A (zh) * | 2014-06-18 | 2014-09-24 | 天津大学 | 基于格密码体系的多项式模乘协处理器 |
KR101593673B1 (ko) * | 2014-08-29 | 2016-02-15 | 고려대학교 산학협력단 | 래티스 기반의 암호서명 생성 방법 및 장치, 래티스 기반의 암호서명 복원 방법 및 장치 |
CN106155814A (zh) * | 2016-07-04 | 2016-11-23 | 合肥工业大学 | 一种支持多种工作模式的可重构运算单元及其工作方式 |
CN106951211A (zh) * | 2017-03-27 | 2017-07-14 | 南京大学 | 一种可重构定浮点通用乘法器 |
CN106970775A (zh) * | 2017-03-27 | 2017-07-21 | 南京大学 | 一种可重构定浮点通用加法器 |
CN110138549A (zh) * | 2019-04-19 | 2019-08-16 | 北京信息科学技术研究院 | 一种基于格的数字签名方法 |
Non-Patent Citations (2)
Title |
---|
THOMAS PÖPPELMANN 等: "Towards Efficient Arithmetic for Lattice-Based", 《SPRINGER LINK》 * |
张平原: "格密码技术近期研究进展", 《计算机研究与发展》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343262A (zh) * | 2021-06-22 | 2021-09-03 | 海光信息技术股份有限公司 | 同态加密装置、同态加密芯片及同态加密方法 |
CN113343262B (zh) * | 2021-06-22 | 2022-10-11 | 海光信息技术股份有限公司 | 同态加密装置、同态加密芯片及同态加密方法 |
CN113660076A (zh) * | 2021-07-15 | 2021-11-16 | 南京大学 | 基于可重构技术的同态加密系统及同态加密执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110990767B (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0801345B1 (en) | Circuit for modulo multiplication and exponentiation arithmetic | |
CN110990767B (zh) | 一种应用于格密码体制的可重构数论变换单元和方法 | |
CN112070222A (zh) | 用于联邦学习的处理架构、加速器及方法 | |
CN109067538B (zh) | 安全协议方法、计算机设备及存储介质 | |
JP4739020B2 (ja) | 小型ガロア体乗算器エンジン | |
CN112818374A (zh) | 一种模型的联合训练方法、设备、存储介质及程序产品 | |
Sedlak | The RSA cryptography processor | |
CN110059493B (zh) | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 | |
CN114021734B (zh) | 用于联邦学习和隐私计算的参数计算装置、系统及方法 | |
CN115756387A (zh) | 基于折叠变换的r2-mdc架构的ntt硬件实现方法 | |
CN114968173A (zh) | 基于ntt和intt结构的多项式乘法运算方法和多项式乘法器 | |
KR20020050105A (ko) | 연산 회로 및 연산 방법 | |
CN114666038A (zh) | 一种大位宽数据处理方法、装置、设备及存储介质 | |
KR19990063536A (ko) | 디지털 필터를 실현하기 위한 프로그램 가능 회로 | |
CN109271137B (zh) | 一种基于公钥加密算法的模乘装置及协处理器 | |
CN109144472B (zh) | 一种二元扩域椭圆曲线的标量乘法及其实现电路 | |
JP3302043B2 (ja) | 暗号通信方法及びそのシステム | |
CN111079934B (zh) | 应用于环域上误差学习加密算法的数论变换单元和方法 | |
WO2023236899A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
US7313586B2 (en) | Adder-subtracter circuit | |
CN115268839A (zh) | 一种以2为基的蒙哥马利模乘方法及装置 | |
CN115270155A (zh) | 一种获取大数拓展最大公约数的方法及硬件架构 | |
CN113505383A (zh) | 一种ecdsa算法执行系统及方法 | |
KR100480997B1 (ko) | GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치 | |
CN113467752A (zh) | 用于隐私计算的除法运算装置、数据处理系统及方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |