CN1694061A - 操作数长度可伸缩的蒙哥马利模乘算法 - Google Patents

操作数长度可伸缩的蒙哥马利模乘算法 Download PDF

Info

Publication number
CN1694061A
CN1694061A CN 200510025912 CN200510025912A CN1694061A CN 1694061 A CN1694061 A CN 1694061A CN 200510025912 CN200510025912 CN 200510025912 CN 200510025912 A CN200510025912 A CN 200510025912A CN 1694061 A CN1694061 A CN 1694061A
Authority
CN
China
Prior art keywords
algorithm
montgomery
pass
mould
mod
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.)
Granted
Application number
CN 200510025912
Other languages
English (en)
Other versions
CN100382012C (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

Images

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所示:
输入:A,B,N
输出:S
MM Algorithm:
S-1:=0;
for i=0 to n-1
qi:=(Si-1+Ai×B)Mod 2
Si:=(Si-1+qi×N+ai×b)/2
end for
return Sn-1
算法中qi:=(Si-1+AiB)Mod 2,由Si-1、Ai和B三者的最低位决定,它的引入是为了使得累加结果的最低位为0,从而在进行(Si-1+qi×N+ai×b)/2,也就是要右移一位的时候不会带来误差。从上面的算法可以看出只需要做加法和移位运算就可以得到模乘结果,非常适合硬件实现。
众所周知,公钥制密码算法(如RSA、ECC)所能提供的安全强度是由它们的密钥长度决定的,随着攻击技术的不断进步、处理器计算能力的不断增强以及分布式计算技术的发展,破解密钥所需要的时间不断缩小。
表1.安全的公钥算法密钥长度
年份  乐观密钥长度  保守密钥长度
2005     972bit    988bit
2010     1112bit    1152bit
2020     1387bit    1568bit
如表1所示,安全的公钥算法秘钥长度与日俱增,因此,为了保护系统不受到攻击,必须选用更长密码算法密钥,这样就需要重新设计原有的芯片。
发明内容
综上所述,如何设计n位Montgomery乘法器,使之能用于n整数倍长度操作数的模乘运算(比如用512位的模乘乘法器来做1024、2048甚至更高位数的模乘),以在同一块信息安全芯片可以运行不同安全强度等级要求的RSA、ECC等公钥制密码算法,乃是本发明所要解决的技术问题。因此,本发明的目的在于提供一种操作数长度可伸缩的蒙哥马利模乘算法,以便实施可在同一块信息安全芯片运行不同安全强度等级要求的公钥制密码算法。
这样,根据本发明所提出的操作数长度可伸缩的Montgomery乘法算法,不需要重新设计硬件加密电路,就可以支持更高长度的密钥,以满足不同的安全强度需要,提高系统的安全强度。
本发明的技术构思如下:
对传统Montgomery乘法进行改进,使得通过多次调用它就可以实现更长操作数的模乘,从而达到支持不同密钥长度的RSA、ECC等公钥制密码算法的目的。
本发明的技术方案如下:
根据本发明的一种操作数长度可伸缩的蒙哥马利模乘算法,对传统的MM(A,B,N)=A×B×R-1(mod N)产生变形,把Montgomery模乘运算记为-MMm n(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模乘算法:
          输入:A,B,N
          输出:S,Q
          MM Algorithm:
          S-1:=0;
          for i=0 to n-1
          qi:=(Si-1+Ai×B)Mod 2
          Si:=(Si-1+qi×N+ai×b)/2
          end for
          return Sn-1
b.算法3.当模乘过程选择信号pass=1时的Montgomery模乘算法:
          输入:A,B,N,Q
          输出:S
          MM Algorithm:
          S-1:=0;
          for i=0 to n-1
          Si:=(Si-1+qi×N+ai×b)/2
          end for
          return Sn-1
根据本发明的一种使用具有n位Montgomery乘法器来计算更高位n*m位Montgomery模乘的通用算法Scalable-MM,其算法如算法4.Scalable-MM:
          输入:A,B,N,Q
          输出:S=MMn·m(A,B,N)
          Scalable-MM算法:
          S:=0;
          for i=0 to m-1
             Si,0=MMn(A0,B0,N0,0,Q=0,pass=0)
                for j=1 to 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
本发明的有益效果:
这种操作数长度可伸缩的Motgomery模乘技术,带来的最大效益就是在同一个密码芯片上可以完成不同强度的密码算法运算,而不需要设计多个固定操作数长度的密码芯片,大大节约了成本。另一个优点就是,可以把这种技术用在对芯片面积敏感而又要求提供较高安全强度的场合,比如智能卡,设计一个位数较低的芯片,其面积就会很小(比如采用512位乘法器设计的芯片其面积大约是采用1024位乘法器所设计的芯片面积的1/4),芯片制造的成本就降低了大约1/4,同时采用我们提出的伸缩操作数长度技术,又可以执行高位数的密码算法提供较高的安全强度。
附图说明
附图是本发明的一个实施例的蒙哥马利模乘算法流程图。
具体实施方式
在介绍“发明内容”时给出的Scalable-MM算法已经过本发明人所设计的软件验证通过,在芯片设计中已经采用,并且经过流片,芯片测试功能正确。
实施例1
对n位Montgomery乘法器运行2n位模乘的算法进行验证,以用512位的Montgomery乘法器计算1024位的乘法器为例,证明例1给出的流程。
数学推导:
MM1024(A,B,N)
=A×B×2-1024(mod N)
=(A12512+A0)×(B12512+B0)×2-1024(mod N)
={[(A1×2512+A0)×B0×2-512+(A1×2512+A0)×B1×2512×2-512
  2-512}(mod N)
={[(A0B0×2-512)(mod N)+2512×A1B0×2-512+(A12512+A0)B1×2512×2-512]
  ×2-512}(mod N)
={[(A0×B0+Q0N)×2-512+2512×A1×B0×2-512+(A1×2512+A0)×B1]×2-521
  }(mod N)
={[(A0B0+Q0N0)×2-512+2512Q0N12-512+2512A1B02-512+(A1×2512+A0
  B1]×2-512}(mod N)
Figure A20051002591200091
A 0 ) B 1 ] × 2 - 512 } ( mod N )
={[2512×(S0+Q0N1+A1×B0)2-512+(A1×2512+A0)×B1]×2-512}(mod N)
Figure A20051002591200094
={[2512×S1+(A1×2512+A0)×B1]×2-512}(mod N)
={[2512×S1,1+S1,0+(A1×2512+A0)×B1]×2-512}(mod N)
=[2512×S1,1×2-512+(S1,0+A0×B1)×2-512(mod N)+2512A1×B1×2-512
  ](mod N)
=[2512×S1,1×2-512+(S1,0+A0×B1+Q1N)×2-512+2512×A1×B1×2-512
  ](mod N)
=[2512×S1,1×2-512+(S1,0+A0B1+Q1N0)×2-512+2512×Q1N12-512+
  2512A1B1×2-512](mod N)
=2512×[S1,1+S2+Q1N1+A1×B1]×2-512(mod N)
=2512×[S3+Q1N1+A1×B1]×2-512(mod N)
Figure A20051002591200104
=S4
实施例2
假设原来的Montgomery乘法器是1024位的,它具备计算本发明给出的的改进的Montgomery模乘的功能,通过提出的方法就可以用它来计算2048位的Montgomery模乘MM2048(A,B,N),运算流程如下
运算流程:
Step 1 : S 0 = MM 0 1024 ( A 0 , B 0 , N 0 , 0 , Q = 0 , pass = 0 ) ;
Step 2 : S 1 = MM 1 1024 ( A 0 , B 1 , N 1 , S 0 , Q 0 , pass = 1 ) ;
Step 3 : S 2 = MM 2 1024 ( A 1 , B 0 , N 0 , S 1,0 , 0 , pass = 0 ) ;
Step4:S3=ModAdd(S1,1,S2);
Step 5 : 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 (4)

1.一种操作数长度可伸缩的蒙哥马利模乘算法,其特征在于,把蒙哥马利模乘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+AjB)Mod 2(0≤i≤n-1)组成,pass信号用于选择此次模乘过程中,qi由扫描外部输入Q产生还是通过计算qi=(Si-1+AjB)Mod 2得到:若pass=1,则在模乘过程中,每扫描一位B,做完一次加法后,Q寄存器也右移一位。
2.根据权利要求1所述的操作数长度可伸缩的蒙哥马利模乘算法,其特征在于,模乘过程选择信号pass=0时,蒙哥马利模乘算法为:
输入:A,B,N
输出:S
MM Algorithm:
S-1:=0;
for i=0 to n-1
qi:=(Si-1+Ai×B)Mod 2
Si:=(Si-1+qi×N+ai×b)/2
end for
return Sn-1
3.根据权利要求1所述的操作长度可伸缩的蒙哥马利模乘算法,其特征在于,模乘过程选择信号pass=1时,蒙哥马利模乘算法为:
输入:A,B,N,Q
输出:S
MM Algorithm:
S-1:=0;
for i=0 to n-1
Si:=(Si-1+qi×N+ai×b)/2
end for
return Sn-1
4.一种使用具有操作数长度可伸缩的蒙哥马利模乘算法器来运算n*m位蒙哥马利模乘的算法,其特征在于,该模乘算法为:
输入:A,B,N,Q
输出:S=MMn·m(A,B,N)
Scalable-MM算法:
S:=0;
for i=0 to m-1
Si,0=MMn(A0,B0,N0,0,Q=0,pass=0)
for j=1 to 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 true CN1694061A (zh) 2005-11-09
CN100382012C 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101170406B (zh) * 2006-10-27 2010-10-06 北京中电华大电子设计有限责任公司 双核公钥密码算法运算协处理器的一种实现方法
CN101083525B (zh) * 2005-12-30 2011-11-16 英特尔公司 密码处理单元以及乘法器
CN102571342A (zh) * 2010-12-27 2012-07-11 北京中电华大电子设计有限责任公司 一种rsa算法数字签名方法
CN103888246A (zh) * 2014-03-10 2014-06-25 深圳华视微电子有限公司 低功耗小面积的数据处理方法及其数据处理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229445A (ja) * 2001-01-30 2002-08-14 Mitsubishi Electric Corp べき乗剰余演算器
FR2822260A1 (fr) * 2001-03-14 2002-09-20 Bull Sa Procedes et dispositifs pour accelerer le temps de calcul d'un produit de montgomery d'un multiplication et d'une exponentiation modulaire
JP2004334212A (ja) * 2003-05-09 2004-11-25 Samsung Electronics Co Ltd モンゴメリ掛け算器及び掛け算方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083525B (zh) * 2005-12-30 2011-11-16 英特尔公司 密码处理单元以及乘法器
CN101170406B (zh) * 2006-10-27 2010-10-06 北京中电华大电子设计有限责任公司 双核公钥密码算法运算协处理器的一种实现方法
CN102571342A (zh) * 2010-12-27 2012-07-11 北京中电华大电子设计有限责任公司 一种rsa算法数字签名方法
CN102571342B (zh) * 2010-12-27 2016-01-06 北京中电华大电子设计有限责任公司 一种rsa算法数字签名方法
CN103888246A (zh) * 2014-03-10 2014-06-25 深圳华视微电子有限公司 低功耗小面积的数据处理方法及其数据处理装置

