[发明专利]一种基于Montgomery的分段计算标量乘方法在审
申请号: | 201510772594.2 | 申请日: | 2015-11-12 |
公开(公告)号: | CN106712949A | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 叶晓舟;李杨;曾学文 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | H04L9/30 | 分类号: | H04L9/30 |
代理公司: | 北京亿腾知识产权代理事务所11309 | 代理人: | 陈霁 |
地址: | 100190 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 montgomery 分段 计算 标量 方法 | ||
技术领域
本发明涉及椭圆曲线密码领域,尤其涉及一种基于Montgomery的分段计算标量乘方法。
背景技术
1985年Koblitz和Miller分别独立提出了椭圆曲线密码体制(ECC),使用定义在有限域上的椭圆曲线上的点群来实现基于离散对数问题的密码体制。由于其上的密钥长度要比其他密码体制的短,ECC逐渐被人们重视和应用。标量乘算法是ECC中最基本和最为耗费时间的算法,所以标量乘的计算效率直接影响到ECC的效率。
1987年Montgomery提出一种能够抵抗SPA攻击的计算椭圆曲线标量乘bP的快速算法。其基本思想是:将整数b二进制展开从左到右进行循环运算,在每一次循环中,进行一次点加和倍点运算。由于每次循环中运算模式与代价相同,算法能够抵抗SPA攻击,而每次点加和倍点运算仅需要计算x坐标,这使得其计算效率大大提升。1999年,Lopez J和Dahab R基于Montgomery的思想在二进制域上提出一种计算椭圆曲线标量乘的新算法。通过使用一组新的点加和倍点计算公式,每次循环仅需要计算点的x坐标,而在算法的最后恢复y坐标。
现在,二进制域上标量乘算法,主流的软件实现(如OpenSSL)都是使用Lopez J和Dahab R提出的思想进行椭圆曲线标量乘算法,占用存储空间大、安全性较差。因此,本发明提出一种基于Montgomery的分段安全计算标量乘的方法。
发明内容
本发明的目的是针对现有技术的不足,提供了一种基于Montgomery分段安全的计算标量乘方法,在Montgomery思想的基础上进行二分段,并使用边信道原子化和同时求逆,在保证安全性的同时提高了运算效率
为实现上述目的,本发明提供了一种基于Montgomery的分段计算标量乘方法,该方法包括以下步骤:
根据椭圆曲线标量bP,得到二分段椭圆曲线双标量kP+lQ;
根据从左到右二进制表示的k和l的取值,同时计算双标量kP+lQ,并在循环过程点加和倍点运算中,仅计算双标量kP+lQ的x坐标,循环结束后恢复双标量kP+lQ的y坐标;
根据边信道原子化方法在所述双标量kP+lQ循环过程点加和倍点运算中,进行调度并引入伪操作,使循环过程中运算模式相同。
优选地,椭圆曲线标量bP的二分段处理具体包括:
设标量b为b=(bn-1,bn-2,…,b0)2,若n为偶数,令m=n/2;若n为奇数,令m=(n+1)/2,并在b的最高位补零,即令bn=0。则此时b表示为b=(b2m-1,b2m-2,…,bm,…,b0)2,将b分为等长的两段,前m位赋给l,后m位赋给k,则l=(lm-1,lm-2,…,l0)2=(b2m-1,b2m-2,…,bm)2,k=(km-1,km-2,…,k0)2=(bm-1,bm-2,…,b0)2。
椭圆曲线标量bP可转化为:
bP=b2m-1*22m-1P+b2m-2*22m-2P+…+b0*20P
=(lm-1*2m-1+…+l0*20)2mP+(km-1*2m-1+…+k0*20)P
=kP+lQ
其中,Q=2mP。
优选地,得到二分段椭圆曲线双标量kP+lQ还包括:在点P固定的情况下,预计算Q、P+Q、P-Q存放在存储器中,用于提高计算速度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510772594.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种保水保肥透气营养土
- 下一篇:一种园林植物生长培养基及其制备方法