[发明专利]用于蒙哥马利模乘中的不均等分块的数据处理方法及装置有效
申请号: | 201811601122.0 | 申请日: | 2018-12-26 |
公开(公告)号: | CN109669670B | 公开(公告)日: | 2020-09-22 |
发明(设计)人: | 杨帆 | 申请(专利权)人: | 贵州华芯通半导体技术有限公司 |
主分类号: | G06F7/72 | 分类号: | G06F7/72 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 万里晴 |
地址: | 550081 贵州省贵阳市*** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: |
本公开提供用于蒙哥马利模乘中的不均等分块的数据处理方法及装置。方法包括:对aM和bM、以及N和k添加位,并将其分组为不均等的分块;将分块的乘积结果表示为网格;在网格上划分多个竖列,从第一竖列起,从低位到高位按竖列顺序地计算大块a |
||
搜索关键词: | 用于 马利 中的 均等 分块 数据处理 方法 装置 | ||
【主权项】:
1.一种用于蒙哥马利模乘中的不均等分块的数据处理方法,包括以下步骤:接收输入数据,包括aM=a×R mod N、bM=b×R mod N、以及模数N,其中a和b为蒙哥马利模乘的输入,并且aM和bM为转换到蒙哥马利域中的输入;如果aM和bM的位宽为n,则添加m个位以将其作为位宽为n+m的输入数据,使得aM=[an+m‑1,an+m‑2,…,a0]和bM=[bn+m‑1,bn+m‑2,…,b0]被分组为x个不均等的分块,即aM=[ax‑1,ax‑2,…,a0]和bM=[bx‑1,bx‑2,…,b0]中的每个ai和每个bj的位宽不全相同,其中,R=2n+2m且2n+2m>N,n为N的位宽,m为大于或等于1的正整数,x是小于n+m且大于或等于2的正整数,i和j均取[x‑1,x‑2,…,0],其中,每个ai和bj中有多个位,表示为ai[gi]和bj[hj],gi取0至(ai的位宽‑1)之间的整数,并且hj取0至(bi的位宽‑1)之间的整数;设pM=(aM×bM+k×N)×R‑1,按照aM和bM的分块方式相应地将N和k分组为x个不均等的分块,即N=[Nx‑1,Nx‑2,…,N0]和k=[kx‑1,kx‑2,…,k0]中的每个Ni和每个ki的位宽不全相同,其中,k是使得(aM×bM+k×N)的低n+2m位都为0的最小整数,并且k为mc×aM×bM的结果的低n+2m位,以及mc是使得mc×N的低n+2m位全为1的整数,其中,每个Ni和kj中有多个位,表示为Ni[yi]和kj[zj],yi取0至(Ni的位宽‑1)之间的整数,并且zj取0至(ki的位宽‑1)之间的整数;将aM=[an+m‑1,an+m‑2,…,a0]与bM=[bn+m‑1,bn+m‑2,…,b0]乘积的结果表示为第一网格的形式,并且所述第一网格的每一大块表示ai×bj,每一大块中有多个小格,每一小格表示ai中的每一位与bj中的每一位的乘积结果,即ai[gi]×bj[hj],将N=[Nx‑1,Nx‑2,…,N0]和k=[kx‑1,kx‑2,…,k0]乘积的结果表示为第二网格的形式,并且所述第二网格的每一大块表示Ni×kj,每一大块中有多个小格,每一小格表示Ni中的每一位与kj中的每一位的乘积结果,即Ni[yi]×kj[zj],所述第一网格和所述第二网格中在竖直方向上的每一小竖列上的每一小格具有相同的位权,将所述第一网格与所述第二网格从低位到高位对齐,以便将ai×bj的乘积结果与Ni×kj的乘积结果进行对齐累加得到ai×bj与Ni×kj之和;将所述第一网格和所述第二网格从低位到高位进行划分,使最低点处为第一竖列,第二竖列与第一竖列之间的位宽,第三竖列与第二竖列之间的位宽,直到第x‑1竖列与第x‑2竖列之间的位宽依次与输入数据aM或bM从低位到高位的位宽相对应,即a0至ax‑2的位宽,而第x竖列与第一竖列之间的位宽为n+2m,并且第x+1竖列以及之后的竖列之间的位宽与输入数据aM或bM从低位到高位的位宽相对应,即a0至ax‑1的位宽,使得模乘结果的输出与输入保持相同的分块方式以便于数据管理,其中,小竖列与所有竖列相平行;从第一竖列起,从低位到高位按竖列顺序地计算块ai×bj和Ni×kj并进行对齐累加,当计算到第x竖列时,将对齐累加的结果的低n+2m位作为数据的低n+2m位,并且所述低n+2m位均为0;当计算到第x+1竖列时,由于需要累加到x+1竖列上的部分数值在计算x+2竖列时才计算出,所以通过在计算第x+1竖列的一个大块时,记录与第x+1竖列上的、不包含在第x+1竖列的所有大块中的小格的列数相对应的ai[g]和Ni[g],并且在计算第x+1竖列的另一大块时,记录与第x+1竖列上的、不包含在第x+1竖列的所有大块中的小格的行数相对应的bj[h]和kj[h],来提前计算所述部分数值,即ai[g]×bj[h]以及Ni[g]×kj[h],其中,g是gi或yi中的与第x+1竖列上的、不包含在第x+1竖列的所有大块中的小格的列数相关的值,以及h是hi或zi中的与第x+1竖列上的、不包含在第x+1竖列的所有大块中的小格的行数相关的值;将所述ai[g]×bj[h]以及Ni[g]×kj[h]的结果与第x+1竖列的大块进行对齐累加,以得到低第n+2m+1至第(n+2m+a0的位宽)的数据;计算第x+1竖列以后的竖列,采用与计算第x+1竖列相同的方法,即提前计算需要累加到所计算的竖列上的、但要在该竖列之后的竖列才计算出的部分数值,在所有竖列计算完成后,得到低第n+2m+1至第2n+2m+1的数据,作为(aM×bM+k×N)的结果,并进行移位处理得到pM=(aM×bM+k×N)×R‑1;确定pM是否是一系列蒙哥马利模乘运算后的最后得到的一个pM;如果不是,则将pM作为输入数据aM或bM,循环执行上述步骤,直到计算完一系列蒙哥马利模乘运算,得到最后一个pM;当得到的pM是一系列蒙哥马利模乘运算的最后一个pM时,输出最后一个pM值作为蒙哥马利域中的蒙哥马利模乘的结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贵州华芯通半导体技术有限公司,未经贵州华芯通半导体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811601122.0/,转载请声明来源钻瓜专利网。
- 上一篇:误码生成方法及误码生成器
- 下一篇:一种基于微服务的多层次自适应方法