Also Published As

Publication number Publication date
CN100382012C (zh) 2008-04-16

Similar Documents

Publication Publication Date Title
Esmaeildoust et al. Efficient RNS Implementation of Elliptic Curve Point Multiplication Over ${\rm GF}(p) $
Mahdizadeh et al. Novel Architecture for Efficient FPGA Implementation of Elliptic Curve Cryptographic Processor Over ${\rm GF}(2^{163}) $
Schinianakis et al. An RNS implementation of an $ F_ {p} $ elliptic curve point multiplier
CN1471665A (zh) 增速密码法与装置
CN1310816A (zh) 模乘法的电路及其方法
CN1570848A (zh) 使用进位存储加法的蒙哥马利模乘器及其方法
CN1481526A (zh) 密码处理器
CN1242321C (zh) 应用蒙哥马利算法的幂剩余运算器
Lai et al. Elixir: High-throughput cost-effective dual-field processors and the design framework for elliptic curve cryptography
CN1717671A (zh) 小型伽罗华域乘法器引擎
CN1694061A (zh) 操作数长度可伸缩的蒙哥马利模乘算法
CN1806224A (zh) 用于防御微分功率分析攻击的方法
CN1492316A (zh) 一种蒙格玛丽模乘算法及其模乘、模幂运算电路
Dong et al. Ec-ecc: Accelerating elliptic curve cryptography for edge computing on embedded gpu tx2
Awaludin et al. A high-performance ecc processor over curve448 based on a novel variant of the karatsuba formula for asymmetric digit multiplier
CN1230736C (zh) 智能卡模乘器vlsi结构的计算机实现方法
CN1258148C (zh) 高安全等级对称密钥算法的加密、解密方法及加密器
CN1967469A (zh) 高效模乘方法及装置
Javeed et al. Efficient montgomery multiplier for pairing and elliptic curve based cryptography
Järvinen et al. High-speed elliptic curve cryptography accelerator for Koblitz curves
CN1411644A (zh) 使用rsa类型公开密钥加密算法的电子部件中的对策方法
CN1811698A (zh) 大数模幂系统的硬件高基实现方法
CN1652075A (zh) 用于有限域的有效vlsi结构的系统和方法
Panjwani Scalable and parameterized hardware implementation of elliptic curve digital signature algorithm over prime fields
CN1735858A (zh) 构造适合于加密目的的超椭圆曲线的方法以及使用这种方法的密码设备

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080416

Termination date: 20190518