[发明专利]一种RSA算法数字签名方法有效
申请号: | 201010622313.2 | 申请日: | 2010-12-27 |
公开(公告)号: | CN102571342A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 汪涛;范楠迪;马宁 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100102 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 rsa 算法 数字签名 方法 | ||
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。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010622313.2/1.html,转载请声明来源钻瓜专利网。