CN100382012C - 一种操作数长度可伸缩的蒙哥马利模乘器运算方法 - Google Patents

一种操作数长度可伸缩的蒙哥马利模乘器运算方法 Download PDF

Info

Publication number
CN100382012C
CN100382012C CNB2005100259125A CN200510025912A CN100382012C CN 100382012 C CN100382012 C CN 100382012C CN B2005100259125 A CNB2005100259125 A CN B2005100259125A CN 200510025912 A CN200510025912 A CN 200510025912A CN 100382012 C CN100382012 C CN 100382012C
Authority
CN
China
Prior art keywords
algorithm
montgomery
mould
pass
advantage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100259125A
Other languages
English (en)
Other versions
CN1694061A (zh
Inventor
曾晓洋
吴永一
陈超
韩军
章倩苓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dishen Electronic Sci & Tech Shanghai LLC
Original Assignee
Dishen Electronic Sci & Tech Shanghai LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dishen Electronic Sci & Tech Shanghai LLC filed Critical Dishen Electronic Sci & Tech Shanghai LLC
Priority to CNB2005100259125A priority Critical patent/CN100382012C/zh
Publication of CN1694061A publication Critical patent/CN1694061A/zh
Application granted granted Critical
Publication of CN100382012C publication Critical patent/CN100382012C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

一种操作数长度可伸缩的蒙哥马利模乘器运算方法,可用于信息安全领域的公钥制密码算法的模乘器中,其特点是,由低位数的乘法可实现高位数的乘法运算,并且该技术便于硬件实现。本发明的优点是可在同一块密码芯片上实施不同强度的密码算法运算,这将大大降低密码芯片的成本。另一个优点是可设计一个位数较低的模乘器来运行较高安全强度的密码运算,可解决安全强度与日俱增的要求所带来的升级改造问题。

Description

一种操作数长度可伸缩的蒙哥马利模乘器运算方法
技术领域
本发明涉及一种信息安全领域用的模乘算法,特别是可直接应用于基于有限域的公钥制密码算法。
背景技术
随着通信技术的不断发展,特别是因特网、无线通讯技术的迅速发展,使人类社会生活、日常生活电子化程度不断加深,给人们提供极大便利的同时,也给网络黑客提供了有利条件。因此,信息安全技术作为信息社会的保障,越来越得到人们重视,广泛应用于电子政务、电子商务等领域。
这样,作为信息安全技术核心的密码学,也得到越来越多的研究。目前,密码算法分为公钥制密码算法(比如RSA、ECC)和对称密钥算法(比如DES、AES),两者有着不同的应用,都是不可或缺的。数学上的密码算法需要经过计算机软件或者硬件的实现,只有依靠计算机软件程序或者硬件产品才能应用到各种安全协议中去。
近些年来,RSA、ECC算法的硬件实现已成为一个热门的研究领域,众多的国际、国内学者从事这方面的研究,发表了大量的研究成果。人们通过分析RSA、ECC算法发现模幂或者点乘都是基于模乘来实现的,所以模乘乘法器成为整个电路的核心模块,其性能是整个算法实现效率的关键,影响着整个电路的速度、面积、功耗等性能指标。
模乘器与普通的整数乘法器不同,其运算是定义在有限域上的。设R为A、B对N模乘的结果,即R=A×B(mod N),在计算R时,如果先用普通的乘法计算出A×B,再除以N得到余数的话,计算的效率就变得很低,因为除法用硬件实现起来是很复杂的。参考文献P.L.ontgomery.Modular multiplication withouttrial divisions.Mathematics of Computations,vol.44,no.170,pp.519-521,1985.中所给出的蒙哥马利(Montgomery)模乘算法是现在模乘乘法器设计中采用的最普遍也是最简单而高效的算法,它避开了除法运算,只需用到加法和移位,非常适合硬件实现。
Montgomery模乘是一种利用整数余数系统RNS(Residue NumberSystem)来求模乘的方法,通过操作数到RNS的变换,在RNS除法求模转化为每次扫描乘数后的移位操作,最后再从RNS变换回整数,实现模乘运算。下面对上述的Montgomery模乘算法进行介绍。
Montgomery模乘:MM(A,B,N)=A×B×R-1(mod N),式中,N为n位,A、B也是n位且小于N,R=2n,其算法如Montgomery模乘算法1所示:
Figure C20051002591200051
算法中qi:=(Si-1+AiB)Mod 2,由Si-1、Ai和B三者的最低位决定,它的引入是为了使得累加结果的最低位为0,从而在进行(Si-1+qi×N+ai×b)/2,也就是要右移一位的时候不会带来误差。从上面的算法可以看出只需要做加法和移位运算就可以得到模乘结果,非常适合硬件实现。
众所周知,公钥制密码算法(如RSA、ECC)所能提供的安全强度是由它们的密钥长度决定的,随着攻击技术的不断进步、处理器计算能力的不断增强以及分布式计算技术的发展,破解密钥所需要的时间不断缩小。
表1.安全的公钥算法密钥长度
年份 乐观密钥长度 保守密钥长度
2005 972bit 988bit<sup>26</sup>
2010 1112bit 1152bit<sup>28</sup>
2020 1387bit 1568bit<sup>30</sup>
如表1所示,安全的公钥算法秘钥长度与日俱增,因此,为了保护系统不受到攻击,必须选用更长密码算法密钥,这样就需要重新设计原有的芯片。
发明内容
综上所述,如何设计n位Montgomery乘法器,使之能用于n整数倍长度操作数的模乘运算(比如用512位的模乘乘法器来做1024、2048甚至更高位数的模乘),以在同一块信息安全芯片可以运行不同安全强度等级要求的RSA、ECC等公钥制密码算法,乃是本发明所要解决的技术问题。因此,本发明的目的在于提供一种操作数长度可伸缩的蒙哥马利模乘算法,以便实施可在同一块信息安全芯片运行不同安全强度等级要求的公钥制密码算法。
这样,根据本发明所提出的操作数长度可伸缩的Montgomery乘法算法,不需要重新设计硬件加密电路,就可以支持更高长度的密钥,以满足不同的安全强度需要,提高系统的安全强度。
本发明的技术构思如下:
对传统Montgomery乘法进行改进,使得通过多次调用它就可以实现更长操作数的模乘,从而达到支持不同密钥长度的RSA、ECC等公钥制密码算法的目的。
本发明的技术方案如下:
根据本发明的一种操作数长度可伸缩的蒙哥马利模乘算法,对传统的MM(A,B,N)=A×B×R-1(mod N)产生变形,把Montgomery模乘运算记为-MMn m(A,B,N,Sn-1,Qn-1,pass),其中:m为操作数位数,n表示第n次模乘,Sn-1为模乘初始值,Q为n位二进制序列,由算法中的qi:=(Si-1+AiB)Mod 2(0≤i≤n-1)组成,pass信号用于选择此次模乘过程中,qi由扫描外部输入Q产生,还是通过计算qi=(Si-1+Ai×B)Mod 2得到(若pass=1,在模乘过程中,每扫描一位B,做完一次加法后,Q寄存器也右移一位)。
进一步改进的Montgomery模乘算法,分pass为0和1两种情况:
a.算法2.当模乘过程选择信号pass=0时的Montgomery模乘算法:
Figure C20051002591200061
Figure C20051002591200071
b.算法3.当模乘过程选择信号pass=1时的Montgomery模乘算法:
Figure C20051002591200072
根据本发明的一种使用具有n位Montgomery乘法器来计算更高位n*m位Montgomery模乘的通用算法Scalable-MM,其算法如算法4.Scalable-MM:
Figure C20051002591200081
本发明的有益效果:
这种操作数长度可伸缩的Motgomery模乘技术,带来的最大效益就是在同一个密码芯片上可以完成不同强度的密码算法运算,而不需要设计多个固定操作数长度的密码芯片,大大节约了成本。另一个优点就是,可以把这种技术用在对芯片面积敏感而又要求提供较高安全强度的场合,比如智能卡,设计一个位数较低的芯片,其面积就会很小(比如采用512位乘法器设计的芯片其面积大约是采用1024位乘法器所设计的芯片面积的1/4),芯片制造的成本就降低了大约1/4,同时采用我们提出的伸缩操作数长度技术,又可以执行高位数的密码算法提供较高的安全强度。
附图说明
附图是本发明的一个实施例的蒙哥马利模乘算法流程图。
具体实施方式
在介绍“发明内容”时给出的Scalable-MM算法已经过本发明人所设计的软件验证通过,在芯片设计中已经采用,并且经过流片,芯片测试功能正确。
实施例1
对n位Montgomery乘法器运行2n位模乘的算法进行验证,以用512位的Montgomery乘法器计算1024位的乘法器为例,证明例1给出的流程。数学推导:
MM 1024 ( A , B , N )
= A &times; B &times; 2 - 1024 ( mod N )
= ( A 1 2 512 + A 0 ) &times; ( B 1 2 512 + B 0 ) &times; 2 - 1024 ( mod N )
= { [ ( A 1 &times; 2 512 + A 0 ) &times; B 0 &times; 2 - 512 + ( A 1 &times; 2 512 + A 0 ) &times; B 1 &times; 2 512 &times; 2 - 512 ] &times;
2 - 512 } ( mod N )
= { [ ( A 0 B 0 &times; 2 - 512 ) ( mod N ) + 2 512 &times; A 1 B 0 &times; 2 - 512 + ( A 1 2 512 + A 0 ) B 1 &times; 2 512 &times; 2 - 512 ]
&times; 2 - 512 } ( mod N )
= { [ ( A 0 &times; B 0 + Q 0 N ) &times; 2 - 512 + 2 512 &times; A 1 &times; B 0 &times; 2 - 512 + ( A 1 &times; 2 512 + A 0 ) &times; B 1 ] &times; 2 -
} 512 ( mod N )
= { [ ( A 0 B 0 + Q 0 N 0 ) &times; 2 - 512 + 2 512 Q 0 N 1 2 - 512 + 2 512 A 1 B 0 2 - 512 + ( A 1 &times; 2 512 + A 0 ) &times;
B 1 ] &times; 2 - 512 } ( mod N )
Figure C200510025912000911
A 0 ) B 1 ] &times; 2 - 512 } ( mod N )
= { [ 2 512 &times; ( S 0 + Q 0 N 1 + A 1 &times; B 0 ) 2 - 512 + ( A 1 &times; 2 512 + A 0 ) &times; B 1 ] &times; 2 - 512 } ( mod N )
Figure C200510025912000914
N )
= { [ 2 512 &times; S 1 + ( A 1 &times; 2 512 + A 0 ) &times; B 1 ] &times; 2 - 512 } ( mod N )
= { [ 2 512 &times; S 1,1 + S 1,0 + ( A 1 &times; 2 512 + A 0 ) &times; B 1 ] &times; 2 - 512 } ( mod N )
= [ 2 512 &times; S 1,1 &times; 2 - 512 + ( S 1,0 + A 0 &times; B 1 ) &times; 2 - 512 ( mod N ) + 2 512 A 1 &times; B 1 &times; 2 -
] 512 ( mod N )
= [ 2 512 &times; S 1,1 &times; 2 - 512 + ( S 1,0 + A 0 &times; B 1 + Q 1 N ) &times; 2 - 512 + 2 512 &times; A 1 &times; B 1 &times; 2 -
] 512 ( mod N )
= [ 2 512 &times; S 1,1 &times; 2 - 512 + ( S 1,0 + A 0 B 1 + Q 1 N 0 ) &times; 2 - 512 + 2 512 &times; Q 1 N 1 2 - 512 +
2 512 A 1 B 1 &times; 2 - 512 ] ( mod N )
Figure C20051002591200103
2 - 512 ] ( mod N )
= 2 512 &times; [ S 1,1 + S 2 + Q 1 N 1 + A 1 &times; B 1 ] &times; 2 - 512 ( mod N )
Figure C20051002591200106
= 2 512 &times; [ S 3 + Q 1 N 1 + A 1 &times; B 1 ] &times; 2 - 512 ( mod N )
Figure C20051002591200108
= S 4
实施例2
假设原来的Montgomery乘法器是1024位的,它具备计算本发明给出的的改进的Montgomery模乘的功能,通过提出的方法就可以用它来计算2048位的Montgomery模乘MM2048(A,B,N),运算流程如下
运算流程:
Step1: S 0 = MM 0 1024 ( A 0 , B 0 , N 0 , 0 , Q = 0 , pass = 0 ) ;
Step2: S 1 = MM 1 1024 ( A 0 , B 1 , N 1 , S 0 , Q 0 , pass = 1 ) ;
Step3: S 2 = MM 2 1024 ( A 1 , B 0 , N 0 , S 1,0 , 0 , pass = 0 ) ;
Step4:S3=ModAdd(S1,1,S2);
Step5: S 4 = MM 3 1024 ( A 1 , B 1 , N 1 , S 3 , Q 1 , pass = 1 ) ;
Result:S4=MM2048(A,B,N)
*以上公式中,Sn,0,Sn,1分别表示Sn的低、高1024位。
从上面的流程可以看到,计算2048位的Motgomery模乘,只需要用到4次1024位的模乘,和一次模加运算,模加运算的复杂度与模乘相比几乎可以忽略,也就是说,计算2048位Montgomery模乘的时间约是计算1024位的4倍。
实施例3
根据图1说明使用512位蒙哥马利乘法器计算1024位的蒙哥马利模乘10的步骤:
步骤100:模乘初始化:s-1=0,B=B0,A=A0,N=N0,Q-1=0,pass=0,
步骤101:运行第一次512位模乘得到1024位的S0和512位的Q0
步骤102:丢弃S0的低512位,使S0全为0,
步骤103:模乘初始化:s-1=S0,B=B1,A=A0,N=N1,Q-1=Q0,pass=1,
步骤104:运行第二次512位模乘得到1024位的s1
步骤105:保存s1的高512位,即s1,1存入存储器,
步骤106:模乘初始化:s-1=s1,0,B=B0,A=A1,N=N0,Q=0,pass=0,
步骤107:运行第三次512位模乘得到1024位的S2和512位的Q1作为s2,1送加法器,
步骤108:丢弃s2的低512位,使s2全为0,
步骤109:从存储器读取步骤105存入存储器之s1,1内容送加法器,
步骤110:由加法器把步骤107送入加法器的s2,1和步骤109送入的s1,1相加得到S3
步骤111:模乘初始化:s-1=s3,B=B1,A=A1,N=N1,pass=1,
步骤112:运行第四次512位模乘得到1024位的s4
步骤113:输出s4作为最终结果。

