CN102571342A - 一种rsa算法数字签名方法 - Google Patents

一种rsa算法数字签名方法 Download PDF

Info

Publication number
CN102571342A
CN102571342A CN2010106223132A CN201010622313A CN102571342A CN 102571342 A CN102571342 A CN 102571342A CN 2010106223132 A CN2010106223132 A CN 2010106223132A CN 201010622313 A CN201010622313 A CN 201010622313A CN 102571342 A CN102571342 A CN 102571342A
Authority
CN
China
Prior art keywords
mod
calculate
length
long
rsa
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
CN2010106223132A
Other languages
English (en)
Other versions
CN102571342B (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.)
Beijing CEC Huada Electronic Design Co Ltd
Original Assignee
Beijing CEC Huada Electronic Design Co Ltd
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 Beijing CEC Huada Electronic Design Co Ltd filed Critical Beijing CEC Huada Electronic Design Co Ltd
Priority to CN201010622313.2A priority Critical patent/CN102571342B/zh
Publication of CN102571342A publication Critical patent/CN102571342A/zh
Application granted granted Critical
Publication of CN102571342B publication Critical patent/CN102571342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明设计一种RSA算法数字签名方法,基于1024位的硬件协处理器实现1408位的RSA私钥运算技术,主要应用于智能卡安全计算领域,是利用小位长的模乘器计算大位长的RSA私钥运算中的参数,例如利用1024位的模乘器计算1408位或者2048位RSA私钥运算中的参数。RSA的私钥运算利用中国剩余定理,可以将其主要运算——模幂运算的运算长度降低,但是其中关键参数的运算,例如:C mod P、C mod Q和乘法运算。其中C表示明文,长度是P和Q的两倍。而乘法运算是利用模乘器进行了加速,其最终结果也超出了模乘器的运算能力。技术中主要是利用模运算算法变形,将C拆分成两个小位长的数,计算C mod P;通过四次乘法运算计算大于模乘器长度的乘法运算。

Description

