CN102468956A - 适用于rsa模幂计算的方法 - Google Patents
适用于rsa模幂计算的方法 Download PDFInfo
- Publication number
- CN102468956A CN102468956A CN2010105415972A CN201010541597A CN102468956A CN 102468956 A CN102468956 A CN 102468956A CN 2010105415972 A CN2010105415972 A CN 2010105415972A CN 201010541597 A CN201010541597 A CN 201010541597A CN 102468956 A CN102468956 A CN 102468956A
- Authority
- CN
- China
- Prior art keywords
- rsa
- modular exponentiation
- mould
- mould power
- calculation
- 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.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种适用于RSA模幂计算的方法,包括如下步骤:步骤1,获取一个随机数R’;步骤2,计算R’对RSA模数n的模逆值R,即R=R’-1mod n;步骤3,把指数平均分成r段,每段的长度为s位;步骤4,计算T1=M(RSA模幂底数),Ti+1=2s·Ti,其中(i=1,2,……,n);步骤5,进行RSA模幂计算。本发明所采用的适用于RSA模幂计算的快速安全方法能够通过将指数平均分段结合底数掩码的措施来完成RSA模幂的计算,从而减少了模幂计算中循环的次数,降低了模幂运算所要消耗的时间代价,平衡了各个条件分支中的计算流程,在模幂的输入部分加入了随机元素,因此能够更快更安全地计算RSA模幂。
Description
技术领域
本发明涉及RSA密码运算中的模幂计算(应用中包含解密和签名等),具体涉及一种适用于RSA模幂计算的快速安全方法,尤其适用于包含RSA算法的芯片的应用。
背景技术
RSA算法是应用比较广泛的加密算法,但是RSA算法容易受到SPA(简单功耗分析)和DPA(差分功耗分析)攻击。对抗SPA攻击的思想是平衡RSA模幂运算中每个不同条件分支中的计算流程,这样的话每个条件分支执行时的功耗基本无差别;而对抗DPA的思想是用一个随机数对模幂运算的输入进行掩码,用掩码后的数据计算模幂,最后得出正确的计算结果,这样,每次进行模幂计算时芯片的功耗都会随机变化,消除了功耗和密钥之间的相关性。上述思想结合使用可以达到保护密钥的目的。另外RSA模幂计算的效率需要在一定程度上进行提高,以适应复杂的应用。
根据传统方法描述,进行RSA模幂计算的方法如图2中算法1所示,其中L为RSA的数据长度,即底数M、指数k和模数n都是L位的数字,“*”表示模乘运算,“X2”表示模平方运算,模数都是RSA的模数n。
由算法1可以看出,传统RSA模幂运算里,当指数位为“1”时,会计算一次模平方和一次模乘,而当指数为“0”时只计算一次模平方,这样由于不同条件分支的计算流程不同则会引起功耗上的区别,容易受到SPA攻击;另外模幂的输入没有随机化,所以指数和功耗会存在一定的相关性,因此易受到DPA攻击。这里设RSA的数据长度为1024位,指数中“0”和“1”的比例平均为1∶1,那么可以推出传统方法进行一次RSA模幂运算需要计算1024次模平方和512次模乘,时间代价较大。
发明内容
本发明要解决的技术问题是提出一种适用于RSA模幂计算的方法,能够快速安全地进行RSA模幂运算,既提高了安全性又降低时间代价。
为了解决以上技术问题,本发明提供了一种适用于RSA模幂计算的方法,包括如下步骤:
步骤1,获取一个随机数R’;
步骤2,计算R’对RSA模数n的模逆值R,即R=R’-1mod n;
步骤3,把指数平均分成r段,每段的长度为s位;
步骤4,计算T1=M(RSA模幂底数),Ti+1=2s·Ti,其中(i=1,2,……,n);
步骤5,进行RSA模幂计算。
本发明的有益效果在于:所采用的适用于RSA模幂计算的快速安全方法能够通过将指数平均分段结合底数掩码的措施来完成RSA模幂的计算,从而减少了模幂计算中循环的次数,降低了模幂运算所要消耗的时间代价,平衡了各个条件分支中的计算流程,在模幂的输入部分加入了随机元素,因此能够更快更安全地计算RSA模幂。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是本发明实施例所述模幂计算的通用流程图;
图2是传统RSA模幂计算方法中算法1的示意图;
图3是本发明实施例所述方法步骤五中算法2进行模幂的示意图。
具体实施方式
本发明提出了一种适用于RSA模幂计算的快速安全方法,包括如下步骤:
步骤1、获取一个随机数R’;
步骤2、计算R’对RSA模数n的模逆值R,即R=R’-1mod n;
步骤3、把指数平均分成r段,每段的长度为s位;
步骤4、计算T1=M(RSA模幂底数),Ti+1=2s·Ti,其中(i=1,2,……,n);
步骤5、通过图1所示的流程进行RSA模幂计算,其中“*”表示模乘运算,“X2”表示模平方运算,模数都是RSA的模数n,B(i,j)的值为{0,1}。
步骤1中所述的一个随机数R’,包括16位以上(包括16位)的所有随机数。
步骤2中所述的计算R’对RSA模数n的模逆值R,即R=R’-1mod n,包括使用任何公知的方法计算模逆。
步骤3中所述的把指数平均分成r段,每段的长度为s位,包括r>1的所有可能。
步骤4中所述的计算T1=M(RSA模幂底数),Ti+1=2s·Ti,其中(i=1,2,……,n),包括使用任何公知的方法计算Ti+1。
步骤5中所述的通过图1所示的流程进行RSA模幂计算,其中“*”表示模乘运算,“X2”表示模平方运算,包括使用任何公知的方法计算模乘和模平方。
下面对本发明适用于RSA模幂计算的快速安全方法的原理进行一下说明:
本发明适用于RSA模幂计算的快速安全方法的主体在于将指数平均分成r段并结合底数掩码来计算模幂,只要选取足够长的随机数,便可以在保证安全性前提下快速得到模幂的结果,以用于加密算法的应用。与传统模幂计算方法相比,本发明中所采用的适用于RSA模幂计算的快速安全方法能够通过将指数平均分段结合底数掩码的措施来完成RSA模幂的计算,从而减少了模幂计算中循环的次数,降低了模幂运算所要消耗的时间代价,平衡了各个条件分支中的计算流程,在模幂的输入部分加入了随机元素,因此能够更快更安全地计算RSA模幂。
例如,在本发明的下述实施例中,RSA采用的数据长度为1024位,即底数M、指数k和模数n都是1024位的数字,将指数平均分成4段,那么每一段的长度为256位。
如图1所示,本实施例具体的RSA模幂计算步骤如下所示:
步骤1,获取一个随机数R’;
步骤2,R=R’-1mod n;
步骤3,把密钥平均分解成4段,a、b、c和d,每段长度都为s,s=256,则k=a*23s+b*22s+c*2s+d;
步骤5,应用图3中算法2进行模幂计算,其中“*”表示模乘运算,“X2”表示模平方运算,模数都是RSA的模数n。
本发明采用指数平均分段和底数掩码结合的方式实现了RSA模幂计算,为了和传统方法比较,这里的实例选取的是1024位RSA数据,步骤2中仅仅计算一次模逆;步骤4中需要进行3s次模平方计算,s=256,所以需要计算768次模平方;步骤5中,算法1当中循环体之外需要进行16次模乘计算,循环体内部总共进行256次模乘计算和256次模平方计算。
综上所述,本应用发明进行一次RSA模幂运算共需要1次模逆,1024次模平方和272次模乘,如果预计算值能够复用的话,计算模幂的时间代价还可以更小。同时,由算法2可以看出,每次执行模幂循环计算时都会进行一次模平方和一次模乘,所以平衡了不同条件分支的计算流程,并且对底数进行了随机掩码。
较传统方法而言,本发明能够通过密钥平均分段和底数掩码结合的方式计算RSA模幂,从运算效率上来说,本发明有效减少了RSA模幂的运算时间;从安全性上来讲,本发明平衡了不同条件分支的计算流程,可以抵抗SPA攻击,而且对模幂的输入进行了随机掩码,同时也可以抵抗DPA攻击,从而有利于目前所有包含RSA算法的芯片产品。
本发明并不限于上文讨论的实施方式。以上对具体实施方式的描述旨在于为了描述和说明本发明涉及的技术方案。基于本发明启示的显而易见的变换或替代也应当被认为落入本发明的保护范围。以上的具体实施方式用来揭示本发明的最佳实施方法,以使得本领域的普通技术人员能够应用本发明的多种实施方式以及多种替代方式来达到本发明的目的。
Claims (6)
1.一种适用于RSA模幂计算的方法,其特征在于:包括如下步骤:
步骤1,获取一个随机数R’;
步骤2,计算R’对RSA模数n的模逆值R,即R=R’-1mod n;
步骤3,把指数平均分成r段,每段的长度为s位;
步骤4,计算T1=M(RSA模幂底数),Ti+1=2s·Ti,其中(i=1,2,……,n);
步骤5,进行RSA模幂计算。
2.如权利要求1所述的适用于RSA模幂计算的方法,其特征在于,步骤1中所述的一个随机数R’,包括16位及16位以上的所有随机数。
3.如权利要求1所述的适用于RSA模幂计算的方法,其特征在于,步骤2中所述的计算R’对RSA模数n的模逆值R,即R=R’-1mod n。
4.如权利要求1所述的适用于RSA模幂计算的方法,其特征在于,步骤3中所述的把指数平均分成r段,每段的长度为s位,r>1。
5.如权利要求1所述的适用于RSA模幂计算的方法,其特征在于,步骤4中所述的计算T1=M(RSA模幂底数),Ti+1=2s·Ti,其中i=1,2,……,n。
6.如权利要求1所述的一种适用于RSA模幂计算的快速安全方法,其特征在于,步骤5中所述RSA模幂计算,包括计算模乘和模平方。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105415972A CN102468956A (zh) | 2010-11-11 | 2010-11-11 | 适用于rsa模幂计算的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105415972A CN102468956A (zh) | 2010-11-11 | 2010-11-11 | 适用于rsa模幂计算的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102468956A true CN102468956A (zh) | 2012-05-23 |
Family
ID=46072168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105415972A Pending CN102468956A (zh) | 2010-11-11 | 2010-11-11 | 适用于rsa模幂计算的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102468956A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095459A (zh) * | 2013-01-17 | 2013-05-08 | 广东数字证书认证中心有限公司 | 公钥密码体制中模幂运算方法、设备和服务器 |
CN103107879A (zh) * | 2012-12-21 | 2013-05-15 | 杭州晟元芯片技术有限公司 | 一种rsa加速器 |
CN103326861A (zh) * | 2013-06-04 | 2013-09-25 | 北京华大信安科技有限公司 | 一种对数据进行rsa安全签名的方法、装置及安全芯片 |
CN103684763A (zh) * | 2012-09-19 | 2014-03-26 | 北京握奇数据系统有限公司 | 基于rsa算法的数据加密方法、装置及智能卡 |
CN104463027A (zh) * | 2014-08-27 | 2015-03-25 | 北京中电华大电子设计有限责任公司 | 一种实现软件条件分支功耗均衡的方法 |
CN104660399A (zh) * | 2013-11-25 | 2015-05-27 | 上海复旦微电子集团股份有限公司 | 一种rsa模幂运算方法和装置 |
CN104811297A (zh) * | 2015-04-23 | 2015-07-29 | 成都信息工程学院 | 针对RSA之M-ary实现模乘余数输入侧信道攻击 |
CN106452789A (zh) * | 2016-11-02 | 2017-02-22 | 北京宏思电子技术有限责任公司 | 一种多方位防侧信道攻击的签名方法 |
CN107004084A (zh) * | 2014-12-08 | 2017-08-01 | 密码研究公司 | 用于加密操作的乘法掩码 |
CN108111309A (zh) * | 2018-02-28 | 2018-06-01 | 北京融通高科微电子科技有限公司 | Rsa私钥掩码运算方法、协处理器及rsa运算装置 |
CN108242994A (zh) * | 2016-12-26 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 密钥的处理方法和装置 |
CN108306730A (zh) * | 2018-03-05 | 2018-07-20 | 飞天诚信科技股份有限公司 | 一种在嵌入式系统中生成密钥对的实现方法和装置 |
CN108833120A (zh) * | 2018-08-28 | 2018-11-16 | 成都信息工程大学 | 一种crt-rsa选择明文联合攻击新方法及系统 |
CN112068801A (zh) * | 2019-06-11 | 2020-12-11 | 云南大学 | 一种乘法群上的最优带符号二进制快速计算方法及模幂运算 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1443699A1 (en) * | 2003-01-23 | 2004-08-04 | Hitachi, Ltd. | Information processing means and IC card |
CN1835207A (zh) * | 2005-03-17 | 2006-09-20 | 联想(北京)有限公司 | 防止对rsa算法进行能量分析攻击的方法 |
CN101196964A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 一种抗旁路攻击算法及其芯片 |
CN101834723A (zh) * | 2009-03-10 | 2010-09-15 | 上海爱信诺航芯电子科技有限公司 | 一种rsa算法及其ip核 |
-
2010
- 2010-11-11 CN CN2010105415972A patent/CN102468956A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1443699A1 (en) * | 2003-01-23 | 2004-08-04 | Hitachi, Ltd. | Information processing means and IC card |
CN1835207A (zh) * | 2005-03-17 | 2006-09-20 | 联想(北京)有限公司 | 防止对rsa算法进行能量分析攻击的方法 |
CN101196964A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 一种抗旁路攻击算法及其芯片 |
CN101834723A (zh) * | 2009-03-10 | 2010-09-15 | 上海爱信诺航芯电子科技有限公司 | 一种rsa算法及其ip核 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103684763A (zh) * | 2012-09-19 | 2014-03-26 | 北京握奇数据系统有限公司 | 基于rsa算法的数据加密方法、装置及智能卡 |
CN103107879A (zh) * | 2012-12-21 | 2013-05-15 | 杭州晟元芯片技术有限公司 | 一种rsa加速器 |
CN103107879B (zh) * | 2012-12-21 | 2015-08-26 | 杭州晟元芯片技术有限公司 | 一种rsa加速器 |
CN103095459A (zh) * | 2013-01-17 | 2013-05-08 | 广东数字证书认证中心有限公司 | 公钥密码体制中模幂运算方法、设备和服务器 |
CN103095459B (zh) * | 2013-01-17 | 2016-09-28 | 数安时代科技股份有限公司 | 公钥密码体制中模幂运算方法、设备和服务器 |
CN103326861A (zh) * | 2013-06-04 | 2013-09-25 | 北京华大信安科技有限公司 | 一种对数据进行rsa安全签名的方法、装置及安全芯片 |
CN103326861B (zh) * | 2013-06-04 | 2016-12-28 | 北京华大信安科技有限公司 | 一种对数据进行rsa安全签名的方法、装置及安全芯片 |
CN104660399A (zh) * | 2013-11-25 | 2015-05-27 | 上海复旦微电子集团股份有限公司 | 一种rsa模幂运算方法和装置 |
CN104660399B (zh) * | 2013-11-25 | 2018-02-23 | 上海复旦微电子集团股份有限公司 | 一种rsa模幂运算方法和装置 |
CN104463027A (zh) * | 2014-08-27 | 2015-03-25 | 北京中电华大电子设计有限责任公司 | 一种实现软件条件分支功耗均衡的方法 |
CN107004084B (zh) * | 2014-12-08 | 2021-08-10 | 密码研究公司 | 用于加密操作的乘法掩码 |
US11626970B2 (en) | 2014-12-08 | 2023-04-11 | Cryptography Research, Inc. | Multiplicative masking for cryptographic operations |
CN107004084A (zh) * | 2014-12-08 | 2017-08-01 | 密码研究公司 | 用于加密操作的乘法掩码 |
CN104811297A (zh) * | 2015-04-23 | 2015-07-29 | 成都信息工程学院 | 针对RSA之M-ary实现模乘余数输入侧信道攻击 |
CN104811297B (zh) * | 2015-04-23 | 2018-06-12 | 成都信息工程学院 | 针对RSA之M-ary实现模乘余数输入侧信道攻击 |
CN106452789A (zh) * | 2016-11-02 | 2017-02-22 | 北京宏思电子技术有限责任公司 | 一种多方位防侧信道攻击的签名方法 |
CN108242994A (zh) * | 2016-12-26 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 密钥的处理方法和装置 |
CN108242994B (zh) * | 2016-12-26 | 2021-08-13 | 阿里巴巴集团控股有限公司 | 密钥的处理方法和装置 |
CN108111309A (zh) * | 2018-02-28 | 2018-06-01 | 北京融通高科微电子科技有限公司 | Rsa私钥掩码运算方法、协处理器及rsa运算装置 |
CN108306730A (zh) * | 2018-03-05 | 2018-07-20 | 飞天诚信科技股份有限公司 | 一种在嵌入式系统中生成密钥对的实现方法和装置 |
CN108306730B (zh) * | 2018-03-05 | 2020-10-13 | 飞天诚信科技股份有限公司 | 一种在嵌入式系统中生成密钥对的实现方法和装置 |
CN108833120A (zh) * | 2018-08-28 | 2018-11-16 | 成都信息工程大学 | 一种crt-rsa选择明文联合攻击新方法及系统 |
CN108833120B (zh) * | 2018-08-28 | 2021-07-30 | 成都信息工程大学 | 一种crt-rsa选择明文联合攻击方法及系统 |
CN112068801A (zh) * | 2019-06-11 | 2020-12-11 | 云南大学 | 一种乘法群上的最优带符号二进制快速计算方法及模幂运算 |
CN112068801B (zh) * | 2019-06-11 | 2022-09-09 | 云南大学 | 一种乘法群上的最优带符号二进制快速计算方法及模幂运算 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102468956A (zh) | 适用于rsa模幂计算的方法 | |
Hossain et al. | High‐performance elliptic curve cryptography processor over NIST prime fields | |
CA2252078C (en) | Power signature attack resistant cryptographic system | |
Wang et al. | FPGA implementation of a large-number multiplier for fully homomorphic encryption | |
CN106452789B (zh) | 一种多方位防侧信道攻击的签名方法 | |
CN101562522A (zh) | 抗侧信道攻击的椭圆曲线密码系统实现方法 | |
CN101197668A (zh) | 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法 | |
CN102109974A (zh) | 适用于椭圆曲线密码安全保护的随机点生成方法 | |
CN103761068A (zh) | 优化的蒙哥马利模乘方法、模平方方法和模乘硬件 | |
JP2007187958A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
KR20060106565A (ko) | 계산 방법, 계산 장치 및 컴퓨터 프로그램 | |
Wang et al. | Highly-parallel hardware implementation of optimal ate pairing over Barreto-Naehrig curves | |
CN104811297A (zh) | 针对RSA之M-ary实现模乘余数输入侧信道攻击 | |
CN103780381B (zh) | 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 | |
Gutub et al. | Serial vs. parallel elliptic curve crypto processor designs | |
Wang et al. | A unified architecture for supporting operations of AES and ECC | |
Liu et al. | SPA resistant scalar multiplication based on addition and tripling indistinguishable on elliptic curve cryptosystem | |
Bardis | Secure, green implementation of modular arithmetic operations for IoT and cloud applications | |
JP6457911B2 (ja) | スカラー倍算装置 | |
CN100382012C (zh) | 一种操作数长度可伸缩的蒙哥马利模乘器运算方法 | |
Iyengar | Novel elliptic curve scalar multiplication algorithms for faster and safer public-key cryptosystems | |
JP2004125891A (ja) | べき乗剰余演算器 | |
CN107463354A (zh) | 一种面向ECC的双域并行度可变的Montgomery模乘电路 | |
Zhang et al. | Efficient elliptic curve scalar multiplication algorithms resistant to power analysis | |
Liu et al. | Anti-SPA scalar multiplication algorithm on Twisted Edwards elliptic curve |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120523 |