Claims (2)

1.一种操作数长度可伸缩的蒙哥马利模乘器运算方法,其由一信息安全芯片中的n位蒙哥马利模乘器实现,该信息安全芯片能够运行不同密钥长度的RSA、ECC公钥制密码算法,其特征在于,把蒙哥马利模乘MM(A,B,N)=A×B×R-1(mod N)的模乘运算记为MMn m(A,B,N,Sn-1,Qn-1,Pass),其中:m为操作位数,n表示第n次模乘,Sn-1为模乘初始值,Q为n位二进制序列,由算法中的qi=(Si-1+AiB)Mod 2(0≤i≤n-1)组成,pass为模乘过程选择信号,用于选择此次模乘过程中,qi由扫描外部输入Q产生还是通过计算qi=(Si-1+AiB)Mod 2得到;其中,
当模乘过程选择信号pass=0时,蒙哥马利模乘为:
                                        
输入:A,B,N
输出:S
                                        
MM Algorithm:
S-1:=0;
for i=0to n-1
qi:=(Si-1+Ai×B)Mod 2
Si:=(Si-1+qi×N+ai×b)/2
end for
return Sn-1
当模乘过程选择信号pass=1时,蒙哥马利模乘为:
                                         
输入:A,B,N,Q
输出:S
                                        
