【技术实现步骤摘要】
一种ASIC芯片及蒙哥马利模乘的实现方法和装置
[0001]本申请涉及计算机
,尤其涉及一种ASIC(Application Specific Integrated Circuit,专用集成电路)芯片及蒙哥马利模乘的实现方法和装置。
技术介绍
[0002]蒙哥马利算法是一种计算大整数模乘和模幂的优化算法,该算法规避了大开销除法和取模操作,使得大整数模乘和模幂仅用加法、乘法和移位操作实现,大幅提高了计算效率。而大整数模乘和模幂在RSA、Paillier等密码算法中的频繁应用奠定了蒙哥马利算法的重要地位。
[0003]蒙哥马利算法的核心算法是蒙哥马利模乘算法:
[0004]mont_mul(X,Y)=X
·
Y
·
R
‑1(modP)
[0005]计算大整数模幂的算法可以通过多次蒙哥马利模乘解决,因此近年来在硬件上实现和优化蒙哥马利模乘在计算机技术中占据重要地位,并且,蒙哥马利模乘算法也广泛应用于多方安全计算
中。
[0006]目前,在已知的一种蒙哥马利模乘算法(算法1)中,将输入变量表示为在基底r下的分块,例如,将使用一定位数n(例如2048)的二进制数表示的输入变量,拆分为若干个t(例如16个)预设位数k(例如128位)的数据分块,并设计相应预设位数(128位)的加法/乘法器单元。使用设计的加法/乘法器单元,通过执行t次蒙哥马利模乘的迭代算法,得到最后一次迭代结果,并将该迭代结果与模数P进行比较,如果大于等于模数P,则计算该迭代结果
【技术保护点】
【技术特征摘要】
1.一种专用集成电路ASIC芯片,其特征在于,包括:变量接收模块,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2
n
‑1<P<2
n
‑2n
‑
k
;变量计算模块,用于基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;迭代计算模块,用于基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X
·
Y
·2‑
(n+k)
mod P,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S;静态随机存取存储器,用于存储所述第一输入变量X、所述第二输入变量Y和所述蒙哥马利模乘的结果S。2.如权利要求1所述的ASIC芯片,其特征在于,所述迭代计算模块,具体用于采用如下公式,按照i和j分别依次取值为0
‑
t进行迭代,计算蒙哥马利模乘的结果S:S0=0;S
i+1
=S
i+1
/r;S=S
t+1
;;;其中,x
j
为第一输入变量X的第j个分块,y
j
为第二输入变量Y的第j个分块,p
j
为模数P的第j个分块,r
j
表示r的j次方。3.一种蒙哥马利模乘的实现方法,其特征在于,应用于专用集成电路ASIC芯片,包括:获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2
n
‑1<P<2
n
‑2n
‑
k
;基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X
·
Y
·2‑
(n+k)
mod P,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。4.如权利要求3所述的方法,其特征在于,所述基于所述第一输入变量X、所述第二输入
变量Y和所述模数P的第0至t个分块,按照S=X
·
Y...
【专利技术属性】
技术研发人员:刘文心,李艺,王雪强,
申请(专利权)人:华控清交信息科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。