[发明专利]模乘运算的实现方法和装置有效
申请号: | 201110041611.7 | 申请日: | 2011-02-21 |
公开(公告)号: | CN102646033A | 公开(公告)日: | 2012-08-22 |
发明(设计)人: | 潘无穷;荆继武;刘宗斌 | 申请(专利权)人: | 中国科学院研究生院 |
主分类号: | G06F7/72 | 分类号: | G06F7/72 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 谢安昆;宋志强 |
地址: | 100049 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算 实现 方法 装置 | ||
技术领域
本发明涉及信息安全技术领域,特别涉及模乘运算的实现方法和装置。
背景技术
RSA算法是由Ron Rivest、Adi Shamirh和LenAdleman三人在1977年提出的,提供了加密和签名等功能,是应用最为广泛的密码算法之一。
RSA算法的核心为模乘运算,所谓模乘运算,即指当输入乘数x、y,模数n时,输出(x×y)mod n的结果,mod表示求模运算。
移位-加算法为实现模乘运算的经典算法,具体实现如下:
1)接收输入的k位乘数x、y,k位模数n,x、y和n均为正整数;
2)令s=0,i=k-1;
3)计算(s<<1)+x×y[i],得到计算结果s’,其中,<<表示左移,<<1即表示左移1位,y[i]表示y的第i位的取值,当i<0时,y[i]=0;
计算s’mod n,得到计算结果s”;
4)确定i的取值是否等于0,如果是,则将s”作为模乘运算的结果输出,否则,令i=i-1,s=s”,然后重复执行步骤3).
需要说明的是,上述以及后续将要出现的各数字在实际应用中均以二进制形式进行表示。
另外,在实际应用中,还可对上述移位-加算法进行一定的改造,从而得到采用高基形式的移位-加算法,具体实现如下:
1)接收输入的k位乘数x、y,k位模数n,k=k1×k2,x、y、n、k1和k2均为正整数;
2)令s=0,i=k2-1;
3)计算(s<<k1)+x×y[(i+1)×k1-1∶i×k1],<<表示左移,y[(i+1)×k1-1∶i×k1]表示y的第(i+1)×k1-1位到第i×k1位中的每位的取值,当i<0时,y[i]=0;
计算s’mod n,得到计算结果s”;
4)确定i的取值是否等于0,如果是,则将s”作为模乘运算的结果输出,否则,令i=i-1,s=s”,然后重复执行步骤3)。
上述两种方式虽然均可实现模乘运算,但两者在实际应用均会存在一定的问题,即计算量大,从而导致计算速度慢。
发明内容
有鉴于此,本发明的主要目的在于提供两种模乘运算的实现方法,能够降低计算量,进而提高计算速度。
本发明的另一目的在于提供两种模乘运算的实现装置,能够降低计算量,进而提高计算速度。
为达到上述目的,本发明的技术方案是这样实现的:
一种模乘运算的实现方法,包括:
A、接收输入的乘数x、y,模数n;其中,x和y的位数均为k,n的位数为j,j≤k,x、y和n均为正整数;
令n’=n<<t,y’=y<<t,t为正整数,<<表示左移;
B、计算s=(x×y’)mod n’,mod表示求模运算,包括:
B1、令s=0,i=k+t-1;
B2、计算s<<1+x×y’[i],得到计算结果s’,y’[i]表示y’的第i位的取值;
B3、计算s’mod n’,得到计算结果s”;
B4、令s=s”,如果i等于0,则执行步骤C;否则,令i=i-1,并返回执行步骤B2;
C、令s”’=s>>t,将s”’作为模乘运算的结果输出。
一种模乘运算的实现方法,包括:
A、接收输入的乘数x、y,模数n;其中,x、y和n的位数均为k,且x、y和n均为正整数;
令n’=n<<t,y’=y<<t,t为正整数,<<表示左移,并且,k和t均需要能够被正整数k1整除;
B、计算s=(x×y’)mod n’,mod表示求模运算,包括:
B1、令s=0,i=k/k1+t/k1-1;
B2、计算s<<k1+x×y’[(i+1)×k1-1∶i×k1],得到计算结果s’,y’[(i+1)×k1-1∶i×k1]表示y’的第(i+1)×k1-1位到第i×k1位中的每位的取值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院研究生院,未经中国科学院研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110041611.7/2.html,转载请声明来源钻瓜专利网。