MM Algorithm:
S-1:=0;
for i=0to n-1
Si:=(Si-1+qi×N+ai×b)/2
end for
return Sn-1
并且,当pass=1时,在模乘过程中,每扫描一位B,做完一次加法后,Q寄存器也右移一位。
2.如权利要求1所述的一种操作数长度可伸缩的蒙哥马利模乘器运算方法,其特征在于,其能够运算n*m位蒙哥马利模乘的通用算法,该通用算法为:
                                                  
输入:A,B,N,Q
输出:S=MMn*m(A,B,N)
通用算法:
S:=0;
fori=0to m-1
Si,0=MMn(A0,B0,N0,0,Q=0,pass=0)
forj=1to m-1
Si,j=MMn(A0,Bj,Nj,0,Q,pass=1)
Si,j=ModAdd(Si,j+Si-1,j+1)
Si=Si>>n
End for
End for
return Sm-1
                                                
CNB2005100259125A 2005-05-18 2005-05-18 一种操作数长度可伸缩的蒙哥马利模乘器运算方法 Expired - Fee Related CN100382012C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100259125A CN100382012C (zh) 2005-05-18 2005-05-18 一种操作数长度可伸缩的蒙哥马利模乘器运算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100259125A CN100382012C (zh) 2005-05-18 2005-05-18 一种操作数长度可伸缩的蒙哥马利模乘器运算方法

