当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于巴雷特约减的模乘器及约减计算方法技术

技术编号:38853875 阅读:8 留言:0更新日期:2023-09-17 10:00
本发明专利技术公开了一种基于巴雷特约减的模乘器及约减计算方法,模乘器包括:二输入乘法器、两个子模块、两个二输入减法器以及二选一多路选择器;本发明专利技术在硬件上实现了针对特殊模量优化的巴雷特模乘单器,并将约减计算方法的移位步骤进一步优化,减少了加法器所需的位宽,从而带来更低的资源消耗。本发明专利技术可以降低约减计算方法中所需的位宽并降低硬件资源的消耗,可广泛应用于模乘器的设计与应用领域。广泛应用于模乘器的设计与应用领域。广泛应用于模乘器的设计与应用领域。

【技术实现步骤摘要】
一种基于巴雷特约减的模乘器及约减计算方法


[0001]本专利技术涉及模乘器的设计与应用领域,尤其是一种基于巴雷特约减的模乘器及约减计算方法。

技术介绍

[0002]模乘是基于多项式环的多项式乘法中一个重要的计算单元,而模乘的步骤包括:计算乘积、对乘积进行模约减。所以模乘器的设计需要一个乘法器和一个计算模约减的单元,而通常实现模约减的方法包括巴雷特约减算法、蒙哥马利约减算法、Shoup约减算法。而近年来密码学中比较引起广泛关注的密码方案中,有不少是基于多项式环构建的,如全同态加密和零知识证明等,上述加密方案都需要涉及模乘器的设计。
[0003]巴雷特约减算法是Barrette于1987年提出的一种硬件友好型的快速约减算法。蒙哥马利约减算法需要将待约减的数先切换到蒙哥马利的模域下进行约减后再切换回原先的模域,因此相比巴雷特约减算法更复杂。而Shoup约减算法虽然相比巴雷特约减算法能减少乘法器资源的消耗,但基于Shoup约减的模乘器只能适用于一个变量和一个常量的乘积计算,而巴雷特模乘器可以用于两个变量的模乘计算,故Shoup模乘器通用性比不上基于巴雷特约减的模乘器。因此,许多模乘器设计皆采用了巴雷特约减算法。传统的基于巴雷特约减的模乘计算方法如图1伪代码所示。
[0004]现有技术一提出了一个可配置为巴雷特约减或Shoup约减的模乘器设计,然而其设计并不是针对特殊模量进行,因此本质上与传统的巴雷特约减算法仍是一样的。也有不少工作针对特殊模量进行了巴雷特约减算法的优化,现有技术二只针对一个固定模量(q=7681)进行硬件结构设计。由于模量固定,因此巴雷特约减中的预计算参数也能确定,现有技术二通过将模量q和预计算参数r表示为二进制数,从而将两个乘法操作转换成一系列移位相加操作。但是由于现有技术二的模量固定,因此应用范围很局限。而现有技术三则是将所面向的特殊模量的范围进行拓展,只要选取满足(2
j
≡2
i

1(modq))的模量q(q=2
j
‑2i
+1),则可将巴雷特约减算法中乘以模量和乘以预计算参数的两个乘法消除,以截位、移位和加法操作代替。但现有技术三并没有指出针对满足该形式的模量的模约减的普遍公式,而是以一个特殊的模量作为例子来设计特定的截位位宽、移位步长、加法数量。现有技术四提出了针对部分特定模量的优化约减方法,由于模量已知,所以现有技术四通过选择合适的k值得到预计算值后,也将模量q和预计算值r表示为二进制数,从而以移位相加操作取代乘法操作。现有技术四相比现有技术二能计算更多模量的模乘,但仍十分有限(现有技术四中只列举了12个特殊模量)。现有技术五采用特殊模量(q=2
r1
+2
r2
+1),将乘模量q操作转变为移位相加,然而其预计算参数r的乘法仍然存在,相比传统的基于巴雷特约减的模乘单元只减少了一个乘法。
[0005]此外,在现有技术二和现有技术四中,针对的模量位宽仍是相对小的位宽,而全同态加密、零知识证明等密码方案对模量位宽的要求较高,通常可以取到几十到几百比特,现有的模乘器仍存在模量位宽较少的问题。

