CN107248916A - 一种椭圆曲线标量乘方法 - Google Patents
一种椭圆曲线标量乘方法 Download PDFInfo
- Publication number
- CN107248916A CN107248916A CN201710298620.1A CN201710298620A CN107248916A CN 107248916 A CN107248916 A CN 107248916A CN 201710298620 A CN201710298620 A CN 201710298620A CN 107248916 A CN107248916 A CN 107248916A
- Authority
- CN
- China
- Prior art keywords
- scalar
- xor
- com
- scalar multiplication
- sub
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
Abstract
本发明提出了一种椭圆曲线标量乘方法,该方法包括如下步骤:步骤一,划分标量d为两个等长的子比特串d=(B2||B1);步骤二,基于命题逻辑操作从两个等长子比特串中抽取共同子比特串Bcom,从而拆分标量为三个部分Bcom,BXOR_1和BXOR_2,且步骤三,划分标量乘dP为3个子标量乘为Bcom·P,BXOR_1·P,BXOR_2·P,并分别计算结果;步骤四,整合计算步骤三中3个子标量乘的结果,得出标量乘dP。相比于经典的二进制标量乘方法的计算复杂度(k/2)·A+kD,该方法能减少(k/8)·A计算复杂度。
Description
技术领域
本发明涉及一种高效的椭圆曲线标量乘方法。
背景技术
1980年代中期,Miller和Koblitz分别独立地提出了椭圆曲线密码体制(ellipticcurve cryptosystems,ECC)。相对于其它的公钥密码体制,ECC只需较短的私钥就可以达到较高的安全级别。所以,近年来ECC受到广泛关注。短的私钥意味着更少的功耗、计算开销和存储空间,尤其适用于资源受限的便携式计算设备(例如智能卡)。所以,ECC的这种特性使得它们非常适用于资源受限的计算设备的密码服务。
在ECC中,标量乘是最主要且最耗时的操作。二进制方法是计算标量乘最常用的方法:给定一个标量d和一个椭圆曲线上的点P,标量乘dP的计算是由一系列取决于d的比特序列的点加(ADD)和点倍(DBL)来完成,也称它们为椭圆曲线操作,其中d是ECC的私钥。本发明提出了一种高效的标量乘方法,比二进制方法减少了(k/8)·A计算复杂度。
发明内容
本发明要解决的技术问题是提出一种高效的椭圆曲线密码标量乘方法,该方法划分标量比特串为两半,抽取共同的子比特串,节省了计算椭圆曲线点加操作的次数。本发明提供了一种椭圆曲线标量乘方法,包括以下步骤:
步骤一,划分标量d为两个等长的子比特串d=(B2||B1);“||”是比特串的并置符号;
步骤二,基于命题逻辑操作从两个等长子比特串中抽取共同子比特串Bcom,从而拆分标量为三个部分:Bcom、BXOR_1和BXOR_2,且B1=Bcom+BXOR_1,B2=Bcom+BXOR_2;BXOR_1和BXOR_2分别表示B1和B2分别与共同比特串Bcom的“异或”位元运算结果;
步骤三,划分标量乘dP为3个子标量乘,为:BXOR_1·P、BXOR_2·P和Bcom·P,并分别计算结果Q1、Q2和Q3;
步骤四,整合计算步骤三中3个子标量乘的结果Q1、Q2和Q3,得出标量乘dP。
作为本发明的进一步改进,所述步骤一中,其中k为标量d比特长度。
作为本发明的进一步改进,所述步骤二中,Bcom=B1∧B2,即B1和B2的“与”位元运算结果。例如,0010=0110∧1010。
作为本发明的进一步改进,所述步骤二中,例如,
作为本发明的进一步改进,所述步骤三中,计算3个子标量乘为BXOR_1·P、BXOR_2·P和Bcom·P,都是采用二进制方法,且标量扫描是从二进制低位到高位的顺序。
作为本发明的进一步改进,所述步骤四中,整合计算3个子标量乘的结果Q1、Q2和Q3得到最终的标量乘dP的结果,是通过以下三个步骤来计算:(1)Q1=Q1+Q3;Q2=Q2+Q3;(2)k/2次循环执行点倍操作:Q2=2Q2;(3)Q1=Q2+Q1;返回Q1,Q1即是最终标量乘dP的结果。
本发明的有益效果是:
根据该算法,计算dP所需的ADD和DBL的平均数量为:
(3k/8)·A+kD+3A≈(3k/8)·A+kD,比二进制方法大约减少(k/8)·A的计算复杂度。
附图说明
图1是本发明标量折半划分示意图;
图2是本发明拆分标量示意图;
图3是本发明的标量乘计算流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
本发明的一种高效的椭圆曲线密码标量乘方法,包括以下步骤:
步骤一,折半划分标量d为标量d为二进制,其长度为k,且若k为奇数,则在最高位补上0;
步骤二,计算Bcom,BXOR_1,BXOR_2;初始化椭圆曲线点,初始化三个椭圆曲线点为空值,Q1=Q2=Q3=null;
步骤三,k/2次循环执行以下操作:如果则Q1=Q1+P;如果则Q2=Q2+P;如果则Q3=Q3+P;P=2P;循环结束后,BXOR_1·P、BXOR_2·P和B1_AND_2·P的值分别在Q1,Q2和Q3中;
步骤四,计算Q1=Q1+Q3;Q2=Q2+Q3;Q1=Q1+Q3和Q2=Q2+Q3的结果分别是B1P和B2P;
步骤五,k/2次循环执行点倍操作:Q2=2Q2;计算B2P的k/2次点倍运算,得到2k/2·(B2·P)的结果;
步骤六,计算Q1=Q2+Q1;由最后一个语句Q1=Q2+Q1得到2k/2·(B2·P)+(B1·P)的结果,即标量乘dP的最终结果;
步骤七,返回结果Q1。
用一个简单的例子来阐明该标量折半划分方法。简单起见,假定标量d=166=(10100110)2,长度k=8。折半标量d,即:
d=166=(10100110)2=(1010||0110)2=(B2||B1)
这样,有:
有:
因此,标量乘dP可由下式计算:
根据上述算法,计算标量乘dP的过程如下:
(1)当e=1时,(即:),执行操作:P=2P;
(2)当e=2时,(即:),执行操作:Q3=Q3+P;P=2P;(3)当e=3时,(即:),执行操作:Q1=Q1+P;P=2P;(4)当e=4时,(即:),执行操作:Q2=Q2+P;P=2P;
很明显,根据上述步骤三中的循环结束后,BXOR_1·P,BXOR_2·P和Bcom·P的值分别在变量Q1,Q2和Q3中。如下所示:
B1P和B2P的结果从两个语句Q1=Q1+Q3和Q2=Q2+Q3得到。如下所示:
根据上述等式,dP的结果可由上述步骤五中的循环以及最后一个操作Q1=Q2+Q1得到:
dP=(B2||B1)·P
=24·B2P+B1P=24·10P+6P=166P.
该案例的计算复杂度是3A+8D,若采用二进制方法,则计算复杂度是4A+8D,减少了一个点加操作。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种椭圆曲线标量乘方法,其特征在于,包括以下步骤:
步骤一,划分标量d为两个等长的子比特串d=(B2||B1);“||”是比特串的并置符号;
步骤二,从两个等长子比特串中抽取共同子比特串Bcom,从而拆分标量为三个部分:Bcom、BXOR_1和BXOR_2,且B1=Bcom+BXOR_1,B2=Bcom+BXOR_2;BXOR_1和BXOR_2分别表示B1和B2分别与共同比特串Bcom的“异或”位元运算结果;
步骤三,划分标量乘dP为3个子标量乘,为:BXOR_1·P、BXOR_2·P和Bcom·P,并分别计算结果Q1、Q2和Q3;
步骤四,整合计算步骤三中3个子标量乘的结果Q1、Q2和Q3,得出标量乘dP。
2.根据权利要求1所述的一种椭圆曲线标量乘方法,其特征在于:所述步骤一中,其中k为标量d比特长度。
3.根据权利要求1所述的一种椭圆曲线标量乘方法,其特征在于:所述步骤二中,Bcom=B1∧B2,即B1和B2的“与”位元运算结果。
4.根据权利要求1所述的一种椭圆曲线标量乘方法,其特征在于:所述步骤二中,
5.根据权利要求1所述的一种椭圆曲线标量乘方法,其特征在于:所述步骤三中,计算3个子标量乘为BXOR_1·P、BXOR_2·P和Bcom·P,都是采用二进制方法,且标量扫描是从二进制低位到高位的顺序。
6.根据权利要求1所述的一种椭圆曲线标量乘方法,其特征在于:所述步骤四中,整合计算3个子标量乘的结果Q1、Q2和Q3得到最终的标量乘dP的结果,是通过以下三个步骤来计算:(1)Q1=Q1+Q3;Q2=Q2+Q3;(2)k/2次循环执行点倍操作:Q2=2Q2;(3)Q1=Q2+Q1;返回Q1,Q1即是最终标量乘dP的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710298620.1A CN107248916A (zh) | 2017-04-27 | 2017-04-27 | 一种椭圆曲线标量乘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710298620.1A CN107248916A (zh) | 2017-04-27 | 2017-04-27 | 一种椭圆曲线标量乘方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107248916A true CN107248916A (zh) | 2017-10-13 |
Family
ID=60016873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710298620.1A Pending CN107248916A (zh) | 2017-04-27 | 2017-04-27 | 一种椭圆曲线标量乘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107248916A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512663A (zh) * | 2018-04-13 | 2018-09-07 | 深圳信息职业技术学院 | 椭圆曲线加密的点乘方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387015A (zh) * | 2011-09-14 | 2012-03-21 | 中国矿业大学 | 一种提高椭圆曲线标量乘法计算效率的方法 |
CN102393812A (zh) * | 2011-09-20 | 2012-03-28 | 四川卫士通信息安全平台技术有限公司 | 椭圆曲线密码体制中的快速点乘算法的实现方法 |
CN102446088A (zh) * | 2011-09-20 | 2012-05-09 | 中国科学院深圳先进技术研究院 | 椭圆曲线标量乘的并行处理方法及系统 |
-
2017
- 2017-04-27 CN CN201710298620.1A patent/CN107248916A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387015A (zh) * | 2011-09-14 | 2012-03-21 | 中国矿业大学 | 一种提高椭圆曲线标量乘法计算效率的方法 |
CN102393812A (zh) * | 2011-09-20 | 2012-03-28 | 四川卫士通信息安全平台技术有限公司 | 椭圆曲线密码体制中的快速点乘算法的实现方法 |
CN102446088A (zh) * | 2011-09-20 | 2012-05-09 | 中国科学院深圳先进技术研究院 | 椭圆曲线标量乘的并行处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
KEKE WU ; DAWEI LI ; HUIYUN LI ; TINGDING CHEN ; FENGQI YU: "《Partitioned Computation to Accelerate Scalar Multiplication for Elliptic Curve Cryptosystems 》", 《2009 15TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512663A (zh) * | 2018-04-13 | 2018-09-07 | 深圳信息职业技术学院 | 椭圆曲线加密的点乘方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Boos et al. | Exercises with the universal R-matrix | |
CN102468956A (zh) | 适用于rsa模幂计算的方法 | |
CN103761068B (zh) | 优化的蒙哥马利模乘硬件 | |
CN105488422A (zh) | 基于同态加密隐私数据保护的编辑距离计算系统 | |
EP3096488B1 (en) | Hypersphere-based multivariable public key encryption/decryption system and method | |
CN103905182B (zh) | 基于动态改变中间数据存储位置的抗攻击方法及电路实现 | |
US20100067690A1 (en) | Spa-resistant left-to-right recoding and unified scalar multiplication methods | |
CN101483517A (zh) | 加速对特性2椭圆曲线密码系统的计算的方法 | |
Avanzi | On multi-exponentiation in cryptography | |
CN102393812A (zh) | 椭圆曲线密码体制中的快速点乘算法的实现方法 | |
CN102227759B (zh) | 标量乘法器及标量乘法方法 | |
CN107248916A (zh) | 一种椭圆曲线标量乘方法 | |
Stam | Speeding up subgroup cryptosystems | |
CN105740730A (zh) | 芯片中安全的点乘实现方法 | |
CN101809638A (zh) | 运算方法和运算装置 | |
US20220021541A1 (en) | An online and offline circulating unbalanced oil and vinegar signature method | |
US20140286488A1 (en) | Determining a Division Remainder and Ascertaining Prime Number Candidates for a Cryptographic Application | |
Phuong et al. | Sequence aware functional encryption and its application in searchable encryption | |
CN104683095B (zh) | 一种des加密方法和装置 | |
CN106775575B (zh) | 基于二次剩余的低成本rfid认证协议的乘法器 | |
CN106411497A (zh) | 标量的足长规则naf序列的生成方法 | |
Kulkarni et al. | Order vs. chaos: a language model approach for side-channel attacks | |
Cheon et al. | Analysis of low Hamming weight products | |
Lipmaa et al. | Analysis and implementation of an efficient ring-LPN based commitment scheme | |
Heo et al. | Practical Usage of Radical Isogenies for CSIDH |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171013 |
|
RJ01 | Rejection of invention patent application after publication |