CN107248916A - 一种椭圆曲线标量乘方法 - Google Patents

一种椭圆曲线标量乘方法 Download PDF

Info

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
Application number
CN201710298620.1A
Other languages
English (en)
Inventor
邬可可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Institute of Information Technology
Original Assignee
Shenzhen Institute of Information Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Information Technology filed Critical Shenzhen Institute of Information Technology
Priority to CN201710298620.1A priority Critical patent/CN107248916A/zh
Publication of CN107248916A publication Critical patent/CN107248916A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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的结果。
CN201710298620.1A 2017-04-27 2017-04-27 一种椭圆曲线标量乘方法 Pending CN107248916A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512663A (zh) * 2018-04-13 2018-09-07 深圳信息职业技术学院 椭圆曲线加密的点乘方法、装置及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
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 中国科学院深圳先进技术研究院 椭圆曲线标量乘的并行处理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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