一种RSA算法数字签名方法
技术领域:
本发明主要应用于智能卡安全计算领域。
背景技术:
RSA私钥运算主要涉及到两个关键技术:
1.使用蒙哥马利模乘算法:
记蒙哥马利模乘为MonMul(a,b,m),则:
MonMul(a,b,m)=a*b*R-1mod m,其中a,b,m的位长为L,R=2L,R-1满足R-1*R modm=1,mod为取模运算。
2.使用中国剩余定理进行加速:
记RSA私钥运算的输入数据为C,RSA的私钥参数为p,q,d和n,其中p和q的位长为L/2,d和n的位长为L,则RSA私钥运算Cd mod n,通过中国剩余定义可以转化为关于p和q的模幂运算,提高运行速度。以下是使用中国剩余定理进行RSA私钥运算的简要说明,本发明主要是对其中的参数Cp和Cq计算方法的改进。
准备:计算参数dp=d mod(p-1),dq=d mod(q-1)和qInv,qInv满足qInv*q modp=1。当RSA体系中的密钥固定时,这些参数可以作为常数预先计算出来,不必在每次进行RSA私钥运算时进行计算,因此计算上述参数不占用RSA私钥运算的时间,只是为了叙述方便,在这里简单介绍上述参数的来由。
1.计算Cp和Cq,Cp=C mod p,Cq=C mod q,其中C为RSA私钥运算的输入数据。
2.计算Mp和Mq,其中Mp=Cpdp mod p,Mq=Cpdq mod q
3.计算Mpq,Mpq=(Mp-Mq)*qInv mod p
4.计算Res=Mpq*q+Mq。
在步骤1中的取模运算中,由于软件取模函数计算效率低下,所以一般情况下使用硬件蒙哥马利模乘计算器计算。但是在实际应用中,上述中国剩余定理的计算过程中,步骤2和3中使用L/2位长的蒙哥马利模乘器可以满足需求,而在步骤1和4中,需使用L位长的硬件蒙哥马利模乘器。
发明内容:
本发明在步骤1和步骤4中使用L/2位长的蒙哥马利模乘器进行计算,因此可以在只需RSA私钥运算的芯片中采用小位长的模乘器,实现大于模乘器位长的公钥运算,以这种方式运算,对硬件的要求就减少一半位数,不考虑其他资源,小位长硬件协处理器可支持大于模乘器位长的私钥运算,同时,增添的软件开销也可以在应用接受的范围内。从而降低芯片成本,或者使用现有的有限资源应对市场变化,有助于产品快速上市。
步骤1中计算C mod P时使用以下方法:
1.将C分为等长度的两个部分,记CH为高L/2部分,CL为低L/2部分,这样,L长度的C被拆分为两个L/2长度的数据,并且C=CH<<L/2+CL,其中“<<”为向左平移操作。
2.进一步分析CH<<L/2,L/2长度的CH向左平移L/2后,还是L长度,超出了蒙哥马利模乘器计算长度,因此此处还需要将转换,其实,CH<<L/2=CH*2L/2。我们可以看到这里的2L/2是L/2位长的蒙哥马利模乘算法中的常数R。
3.那么C mod P可表示为(CH*R+CL)mod P,将括号展开后,可得到CH*R mod P+CL mod P。其中CL和P的长度一样,其取模操作可以用减法实现,记为CLP。
4.由于MonMul(a,b,m)=a*b*R-1mod m,那么只需计算MonMul(CH,R2,p),就可以得到CH*R mod P,也即CH<<L/2mod P,记为CHP。
5.最后计算CHP+CLP即所需的C mod P,用同样的方法,计算C mod Q。
步骤4中使用蒙哥马利算法计算乘法,由于最终结果是L长度,因此需要将Mpq和q的高位补“0”填充至L长,然后使用L位长的蒙哥马利模乘器计算乘法,此时,MonMul(a,b,m)中m=2L-1,长度为L。改进的方法如下:
1.将Mpq和Q作为a*b的输入数据,将L/2位长的a和b拆分为等长度的两部分,其中aH表示a的高L/4部分,aL表示a的低L/4部分,bH表示b的高L/4部分,bL表示b的低L/4部分。
2.将aL用“0”填充至L/2长,记为aL0,将bL用“0”填充至L/2长,记为bL0,其实aL=aL0,bL=bL0。记L/2长的0xFF为m,用蒙哥马利模乘器计算MonMul(aL0,bL0,m)=aL0*bL0*R-1 mod m,由于m为2L-1,那么R-1=1,实际上,aL0*bL0*R-1mod m=aL*bL。
3.用同样的步骤计算aH*bL,bH*aL,bH*aH,最后计算aLbL+aHbL<<(L/4)+bHaL<<(L/2)+bHaH<<(3L/4),即可得到a*b。
附图说明:
图1是计算C mod P的改进方法示意图。
图2是使用小位长蒙哥马利模乘器计算L位长的乘法的示意图。
具体实施方式
使用本发明可以使L/2位长的模乘器计算L位长的RSA私钥运算,以便降低芯片成本,或者利用有限资源满足市场的变化,有助于产品的快速开发和上市。当需要使用小位长的模乘器来实现大位长的RSA私钥运算时可以采用本算法。具体步骤如下:
计算C mod P时使用以下方法:
1.将C分为等长度的两个部分,记CH为高L/2部分,CL为低L/2部分,这样,L长度的C被拆分为两个L/2长度的数据,并且C=CH<<L/2+CL,其中“<<”为向左平移操作。
2.进一步分析CH<<L/2,L/2长度的CH向左平移L/2后,还是L长度,超出了蒙哥马利模乘器计算长度,因此此处还需要将转换,其实,CH<<L/2=CH*2L/2。我们可以看到这里的2L/2是L/2位长的蒙哥马利模乘算法中的常数R。
3.那么C mod P可表示为(CH*R+CL)mod P,将括号展开后,可得到CH*R mod P+CL mod P。其中CL和P的长度一样,其取模操作可以用减法实现,记为CLP。
4.由于MonMul(a,b,m)=a*b*R-1mod m,那么只需计算MonMul(CH,R2,p),就可以得到CH*R mod P,也即CH<<L/2mod P,记为CHP。
5.最后计算CHP+CLP即所需的C mod P,用同样的方法,计算C mod Q。
步骤4中使用蒙哥马利算法计算乘法,由于最终结果是L长度,因此需要将Mpq和q的高位补“0”填充至L长,然后使用L位长的蒙哥马利模乘器计算乘法,此时,MonMul(a,b,m)中m=2L-1,长度为L。改进的方法如下:
1.将Mpq和Q作为a*b的输入数据,将L/2位长的a和b拆分为等长度的两部分,其中aH表示a的高L/4部分,aL表示a的低L/4部分,bH表示b的高L/4部分,bL表示b的低L/4部分。
2.将aL用“0”填充至L/2长,记为aL0,将bL用“0”填充至L/2长,记为bL0,其实aL=aL0,bL=bL0。记L/2长的0xFF为m,用蒙哥马利模乘器计算MonMul(aL0,bL0,m)=aL0*bL0*R-1mod m,由于m为2L-1,那么R-1=1,实际上,aL0*bL0*R-1mod m=aL*bL。
3.用同样的步骤计算aH*bL,bH*aL,bH*aH,最后计算aLbL+aHbL<<(L/4)+bHaL<<(L/2)+bHaH<<(3L/4),即可得到a*b。

