CN116755658A - 一种基于巴雷特约减的模乘器及约减计算方法 - Google Patents
一种基于巴雷特约减的模乘器及约减计算方法 Download PDFInfo
- Publication number
- CN116755658A CN116755658A CN202310652006.6A CN202310652006A CN116755658A CN 116755658 A CN116755658 A CN 116755658A CN 202310652006 A CN202310652006 A CN 202310652006A CN 116755658 A CN116755658 A CN 116755658A
- Authority
- CN
- China
- Prior art keywords
- shifter
- input
- reduction
- subtracter
- input end
- 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
- 230000009467 reduction Effects 0.000 title claims abstract description 110
- 238000004364 calculation method Methods 0.000 title claims abstract description 74
- 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 title claims abstract description 59
- 238000000034 method Methods 0.000 claims description 32
- 230000009977 dual effect Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 13
- 238000006073 displacement reaction Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 abstract description 11
- 238000007792 addition Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000009466 transformation Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 239000013307 optical fiber Substances 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/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/722—Modular multiplication
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)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于巴雷特约减的模乘器及约减计算方法,模乘器包括:二输入乘法器、两个子模块、两个二输入减法器以及二选一多路选择器;本发明在硬件上实现了针对特殊模量优化的巴雷特模乘单器,并将约减计算方法的移位步骤进一步优化,减少了加法器所需的位宽,从而带来更低的资源消耗。本发明可以降低约减计算方法中所需的位宽并降低硬件资源的消耗,可广泛应用于模乘器的设计与应用领域。
Description
技术领域
本发明涉及模乘器的设计与应用领域,尤其是一种基于巴雷特约减的模乘器及约减计算方法。
背景技术
模乘是基于多项式环的多项式乘法中一个重要的计算单元,而模乘的步骤包括:计算乘积、对乘积进行模约减。所以模乘器的设计需要一个乘法器和一个计算模约减的单元,而通常实现模约减的方法包括巴雷特约减算法、蒙哥马利约减算法、Shoup约减算法。而近年来密码学中比较引起广泛关注的密码方案中,有不少是基于多项式环构建的,如全同态加密和零知识证明等,上述加密方案都需要涉及模乘器的设计。
巴雷特约减算法是Barrette于1987年提出的一种硬件友好型的快速约减算法。蒙哥马利约减算法需要将待约减的数先切换到蒙哥马利的模域下进行约减后再切换回原先的模域,因此相比巴雷特约减算法更复杂。而Shoup约减算法虽然相比巴雷特约减算法能减少乘法器资源的消耗,但基于Shoup约减的模乘器只能适用于一个变量和一个常量的乘积计算,而巴雷特模乘器可以用于两个变量的模乘计算,故Shoup模乘器通用性比不上基于巴雷特约减的模乘器。因此,许多模乘器设计皆采用了巴雷特约减算法。传统的基于巴雷特约减的模乘计算方法如图1伪代码所示。
现有技术一提出了一个可配置为巴雷特约减或Shoup约减的模乘器设计,然而其设计并不是针对特殊模量进行,因此本质上与传统的巴雷特约减算法仍是一样的。也有不少工作针对特殊模量进行了巴雷特约减算法的优化,现有技术二只针对一个固定模量(q=7681)进行硬件结构设计。由于模量固定,因此巴雷特约减中的预计算参数也能确定,现有技术二通过将模量q和预计算参数r表示为二进制数,从而将两个乘法操作转换成一系列移位相加操作。但是由于现有技术二的模量固定,因此应用范围很局限。而现有技术三则是将所面向的特殊模量的范围进行拓展,只要选取满足(2j≡2i-1(modq))的模量q(q=2j-2i+1),则可将巴雷特约减算法中乘以模量和乘以预计算参数的两个乘法消除,以截位、移位和加法操作代替。但现有技术三并没有指出针对满足该形式的模量的模约减的普遍公式,而是以一个特殊的模量作为例子来设计特定的截位位宽、移位步长、加法数量。现有技术四提出了针对部分特定模量的优化约减方法,由于模量已知,所以现有技术四通过选择合适的k值得到预计算值后,也将模量q和预计算值r表示为二进制数,从而以移位相加操作取代乘法操作。现有技术四相比现有技术二能计算更多模量的模乘,但仍十分有限(现有技术四中只列举了12个特殊模量)。现有技术五采用特殊模量(q=2r1+2r2+1),将乘模量q操作转变为移位相加,然而其预计算参数r的乘法仍然存在,相比传统的基于巴雷特约减的模乘单元只减少了一个乘法。
此外,在现有技术二和现有技术四中,针对的模量位宽仍是相对小的位宽,而全同态加密、零知识证明等密码方案对模量位宽的要求较高,通常可以取到几十到几百比特,现有的模乘器仍存在模量位宽较少的问题。
发明内容
有鉴于此,本发明实施例提供一种基于巴雷特约减的模乘器及约减计算方法,用于降低约减计算方法中所需的位宽并降低硬件资源的消耗。
本发明实施例的一方面提供了一种基于巴雷特约减的模乘器,包括:二输入乘法器、子模块1、子模块2、二输入减法器1、二输入减法器2以及二选一多路选择器;
其中,所述二输入乘法器包括两个输入端,分别用于接收对应的待模乘数据;所述二输入乘法器的输出端分别与所述子模块1的输入端以及所述二输入减法器1的第一输入端连接;所述子模块1的输出端与所述子模块2的输入端连接;所述子模块2的输出端与所述二输入减法器1的第二输入端连接;所述二输入减法器1的输出端与所述二输入减法器2的第一输入端连接,所述二输入减法器2的第二输入端用于接收模量;所述二输入减法器1的输出端还与所述二选一多路选择器的第一输入端连接,所述二输入减法器2的输出端与所述二选一多路选择器的第二输入端连接;所述二选一多路选择器的输出端用于输出两个所述待模乘数据与所述模量的模乘结果。
可选地,所述子模块1包括移位器1、移位器2、移位器3、减法器1以及减法器2;
其中,所述二输入乘法器的输出端分别与所述移位器1的第一输入端、所述移位器2的第一输入端以及所述减法器2的第一输入端连接;
所述移位器1的第二输入端用于接收预计算参数中的第一参数,所述移位器1的输出端与所述减法器1的第一输入端连接;
所述移位器2的第二输入端用于接收预计算参数中的第二参数,所述移位器2的输出端与所述减法器1的第二输入端连接;
所述减法器1的输出端与所述减法器2的第二输入端连接,所述减法器2的输出端与所述移位器3的第一输入端连接;
所述移位器3的第二输入端用于接收预计算参数中的第三参数,所述移位器3的输出端用于与所述子模块2的输入端连接;
所述移位器1和所述移位器2采样左移位器,所述移位器3采用右移位器。
可选地,所述子模块1还包括移位器1、移位器2、移位器3、移位器4、减法器1以及减法器2;
其中,所述二输入乘法器的输出端分别与所述移位器1的第一输入端、所述移位器2的第一输入端以及所述移位器3的第一输入端连接;
所述移位器1的第二输入端用于接收预计算参数中的第四参数,所述移位器1的输出端与所述减法器1的第一输入端连接;
所述移位器2的第二输入端用于接收预计算参数中的第五参数,所述移位器2的输出端与所述减法器1的第二输入端连接;
所述减法器1的输出端与所述减法器2的第一输入端连接,所述减法器2的第二输入端与所述移位器3的输出端端连接;所述移位器3的第二输入端用于接收预计算参数中的第六参数;
所述减法器2的输出端与所述移位器4的第一输入端连接,所述移位器4的第二输入端用于接收预计算参数中的第七参数,所述移位器4的输出端与所述子模块2的输入端连接;
所述移位器1和所述移位器2采样左移位器,所述移位器3和所述移位器4采用右移位器。
可选地,所述子模块2包括第一移位器、第二移位器、加法器1以及加法器2;
其中,所述子模块1的输出端分别与所述第一移位器的第一输入端、所述第二移位器的第一输入端以及所述加法器2的第一输入端连接;
所述第一移位器的第二输入端用于接收预计算参数中的第八参数,所述第一移位器的输出端与所述加法器1的第一输入端连接;
所述第二移位器的的第二输入端用于接收预计算参数中的第九参数,所述第二移位器的输出端与所述加法器1的第二输入端连接;
所述加法器1的输出端与所述加法器2的第二输入端连接,所述加法器2的输出端与所述二输入减法器1的第二输入端连接;
所述第一移位器和所述第二移位器采用左移位器。
可选地,所述模乘器还包括若干个寄存器;
每个所述寄存器连接于各个所述输入端之前,以及各个所述输出端之后,用于存储各个所述输入端的值和各个所述输出端的值。
本发明实施例的另一方面还提供了一种基于巴雷特约减的约减计算方法,应用于上述一种基于巴雷特约减的模乘器,所述计算方法包括:
通过二输入乘法器接收两个待模乘数据并计算两个所述待模乘数据的乘积,得到第一乘积;
通过子模块1接收所述第一乘积,并根据位移加法计算所述第一乘积与预计算参数的乘积,得到第二乘积;
通过子模块2接收所述第二乘积,并根据位移加法计算所述第二乘积与模量的乘积,得到第三乘积;
通过二输入减法器1接收所述第一乘积和所述第三乘积,并计算所述第一乘积与所述第三乘积的差值,得到第一差值;
通过二输入减法器2接收所述第一差值和所述模量,并计算所述第一差值与所述模量的差值,得到第二差值;
通过二选一多路选择器接收所述第一差值和所述第二差值,并将所述第一差值的符号位作为位选信号对所述第一差值和所述第二差值进行选择输出;
其中,所述模量与所述预计算参数为对偶关系。
可选地,所述模量q=2i+2j+1,所述预计算参数其中,k=2i,i>2j+1,i、j、k分别是已知的值。
可选地,所述模量q=2i-2j+1,所述预计算参数其中,k=2i,i>2j+1,i、j、k分别是已知的值。
可选地,所述模量q=2i±2j±∑m2m+1,所述预计算参数 其中,/>表示向下取整,k=2i,i>2j+1,j>m,i、j、k、m分别是已知的值,∑m2m表示为多个项,其中m可取任意小于j的正整数。
本发明实施例的另一方面还提供了另一种基于巴雷特约减的约减计算方法,包括:
获取全同态加密过程中的输入系数与旋转因子,作为待模乘数据,并获取与所述待模乘数据存在对偶关系的模量;
根据基于巴雷特约减的约减计算方法对所述待模乘数据与所述模量进行约减计算,得到所述输入系数与所述旋转因子在所述模量下的模乘结果;
其中,所述基于巴雷特约减的约减计算方法根据上述一种基于巴雷特约减的约减计算方法确定。
本发明的模乘器由于采用更细粒度的硬件设计结构,可以带来更少资源消耗的优点,而且本发明进一步在硬件上实现了针对特殊模量优化的巴雷特模乘单器,并将约减计算方法的移位步骤进一步优化,减少了加法器所需的位宽,从而带来更低的资源消耗;本发明所需计算的模量与预计算参数存在对偶关系,从而使得在巴雷特约减中涉及的两个乘法可以用简单的移位加法实现,且移位的步长相同,从而可以快捷高效地完成约减计算;本发明由于采用与模量对偶的预计算参数,可以带来硬件设计简单的优点,即本发明所采取的模量与预计算参数在形式上完全对应,因此无需额外存储预计算参数的真实值,从而模乘器中无需增加额外的存储单元用于存储预计算参数的真实值。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种传统的基于巴雷特约减的模乘计算方法伪代码示意图;
图2为本发明实施例提供的一种基于巴雷特约减的模乘器的结构示意图;
图3为本发明实施例提供的另一种基于巴雷特约减的模乘器的结构示意图;
图4为本发明实施例提供的一种基于巴雷特约减的约减计算方法的流程示意图;
图5为本发明实施例提供的一种针对特殊形式模量的基于巴雷特约减的模乘算法伪代码示意图;
图6为本发明实施例提供的另一种针对特殊形式模量的基于巴雷特约减的模乘算法伪代码示意图;
图7为本发明实施例提供的一种本发明实施例的约减计算方法与现有约减计算方法的对比结果图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
参照图2,本发明实施例提供了一种基于巴雷特约减的模乘器,具体包括:二输入乘法器、子模块1、子模块2、二输入减法器1、二输入减法器2以及二选一多路选择器。
其中,所述二输入乘法器包括两个输入端,分别用于接收对应的待模乘数据;所述二输入乘法器的输出端分别与所述子模块1的输入端以及所述二输入减法器1的第一输入端连接;所述子模块1的输出端与所述子模块2的输入端连接;所述子模块2的输出端与所述二输入减法器1的第二输入端连接;所述二输入减法器1的输出端与所述二输入减法器2的第一输入端连接,所述二输入减法器2的第二输入端用于接收模量;所述二输入减法器1的输出端还与所述二选一多路选择器的第一输入端连接,所述二输入减法器2的输出端与所述二选一多路选择器的第二输入端连接;所述二选一多路选择器的输出端用于输出两个所述待模乘数据与所述模量的模乘结果。
针对不同的模量形式,本发明实施例的子模块1可以有不同的结构,接下来将示例性地介绍两种结构不同的子模块1。
子模块1示例性的第一种形式,包括移位器1、移位器2、移位器3、减法器1以及减法器2。包含第一种形式的子模块1的模乘器结构图可以参照图2。
其中,所述二输入乘法器的输出端分别与所述移位器1的第一输入端、所述移位器2的第一输入端以及所述减法器2的第一输入端连接。
所述移位器1的第二输入端用于接收预计算参数中的第一参数,所述移位器1的输出端与所述减法器1的第一输入端连接。
所述移位器2的第二输入端用于接收预计算参数中的第二参数,所述移位器2的输出端与所述减法器1的第二输入端连接。
所述减法器1的输出端与所述减法器2的第二输入端连接,所述减法器2的输出端与所述移位器3的第一输入端连接。
所述移位器3的第二输入端用于接收预计算参数中的第三参数,所述移位器3的输出端用于与所述子模块2的输入端连接。
所述移位器1和所述移位器2采样左移位器,所述移位器3采用右移位器。
子模块1示例性的第二种形式,包括移位器1、移位器2、移位器3、移位器4、减法器1以及减法器2。包含第二种形式的子模块1的模乘器结构图可以参照图3。
其中,所述二输入乘法器的输出端分别与所述移位器1的第一输入端、所述移位器2的第一输入端以及所述移位器3的第一输入端连接。
所述移位器1的第二输入端用于接收预计算参数中的第四参数,所述移位器1的输出端与所述减法器1的第一输入端连接。
所述移位器2的第二输入端用于接收预计算参数中的第五参数,所述移位器2的输出端与所述减法器1的第二输入端连接。
所述减法器1的输出端与所述减法器2的第一输入端连接,所述减法器2的第二输入端与所述移位器3的输出端端连接;所述移位器3的第二输入端用于接收预计算参数中的第六参数。
所述减法器2的输出端与所述移位器4的第一输入端连接,所述移位器4的第二输入端用于接收预计算参数中的第七参数,所述移位器4的输出端与所述子模块2的输入端连接。
所述移位器1和所述移位器2采样左移位器,所述移位器3和所述移位器4采用右移位器。
接下来说明子模块2的结构,其可以包括第一移位器、第二移位器、加法器1以及加法器2。
其中,所述子模块1的输出端分别与所述第一移位器的第一输入端、所述第二移位器的第一输入端以及所述加法器2的第一输入端连接。
所述第一移位器的第二输入端用于接收预计算参数中的第八参数,所述第一移位器的输出端与所述加法器1的第一输入端连接。
所述第二移位器的的第二输入端用于接收预计算参数中的第九参数,所述第二移位器的输出端与所述加法器1的第二输入端连接。
所述加法器1的输出端与所述加法器2的第二输入端连接,所述加法器2的输出端与所述二输入减法器1的第二输入端连接。
所述第一移位器和所述第二移位器采用左移位器。
为了存储模乘器计算方法中产生的各个数值,本发明实施例的模乘器还可以包括若干个寄存器;每个所述寄存器连接于各个所述输入端之前,以及各个所述输出端之后,用于存储各个所述输入端的值和各个所述输出端的值。
寄存器的具体连接关系和具体数量可以有实际的模乘器结构确定,图2和图3示例性地展示了寄存器在模乘器中的数量和连接关系。
另外,需要说明的是,图2中子模块2的移位器4是第一移位器,移位器5是第二移位器。图3中子模块2的移位器5是第一移位器,移位器6是第二移位器。
接下来,对基于上述模乘器进行约减计算的过程进行说明,参照图4,本发明实施例提供了一种基于巴雷特约减的约减计算方法,所述计算方法应用于上述说明的一种基于巴雷特约减的模乘器,所述计算方法包括:
S100:通过二输入乘法器接收两个待模乘数据并计算两个所述待模乘数据的乘积,得到第一乘积。
S110:通过子模块1接收所述第一乘积,并根据位移加法计算所述第一乘积与预计算参数的乘积,得到第二乘积。
S120:通过子模块2接收所述第二乘积,并根据位移加法计算所述第二乘积与模量的乘积,得到第三乘积。
S130:通过二输入减法器1接收所述第一乘积和所述第三乘积,并计算所述第一乘积与所述第三乘积的差值,得到第一差值。
S140:通过二输入减法器2接收所述第一差值和所述模量,并计算所述第一差值与所述模量的差值,得到第二差值。
S150:通过二选一多路选择器接收所述第一差值和所述第二差值,并将所述第一差值的符号位作为位选信号对所述第一差值和所述第二差值进行选择输出。
其中,所述模量与所述预计算参数为对偶关系。
首先,对模量与预计算参数确定为对偶关系的过程进行说明。
具体的,取满足以下格式的整数q=∑2i+1,此时整数q的位宽为(i+1)-bit。
以q=2i+2j+1为例,选取k值为k=2i,预计算参数可得:
显然2i-2j-1是整数,则中向下取整舍去的部分存在于/>中,因此将q=2i+2j+1中的幂次i,j做一定的约束限制,使得i>2j+1,则有:
上式的分数部分,显然22j-2j>0,即因此可得:
综上可得,i>2j+1时,必然不超过1,即当对/>进行向下取整操作时这部分会被舍弃,因此可以得到此时预计算参数/>若选取满足上述条件限制的模量作为模量q时,模量与预计算参数r是一种对偶关系。这种对偶关系可以很好地应用到模乘计算的简化中。
已知输入的连个待模乘数据in1,in2,模量q,则对in1,in2进行模乘则得到 其中模量即为对待模乘数据进行取模处理的对应模量。而由于除法在硬件实现中相对昂贵,因此本发明实施例采用预计算参数/>将除以模量转换为乘以模量的倒数的倍数,即把/>这一项除法转换为乘法(in1×in2)×r/2k。整个模乘过程包括2个步骤:
步骤1:计算两个输入in1,in2的乘积,得到a=in1×in2;
步骤2:对乘积a进行约减处理,得到最终结果result=a%q。
其中,约减处理可以利用上述实施例采用的特殊模量形式进行简化,具体操作如下所述。
在现有的实现中,约减处理需要预存预计算参数r的值,并分别计算两个乘法:
乘法1:计算b=(a×r)/2k,得到
乘法2:计算c=b×q,得到
最后用步骤1得到的乘积减去c得到约减的结果。
本发明实施例中则由于在满足k=2i,i>2j+1时,特殊形式的模量q=2i+2j+1与预计算参数存在对偶关系,且都是由2的幂次方组合得到,因此在模乘器硬件实现中可以将上述两个乘法转换成两组移位加法,从而大大简化了模乘器的硬件实现。
本发明实施例的约减实现过程相较于上述现有的实现过程还包括3个步骤:
步骤1:计算
步骤2:计算c=b×q=(b<<i+b<<j+b);
步骤3:计算result=a-c,得到最终的约减结果。
因此本发明实施例中无需预存预计算参数r的值,只要模量q满足所规定的特定形式,则可由对偶关系得到预计算参数的表达式;且本发明实施例避免了硬件上昂贵的两个乘法器,以移位相加取代。
本发明实施例中模量与预计算参数的对偶关系还可以扩展到满足形式为q=2i-2j+1的特殊模量上,此时预计算参数r=2i+2j-1。
进一步,而当模量形式为q=2i±2j±∑m2m+1,且满足k=2i,i>2j+1,j>m时,同样可以根据上述的对偶关系确定预计算参数能满足上述关系:/>
综上所述,本发明实施例确定了满足特殊形式的模量与按照巴雷特约减算法所需的预计算参数之间的对偶关系,且满足上述形式的模量范围相比现有技术的更大,适合更广泛的应用场景。经过本发明实施例优化的模乘算法过程如图5中的伪代码所示。
进一步,假设模量q为一个n-bit的数,则乘积a位宽为(2n)-bit。因此在图5所示算法的第2步中,移位后的减法位宽可达(3n)-bit。而由于k=2i,i>2j+1,因此本发明实施例可以将减法后的移位部分(即右移k)移至减法前先进行,即此时第2步可变为:
b=((a<<i)>>2j-(a<<j)>>2j-a>>2j)>>(k-2j)=(a<<(i-2j)-a>>j-a>>2j)>>(k-2j)
此时移位后的减法位宽可得到进一步减小,同时仍保持结果的正确性。模乘器硬件优化后的计算方法图6伪代码所示。
接下来,结合图2所示模乘器与图5所示伪代码的算法,对约减计算方法进行说明。
具体的,本发明实施例的模乘器结构可以包括二输入乘法器、子模块1、子模块2、二输入减法器1、二输入减法器2、二选一多路选择器和若干寄存器。模乘器的总输入信号分别为两个待模乘数据in1和in2,以及模量q;总输出信号为result,表示模乘计算结果。约减计算方法如下:
二输入乘法器接收输入数据in1、in2,输出乘积a,用于计算两个输入数据的乘积结果。
子模块1接收二输入乘法器的输出a作为输入,并输出结果b,用于计算b=(a<<i-a<<j-a)>>k,其中i、j、k分别是预先已知的值(即对应与特殊模量对偶的预计算参数中的i、j、k)。子模块1由三个移位器以及两个二输入的减法器组成。输入a分别经过移位器1(将a左移i位)、移位器2(将a左移j位)后连接到减法器1的输入端,其输出再与a一起连接到减法器2的输入端,减法器2的输出端经过移位器3(右移k位)后连接到子模块1的输出端b。
子模块2接收子模块1的输出b作为输入,并输出结果c,用于计算c=b×q=(b<<i+b<<j+b),其中i、j分别对应特殊模量q=2i+2j+1的i、j。子模块2由两个移位器、两个二输入的加法器组成。输入b分别经过移位器4(将b左移i位)、移位器5(将b左移j位)后连接到加法器1的输入端,其输出再与b一起连接到加法器2的输入端,加法器2的输出端连接到子模块2的输出端c。
二输入减法器1接收乘法器的输出a和子模块2的输出c作为输入,输出结果m0,用于计算m0=a-b×q。二输入减法器2接收二输入减法器1的输出m0和总输入q作为输入,输出结果m1,用于计算m1=m0-q。
最后二输入减法器1的输出m0和二输入减法器2的输出m1作为二选一多路选择器的两个输入,m0的符号位作为多路选择器的位选信号,多路选择器的输出连接到模乘单元的总输出result。
本发明实施例模乘器中的寄存器用于做流水线处理以提高时钟频率,提高计算速度。
可选地,本发明实施例还可以结合图3所示模乘器与图6所示伪代码的算法进行约减计算,具体如下说明。
具体的,本发明实施例的模乘器结构可以包括二输入乘法器、子模块1、子模块2、二输入减法器1、二输入减法器2、二选一多路选择器和若干寄存器。模乘器的输入数据分别为in1、in2、q,分别表示待模乘数据1、待模乘数据2和模量;总输出信号为result,表示模乘计算结果。图3所示的模乘器与图2所示的模乘器的区别点在于子模块1的结构,两种子模块1的区别可以参照上述对两种示例性子模块1的说明部分。相比图2所示的模乘器,图3所示的模乘器的优化点在于子模块1的减法器位宽更小。约减计算方法如下:
子模块1接收二输入乘法器的输出a作为输入,并输出结果b,用于计算b=(a<<(i-2j)-a>>j-a>>2j)>>(k-2j),其中i、j、k分别是预先已知的值(即对应与特殊模量对偶的预计算参数中的i、j、k)。子模块1由四个移位器、两个二输入的减法器组成。输入a分别经过移位器1(将a左移(i-2j)位)、移位器2(将a右移j位)后连接到减法器1的输入端,减法器2的输入端连接二输入减法器1的输出端和移位器3(将a右移2j位)的输出端,减法器2的输出端经过移位器3(右移(k-2j)位)后连接到子模块1的输出端b。
此外,图3所示模乘器的其它单元构造和连接关系皆与图2所示的模乘器相同。
因此本发明实施例中可计算的模量与预计算参数的对偶形式可以包括以下:
所述模量q=2i+2j+1,所述预计算参数其中,k=2i,i>2j+1,i、j、k分别是已知的值。
所述模量q=2i-2j+1,所述预计算参数其中,k=2i,i>2j+1,i、j、k分别是已知的值。
所述模量q=2i±2j±∑m2m+1,所述预计算参数其中,/>表示向下取整,k=2i,i>2j+1,j>m,i、j、k、m分别是已知的值,∑m2m表示可为多个项,其中m可取任意小于j的正整数。
基于此,本发明实施例可以将上述一种基于巴雷特约减的约减计算方法应用于以下场景,具体如下:
S200、在全同态加密方案的多项式乘法中的NTT(Number Theoretic Transform,数论变换)与INTT(Inverse Number Theoretic Transform,逆数论变换)均需要进行模乘计算,获取输入系数和旋转因子作为待模乘数据与满足本发明实施例特定形式的模量。
S210、根据基于巴雷特约减的约减计算方法对所述待模乘数据与所述模量进行约减计算,得到输入系数与旋转因子在该模量下的模乘结果。
S220、根据获取的输入系数与旋转因子在该模量下的模乘结果进行数论变换或逆数论变换,提高多项式系数在时域和频域之间的变换速度。
此外,本发明实施例还可以将上述一种基于巴雷特约减的约减计算方法应用于另一种场景,具体如下:
S300、在全同态加密方案的多项式乘法中还需要对频域表达下的多项式系数进行逐项模乘计算,获取在频域表达下输入的两个多项式对应项的两个系数作为待模乘数据与满足本发明实施例特定形式的模量。
S310、根据基于巴雷特约减的约减计算方法对所述待模乘数据与所述模量进行约减计算,得到两个多项式对应项的两个系数在该模量下的模乘结果。
S320、根据获取的两个多项式对应项的两个系数在该模量下的模乘结果完成多项式模乘计算,提高多项式模乘的计算速度。
下面结合具体实施例及图7对本发明实施例作进一步详细的描述,但本发明的实施方式不限于此。
本实施例以模量q=231+214+1为例。
本实施例中,所提出的两种计算方法(即上述图5和图6所示的计算方法)在XilinxZynq UltraScale+MPSoC ZCU102分别进行实现,采用vivado 2018.1对模量位宽为32-bit的情况进行综合,最高频率可达500MHz。此外实现了针对普遍情况的基于传统巴雷特约减的模乘器(参照图1所示过程),在同样的FPGA平台上传统方法最高频率只能到222MHz左右。三种计算方法的资源消耗如图7所示,其中传统方法为图1所示计算方法的过程,可以发现由于需要三个乘法且需要大位宽的乘法器,其使用的DSP数量最多,也使用了更多的查找表和寄存器。而本实施例两种计算方法分别对应图5和图6所示的计算方法的流程,对比可得,用于实现的图6所示的计算方法的模乘器进行了硬件层面上更细粒度的优化,因此减少了移位后的减法器所需位宽,因此其LUT资源比用于实现的图5所示的计算方法的模乘器更少,同时本实施例提出的两种模乘器所消耗的资源都比实现传统方法的模乘器的资源更少,计算速度也更快。
除了本实施例提及的方式外,还能做如下变换:将模量q选取为满足q=2i±2j±∑m2m+1、同时满足k=2i,i>2j+1,j>m的素数。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置)、便携式计算机盘盒(磁装置)、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编辑只读存储器(EPROM或闪速存储器)、光纤装置以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
Claims (10)
1.一种基于巴雷特约减的模乘器,其特征在于,包括:二输入乘法器、子模块1、子模块2、二输入减法器1、二输入减法器2以及二选一多路选择器;
其中,所述二输入乘法器包括两个输入端,分别用于接收对应的待模乘数据;所述二输入乘法器的输出端分别与所述子模块1的输入端以及所述二输入减法器1的第一输入端连接;所述子模块1的输出端与所述子模块2的输入端连接;所述子模块2的输出端与所述二输入减法器1的第二输入端连接;所述二输入减法器1的输出端与所述二输入减法器2的第一输入端连接,所述二输入减法器2的第二输入端用于接收模量;所述二输入减法器1的输出端还与所述二选一多路选择器的第一输入端连接,所述二输入减法器2的输出端与所述二选一多路选择器的第二输入端连接;所述二选一多路选择器的输出端用于输出两个所述待模乘数据与所述模量的模乘结果。
2.根据权利要求1所述的一种基于巴雷特约减的模乘器,其特征在于,所述子模块1包括移位器1、移位器2、移位器3、减法器1以及减法器2;
其中,所述二输入乘法器的输出端分别与所述移位器1的第一输入端、所述移位器2的第一输入端以及所述减法器2的第一输入端连接;
所述移位器1的第二输入端用于接收预计算参数中的第一参数,所述移位器1的输出端与所述减法器1的第一输入端连接;
所述移位器2的第二输入端用于接收预计算参数中的第二参数,所述移位器2的输出端与所述减法器1的第二输入端连接;
所述减法器1的输出端与所述减法器2的第二输入端连接,所述减法器2的输出端与所述移位器3的第一输入端连接;
所述移位器3的第二输入端用于接收预计算参数中的第三参数,所述移位器3的输出端用于与所述子模块2的输入端连接;
所述移位器1和所述移位器2采样左移位器,所述移位器3采用右移位器。
3.根据权利要求1所述的一种基于巴雷特约减的模乘器,其特征在于,所述子模块1还包括移位器1、移位器2、移位器3、移位器4、减法器1以及减法器2;
其中,所述二输入乘法器的输出端分别与所述移位器1的第一输入端、所述移位器2的第一输入端以及所述移位器3的第一输入端连接;
所述移位器1的第二输入端用于接收预计算参数中的第四参数,所述移位器1的输出端与所述减法器1的第一输入端连接;
所述移位器2的第二输入端用于接收预计算参数中的第五参数,所述移位器2的输出端与所述减法器1的第二输入端连接;
所述减法器1的输出端与所述减法器2的第一输入端连接,所述减法器2的第二输入端与所述移位器3的输出端端连接;所述移位器3的第二输入端用于接收预计算参数中的第六参数;
所述减法器2的输出端与所述移位器4的第一输入端连接,所述移位器4的第二输入端用于接收预计算参数中的第七参数,所述移位器4的输出端与所述子模块2的输入端连接;
所述移位器1和所述移位器2采样左移位器,所述移位器3和所述移位器4采用右移位器。
4.根据权利要求1所述的一种基于巴雷特约减的模乘器,其特征在于,所述子模块2包括第一移位器、第二移位器、加法器1以及加法器2;
其中,所述子模块1的输出端分别与所述第一移位器的第一输入端、所述第二移位器的第一输入端以及所述加法器2的第一输入端连接;
所述第一移位器的第二输入端用于接收预计算参数中的第八参数,所述第一移位器的输出端与所述加法器1的第一输入端连接;
所述第二移位器的的第二输入端用于接收预计算参数中的第九参数,所述第二移位器的输出端与所述加法器1的第二输入端连接;
所述加法器1的输出端与所述加法器2的第二输入端连接,所述加法器2的输出端与所述二输入减法器1的第二输入端连接;
所述第一移位器和所述第二移位器采用左移位器。
5.根据权利要求1至4任一项所述的一种基于巴雷特约减的模乘器,其特征在于,所述模乘器还包括若干个寄存器;
每个所述寄存器连接于各个所述输入端之前,以及各个所述输出端之后,用于存储各个所述输入端的值和各个所述输出端的值。
6.一种基于巴雷特约减的约减计算方法,其特征在于,应用于权利要求1至5任一项所述一种基于巴雷特约减的模乘器,所述计算方法包括:
通过二输入乘法器接收两个待模乘数据并计算两个所述待模乘数据的乘积,得到第一乘积;
通过子模块1接收所述第一乘积,并根据位移加法计算所述第一乘积与预计算参数的乘积,得到第二乘积;
通过子模块2接收所述第二乘积,并根据位移加法计算所述第二乘积与模量的乘积,得到第三乘积;
通过二输入减法器1接收所述第一乘积和所述第三乘积,并计算所述第一乘积与所述第三乘积的差值,得到第一差值;
通过二输入减法器2接收所述第一差值和所述模量,并计算所述第一差值与所述模量的差值,得到第二差值;
通过二选一多路选择器接收所述第一差值和所述第二差值,并将所述第一差值的符号位作为位选信号对所述第一差值和所述第二差值进行选择输出;
其中,所述模量与所述预计算参数为对偶关系。
7.根据权利要求6所述的一种基于巴雷特约减的约减计算方法,其特征在于,所述模量q=2i+2j+1,所述预计算参数其中,k=2i,i>2j+1,i、j、k分别是已知的值。
8.根据权利要求6所述的一种基于巴雷特约减的约减计算方法,其特征在于,所述模量q=2i-2j+1,所述预计算参数其中,k=2i,i>2j+1,i、j、k分别是已知的值。
9.根据权利要求6所述的一种基于巴雷特约减的约减计算方法,其特征在于,所述模量q=2i±2j±∑m2m+1,所述预计算参数其中,/>表示向下取整,k=2i,i>2j+1,j>m,i、j、k、m分别是已知的值,∑m2m表示为多个项,其中m可取任意小于j的正整数。
10.一种基于巴雷特约减的约减计算方法,其特征在于,包括:
获取全同态加密过程中的输入系数与旋转因子,作为待模乘数据,并获取与所述待模乘数据存在对偶关系的模量;
根据基于巴雷特约减的约减计算方法对所述待模乘数据与所述模量进行约减计算,得到所述输入系数与所述旋转因子在所述模量下的模乘结果;
其中,所述基于巴雷特约减的约减计算方法根据权利要求6至9任一项所述的一种基于巴雷特约减的约减计算方法确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310652006.6A CN116755658A (zh) | 2023-06-02 | 2023-06-02 | 一种基于巴雷特约减的模乘器及约减计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310652006.6A CN116755658A (zh) | 2023-06-02 | 2023-06-02 | 一种基于巴雷特约减的模乘器及约减计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116755658A true CN116755658A (zh) | 2023-09-15 |
Family
ID=87948915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310652006.6A Pending CN116755658A (zh) | 2023-06-02 | 2023-06-02 | 一种基于巴雷特约减的模乘器及约减计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755658A (zh) |
-
2023
- 2023-06-02 CN CN202310652006.6A patent/CN116755658A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021537B (zh) | 一种基于硬件平台的softmax函数计算方法 | |
FR2867579A1 (fr) | Multiplieur modulaire de montgomery | |
JP2004326112A (ja) | マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ | |
US20210382688A1 (en) | Modular operation circuit adopting iterative calculations | |
CN114968173A (zh) | 基于ntt和intt结构的多项式乘法运算方法和多项式乘法器 | |
JP5229314B2 (ja) | Cordic演算回路及び方法 | |
KR101794807B1 (ko) | 몽고메리 역원 계산 장치 및 이를 이용한 몽고메리 역원 계산 방법 | |
Chandra | A novel method for scalable VLSI implementation of hyperbolic tangent function | |
CN116755658A (zh) | 一种基于巴雷特约减的模乘器及约减计算方法 | |
Elango et al. | Hardware implementation of residue multipliers based signed RNS processor for cryptosystems | |
Saldamli et al. | Spectral modular exponentiation | |
US20210064340A1 (en) | Arithmetic circuit | |
Wang et al. | Novel design and FPGA implementation of DA-RNS FIR filters | |
Bose et al. | Conditional differential coefficients method for the realization of powers-of-two FIR filter | |
US7890564B2 (en) | Interpolation FIR filter and method thereof | |
Pushpa et al. | Area optimized implementation of Galois field Fourier transform | |
Stamenković | ISOMORPHIC TRANSFORMATION AND ITS APPLICATION TO THE MODULO (2^ n+ 1) CHANNEL FOR RNS BASED FIR FILTER DESIGN | |
CN116149600B (zh) | 多常数乘法器的逻辑电路设置方法、装置、设备及介质 | |
Stamenković et al. | The use of residue number system in the design of the optimal all-pole IIR digital filters | |
Gbolagade et al. | Memoryless RNS-to-binary converters for the {2 n+ 1-1, 2 n, 2 n-1} moduli set | |
Kumm et al. | Reduced complexity single and multiple constant multiplication in floating point precision | |
CN117134917B (zh) | 一种用于椭圆曲线加密的快速模运算方法和装置 | |
CN116822537A (zh) | 用于随机计算的多加数加法电路 | |
US20140012889A1 (en) | Construction Methods for Finite Fields with Split-optimal Multipliers | |
JP3875183B2 (ja) | 演算装置 |
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 |