CN112799634B - 一种基于基22mdc ntt结构的高性能环多项式乘法器 - Google Patents
一种基于基22mdc ntt结构的高性能环多项式乘法器 Download PDFInfo
- Publication number
- CN112799634B CN112799634B CN202110060895.8A CN202110060895A CN112799634B CN 112799634 B CN112799634 B CN 112799634B CN 202110060895 A CN202110060895 A CN 202110060895A CN 112799634 B CN112799634 B CN 112799634B
- Authority
- CN
- China
- Prior art keywords
- unit
- data
- ntt
- butterfly
- output
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims abstract description 19
- 230000003111 delayed effect Effects 0.000 claims description 40
- 230000009466 transformation Effects 0.000 claims description 23
- 238000007781 pre-processing Methods 0.000 claims description 19
- 238000012805 post-processing Methods 0.000 claims description 9
- RNAMYOYQYRYFQY-UHFFFAOYSA-N 2-(4,4-difluoropiperidin-1-yl)-6-methoxy-n-(1-propan-2-ylpiperidin-4-yl)-7-(3-pyrrolidin-1-ylpropoxy)quinazolin-4-amine Chemical compound N1=C(N2CCC(F)(F)CC2)N=C2C=C(OCCCN3CCCC3)C(OC)=CC2=C1NC1CCN(C(C)C)CC1 RNAMYOYQYRYFQY-UHFFFAOYSA-N 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000000034 method Methods 0.000 claims description 7
- 230000001133 acceleration Effects 0.000 claims 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 7
- 239000004698 Polyethylene Substances 0.000 description 6
- 230000001131 transforming effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- -1 polyethylene Polymers 0.000 description 1
- 229920000573 polyethylene Polymers 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于基22MDC NTT结构的高性能环多项式乘法器,包括用于进行NTT变换的多路延迟转接电路;所述多路延迟转接电路为四输入输出通路结构,其由y级处理单元构成,每级处理单元均包括一个蝶形单元、多个具有不同延时周期的数据延时单元、多个用于存储NTT变换所需的旋转因子的存储单元和一个用于按照NTT算法将数据按正确时序往下传递的交换单元;本发明通过高基的NTT算法减少NTT变换的级数,在硬件实现时达到了减少时间周期以及高吞吐率的效果,同时简化控制单元。
Description
技术领域
本发明涉及格密码环多项式乘法,提出了一种基于基22MDC NTT结构的高性能环多项式乘法器。
背景技术
在量子计算机诞生之后,现有的RSA、椭圆曲线等公钥密码体制的安全性将可能会被动摇,但格密码学的安全性基于最坏情况下的格上困难问题,所以其安全性有很强的保证,能够抵抗量子计算机的攻击。此外,格密码学上的计算非常简单,对于理想格和模格,所有算法都在多项式环中进行,许多情况下只需要多项式乘积模累加运算。
常规的多项式乘法不用考虑数域问题,但是在环上的多项式对多项式的系数和次数都有限制,例如给定两个环上的多项式a(x)和b(x),设Rq=Zq[x]/(xn+1)是多项式环,其中n是2的幂,q为模值:
对于环上的多项式对系数大小受模值q限制,次数不超过n。
当两个环上的多项式相乘时,得到的多项式也要做相应处理使:
c(x)∈Rq=Zq[x]/(xn+1) (3)
多项式乘法有几种有效的算法,而数论变换(Number Theoretic Transform,NTT)算法因其O(nlogn)的拟线性时间复杂度相比于其他算法更加高效、快速,是一种广泛应用于基于格密码的算法。NTT算法实际上是FFT的一个变体,相比FFT,其替代了复杂的浮点数和复数乘法的计算。因此,NTT算法的所有计算被执行在有限域或多项式环Rq中,并且在FFT中的复数选择因子用整数代替,减少了存储空间。为了满足n阶元素,模数q必须选择一个质数,且满足q≡1mod 2n。
对于NTT变化,多项式a(x)的系数a0,a1,a2,...,an-1,an被转换为对于NTT正变换:
逆NTT(INTT)的操作是还原NTT的值,其变换规则如下:
变换式中的=n为旋转因子,当两个n点的多项式相乘时,在f(x)=xn+1约简前,有2n个系数,需要对每个多项式系数填充n个零,为了减少这个方法的开销,使用负包裹技术,用φ2=ωmod q,旋转因子的平方根进行预处理和后处理直接得到最终的系数,c(x)=a(x)*b(x)。NTT算法操作步骤如下:
1、对a(x)和b(x)中的系数进行预处理,即a=ai×φi,b=bi×φi。
2、将预处理后的系数进行NTT变换,即
3、多项式和/>对应系数相乘,即/>
4、对多项式进行NTT逆变换,即/>
5、后处理多项式c(x),即ci×φ-i。
其中,预处理因子φ,后处理因子φ-1满足:φ×φ-1=1modq。
若直接采用NTT/INTT变换公式,其计算复杂度并没有降低,研究者根据旋转因子的周期性,提出将输入序列或输出序列分解成更短序列的表达形式按域或频域抽取(常常被称做蝶形变换的一种分解算法)的迭代基2NTT结构,但是当多项式系数较大时,基2NTT的时间周期将会成倍增加,例如当n=256=28=44点时,选用基8或基16将消耗大量的资源,并且蝶形单元的利用率较低,考虑基4算法较为复杂,运算量也大,所以当采用高基的NTT变换时蝶形变换次数明显减少,那么使用高基的NTT/INTT变换进行多项式乘法是十分有意义的。
发明内容
发明目的:为了进一步提高NTT/INTT核的处理速度,本发明提出了一种基于基22MDC NTT结构的高性能环多项式乘法器,通过高基的NTT算法减少NTT变换的级数,提高NTT/INTT在处理格密码中环多项式乘法器的速度。
为实现上述目的,本发明通过以下技术方案来实现:一种基于基22MDC NTT结构的高性能环多项式乘法器,包括用于进行NTT变换的多路延迟转接电路;所述多路延迟转接电路为四输入输出通路结构,其由y级处理单元构成,y=log4 n,其中,n为输入点数;
每级处理单元均包括一个蝶形单元、多个具有不同延时周期的数据延时单元、多个用于存储NTT变换所需的旋转因子的存储单元和一个用于按照NTT算法将数据按正确时序往下传递的交换单元;所述蝶形单元和交换单元均包括四个输入通路和四个输出通路,从上至下依次定义为第一至第四输入通路和第一至第四输出通路,其中,第一级蝶形单元的第二输出通路的数据通过数据延时单元延时n×(y-3)/16个周期接入第一级交换单元的第二输入通路,蝶形单元的第三输出通路的数据通过数据延时单元延时n×(y-2)/16个周期接入第一级交换单元的第三输入通路,蝶形单元的第四输出通路的数据通过数据延时单元延时n×(y-1)/16个周期接入第一级交换单元的第四输入通路,第一级蝶形单元的第一输出通路直接接入第一级交换单元的第一输入通路;
第一级交换单元的第一输出通路的数据通过数据延时单元延时n×(y-1)/16个周期后接入第二级蝶形单元的第一输入通路,第一级交换单元的第二输出通路的数据通过数据延时单元延时n×(y-2)/16个周期后接入第二级蝶形单元的第二输入通路,第一级交换单元的第三输出通路的数据通过数据延时单元延时n×(y-3)/16个周期后接入第二级蝶形单元的第三输入通路;第一级交换单元的第四输出通路的数据直接接入第二级蝶形单元;
所述第k级蝶形单元的第二输出通路的数据通过数据延时单元延时(n×(y-3)/16)/4(k-1)个周期接入第k+1级蝶形单元的第二输入通路,第k级蝶形单元的第三输出通路的数据通过数据延时单元延时(n×(y-2)/16)/4(k-1)个周期接入第k+1级蝶形单元的第三输入通路,第k级蝶形单元的第四输出通路的数据通过数据延时单元延时(n×(y-1)/16)/4(k-1)个周期接入第k+1级蝶形单元的第四输入通路,第k级蝶形单元的第一输出通路的数据直接接入第k+1级蝶形单元的第一输入通路;所述第k级交换单元的第一输出通路的数据通过数据延时单元延时(n×(y-1)/16)/4(k-1)个周期后接入第k+1级蝶形单元的第一输入通路,第k级交换单元的第二输出通路的数据通过数据延时单元延时(n×(y-2)/16)/4(k-1)个周期后接入第k+1级蝶形单元的第二输入通路,第k级交换单元的第三输出通路的数据通过数据延时单元延时(n×(y-3)/16)/4(k-1)个周期后接入第k+1级蝶形单元的第三输入通路;第k级交换单元的第四输出通路的数据直接接入第k+1级蝶形单元的第四输入通路;
其中,k=2,3,…y-1;
所述第y级蝶形单元的四个输出通道输出的数据为NTT变换结果。
进一步的,蝶形单元的四个输入数据定义为第一输入数据、第二输入数据、第三输入数据和第四输入数据;所述蝶形单元包括多个模加单元、多个模减单元和多个模乘单元;
第一输入数据与第二输入数据通过模加单元、模减单元进行两两相加相减,分别得到第一中间相加结果和第一中间相减结果;
第三输入数据与第四输入数据通过模加单元、模减单元进行两两相加相减,分别得到第二中间相加结果和第二中间相减结果;
第二中间相减结果通过模乘单元与固定系数相乘;
第一中间相加结果与第二中间相加结果通过模加单元、模减单元相加相减,分别得到蝶形单元的第一输出通路的输出数据和第三中间相减结果;该第三中间相减结果通过模乘单元与旋转因子ω2i相乘,得到蝶形单元的第二输出通路的输出数据;
第一中间相减结果与第二中间相减结果通过模加单元、模减单元相加相减,分别得到第四中间相加结果和第四中间相减结果;第四中间相加结果通过模乘单元与旋转因子ωi相乘,得到蝶形单元的第三输出通路的输出数据;第四中间相减结果通过模乘单元与旋转因子ω3i相乘,得到蝶形单元的第四输出通路的输出数据;
所述旋转因子ωi、旋转因子ω2i和旋转因子ω3i存储于对应的处理单元中的存储单元内。
进一步的,在所述蝶形单元内设置寄存器单元,使蝶形单元的第一至第四输出通路同时输出数据。
进一步的,所述模乘单元为基于巴雷特约减算法的模乘单元。
进一步的,所述数据延时单元为不同容量的移位寄存器。
进一步的,当进行NTT正变换时,还包括用于按照NTT算法对输入序列进行预处理的前处理模块;所述前处理模块包括:
分组模块,用于将输入序列按顺序分成4组子序列;
预处理模块,用于将4组子序列分别与预先存储的对应的预处理因子φ相模乘,得到4组输出数据;
所述多路延迟转接电路对4组输出数据进行NTT正变换。
进一步的,当进行NTT逆变换时,还包括将输入数据与预先存储的后处理因子φ-1相乘的后处理模块。
本发明还公开了一种利用基22MDC NTT结构实现加快环多项式乘法计算的方法,包括:
步骤1:将输入序列分成4路并行序列,将各并行序列与对应的预处理因子φ相模乘,完成前处理,将前处理后的数据作为蝶形运算的输入数据;
步骤2:进行第一级蝶形运算,第一级蝶形运算后的第一输出数据按照NTT算法以正确时序延时n×(y-1)/16个周期后进行第二级蝶形运算;第一级蝶形运算后的第二输出数据延时n×(y-3)/16个周期后,按照NTT算法将延时后的数据按正确时序延时n×(y-2)/16个周期后进行第二级蝶形运算;第一级蝶形运算后的第三输出数据延时n×(y-2)/16个周期后,按照NTT算法将延时后的数据按正确时序延时n×(y-3)/16个周期后进行第二级蝶形运算;第一级蝶形运算后的第四输出数据延时n×(y-1)/16个周期后,按照NTT算法将延时后的数据按正确时序直接进行第二级蝶形运算;
第k级蝶形运算后的第一输出数据按照NTT算法以正确时序延时(n×(y-1)/16)/4(k-1)个周期后进行第k+1级蝶形运算;第k级蝶形运算后的第二输出数据延时(n×(y-3)/16)/4(k-1)个周期后,按照NTT算法将延时后的数据按正确时序延时(n×(y-2)/16)/4(k-1)个周期后进行第k+1级蝶形运算;第k级蝶形运算后的第三输出数据延时(n×(y-2)/16)/4(k-1)个周期后,按照NTT算法将延时后的数据按正确时序延时(n×(y-3)/16)/4(k-1)个周期后进行第k+1级蝶形运算;第k级蝶形运算后的第三输出数据延时(n×(y-1)/16)/4(k-1)个周期后,按照NTT算法将延时后的数据直接进行第k+1级蝶形运算;其中,y=log4n,n为输入点数,k=2,3,…y-1;
以此类推,第y级蝶形单元的输出数据为NTT正变换结果;
步骤3:根据NTT逆变换规则,变更参与蝶形运算的旋转因子值后执行步骤2,得到NTT逆变换结果;
步骤4:将NTT逆变换结果与后处理因子φ-1相乘,得到最终的多项式系数。
有益效果:与现有的技术相比,本发明具有以下优点:
(1)本发明通过高基的NTT算法减少NTT变换的级数,进一步提高NTT/INTT在处理格密码中环多项式乘法器的速度;
(2)本发明调整输入序列的顺序,优化基22的蝶形单元的电路结构,采用流水线的设计,相比较传统的基4的蝶形单元,节约蝶形单元的资源,采用优化后的NTT结构进行环多项式乘法,能够减少时延,提高吞吐率(单位时间周期处理的数据量),降低环多项式乘法器硬件实现复杂度。
附图说明
图1是26位巴雷特约减算法的电路结构图;
图2是基22优化后的蝶形单元;
图3是基22MDC结构的NTT/INTT电路结构图。
具体实施方式
现结合附图和实施例进一步阐述本发明的技术方案。
结合具体格密码参数,本实施例采用模数q=7681,n=256的参数,考虑到格密码两个多项式系数,一个是在上的均匀分布的公钥项,另一个是在上高斯分布或二项分布的数据,该数据位宽为13位。为了在硬件电路层面实现格密码中最关键的单元环多项式乘法的同时,进一步提高NTT/INTT核的处理速度,本实施例提出了如图3所示的基22多路径延时转接的流水线MDC NTT/INTT电路,其具有多条数据输入输出通路,该电路包括前处理模块和多级处理单元;其中,前处理模块用于将输入的多项式系数按顺序以每组64个数据分为4组,而后与预先存储的对应的预处理因子φ相模乘,完成多项式系数预处理,即为a=ai×φi,b=bi×φi。处理单元的4个输入和输出都是13位的数据,由于本实施例采用的输入点数n=256,因此共需要四块类似的处理单元(图3中的PE1、PE2、PE3和PE4),每块处理单元均包括:蝶形单元(如图2所示)、数据延时单元、用于存储NTT正变换和逆变换时所需的旋转因子的存储单元和四通道的交换单元。经过预处理后的数据依次进入第一级处理单元PE1,参见图3,经过预处理的数据进入第一级蝶形单元进行蝶形运算,第一级蝶形单元的输出通路中,后3个输出通路的数据通过数据延时单元延时不同周期后进入交换单元,而第1个输出通路的数据直接进入交换单元,级间的交换单元充当流水线中的寄存器功能存储中间数据,并用来调整中间数据的时序,即按NTT算法将中间数据按正确的时序往下传递。交换单元的输出通路中,前3个输出通路的数据经过数据延时单元延时不同周期后送入下一级蝶形单元,其余输出通路的数据直接送入下一级蝶形单元,进行蝶形计算。
由图3可知,每一路的输出数据在两个蝶形单元之间的延时都应该相同,在本实施例中,数据延时单元为不同容量的移位寄存器,在第一级处理单元PE1中输入点数为256分为四路数据,每路有64个数据,这64个数据经过基22的蝶形单元再次被分为四路,即为16D,为了匹配时序让数据在同一时刻进入下一级蝶形单元,因此每一路数据延时都需相差16D,第一路不增加延时,之后每一路增加16D的延时;参见图3,第一级基22的蝶形单元的第一路不增加延时数据直接进入第一级交换单元,第二路通过16级移位寄存器增加16D的延时,第三路通过32级移位寄存器增加32D的延时,第四路通过48级移位寄存器增加48D的延时,为了匹配时序让数据在同一时刻进入下一级蝶形单元,因此第一级交换单元的输出的第一路通过48级移位寄存器增加48D的延时,第二路通过32级移位寄存器增加32D的延时,第三路通过16级移位寄存器增加16D的延时,第四路不增加延时数据直接进入第二级处理单元PE2。在第二级处理单元PE2、第三级处理单元PE3和第四级处理单元PE4中因为每一级蝶形单元处理的数据逐渐减少所以延时也以4倍减少,在第四级处理单元PE4中经过第四级蝶形单元的蝶形计算后已经得到NTT变换后的数据,因此无需再增加延时单元,第四级处理单元PE4输出数据即为256点NTT变换结果。本实施例的多级处理单元结构相同,只变换移位寄存器容量和变换存储在分布式ROM中的旋转因子。
本实施例对基22的蝶形单元的电路结构进行了优化,调整输入序列的顺序,得到如图2所示的优化后的蝶形单元,采用基22两级蝶形运算单元完成基4的FFT运算,本实施例的蝶形单元具有规整性,非常适合多路延迟转换MDC结构。该蝶形单元的乘法单元为模乘,加减法单元为模加模减,本实施例中,乘法单元的模乘采用巴雷特约减算法,将13x13位的乘法结果约减到[0,q-1]。巴雷特约减算法采用移位和加法得到约减结果,图1为26位巴雷特约减算法的电路结构图,共采用五级流水,提高运行频率,对于位宽为26位,模值为7681(13位数)的巴雷特约减算法,该算法在第一级流水线先得到两个13位数的乘积,第二级流水线通过对得到的26位乘积进行移位相加得到巴雷特约减算法的商值,第三级流水计算商值乘模值7681,其中7681的二进制表示为1111000000001,可通过移位得到两者乘积,在第四级流水线中将乘积减去第三级流水得到的结果,在最后一级进行两次判断前一级结果是否在模值q的范围以内,若小于q直接输出结果,大于q则减去一个q获得最终模乘输出。
从图2中可以直观看出优化后的蝶形单元的规律,在基22的第一轮变化中,只有后两个输入在相减之后需要乘以一个固定系数在蝶形单元的第二轮变化中,前两个数据交叉相加相减后第二路输入乘以系数ω2i,后两个数据再交叉相加相减并分别乘以ωi、ω3i。每一轮所需的不同次方的旋转因子存储在分布式ROM中,由于蝶形单元中模乘和模加所需的时钟周期不同,模乘单元消耗得时间周期多于模加模减,因此在蝶形单元中增加寄存器达到在下一级同时输入的目的。
参见图2,输入序列x(n)按照4r,4r+1,4r+2,4r+3分成四个子序列,则变换公式可以写成下式:
其中,i=0,1,2...,n-1;r=0,1,2,....,n/4-1,n为输入点数,可转化为:
整个输入序列被划分成4个子序列,使得整个变换的计算时间变短,减少变换所需的时钟周期,从而加速。
在用NTT算法运算环多项式乘法时,NTT正变换得到的数据只是中间顺序,多项式相乘的最终的多项式系数还需要NTT逆变换,在本实施例中集成了NTT正变换和逆变换单元,NTT和INTT在进行数据处理时候步骤一样,在进行NTT逆变换时候只需按照NTT逆变换规则改变旋转因子的值,并增加后处理模块,即后处理多项式c(x),即ci×φ-i。
Claims (8)
1.一种基于基22MDC NTT结构的高性能环多项式乘法器,其特征在于:包括用于进行NTT变换的多路延迟转接电路;所述多路延迟转接电路为四输入输出通路结构,其由y级处理单元构成,y=log4n,其中,n为输入点数;
每级处理单元均包括一个蝶形单元、多个具有不同延时周期的数据延时单元、多个用于存储NTT变换所需的旋转因子的存储单元和一个用于按照NTT算法将数据按正确时序往下传递的交换单元;所述蝶形单元和交换单元均包括四个输入通路和四个输出通路,从上至下依次定义为第一至第四输入通路和第一至第四输出通路,其中,第一级蝶形单元的第二输出通路的数据通过数据延时单元延时n×(y-3)/16个周期接入第一级交换单元的第二输入通路,蝶形单元的第三输出通路的数据通过数据延时单元延时n×(y-2)/16个周期接入第一级交换单元的第三输入通路,蝶形单元的第四输出通路的数据通过数据延时单元延时n×(y-1)/16个周期接入第一级交换单元的第四输入通路,第一级蝶形单元的第一输出通路直接接入第一级交换单元的第一输入通路;
第一级交换单元的第一输出通路的数据通过数据延时单元延时n×(y-1)/16个周期后接入第二级蝶形单元的第一输入通路,第一级交换单元的第二输出通路的数据通过数据延时单元延时n×(y-2)/16个周期后接入第二级蝶形单元的第二输入通路,第一级交换单元的第三输出通路的数据通过数据延时单元延时n×(y-3)/16个周期后接入第二级蝶形单元的第三输入通路;第一级交换单元的第四输出通路的数据直接接入第二级蝶形单元;
第k级蝶形单元的第二输出通路的数据通过数据延时单元延时)n×(y-3)/16)/4(k-1)个周期接入第k+1级蝶形单元的第二输入通路,第k级蝶形单元的第三输出通路的数据通过数据延时单元延时(n×(y-2)/16)/4(k-1)个周期接入第k+1级蝶形单元的第三输入通路,第k级蝶形单元的第四输出通路的数据通过数据延时单元延时(n×(y-1)/16)/4(k-1)个周期接入第k+1级蝶形单元的第四输入通路,第k级蝶形单元的第一输出通路的数据直接接入第k+1级蝶形单元的第一输入通路;第k级交换单元的第一输出通路的数据通过数据延时单元延时(n×(y-1)/16)/4(k-1)个周期后接入第k+1级蝶形单元的第一输入通路,第k级交换单元的第二输出通路的数据通过数据延时单元延时(n×(y-2)/16)/4(k-1)个周期后接入第k+1级蝶形单元的第二输入通路,第k级交换单元的第三输出通路的数据通过数据延时单元延时(n×(y-3)/16)/4(k-1)个周期后接入第k+1级蝶形单元的第三输入通路;第k级交换单元的第四输出通路的数据直接接入第k+1级蝶形单元的第四输入通路;
其中,k=2,3,…y-1;
第y级蝶形单元的四个输出通道输出的数据为NTT变换结果。
2.根据权利要求1所述的一种基于基22MDC NTT结构的高性能环多项式乘法器,其特征在于:蝶形单元的四个输入数据定义为第一输入数据、第二输入数据、第三输入数据和第四输入数据;所述蝶形单元包括多个模加单元、多个模减单元和多个模乘单元;
第一输入数据与第二输入数据通过模加单元、模减单元进行两两相加相减,分别得到第一中间相加结果和第一中间相减结果;
第三输入数据与第四输入数据通过模加单元、模减单元进行两两相加相减,分别得到第二中间相加结果和第二中间相减结果;
第二中间相减结果通过模乘单元与固定系数相乘;
第一中间相加结果与第二中间相加结果通过模加单元、模减单元相加相减,分别得到蝶形单元的第一输出通路的输出数据和第三中间相减结果;该第三中间相减结果通过模乘单元与旋转因子ω2i相乘,得到蝶形单元的第二输出通路的输出数据;
第一中间相减结果与第二中间相减结果通过模加单元、模减单元相加相减,分别得到第四中间相加结果和第四中间相减结果;第四中间相加结果通过模乘单元与旋转因子ωi相乘,得到蝶形单元的第三输出通路的输出数据;第四中间相减结果通过模乘单元与旋转因子ω3i相乘,得到蝶形单元的第四输出通路的输出数据;
所述旋转因子ωi、旋转因子ω2i和旋转因子ω3i存储于对应的处理单元中的存储单元内。
3.根据权利要求2所述的一种基于基22MDC NTT结构的高性能环多项式乘法器,其特征在于:在所述蝶形单元内设置寄存器单元,使蝶形单元的第一至第四输出通路同时输出数据。
4.根据权利要求2所述的一种基于基22MDC NTT结构的高性能环多项式乘法器,其特征在于:所述模乘单元为基于巴雷特约减算法的模乘单元。
5.根据权利要求1所述的一种基于基22MDC NTT结构的高性能环多项式乘法器,其特征在于:所述数据延时单元为不同容量的移位寄存器。
6.根据权利要求1至5任意一项所述的一种基于基22MDC NTT结构的高性能环多项式乘法器,其特征在于:当进行NTT正变换时,还包括用于按照NTT算法对输入序列进行预处理的前处理模块;所述前处理模块包括:
分组模块,用于将输入序列按顺序分成4组子序列;
预处理模块,用于将4组子序列分别与预先存储的对应的预处理因子φ相模乘,得到4组输出数据;
所述多路延迟转接电路对4组输出数据进行NTT正变换。
7.根据权利要求1至5任意一项所述的一种基于基22MDC NTT结构的高性能环多项式乘法器,其特征在于:当进行NTT逆变换时,还包括将输入数据与预先存储的后处理因子φ-1相乘的后处理模块。
8.一种利用基22MDC NTT结构实现加快环多项式乘法计算的方法,其特征在于:包括:
步骤1:将输入序列分成4路并行序列,将各并行序列与对应的预处理因子φ相模乘,完成前处理,将前处理后的数据作为蝶形运算的输入数据;
步骤2:进行第一级蝶形运算,第一级蝶形运算后的第一输出数据按照NTT算法以正确时序延时n×(y-1)/16个周期后进行第二级蝶形运算;第一级蝶形运算后的第二输出数据延时n×(y-3)/16个周期后,按照NTT算法将延时后的数据按正确时序延时n×(y-2)/16个周期后进行第二级蝶形运算;第一级蝶形运算后的第三输出数据延时n×(y-2)/16个周期后,按照NTT算法将延时后的数据按正确时序延时n×(y-3)/16个周期后进行第二级蝶形运算;第一级蝶形运算后的第四输出数据延时n×(y-1)/16个周期后,按照NTT算法将延时后的数据按正确时序直接进行第二级蝶形运算;
第k级蝶形运算后的第一输出数据按照NTT算法以正确时序延时(n×(y-1)/16)/4(k-1)个周期后进行第k+1级蝶形运算;第k级蝶形运算后的第二输出数据延时(n×(y-3)/16)/4(k-1)个周期后,按照NTT算法将延时后的数据按正确时序延时(n×(y-2)/16)/4(k-1)个周期后进行第k+1级蝶形运算;第k级蝶形运算后的第三输出数据延时(n×(y-2)/16)/4(k-1)个周期后,按照NTT算法将延时后的数据按正确时序延时)n×(y-3)/16)/4(k-1)个周期后进行第k+1级蝶形运算;第k级蝶形运算后的第三输出数据延时(n×(y-1)/16)/4(k-1)个周期后,按照NTT算法将延时后的数据直接进行第k+1级蝶形运算;其中,y=log4n,n为输入点数,k=2,3,…y-1;
以此类推,第y级蝶形单元的输出数据为NTT正变换结果;
步骤3:根据NTT逆变换规则,变更参与蝶形运算的旋转因子值后执行步骤2,得到NTT逆变换结果;
步骤4:将NTT逆变换结果与后处理因子φ-1相乘,得到最终的多项式系数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110060895.8A CN112799634B (zh) | 2021-01-18 | 2021-01-18 | 一种基于基22mdc ntt结构的高性能环多项式乘法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110060895.8A CN112799634B (zh) | 2021-01-18 | 2021-01-18 | 一种基于基22mdc ntt结构的高性能环多项式乘法器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799634A CN112799634A (zh) | 2021-05-14 |
CN112799634B true CN112799634B (zh) | 2024-03-29 |
Family
ID=75809982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110060895.8A Active CN112799634B (zh) | 2021-01-18 | 2021-01-18 | 一种基于基22mdc ntt结构的高性能环多项式乘法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799634B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608717B (zh) * | 2021-10-11 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 一种数论变换计算电路、方法及计算机设备 |
CN116865979B (zh) * | 2023-09-05 | 2023-11-10 | 南京航空航天大学 | 一种基于后量子数字签名的mdc-ntt装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783766A (zh) * | 2018-12-05 | 2019-05-21 | 天津大学 | 一种基2算法的快速傅里叶变换硬件设计方法 |
CN110765709A (zh) * | 2019-10-15 | 2020-02-07 | 天津大学 | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 |
-
2021
- 2021-01-18 CN CN202110060895.8A patent/CN112799634B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783766A (zh) * | 2018-12-05 | 2019-05-21 | 天津大学 | 一种基2算法的快速傅里叶变换硬件设计方法 |
CN110765709A (zh) * | 2019-10-15 | 2020-02-07 | 天津大学 | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 |
Non-Patent Citations (1)
Title |
---|
高速广义多载波解调的低成本硬件优化设计;熊何锐;郝学飞;胡国荣;;西安电子科技大学学报;20110620(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112799634A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Huang et al. | A pure hardware implementation of CRYSTALS-KYBER PQC algorithm through resource reuse | |
CN112799634B (zh) | 一种基于基22mdc ntt结构的高性能环多项式乘法器 | |
CN110908635A (zh) | 基于同源曲线的后量子密码学的高速模乘器及其模乘方法 | |
CN115001693A (zh) | 基于fpga的格基密钥封装算法oskr的纯硬件实现结构 | |
Bajard et al. | RNS arithmetic approach in lattice-based cryptography: Accelerating the" rounding-off" core procedure | |
CN107992283B (zh) | 一种基于降维实现有限域乘法的方法和装置 | |
CN109271137B (zh) | 一种基于公钥加密算法的模乘装置及协处理器 | |
CN114895870A (zh) | 基于fpga实现的高效可重构sm2点乘方法及系统 | |
Paul et al. | A resource efficient software-hardware co-design of lattice-based homomorphic encryption scheme on the FPGA | |
CN112819168B (zh) | 一种格密码加解密中的环多项式乘法器电路 | |
CN117472329A (zh) | 一种利用dsp级联结构提高蒙哥马利模乘吞吐量的方法及系统 | |
Liu et al. | A high speed VLSI implementation of 256-bit scalar point multiplier for ECC over GF (p) | |
Hu et al. | Efficient homomorphic convolution designs on FPGA for secure inference | |
CN116545622A (zh) | 一种基于fpga平台的ntt硬件实现系统 | |
CN116561819A (zh) | 一种基于Toom-Cook环上多项式乘法的加解密方法及环上多项式乘法器 | |
CN110620566A (zh) | 基于随机计算与余数系统相结合的fir滤波系统 | |
Valencia et al. | The design space of the number theoretic transform: A survey | |
CN112346704B (zh) | 一种用于卷积神经网络的全流水线型乘加单元阵列电路 | |
US5948051A (en) | Device improving the processing speed of a modular arithmetic coprocessor | |
Wang et al. | A High-Throughput Toom-Cook-4 Polynomial Multiplier for Lattice-Based Cryptography Using a Novel Winograd-Schoolbook Algorithm | |
KR100444729B1 (ko) | 레딕스-8 단일 경로 지연 전달 구조의 고속 퓨리에 변환장치 및 그 방법 | |
CN116865979B (zh) | 一种基于后量子数字签名的mdc-ntt装置 | |
CN116820394B (zh) | 一种面向椭圆曲线加密算法的标量乘电路 | |
CN116893800A (zh) | 一种基于并行结构及编码的蒙哥马利模乘器 | |
CN109783054B (zh) | 一种rsfq fft处理器的蝶形运算处理方法及系统 |
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 |