Claims (1)

1.一种RSA算法数字签名方法,其特征在于步骤如下:
(1)计算Cp和Cq,其中Cp=C mod P,Cq=C mod Q,C为RSA私钥运算的输入数据;P,Q,d和n为RSA的私钥参数,P和Q的位长为L/2,d和n的位长为L,mod为取模运算;
(2)将C分为等长度的两个部分,记CH为高L/2部分,CL为低L/2部分,并且C=CH<<L/2+CL,其中“<<”为向左平移操作;CH<<L/2=CH*2L/2,记R=2L/2;
(3)C mod P=(CH*R+CL)mod P,将括号展开后,得到CH*R mod P+CL modP,其中CL和P的长度一样,取模操作用减法实现,记为CLP;
(4)计算MonMul(CH,R2,P),得到CH*R mod P,即CH<<L/2mod P,记为CHP;
(5)最后计算CHP+CLP得到C mod P,用同样的方法,计算C mod Q;
(6)计算Mp和Mq,其中Mp=Cpdp mod P,Mq=Cpdq mod Q;
(7)计算Mpq,Mpq=(Mp-Mq)*qInv mod Q;
(8)计算Res=Mpq*Q+Mq;将Mpq和Q的高位补“0”填充至L长,使用L位长的蒙哥马利模乘器计算乘法,将Mpq和Q作为a*b的输入数据,将L/2位长的a和b拆分为等长度的两部分,其中aH表示a的高L/4部分,aL表示a的低L/4部分,bH表示b的高L/4部分,bL表示b的低L/4部分;
(9)将aL用“0”填充至L/2长,记为aL0,将bL用“0”填充至L/2长,记为bL0,记L/2长的0xFF为m,用蒙哥马利模乘器计算MonMul(aL0,bL0,m)=aL0*bL0*R-1 mod m;
(10)用同样的步骤计算aH*bL,bH*aL,bH*aH,最后计算aLbL+aHbL<<(L/4)+bHaL<<(L/2)+bHaH<<(3L/4),即可得到a*b。
CN201010622313.2A 2010-12-27 2010-12-27 一种rsa算法数字签名方法 Active CN102571342B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010622313.2A CN102571342B (zh) 2010-12-27 2010-12-27 一种rsa算法数字签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010622313.2A CN102571342B (zh) 2010-12-27 2010-12-27 一种rsa算法数字签名方法

Publications (2)