Publications (2)

Publication Number Publication Date
CN1694061A CN1694061A (zh) 2005-11-09
CN100382012C true CN100382012C (zh) 2008-04-16

Family

ID=35353040

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100259125A Expired - Fee Related CN100382012C (zh) 2005-05-18 2005-05-18 一种操作数长度可伸缩的蒙哥马利模乘器运算方法

Country Status (1)

Country Link
CN (1) CN100382012C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725624B2 (en) * 2005-12-30 2010-05-25 Intel Corporation System and method for cryptography processing units and multiplier
CN101170406B (zh) * 2006-10-27 2010-10-06 北京中电华大电子设计有限责任公司 双核公钥密码算法运算协处理器的一种实现方法
CN102571342B (zh) * 2010-12-27 2016-01-06 北京中电华大电子设计有限责任公司 一种rsa算法数字签名方法
CN103888246A (zh) * 2014-03-10 2014-06-25 深圳华视微电子有限公司 低功耗小面积的数据处理方法及其数据处理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020101984A1 (en) * 2001-01-30 2002-08-01 Kazuo Asami Power-residue calculating unit using Montgomery algorithm
WO2002073450A1 (fr) * 2001-03-14 2002-09-19 Bull S.A. Procede et dispositif pour reduire le temps de calcul d'un produit, d'une multiplication et d'une exponentiation modulaire selon la methode de montgomery
CN1550975A (zh) * 2003-05-09 2004-12-01 三星电子株式会社 蒙哥马利模数乘法器及其方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020101984A1 (en) * 2001-01-30 2002-08-01 Kazuo Asami Power-residue calculating unit using Montgomery algorithm
WO2002073450A1 (fr) * 2001-03-14 2002-09-19 Bull S.A. Procede et dispositif pour reduire le temps de calcul d'un produit, d'une multiplication et d'une exponentiation modulaire selon la methode de montgomery
CN1550975A (zh) * 2003-05-09 2004-12-01 三星电子株式会社 蒙哥马利模数乘法器及其方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于RSA系统的Montgomery算法的改进设计. 杨宁等.通信技术,第134期. 2003 *
快速模幂算法及其硬件实现. 周芬,高志强.微电子学,第30卷第6期. 2000 *