技术实现思路

[0006]有鉴于此,本专利技术实施例提供一种基于巴雷特约减的模乘器及约减计算方法,用于降低约减计算方法中所需的位宽并降低硬件资源的消耗。
[0007]本专利技术实施例的一方面提供了一种基于巴雷特约减的模乘器,包括:二输入乘法器、子模块1、子模块2、二输入减法器1、二输入减法器2以及二选一多路选择器;
[0008]其中,所述二输入乘法器包括两个输入端,分别用于接收对应的待模乘数据;所述二输入乘法器的输出端分别与所述子模块1的输入端以及所述二输入减法器1的第一输入端连接;所述子模块1的输出端与所述子模块2的输入端连接;所述子模块2的输出端与所述二输入减法器1的第二输入端连接;所述二输入减法器1的输出端与所述二输入减法器2的第一输入端连接,所述二输入减法器2的第二输入端用于接收模量;所述二输入减法器1的输出端还与所述二选一多路选择器的第一输入端连接,所述二输入减法器2的输出端与所述二选一多路选择器的第二输入端连接;所述二选一多路选择器的输出端用于输出两个所述待模乘数据与所述模量的模乘结果。
[0009]可选地,所述子模块1包括移位器1、移位器2、移位器3、减法器1以及减法器2;
[0010]其中,所述二输入乘法器的输出端分别与所述移位器1的第一输入端、所述移位器2的第一输入端以及所述减法器2的第一输入端连接;
[0011]所述移位器1的第二输入端用于接收预计算参数中的第一参数,所述移位器1的输出端与所述减法器1的第一输入端连接;
[0012]所述移位器2的第二输入端用于接收预计算参数中的第二参数,所述移位器2的输出端与所述减法器1的第二输入端连接;
[0013]所述减法器1的输出端与所述减法器2的第二输入端连接,所述减法器2的输出端与所述移位器3的第一输入端连接;
[0014]所述移位器3的第二输入端用于接收预计算参数中的第三参数,所述移位器3的输出端用于与所述子模块2的输入端连接;
[0015]所述移位器1和所述移位器2采样左移位器,所述移位器3采用右移位器。
[0016]可选地,所述子模块1还包括移位器1、移位器2、移位器3、移位器4、减法器1以及减法器2;
[0017]其中,所述二输入乘法器的输出端分别与所述移位器1的第一输入端、所述移位器2的第一输入端以及所述移位器3的第一输入端连接;
[0018]所述移位器1的第二输入端用于接收预计算参数中的第四参数,所述移位器1的输出端与所述减法器1的第一输入端连接;
[0019]所述移位器2的第二输入端用于接收预计算参数中的第五参数,所述移位器2的输出端与所述减法器1的第二输入端连接;
[0020]所述减法器1的输出端与所述减法器2的第一输入端连接,所述减法器2的第二输入端与所述移位器3的输出端端连接;所述移位器3的第二输入端用于接收预计算参数中的第六参数;
[0021]所述减法器2的输出端与所述移位器4的第一输入端连接,所述移位器4的第二输入端用于接收预计算参数中的第七参数,所述移位器4的输出端与所述子模块2的输入端连接;
[0022]所述移位器1和所述移位器2采样左移位器,所述移位器3和所述移位器4采用右移位器。
[0023]可选地,所述子模块2包括第一移位器、第二移位器、加法器1以及加法器2;
[0024]其中,所述子模块1的输出端分别与所述第一移位器的第一输入端、所述第二移位器的第一输入端以及所述加法器2的第一输入端连接;
[0025]所述第一移位器的第二输入端用于接收预计算参数中的第八参数,所述第一移位器的输出端与所述加法器1的第一输入端连接;
[0026]所述第二移位器的的第二输入端用于接收预计算参数中的第九参数,所述第二移位器的输出端与所述加法器1的第二输入端连接;
[0027]所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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的第一输入端连接;所述第一移位器...

【专利技术属性】
技术研发人员:粟涛陈晓洁
申请(专利权)人:中山大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1