Publication Number Publication Date
CN102571342A true CN102571342A (zh) 2012-07-11
CN102571342B CN102571342B (zh) 2016-01-06

Family

ID=46415884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010622313.2A Active CN102571342B (zh) 2010-12-27 2010-12-27 一种rsa算法数字签名方法

Country Status (1)

Country Link
CN (1) CN102571342B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103209073A (zh) * 2013-01-17 2013-07-17 北京昆腾微电子有限公司 使用rsa公开密钥加密算法的电子部件中的防攻击方法和装置
CN103401681A (zh) * 2013-07-02 2013-11-20 北京华大信安科技有限公司 取模方法、取模装置及芯片
CN103580869A (zh) * 2013-11-06 2014-02-12 北京华大信安科技有限公司 一种crt-rsa签名方法及装置
CN103684763A (zh) * 2012-09-19 2014-03-26 北京握奇数据系统有限公司 基于rsa算法的数据加密方法、装置及智能卡
WO2014169783A1 (zh) * 2013-04-16 2014-10-23 飞天诚信科技股份有限公司 一种在嵌入式系统中实现大数预计算的方法
CN103209073B (zh) * 2013-01-17 2016-11-30 昆腾微电子股份有限公司 使用rsa公开密钥加密算法的电子部件中的防攻击方法和装置
CN107196764A (zh) * 2017-07-19 2017-09-22 龙迅半导体(合肥)股份有限公司 一种rsa加解密处理方法和装置
CN108242994A (zh) * 2016-12-26 2018-07-03 阿里巴巴集团控股有限公司 密钥的处理方法和装置
CN110113169A (zh) * 2019-04-15 2019-08-09 北京三未信安科技发展有限公司 基于rsa的协同数字签名方法、装置及电子设备
CN117992990A (zh) * 2024-04-01 2024-05-07 国网山东省电力公司济南供电公司 一种高效的电力数据同态加密方法、处理器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1392472A (zh) * 2002-07-31 2003-01-22 清华大学 Vlsi用的蒙格玛丽模乘算法及智能卡模乘器的vlsi结构
CN1694061A (zh) * 2005-05-18 2005-11-09 上海迪申电子科技有限责任公司 操作数长度可伸缩的蒙哥马利模乘算法
CN101470598A (zh) * 2007-12-28 2009-07-01 航天信息股份有限公司 提高大整数Montgomery模乘运算速度的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1392472A (zh) * 2002-07-31 2003-01-22 清华大学 Vlsi用的蒙格玛丽模乘算法及智能卡模乘器的vlsi结构
CN1694061A (zh) * 2005-05-18 2005-11-09 上海迪申电子科技有限责任公司 操作数长度可伸缩的蒙哥马利模乘算法
CN101470598A (zh) * 2007-12-28 2009-07-01 航天信息股份有限公司 提高大整数Montgomery模乘运算速度的方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103684763A (zh) * 2012-09-19 2014-03-26 北京握奇数据系统有限公司 基于rsa算法的数据加密方法、装置及智能卡
CN103209073A (zh) * 2013-01-17 2013-07-17 北京昆腾微电子有限公司 使用rsa公开密钥加密算法的电子部件中的防攻击方法和装置
CN103209073B (zh) * 2013-01-17 2016-11-30 昆腾微电子股份有限公司 使用rsa公开密钥加密算法的电子部件中的防攻击方法和装置
US9851948B2 (en) 2013-04-16 2017-12-26 Feitian Technologies Co., Ltd. Method for implementing precomputation of large number in embedded system
WO2014169783A1 (zh) * 2013-04-16 2014-10-23 飞天诚信科技股份有限公司 一种在嵌入式系统中实现大数预计算的方法
CN103401681B (zh) * 2013-07-02 2016-08-31 北京华大信安科技有限公司 取模方法、取模装置及芯片
CN103401681A (zh) * 2013-07-02 2013-11-20 北京华大信安科技有限公司 取模方法、取模装置及芯片
CN103580869B (zh) * 2013-11-06 2016-09-21 北京华大信安科技有限公司 一种crt-rsa签名方法及装置
CN103580869A (zh) * 2013-11-06 2014-02-12 北京华大信安科技有限公司 一种crt-rsa签名方法及装置
CN108242994A (zh) * 2016-12-26 2018-07-03 阿里巴巴集团控股有限公司 密钥的处理方法和装置
CN107196764A (zh) * 2017-07-19 2017-09-22 龙迅半导体(合肥)股份有限公司 一种rsa加解密处理方法和装置
CN110113169A (zh) * 2019-04-15 2019-08-09 北京三未信安科技发展有限公司 基于rsa的协同数字签名方法、装置及电子设备
CN110113169B (zh) * 2019-04-15 2021-11-12 北京三未信安科技发展有限公司 基于rsa的协同数字签名方法、装置及电子设备
CN117992990A (zh) * 2024-04-01 2024-05-07 国网山东省电力公司济南供电公司 一种高效的电力数据同态加密方法、处理器及存储介质
CN117992990B (zh) * 2024-04-01 2024-05-31 国网山东省电力公司济南供电公司 一种高效的电力数据同态加密方法、处理器及存储介质