Also Published As

Publication number Publication date
CN1694061A (zh) 2005-11-09

Similar Documents

Publication Publication Date Title
CN101216754B (zh) 基于模乘运算的数据加解密处理的方法及装置
Thapliyal et al. Design and analysis of a novel parallel square and cube architecture based on ancient Indian Vedic mathematics
CN100382012C (zh) 一种操作数长度可伸缩的蒙哥马利模乘器运算方法
Salman et al. A light-weight hardware/software co-design for pairing-based cryptography with low power and energy consumption
CN102122241A (zh) 一种适用于素域和多项式域的模乘模除器
Abd-Elkader et al. Efficient implementation of Montgomery modular multiplier on FPGA
Hossain et al. FPGA-based efficient modular multiplication for Elliptic Curve Cryptography
Talapatra et al. Unified digit serial systolic Montgomery multiplication architecture for special classes of polynomials over GF (2m)
CN100527073C (zh) 高效模乘方法及装置
Gutub et al. Implementation of a pipelined modular multiplier architecture for GF (p) elliptic curve cryptography computation
CN104699452A (zh) 一种素域gf(p)下实现位宽可变的模乘法器
Mahapatra et al. RSA cryptosystem with modified Montgomery modular multiplier
Duquesne et al. A FPGA pairing implementation using the residue number system
Wajih et al. Low power elliptic curve digital signature design for constrained devices
Walter Improved linear systolic array for fast modular exponentiation
Liu et al. Anti-SPA scalar multiplication algorithm on Twisted Edwards elliptic curve
Thampi et al. Montgomery multiplier for faster cryptosystems
CN107463354A (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
Kim et al. LFSR multipliers over GF (2m) defined by all-one polynomial
Jeon et al. Low-power exponent architecture in finite fields
Xiao et al. Algorithm-hardware co-design of ultra-high radix based high throughput modular multiplier
Fournaris et al. A design strategy for digit serial multiplier based binary Edwards curve scalar multiplier architectures
Saju et al. Design and execution of highly adaptable elliptic curve cryptographic processor and algorithm on FPGA using Verilog HDL
Moayedi et al. Design and evaluation of novel effective Montgomery modular multiplication architecture
Walter Techniques for the hardware implementation of modular multiplication

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080416

Termination date: 20190518

CF01 Termination of patent right due to non-payment of annual fee