[发明专利]一种RSA算法数字签名方法有效
申请号: | 201010622313.2 | 申请日: | 2010-12-27 |
公开(公告)号: | CN102571342A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 汪涛;范楠迪;马宁 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100102 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明设计一种RSA算法数字签名方法,基于1024位的硬件协处理器实现1408位的RSA私钥运算技术,主要应用于智能卡安全计算领域,是利用小位长的模乘器计算大位长的RSA私钥运算中的参数,例如利用1024位的模乘器计算1408位或者2048位RSA私钥运算中的参数。RSA的私钥运算利用中国剩余定理,可以将其主要运算——模幂运算的运算长度降低,但是其中关键参数的运算,例如:C mod P、C mod Q和乘法运算。其中C表示明文,长度是P和Q的两倍。而乘法运算是利用模乘器进行了加速,其最终结果也超出了模乘器的运算能力。技术中主要是利用模运算算法变形,将C拆分成两个小位长的数,计算C mod P;通过四次乘法运算计算大于模乘器长度的乘法运算。 | ||
搜索关键词: | 一种 rsa 算法 数字签名 方法 | ||
【主权项】:
一种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。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010622313.2/,转载请声明来源钻瓜专利网。