Also Published As

Publication number Publication date
CN102571342B (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
CN102571342A (zh) 一种rsa算法数字签名方法
Bernstein et al. Curve41417: Karatsuba revisited
Roy et al. Tile before multiplication: An efficient strategy to optimize DSP multiplier for accelerating prime field ECC for NIST curves
KR102132261B1 (ko) 비교 연산이 필요없이 최종 모듈러 감소를 하는 몽고메리 곱셈 방법 및 곱셈기
EP4156595A1 (en) Combined post-quantum security utilizing redefined polynomial calculation
Zheng et al. Exploiting the floating-point computing power of GPUs for RSA
Li et al. Research in fast modular exponentiation algorithm based on FPGA
CN104699452A (zh) 一种素域gf(p)下实现位宽可变的模乘法器
CN103339665A (zh) 用于多位数除法或模变换的方法
CN101788900B (zh) 基于dna自组装技术的椭圆曲线密码系统的破译方法及系统
VR et al. An improved quad Itoh-Tsujii algorithm for FPGAs
US20140286488A1 (en) Determining a Division Remainder and Ascertaining Prime Number Candidates for a Cryptographic Application
CN102646033B (zh) 提供了加密和签名功能的rsa算法的实现方法和装置
McLoone et al. Coarsely integrated operand scanning (CIOS) architecture for high-speed Montgomery modular multiplication
Cho et al. Faster elliptic curve arithmetic for triple-base chain by reordering sequences of field operations
Verma et al. FPGA implementation of RSA based on carry save Montgomery modular multiplication
Rahman et al. Efficient hardware implementation of RSA cryptography
Wu et al. Improved RNS Montgomery modular multiplication with residue recovery
Zhao et al. Exploring the speed limit of SM2
Tamura et al. Implementation and Evaluation of modular multiplication based on Coarsely Integrated Operand Scanning
Wu High-Performance RNS Modular Exponentiation by Sum-Residue Reduction
Zhou et al. New algorithm and fast VLSI implementation for modular inversion in galois field GF (p)
Al-Khatib et al. Hardware Designs and Architectures for Projective Montgomery ECC over GF (p) benefiting from mapping elliptic curve computations to different degrees of parallelism
Zhang et al. Research on Encryption Technology of CAA Software Based on RSA Algorithm and Hardware Information Extraction
de Macedo Mourelle et al. Fast reconfigurable hardware for the M-ary modular exponentiation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 102209 Beijing, Beiqijia, the future of science and technology in the south area of China electronic network security and information technology industry base C building,

Applicant after: Beijing CEC Huada Electronic Design Co., Ltd.

Address before: 100102 Beijing City, Chaoyang District Lize two Road No. 2, Wangjing science and Technology Park A block five layer

Applicant before: Beijing CEC Huada Electronic Design Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant