一种ASIC芯片及蒙哥马利模乘的实现方法和装置制造方法及图纸

技术编号:34040929 阅读:42 留言:0更新日期:2022-07-06 13:27
本申请公开了一种ASIC芯片及蒙哥马利模乘的实现方法和装置,包括:变量接收模块11,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,均使用n位二进制数表示,模数P为奇数;变量计算模块12,用于基于蒙哥马利模乘的基底r的位数k,分别计算第一输入变量X、第二输入变量Y和模数P的第0至t个分块;迭代计算模块13,用于基于第一输入变量X、第二输入变量Y和模数P的第0至t个分块,按照蒙哥马利模乘的预设迭代算法,进行t+1次迭代;静态随机存取存储器14,用于存储第一输入变量X、第二输入变量Y和蒙哥马利模乘的结果S。采用本方案,减少了存储输入输出所占用的硬件电路的面积,减少了迭代次数,提高了计算效率。提高了计算效率。提高了计算效率。

An ASIC chip and implementation method and device of Montgomery modular multiplication

【技术实现步骤摘要】
一种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,则计算该迭代结果减去模数P,结果作为蒙哥马利模乘的结果。
[0007]在上述算法1中,最后需要执行比较和减法操作,在硬件视线中占据较大面积,而且效率较低,因此,现有技术中对算法1进行了优化,提出算法2。
[0008]在算法2中,输入变量均小于2倍的模数P,使用t+2个数据分块表示输入变量和模数,且输入变量的最后一个数据分块,以及模数的最后两个数据分块均为0,通过执行t+2次蒙哥马利模乘的迭代算法,得到最后一次迭代结果,作为蒙哥马利模乘的结果。
[0009]采用算法2可以避免比较和减法操作,且理论上可以证明,若模数P选取n位,输入变量小于2倍的模数P时,蒙哥马利模乘的输出小于2倍的模数P。即算法2的输入和输出的位数可以固定为n+1位。
[0010]然而在硬件设计上,一般无法直接增加1位,例如n=2048位时,硬件使用16块128位来表示n位大整数,而n+1位的大整数则实际需要17块128位来表示,这增大了存储输入输出所占用的硬件电路面积和计算开销。

技术实现思路

[0011]本申请实施例提供一种ASIC芯片及蒙哥马利模乘的实现方法和装置,用以解决现有技术中存在的进行蒙哥马利模乘的计算效率较低,以及使用硬件电路实现蒙哥马利模乘时硬件电路占用面积较大问题。
[0012]本申请实施例提供一种专用集成电路ASIC芯片,包括:
[0013]变量接收模块,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2
n
‑1<P<2
n
‑2n

k

[0014]变量计算模块,用于基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
[0015]迭代计算模块,用于基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X
·
Y
·2‑
(n+k)
modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S;
[0016]静态随机存取存储器,用于存储所述第一输入变量X、所述第二输入变量Y和所述蒙哥马利模乘的结果S。
[0017]进一步的,所述迭代计算模块,具体用于采用如下公式,按照i和j分别依次取值为0

t进行迭代,计算蒙哥马利模乘的结果S:
[0018][0019][0020]S
i+1
=S
i+1
/r;
[0021]S=S
t+1

[0022][0023][0024][0025]其中,x
j
为第一输入变量X的第j个分块,y
j
为第二输入变量Y的第j个分块,p
j
为模数P的第j个分块,r
j
表示r的j次方。
[0026]本申请实施例还提供一种蒙哥马利模乘的实现方法,应用于专用集成电路ASIC芯片,包括:
[0027]获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2
n
‑1<P<2
n
‑2n

k

[0028]基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
[0029]基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X
·
Y
·2‑
(n+k)
modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到
蒙哥马利模乘的结果S。
[0030]进一步的,所述基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照S=X
·
Y
·2‑
(n+k)
modP的计算公式,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S,包括:
[0031]采用如下公式,按照i和j分别依次取值为0

t进行迭代,计算蒙哥马利模乘的结果S:
[0032][0033][0034]S
i+1
=S
i+1
/r;
[0035]S=S
t+1

[0036][0037][0038][0039]其中,x
j
为第一输入变量X的第j个分块,y
j
为第二输入变量Y的第j个分块,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...

【专利技术属性】
技术研发人员:刘文心李艺王雪强
申请(专利权)人:华控清交信息科技北京有限公司
类型:发明
国别省市:

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

1