[发明专利]软硬协同的分段扫描式蒙哥马利模幂计算系统及可读存储介质在审
| 申请号: | 202111480141.4 | 申请日: | 2021-12-06 |
| 公开(公告)号: | CN114138235A | 公开(公告)日: | 2022-03-04 |
| 发明(设计)人: | 傅玉祥;孙玉祥;龙威;王峰;李伟;何书专 | 申请(专利权)人: | 南京大学 |
| 主分类号: | G06F7/72 | 分类号: | G06F7/72 |
| 代理公司: | 南京泰普专利代理事务所(普通合伙) 32360 | 代理人: | 张帆 |
| 地址: | 210023 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 软硬 协同 分段 扫描 式蒙哥 马利 计算 系统 可读 存储 介质 | ||
1.软硬协同的分段扫描式蒙哥马利模幂计算系统,其特征在于,所述系统包括:
ARM端,用于完成整体的任务调度,以及预计算;
FPGA端,与所述ARM端电性连接,用于完成计算密集的任务,执行模幂的具体运算。
2.根据权利要求1所述的计算系统,其特征在于,所述ARM端包括:
预计算模块,用于产生2k进制分段扫描模幂算法所需要的预算值,以及修正系数factor;
驱动模块,用于与数据预处理模块建立双向通信,驱动FPGA端,与FPGA端建立数据的双向通信。
3.根据权利要求1所述的计算系统,其特征在于,所述FPGA端包括:
蒙哥马利模幂模块,用于实现256bit模幂的具体运算;
模逆模块,采用欧几里得扩展算法计算64bit模逆的值,提供给蒙哥马利模块,作为预处理值;
数据分配模块,作为ARM端与FPGA端的数据交接模块,用于ARM的存取数;
SRAM模块,用于对所述ARM端的数据进行传输以及蒙哥马利模块、模逆模块的取数操作。
4.根据权利要求3所述的计算系统,其特征在于,所述模逆模块的结果作为模幂算法的输入值使用,求a关于m的模逆x,即a*x≡1(mod m),将其转化为求x和y使得ax+my=1成立。模逆采用直接的扩展欧几里得算法,利用欧几里得算法的性质:ax+my=a1x1+m1y1=…=1,其中递归运算来得到最终的结果。核心递归代码如下所示:
式中,mod表示取模运算,/表示整除,(xn,yn)(xn-1yn-1)为相邻两次递归的求解,(an,mn)(an-1,mn-1)相邻两次递归的源数据转化。
5.根据权利要求3所述的计算系统,其特征在于,所述蒙哥马利模幂模块包括:
256bit蒙哥马利模乘模块;
状态机控制模块,依次调用所述256bit蒙哥马利模乘模块,完成整个模幂算法的控制流程;
地址生成模块,用于生成源数据以及预算值的地址,从所述SRAM模块中取出对应的数。
6.根据权利要求5所述的计算系统,其特征在于,所述256bit蒙哥马利模乘模块基于CIOS优化算法实现,包括以下步骤:
步骤1、模逆模块先启动,得到N′0表示模乘运算所需要的模逆值,这里用作生成修正系数,表示对N的低64bit的模逆操作,R表示64bit模逆的取模值,这里R=264;
步骤2、将源数据A,B,N按照64bit为单位划分为4段;
步骤3、遍历源数据A[63:0]和B的四段64bit数据,依次进行乘法,分别存储为t[0]~[3];
步骤4、在有限域下,得到修正系数m:
m=t[0]×N′0
式中,t[0]表示步骤3结果的低64bit,即修正前的结果数据。
骤5、将修正系数依次乘以N的四段并加上对应的t[0]~[3],对结果进行修正,使得修正后的值可以被R整除,从而可以用移位操作代替除法操作;
步骤6、判断是否遍历了A的四段数据,若没有,则将A右移64bit,返回步骤3;
步骤7、由低到高拼接t[0]~[3],记为T,若TN,则返回T-N,否则返回T。
7.根据权利要求6所述的计算系统,其特征在于,所述步骤3的分段乘法运算和步骤5的结果修正流水化,无需等待步骤3的循环完全结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111480141.4/1.html,转载请声明来源钻瓜专利网。





