对素数取模、素域中模乘运算的实现方法和装置制造方法及图纸

技术编号:20840669 阅读:36 留言:0更新日期:2019-04-13 08:32
本说明书提供一种对素数取模的实现方法,用于计算A mod P,其中A是最大位数为BA的二进制数,P为BP位二进制数素数、并且P满足

【技术实现步骤摘要】
对素数取模、素域中模乘运算的实现方法和装置
本说明书涉及数据处理
,尤其涉及一种对素数取模的实现方法和装置、一种素域中模乘运算的实现方法和装置。
技术介绍
取模运算是计算机领域十分重要的运算方式,其中对素数取模在哈希算法、加解密算法等场景中都有着广泛的应用。在对时效要求较高的场合,经常采用专门的硬件来更快的完成这些算法,如基于FPGA(FieldProgrammableGateArray,可编程逻辑阵列)、或ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)的硬件加速卡。随着互联网金融的发展和普及,对网络安全服务的要求越来越高,加解密算法中使用的二进制位数越来越大。而取模运算的位数越大,硬件完成运算所需的时间越长,对网络服务时效有着不容忽视的不利影响。
技术实现思路
有鉴于此,本说明书提供一种对素数取模的实现方法,用于计算AmodP,其中A是最大位数为BA的二进制数,P为BP位二进制数素数、并且P满足Nm=(BP+mod(BP,BWm))/BWm;m为非负整数;n为从0到(Nm-1)的整数;ωNm+m,n为整数;BWm为自然数;所述方法包括:将ai输入Nm个BWm位的取模加法器,计算Ns个Nm*BWm位的加数项St的加权和ai为A的第i*BWm位到第((i+1)*BWm-1)位;i为从0到(Na-1)的整数;Na=(BA+mod(BA,BWm))/BWm;Ns为自然数;t为从1到Ns的自然数;σt为整数,σt和st,n满足st,n为St的第n*BWm位到第((n+1)*BWm-1)位,st,n或者等于某个ai或者等于0;将加权和SumS对P取模。本说明书提供的一种素域中模乘运算的实现方法,用于计算(C*D)modP,其中C、D为所述素域中的元素;P为所述素域的特征、为BP位二进制数、并且P满足Nm=(BP+mod(BP,BWm))/BWm;m为非负整数;n为从0到(Nm-1)的整数;ωNm+m,n为整数;BWm为自然数;所述方法包括:采用乘法器阵列和乘积加法器阵列,计算C与D的乘积A;将ai输入Nm个BWm位的加法器,计算Ns个Nm*BWm位的加数项St的加权和ai为A的第i*BWm位到第((i+1)*BWm-1)位;i为从0到(Na-1)的整数;Na=(BA+mod(BA,BWm))/BWm;BA=2*BP;Ns为自然数;t为从1到Ns的自然数;σt为整数,σt和St,n满足st,n为St的第n*BWm位到第((n+1)*BWm-1)位,st,n或者等于某个ai或者等于0;将加权和SumS对P取模。本说明书还提供了一种对素数取模的实现装置,用于计算AmodP,其中A是最大位数为BA的二进制数,P为BP位二进制数素数、并且P满足Nm=(BP+mod(BP,BWm))/BWm;m为非负整数;n为从0到(Nm-1)的整数;ωNm+m,n为整数;BWm为自然数;所述装置包括:加权和运算单元,用于将ai输入Nm个BWm位的取模加法器,计算Ns个Nm*BWm位的加数项St的加权和ai为A的第i*BWm位到第((i+1)*BWm-1)位;i为从0到(Na-1)的整数;Na=(BA+mod(BA,BWm))/BWm;Ns为自然数;t为从1到Ns的自然数;σt为整数,σt和st,n满足st,n为St的第n*BWm位到第((n+1)*BWm-1)位,st,n或者等于某个ai或者等于0;取模运算单元,用于将加权和SumS对P取模。本说明书提供的一种素域中模乘运算的实现装置,用于计算(C*D)modP,其中C、D为所述素域中的元素,P为所述素域的特征;P为BP位二进制数且P满足Nm=(BP+mod(BP,BWm))/BWm;m为非负整数;n为从0到(Nm-1)的整数;ωNm+m,n为整数;BWm为自然数;所述装置包括:乘法运算单元,用于采用乘法器阵列和乘积加法器阵列,计算C与D的乘积A;加权和运算单元,用于将ai输入Nm个BWm位的加法器,计算Ns个Nm*BWm位的加数项St的加权和ai为A的第i*BWm位到第((i+1)*BWm-1)位;i为从0到(Na-1)的整数;Na=(BA+mod(BA,BWm))/BWm;BA=2*BP;Ns为自然数;t为从1到Ns的自然数;σt为整数,σt和st,n满足st,n为St的第n*BWm位到第((n+1)*BWm-1)位,st,n或者等于某个ai或者等于0;取模运算单元,用于将加权和SumS对P取模。本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述对素数取模的实现方法所述的步骤。本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述web访问实现方法所述的步骤。本说明书提供的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述对素数取模的实现方法所述的步骤。本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述应用在终端上的web访问的实现方法所述的步骤。由以上技术方案可见,本说明书的实施例中,对满足的素数P,计算Ns个Nm*BWm位的加数项St的加权和其中St及其σt基于A的第i*BWm位到第((i+1)*BWm-1)位ai构造,使得σt和st,n满足计算SumSmodP即可得到A对P取模运算结果;由于SumS的二进制位数接近P的位数而通常远小于实际应用中A的位数,以SumS进行取模运算极大的加快了取模运算的速度,降低了使用大位数除法器导致的资源占用和延迟。附图说明图1是本说明书实施例一中一种对素数取模的实现方法的流程图;图2是本说明书实施例二中一种素域中模乘运算的实现方法的流程图;图3是本说明书实施例二中一种乘法器阵列的输入输出示意图;图4是本说明书应用示例中一种素域中实现模乘运算的FPGA结构示意图;图5是运行本说明书实施例的设备的一种硬件结构图;图6是本说明书实施例中一种对素数取模的实现装置的逻辑结构图;图7是本说明书实施例中一种素域中模乘运算的实现装置的逻辑结构图。具体实施方式一些素数具体这样的特性:大于该素数的二进制整位数对该素数取模的结果,等于若干个小于该素数的二进制整位数的加权和对该素数取模,并且权值为整数。换言之,具备上述特性的BP位二进制数素数P,满足式1:式1中,BWm为自然数;Nm=(BP+mod(BP,BWm))/BWm;m为0或者正整数;n是取值范围为从0到(Nm-1)的整数;对n的每个取值,ωNm+m,n为整数。对任意一个m,2(Nm+m)*BWm为大于素数P的二进制整位数;2n*BWm为小于素数P的二进制整位数。当m取值为0、1、以及任意一个其他正整数时,每个2(Nm+m)*BWm对P取模,都可以表示为Nm个2n*BWm的加权和对P取模。对最大位数为BA位的二进制数A,令Na=(BA+mod(BA,BWm))/BWm;对取值范围为从0到的(Na-1)的整数i,将A的第i*BWm位到第((i+1)*BWm-1)位记为ai(即ai∈[0,2BWm本文档来自技高网...

【技术保护点】
1.一种对素数取模的实现方法,用于计算A mod P,其中A是最大位数为BA的二进制数,P为BP位二进制数素数、并且P满足

【技术特征摘要】
1.一种对素数取模的实现方法,用于计算AmodP,其中A是最大位数为BA的二进制数,P为BP位二进制数素数、并且P满足Nm=(BP+mod(BP,BWm))/BWm;m为非负整数;n为从0到(Nm-1)的整数;ωNm+m,n为整数;BWm为自然数;所述方法包括:将ai输入Nm个BWm位的取模加法器,计算Ns个Nm*BWm位的加数项St的加权和ai为A的第i*BWm位到第((i+1)*BWm-1)位;i为从0到(Na-1)的整数;Na=(BA+mod(BA,BWm))/BWm;Ns为自然数;t为从1到Ns的自然数;σt为整数,σt和st,n满足st,n为St的第n*BWm位到第((n+1)*BWm-1)位,St,n或者等于某个ai或者等于0;将加权和SumS对P取模。2.根据权利要求1所述的方法,所述将加权和SumS对P取模,包括:采用减法运算,将加权和SumS对P取模。3.根据权利要求1所述的方法,所述取模加法器为采用并行进位链的加法器。4.一种素域中模乘运算的实现方法,用于计算(C*D)modP,其中C、D为所述素域中的元素;P为所述素域的特征、为BP位二进制数、并且P满足Nm=(BP+mod(BP,BWm))/BWm;m为非负整数;n为从0到(Nm-1)的整数;ωNm+m,n为整数;BWm为自然数;所述方法包括:采用乘法器阵列和乘积加法器阵列,计算C与D的乘积A;将ai输入Nm个BWm位的加法器,计算Ns个Nm*BWm位的加数项St的加权和ai为A的第i*BWm位到第((i+1)*BWm-1)位;i为从0到(Na-1)的整数;Na=(BA+mod(BA,BWm))/BWm;BA=2*BP;Ns为自然数;t为从1到Ns的自然数;σs为整数,σs和st,n满足st,n为St的第n*BWm位到第((n+1)*BWm-1)位,St,n或者等于某个ai或者等于0;将加权和SumS对P取模。5.根据权利要求4所述的方法,所述乘法器阵列包括Nc×Nd个输入位宽为BWpC×BWpD的乘法器;BWpC和BWpD均为正整数;Nc=(BP+mod(BP,BWpC)/BWpC,Nd=(BP+mod(BP,BWpD))/BWpD;所述乘积加法器阵列包括Na个位宽为BWm的乘积加法器;所述采用乘法器阵列和乘积加法器阵列,计算C与D的乘积A,包括:将cu和dv输入第(u,v)个乘法器,得到部分积PPu,v;u为从0到(Nc-1)的整数;v为从0到(Nd-1)的整数;cu为C的第u*BWpC位到第((u+1)*BWpC-1)位;dv为D的第v*BWpD位到第((v+1)*BWpD-1)位;将Nc×Nd个PPu,v分别输入乘积加法器阵列,每个乘积加法器的输出为一个ai,Na个乘积加法器的输出为A。6.根据权利要求4所述的方法,所述将加权和SumSS对P取模,包括:采用减法运算,将加权和SumS对P取模。7.根据权利要求4所述的方法,所述取模加法器为采用并行进位链的加法器;和/或,所述乘积加法器为采用并行进位链的加法器。8.一种对素数取模的实现装置,用于计算AmodP,其中A是最大位数为BA的二进制数,P为BP位二进制数素数、并且P满足Nm=(BP+mod(BP,BWm))/BWm;m为非负整数;n为从0到(Nm-1)的整数;ωNm+m,n为整数;BWm为自然数;所述装置包括:加权和运算单元,用于将ai输入Nm个BWm位的取模加法器,计算Ns个...

【专利技术属性】
技术研发人员:徐建国潘国振朱冠胤廖恬瑜杨艺宾
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1