CN108347334A - 生成加密密钥对的方法 - Google Patents
生成加密密钥对的方法 Download PDFInfo
- Publication number
- CN108347334A CN108347334A CN201810056964.6A CN201810056964A CN108347334A CN 108347334 A CN108347334 A CN 108347334A CN 201810056964 A CN201810056964 A CN 201810056964A CN 108347334 A CN108347334 A CN 108347334A
- Authority
- CN
- China
- Prior art keywords
- table clause
- clause
- matter
- key pair
- truth
- 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.)
- Granted
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
- H04L9/3013—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 involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
提供一种用于执行减少所需计算次数以产生例如密钥对的椭圆曲线密码学的方法。通过改变如何选择用于所述计算的随机临时数来减少所述计算次数。在实施例中,生成具有预先计算的标量值和椭圆曲线点的查找表。每当创建新的伪随机值以供用于ECDSA中时,使用所述查找表值的组合来创建多个中间值。随机选择所述多个中间值中的一个作为用于现有表条目中的一个的替换值。每当使用所述查找表时,将所述查找表中的多个条目更新成如所描述的新的查找表值。以此方式,在每一步骤中提供新的随机性,以高效地生成下一伪随机临时数作为多个内部存储的临时查找表值的组合。可替代的是,可使用另一数学群。
Description
技术领域
本公开大体上涉及密码学,且更具体地说涉及生成加密密钥对的方法。
背景技术
生成数字签名是现代安全基础架构的基础中的一个。一个规范化且普遍的做法是基于有限域上椭圆曲线的代数结构。对于相同安全性等级,相比于例如基于瑞维斯特-莎米尔-艾德曼(Rivest-Shamir-Adleman,RSA)算法的不对称加密系统,椭圆曲线密码学(elliptic curve cryptography,ECC)的关键特征中的一个是使用较小的密钥大小。
在椭圆曲线密码学中,使Fp指代素数基数P>3的有限域。任何a,b∈Fp且4a3+27b2≠0限定在Fp上方的椭圆曲线Ea,b。连同满足短魏尔斯特拉斯(Weierstrass)方程式y2=x3+ax+b的对集合(x,y)∈Fp×Fp一起将Fp上方的Ea,b的点群Ea,b(Fp)限定为原点∞。下文显示用于使用椭圆曲线的可加结构计算数字签名的方法。这是如由美国国家标准与技术研究所(参见例如联邦信息处理标准出版物(FIPS Pub)186-4)规范化的数字签名标准(DigitalSignature Standard,DSS)算法的椭圆曲线变体。
假设加密散列函数H和消息m∈Z,使用椭圆曲线数字签名算法(elliptic curvedigital signature algorithm,ECDSA)计算数字签名。下文的算法步骤示出ECDSA且使用阶n∈Z的公共点P∈E(Fp),和私钥d∈Z/nZ。算法在线11处输出数字签名(r,s)。
1:函数ECDSA_sign((m,d,{P,n}))
2:计算e=H(m)
3:重复
4:重复
5:选择u∈R[1,n-1]
6:计算uP=(x,y)
7:计算r=x mod n
8:直到r≠0
9:计算s=u-1(e+dr)mod n
10:直到s≠0
11:返回(r,s)
使用ECDSA对消息进行签名需要具有随机取样的临时数的椭圆曲线标量乘法(其中输出是暂时公钥)。暂时密钥计算中的模幂运算(线6上方)可能是算法中的计算瓶颈。也就是说,这是在提供现代密级的系统中计算成本较高的运算,且需要相当于数百次群运算(点加法或点加倍)的计算,其对签名生成速率具有巨大影响。因此,需要一种减少计算次数且去除计算瓶颈以生成数字签名的方法。
发明内容
根据本发明的第一方面,提供一种用于生成公钥密码学中的加密密钥对的方法,所述方法包括:
随机生成具有多个表条目的表,每个表条目包括多个群元素,所述多个表条目的表条目中的每个群元素具有以对应底数为底的相同离散对数,对于每个表条目,所述离散对数的所述对应底数相同;
从所述多个表条目随机选择表条目;
从所述选定表条目的组合计算中间表条目,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于所述表条目,所述中间群元素的所述离散对数的所述对应底数相同;
使用随机选定的中间表条目替换所述选定表条目,以产生经更新的表;以及
随机选择所述经更新的表的表条目且将所述表条目提供为加密密钥对。
在一个或多个实施例中,使用椭圆曲线实施所述公钥密码学。
在一个或多个实施例中,从所述选定表条目的组合计算中间表条目进一步包括将加法和减法运算用于对所述中间表条目进行所述计算。
在一个或多个实施例中,从所述选定表条目的组合计算中间表条目进一步包括在单个运算中使用点的求和计算和求差计算。
在一个或多个实施例中,所述方法进一步包括将具有相同离散对数的共享秘密提供为所述生成的加密密钥对。
在一个或多个实施例中,从所述多个表条目随机选择表条目进一步包括存储表条目的最新选择且避免重复所述最新选择。
在一个或多个实施例中,用于生成公钥密码学中的加密密钥对的所述方法进一步包括:
从所述经更新的表随机选择表条目,
从来自所述经更新的表的所述选定表条目的组合计算中间表条目,所述经更新的表的每个中间表条目包括中间群元素,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于来自所述经更新的表的所述表条目,所述离散对数的所述对应底数相同;以及
使用随机选定的中间表条目替换来自所述经更新的表的所述选定表条目,
其中,在提供所述密钥对之前重复若干次所述随机选择、计算和替换的步骤。
在一个或多个实施例中,所述方法进一步包括使用所述方法生成一批加密密钥对。
在一个或多个实施例中,用于生成公钥密码学中的加密密钥对的所述方法进一步包括使用Z分量的同时倒置以用于进行点坐标变换。
在一个或多个实施例中,所述方法进一步包括使用对一批私钥的同时倒置来提供所述私钥的一批倒数。
根据本发明的第二方面,提供一种具有用于生成公钥密码学中的加密密钥对的指令的非暂时性机器可读媒体,所述非暂时性机器可读媒体包括:
用于随机生成具有多个表条目的表的指令,每个表条目包括多个群元素,所述多个表条目的表条目中的每个群元素具有以对应底数为底的相同离散对数,对于每个表条目,所述离散对数的所述对应底数相同;
用于从所述多个表条目随机选择表条目的指令;
用于从所述选定表条目的组合计算中间表条目的指令,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于所述表条目,所述中间群元素的所述离散对数的所述对应底数相同;
用于使用随机选定的中间表条目替换所述选定表条目的指令;以及
用于随机选择表条目且将所述表条目提供为加密密钥对的指令。
在一个或多个实施例中,使用椭圆曲线实施所述公钥密码学。
在一个或多个实施例中,用于从所述选定表条目的组合计算中间表条目的所述指令进一步包括将加法和减法运算用于对所述中间表条目进行所述计算的指令。
在一个或多个实施例中,用于从所述选定表条目的组合计算中间表条目的所述指令进一步包括用于在单个运算中使用点的求和计算和求差计算的指令。
在一个或多个实施例中,所述非暂时性机器可读媒体进一步包括用于将具有相同离散对数的共享秘密提供为所述生成的加密密钥对的指令。
在一个或多个实施例中,用于从所述多个表条目随机选择表条目的所述指令进一步包括用于存储表条目的最新选择且避免重复所述最新选择的指令。
在一个或多个实施例中,所述非暂时性机器可读媒体进一步包括:
用于从所述经更新的表随机选择表条目的指令;
用于从来自所述经更新的表的所述选定表条目的组合计算中间表条目的指令,所述经更新的表的每个中间表条目包括中间群元素,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于来自所述经更新的表的所述表条目,所述离散对数的所述对应底数相同;以及
用于使用随机选定的中间表条目替换来自所述经更新的表的所述选定表条目的指令。
在一个或多个实施例中,所述非暂时性机器可读媒体进一步包括用于生成一批加密密钥对的指令。
在一个或多个实施例中,所述非暂时性机器可读媒体进一步包括用于使用Z分量的同时倒置以用于进行点坐标变换的指令。
在一个或多个实施例中,所述非暂时性机器可读媒体进一步包括用于使用对一批私钥的同时倒置来提供所述私钥的一批倒数的指令。
本发明的这些和其它方面将根据下文中所描述的实施例显而易见,且参考这些实施例予以阐明。
附图说明
本发明借助于例子示出,且不受附图的限制,在附图中类似编号指示类似元件。为简单和清晰起见,示出图中的元件,且这些元件未必按比例绘制。
图1以框图形式示出根据实施例的数据处理系统。
图2示出根据实施例的查找表。
图3示出根据实施例的用于执行椭圆曲线密码学的方法的流程图。
图4示出根据实施例的用于生成公钥密码学中的加密密钥对的方法的流程图。
具体实施方式
一般来说,提供用于执行减少所需计算次数以产生例如密钥对或数字签名的椭圆曲线密码学的方法。通过改变如何选择随机临时数来减少计算次数。在本文中所描述的方法中,生成具有预先计算的标量值和椭圆曲线点的查找表。在一个实施例中,每当创建新的伪随机值以供用于ECDSA中时,更新查找表。在一个实施例中,每当使用查找表时,使用查找表值的组合创建新表条目。查找表中的多个条目可更新成新的查找表值。在广义上,通过在选择标量u(私钥)时伪随机地遍历Z/hZ元素且使用Z/nZ与(G)(由点G生成的群)之间的同构关系快速地确定相关联值uP来完成更新。在每一步骤中提供新随机性以高效地生成下一伪随机临时数,作为多个内部存储的临时查找表值的组合。
根据实施例,提供用于生成公钥密码学中的加密密钥对的方法,所述方法包括:随机生成具有多个表条目的表,每个表条目包括多个群元素,多个表条目的表条目中的每个群元素具有以对应底数为底的相同离散对数,对于每个表条目,离散对数的对应底数相同;从多个表条目随机选择表条目;从选定表条目的组合计算中间表条目,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于表条目,中间群元素的离散对数的对应底数相同;使用随机选定的中间表条目替换选定表条目;以及随机选择表条目且将所述表条目提供为加密密钥对。可使用椭圆曲线实施公钥密码学。从选定表条目的组合计算中间表条目可另外包括将加法和减法运算用于对中间表条目进行计算。从选定表条目的组合计算中间表条目可另外包括在单个运算中使用点的求和计算和求差计算。方法可另外包括将具有相同离散对数的共享秘密提供为所生成加密密钥对。从多个表条目随机选择表条目可另外包括存储表条目的最新选择且避免重复最新选择。方法可另外包括:从经更新的表随机选择表条目,从来自经更新的表的选定表条目的组合计算中间表条目,经更新的表的每个中间表条目包括中间群元素,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数且对于来自经更新的表的表条目,离散对数的对应底数相同;以及使用随机选定的中间表条目替换来自经更新的表的选定表条目,其中在提供密钥对之前重复若干次随机选择、计算和替换的步骤。方法可另外包括使用方法生成一批加密密钥对。用于生成公钥密码学中的加密密钥对的方法可另外包括使用Z分量的同时倒置以用于进行点坐标变换。方法可另外包括使用对一批私钥的同时倒置来提供一批私钥的倒数。
在另一实施例中,提供具有用于生成公钥密码学中的加密密钥对的指令的非暂时性机器可读媒体,所述非暂时性机器可读媒体包括:用于随机生成具有多个表条目的表的指令,每个表条目包括多个群元素,多个表条目的表条目中的每个群元素具有以对应底数为底的相同离散对数,用于每个表条目,离散对数的对应底数相同;用于从多个表条目随机选择表条目的指令;用于从选定表条目的组合计算中间表条目的指令,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于表条目,中间群元素的离散对数的对应底数相同;用于使用随机选定的中间表条目替换选定表条目的指令;以及用于随机选择表条目且将所述表条目提供为加密密钥对的指令。可使用椭圆曲线实施公钥密码学。用于从选定表条目的组合计算中间表条目的指令可另外包括将加法和减法运算用于对中间表条目进行计算的指令。用于从选定表条目的组合计算中间表条目的指令可另外包括用于在单个运算中使用点的求和计算和求差计算的指令。非暂时性机器可读媒体可另外包括用于将具有相同离散对数的共享秘密提供为所生成加密密钥对的指令。用于从多个表条目随机选择表条目的指令可另外包括用于存储表条目的最新选择且避免重复最新选择的指令。非暂时性机器可读媒体可另外包括:用于从经更新的表随机选择表条目的指令;用于从来自经更新的表的选定表条目的组合计算中间表条目的指令,经更新的表的每个中间表条目包括中间群元素,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于来自经更新的表的表条目,离散对数的对应底数相同;以及用于使用随机选定的中间表条目替换来自经更新的表的选定表条目的指令。非暂时性机器可读媒体可另外包括用于生成一批加密密钥对的指令。非暂时性机器可读媒体可另外包括用于使用Z分量的同时倒置以用于进行点坐标变换的指令。用于提供私钥的倒数的指令可另外包括用于使用对一批私钥的同时倒置来提供一批私钥的倒数的指令。
在一个实施例中,使用运行于数据处理系统上的软件实施执行椭圆曲线密码学的方法。图1示出适合于执行椭圆曲线密码学的根据实施例的集成电路数据处理系统10的简化框图。数据处理系统10可以是实施于单个集成电路上的芯片上系统(system-on-a-chip,SoC),或可以是芯片的组合。在其它实施例中,集成电路10可包括另一类型的电路,例如专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA),或可提供执行指令的类似电路。在一个实施例中,数据处理系统10可包括使用常规互补金属氧化物半导体(complementary metal-oxidesemiconductor,CMOS)过程构造的金属-氧化物半导体(metal-oxide semiconductor,MOS)晶体管。在另一实施例中,数据处理系统10可包括例如双极晶体管等其它晶体管类型,且可使用不同过程制造。
数据处理系统10包括通信总线12、处理器14、存储器16、外围设备18和外部接口20。总线12可以是具有用于传达地址、数据和控制信息的多个导线的常规总线。在其它实施例中,总线12可以是互连结构,例如,纵横开关或其它形式的互连系统。处理器14双向地连接到总线12。处理器14可包括任何类型的处理元件、处理器核心、微处理器、微控制器、数字信号处理器和其类似物中的一个或多个。可存在任何数目个处理器。存储器16双向地连接到总线12。存储器16可以是任何类型的易失性或非易失性存储器中的一个或多个。存储器16的部分用作查找表(look-up table,LUT)22。查找表22可以是一个存储器中的一个连续LUT,或LUT 22可分布于不同物理存储器之间。在另一实施例中,LUT 22可包括多个查找表。存储器类型的例子包括非易失性存储器,例如快闪存储器、一次性可编程(one-timeprogrammable,OTP)存储器、电可擦除可编程只读存储器(electrically eraseableprogrammable read only memory,EEPROM),和其类似物。易失性存储器类型包括静态随机存取存储器(static random access memory,SRAM)和动态随机存取存储器(dynamicrandom access memory,DRAM)。存储器可用于存储指令和/或数据。外围设备18双向地连接到总线12,且取决于应用可以是任何类型的周边或应用模块中的一个或多个。举例来说,外围设备18可包括根据用于椭圆曲线密码学的数字签名算法标准经优化用于运行加密/解密安全软件的协处理器。椭圆曲线密码学可用于对数据处理系统10中的数据和指令进行加密/解密。可提供其它类型的外围设备以用于处理视频、音频、误差诊断、功率管理等。外部接口20双向地连接到总线12,以将外部组件介接到总线12。在所示出的实施例中,外部接口20双向地连接到外部存储装置24。外部存储装置24可以是任何类型的非暂时性机器可读存储媒体,例如磁盘存储媒体和光学存储媒体。可提供外部存储装置24以用于存储根据本公开的实施例的指令。
图2示出根据实施例的图1的查找表22。查找表22包括表示为查找表条目30、32和34的多个查找表条目(u0,U0)到(uN-1,UN-1)。多个查找表条目可被预先计算且存储于例如图1中的存储器16的存储器中。在所示出的实施例中,每个条目是包括标量值u和椭圆曲线点U的元组。元组是元素的有限排序列表。在数学中,n元组是序列(或n个元素的排序列表,其中n是非负整数(此处n不是阶))。
在方法中,N是正整数,其确定多少标量和点预先计算且存储于LUT 22中。字母v是小于N的正整数,其表示在用以生成例如数字签名的密钥对的计算中所用点的数目。在预先计算阶段中,N个预先计算的椭圆曲线点Ui∈E(Fp)(对于0≤i<N)和标量计算为
Ui=ui×G
其中随机从[1,N-1]统一选择N值ui。存储且在生成密钥对的过程期间使用椭圆曲线点Ui和标量值ui,可接着使用所述密钥对例如以生成签名。
接着,如下文所示出执行算法。此算法背后的构思如下:成批地生成输出对(u,U)(其中U=u×G)。对于每个输出对,使用内部存储的元素v+1计算输出。随机决定这些元素的组合方式(加法或减法)。此外,在算法的每一步骤处更新查找表22。经更新的位置也是随机决定的。
计算四个椭圆曲线点:
±Ui0±Uik,其中0<k≤v或k=-1
且随机选择这些值中的两个且用以替换Ui[0]和Ui[k](其也是随机选定的)。重复v次此过程,其中v在上文中限定为正整数,表示用于计算数字签名的点的数目。
在一个实施例中,计算次数可保持最少,这是因为四个中间值
Ui[0]+Ui[k]
Ui[0]-Ui[k]
-Ui[0]+Ui[k]
-Ui[0]-Ui[k]
可通过重新使用中间结果而以略多于一个椭圆曲线点加法的计算代价计算。
使用全局参数M、N、v,生成元G∈E(Fp)和N个预先计算的标量ui和椭圆曲线点Ui=ui×G(对于0≤i<N)计算M个伪随机点Bj和标量bj,以使得Bj=bj×G(对于0≤j<M)。变数k是本文中所描述的算法的迭代器,其选择使用哪个索引i[k]来选择查找表条目。以下是根据实施例的用于更新查找表22的示例算法,其中初始开始条件为:
F←{1,2,...,N}且
i[-1]←0:
对于每个批,如下继续进行:
对于j=0,...,M-1执行
C←{0,1,...,N-1}\{i[-1]}
如果F={}那么 //仍然从上一批设置
F←{0,1,2,...,N-1}\{i[-1]}
i[0]←F的随机元素
F←F\{i[0]}
C←C\{i[0]}
对于k=1,...,v-1执行
i[k]←C的随机元素
C←C\{i[k]}
F←-F\{i[k]}
随机更新(i[-1],i[0]) //参见下文
对于k=1,...,v-1执行
随机更新(i[0],i[k]) //参见下文
bj←ui[0]
Bj←Ui[0]
i[-1]←i[0]
子方法随机更新(x,y):
(ux,uy)←(ux+uy,ux-uy)
(Ux,Uy)←(Ux+Uy,Ux-Uy)
如果随机(0,1)=1那么
如果随机(0,1)=1那么
(ux,Ux)←(-ux,-Ux)
如果随机(0,1)=1那么
(uy,Uy)←(-uy,-Uy)
通常使用具有X、Y和Z分量的射影坐标计算点。为将其变换回仅具有X和Y分量的仿射坐标,主要的努力是使Z分量倒置。为加速回到仿射坐标的变换,可以略多于一个倒置的代价使用对Z分量的同时倒置一次地变换批的完整输出。这可通过使值的乘积倒置且使用原始值倒置和乘以所得乘积来完成。类似地,当准备用于ECDSA算法时私钥也可经倒置以用于获得完整的批。
图3示出根据实施例的用于执行椭圆曲线密码学的方法40的流程图。在一个实施例中,根据ECDSA算法生成数字签名。更具体地说,方法40提供执行先前所描述ECDSA算法的线6所需计算的高效方式。在步骤42处,生成具有多个条目的查找表。查找表的每个条目包括如图2中所示出和上文所论述的标量值和椭圆曲线点。在步骤44处,随机选择多个表条目的第一表条目。在步骤46处,随机选择多个表条目的第二表条目。在步骤48处,使用第一和第二表条目计算四个中间椭圆曲线点。四个中间值可以是:
(Ui[0]+Ui[k])
(Ui[0]-Ui[k])
(-Ui[0]+Ui[k])
(-Ui[0]-Ui[k])
在一个实施例中,使用点加法和点减法运算来计算四个点。在步骤50处,将四个点中的一个随机选为新的表条目以替换查找表22中的现有条目中的一个。在一个实施例中,使用2位计数器实现随机选择。在步骤52处,随机地选择待替换的现有表条目。在一个实施例中,待替换的现有表条目是在步骤44处随机选择的第一表条目,或在步骤46处随机选择的第二表条目。可使用单个位实现此随机选择。举例来说,如果所述位是逻辑零,那么选择第一表条目进行替换,且如果所述位是逻辑一,那么选择第二表条目进行替换,或反之亦然。在其它实施例中,可以不同方式实现方法40的随机选择。
图4示出根据实施例的用于生成公钥密码学中的加密密钥对的方法60的流程图。方法60可适用于椭圆曲线密码学,或适用于使用不同数学原理的另一加密技术,所述不同数学原理例如,如数字签名算法(digital signature algorithm,DSA)中所使用的以素数为模的整数的数学群。方法60开始于步骤62。在步骤62处,随机生成具有多个表条目的表。每个表条目包括多个群元素。示例性表可如图2中所示出和上文所描述。多个表条目的表条目中的每个群元素具有以对应底数为底的离散对数。每个表条目的对应底数可相同。可从底数列表获取离散对数的底数。对于表条目的每个群元素,底数列表可相同。在步骤64处,从步骤62中生成的表中的多个表条目选择表条目。在一个实施例中,可存储表条目的最新选择且避免重复选择。在另一实施例中,可允许重复选择。在步骤66处,使用在步骤64中选定的表条目,从选定表条目的组合计算中间表条目。可使用如上文所描述的加法和减法运算计算选定表条目的组合。每个中间表条目包括中间群元素,其中每个中间群元素具有以对应底数为底的离散对数。可从底数列表获取离散对数的底数。对于中间表条目的每个中间群元素,底数列表可相同。在步骤68处,使用随机选定的中间表条目替换选定表条目,由此改变表。在步骤70处,随机选择表条目。接着将随机选定的表条目提供为加密密钥对。在提供加密密钥对之前和之后使用如对于步骤68所描述,可使用随机选定的中间表条目替换选定表条目。重复步骤64到步骤68以再次改变表。此外,重复步骤64到步骤70,以获取额外密钥对。在一个实施例中,可生成密钥对的批,批包括许多加密密钥对。另外,选定中间表条目可用于将具有相同离散对数的共享秘密提供为所生成加密密钥对。在另一实施例中,可提供私钥代替或添加到加密密钥对。另外,可倒置私钥以供用于例如数字签名方案。在生成大量批的状况下,可提供同时倒置的使用,以便更高效的计算。
如上文所提到,一个所描述的实施例是针对椭圆曲线。然而,本领域的技术人员将了解所描述的技术可经调适以用于可用于加密目的的另一数学群,例如,如数字签名算法(DSA)中所使用的以素数为模的整数的群。举例来说,可连同计算得到的值一起存储倒数值以避免出于性能原因的倒置。在一些实施例中,取决于使用的数学群,可能不存在以一个加法的代价计算求和与求差的高效方式。在此状况下,可在两个独立运算中计算求和与求差。
另外,所描述的技术可适用于生成共享秘密。可通过使表条目扩展多个公钥(椭圆曲线或群生成元上的另一点)且以与多个底数点G(或群生成元)相同的方式处置共享秘密以使得它们具有与密钥相同的离散对数来实现共享秘密的生成。在数学中,离散对数是求解方程式bk=g的整数k指数,其中b和g是有限群的元素,b被称作底数,且g被称作取其对数的值。在通常以加号写成椭圆曲线的群中,上文的方程式写成k*b=g。
由于实施本发明的设备大部分由本领域的技术人员已知的电子组件和电路组成,因此为了理解和了解本发明的基本概念且为了不混淆或偏离本发明的教示,将不会以比上文所示出的认为必要的任何更大程度阐述电路细节。
各种实施例可实施于硬件中或实施为非暂时性机器可读存储媒体上的指令,非暂时性机器可读存储媒体包括用于存储呈例如个人计算机、笔记本电脑、文件服务器、智能手机或其它计算装置等机器可读形式的信息的任何机构。非暂时性机器可读存储媒体可包括易失性和非易失性存储器,例如只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁盘存储媒体、光学存储媒体、闪存存储器和其类似物。非暂时性机器可读存储媒体不包括暂时性信号。
虽然本文中参考具体实施例描述了本发明,但是在不脱离如所附权利要求书中所阐述的本发明的范围的情况下可以进行各种修改和改变。因此,说明书和附图应视为说明性而不具有限制性意义,且所有这些修改意图包括在本发明的范围内。并不意图将本文中相对于特定实施例描述的任何优势、优点或针对问题的解决方案解释为任何或所有权利要求的关键、所需或基本的特征或元件。
如本文中所使用,术语“耦合”并不意图限于直接耦合或机械耦合。
此外,如本文中所用,术语‘一’被限定为一个或多于一个。此外,权利要求书中例如“至少一个”和“一个或多个”等介绍性短语的使用不应解释为暗示由不定冠词“一”引入的另一权利要求要素将包括此引入的权利要求要素的任何特定权利要求限制为仅含有一个此要素的发明,即使是在同一权利要求包括介绍性短语“一个或多个”或“至少一个”和例如“一”等不定冠词时也是如此。对于定冠词的使用也是如此。
除非以其它方式陈述,否则例如“第一”和“第二”的术语用于任意地区别此类术语所描述的元件。因此,这些术语未必意图指示此些元件的时间上的优先级或其它优先级。
Claims (10)
1.一种用于生成公钥密码学中的加密密钥对的方法,其特征在于,所述方法包括:
随机生成具有多个表条目的表,每个表条目包括多个群元素,所述多个表条目的表条目中的每个群元素具有以对应底数为底的相同离散对数,对于每个表条目,所述离散对数的所述对应底数相同;
从所述多个表条目随机选择表条目;
从所述选定表条目的组合计算中间表条目,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于所述表条目,所述中间群元素的所述离散对数的所述对应底数相同;
使用随机选定的中间表条目替换所述选定表条目,以产生经更新的表;以及
随机选择所述经更新的表的表条目且将所述表条目提供为加密密钥对。
2.根据权利要求1所述的方法,其特征在于,使用椭圆曲线实施所述公钥密码学。
3.根据权利要求2所述的方法,其特征在于,从所述选定表条目的组合计算中间表条目进一步包括将加法和减法运算用于对所述中间表条目进行所述计算。
4.根据权利要求3所述的方法,其特征在于,从所述选定表条目的组合计算中间表条目进一步包括在单个运算中使用点的求和计算和求差计算。
5.根据权利要求1所述的方法,其特征在于,进一步包括将具有相同离散对数的共享秘密提供为所述生成的加密密钥对。
6.根据权利要求1所述的方法,其特征在于,从所述多个表条目随机选择表条目进一步包括存储表条目的最新选择且避免重复所述最新选择。
7.根据权利要求1所述的方法,其特征在于,用于生成公钥密码学中的加密密钥对的所述方法进一步包括:
从所述经更新的表随机选择表条目,
从来自所述经更新的表的所述选定表条目的组合计算中间表条目,所述经更新的表的每个中间表条目包括中间群元素,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于来自所述经更新的表的所述表条目,所述离散对数的所述对应底数相同;以及
使用随机选定的中间表条目替换来自所述经更新的表的所述选定表条目,
其中,在提供所述密钥对之前重复若干次所述随机选择、计算和替换的步骤。
8.根据权利要求1所述的方法,其特征在于,进一步包括使用所述方法生成一批加密密钥对。
9.根据权利要求8所述的方法,其特征在于,用于生成公钥密码学中的加密密钥对的所述方法进一步包括使用Z分量的同时倒置以用于进行点坐标变换。
10.一种具有用于生成公钥密码学中的加密密钥对的指令的非暂时性机器可读媒体,其特征在于,所述非暂时性机器可读媒体包括:
用于随机生成具有多个表条目的表的指令,每个表条目包括多个群元素,所述多个表条目的表条目中的每个群元素具有以对应底数为底的相同离散对数,对于每个表条目,所述离散对数的所述对应底数相同;
用于从所述多个表条目随机选择表条目的指令;
用于从所述选定表条目的组合计算中间表条目的指令,中间表条目中的每个中间群元素具有以对应底数为底的相同离散对数,且对于所述表条目,所述中间群元素的所述离散对数的所述对应底数相同;
用于使用随机选定的中间表条目替换所述选定表条目的指令;以及
用于随机选择表条目且将所述表条目提供为加密密钥对的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/414,391 US10341098B2 (en) | 2017-01-24 | 2017-01-24 | Method of generating cryptographic key pairs |
US15/414,391 | 2017-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108347334A true CN108347334A (zh) | 2018-07-31 |
CN108347334B CN108347334B (zh) | 2022-06-21 |
Family
ID=60972151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810056964.6A Active CN108347334B (zh) | 2017-01-24 | 2018-01-19 | 生成加密密钥对的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10341098B2 (zh) |
EP (1) | EP3352411B1 (zh) |
CN (1) | CN108347334B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020073314A1 (zh) * | 2018-10-12 | 2020-04-16 | 深圳市汇顶科技股份有限公司 | 密钥生成方法、获取方法、私钥更新方法、芯片和服务器 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11128454B2 (en) | 2019-05-30 | 2021-09-21 | Bong Mann Kim | Quantum safe cryptography and advanced encryption and key exchange (AEKE) method for symmetric key encryption/exchange |
US11989318B2 (en) | 2022-01-04 | 2024-05-21 | Bank Of America Corporation | System and method for dynamic masking of data in a network |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946397A (en) * | 1995-10-03 | 1999-08-31 | Gemplus S.C.A. | Method of cryptography with public key based on the discrete logarithm |
US6091819A (en) * | 1996-08-16 | 2000-07-18 | Telcordia Technologies, Inc. | Accelerating public-key cryptography by precomputing randomly generated pairs |
US20060104447A1 (en) * | 2004-11-12 | 2006-05-18 | Microsoft Corporation | Discrete logarithm-based cryptography using the Shafarevich-Tate group |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5271061A (en) * | 1991-09-17 | 1993-12-14 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
US5999626A (en) * | 1996-04-16 | 1999-12-07 | Certicom Corp. | Digital signatures on a smartcard |
US7356688B1 (en) * | 1999-04-06 | 2008-04-08 | Contentguard Holdings, Inc. | System and method for document distribution |
GB0013350D0 (en) * | 2000-06-01 | 2000-07-26 | Tao Group Ltd | End of message markers |
ATE465571T1 (de) * | 2001-08-13 | 2010-05-15 | Univ Leland Stanford Junior | Systeme und verfahren zur verschlüsselung auf identitätsbasis und damit zusammenhängende kryptografische techniken |
US6718536B2 (en) * | 2002-06-21 | 2004-04-06 | Atmel Corporation | Computer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications |
GB0215524D0 (en) * | 2002-07-05 | 2002-08-14 | Hewlett Packard Co | Method and apparatus for generating a cryptographic key |
US7765180B2 (en) * | 2002-09-10 | 2010-07-27 | Annex Systems Incorporated | Database re-organizing system and database |
EP1467512B1 (en) * | 2003-04-07 | 2008-07-23 | STMicroelectronics S.r.l. | Encryption process employing chaotic maps and digital signature process |
WO2005008955A1 (ja) * | 2003-07-22 | 2005-01-27 | Fujitsu Limited | 個人鍵を用いた耐タンパ暗号処理 |
WO2005071880A1 (ja) * | 2004-01-23 | 2005-08-04 | Nec Corporation | グループ署名システム、方法、装置、およびプログラム |
US20060215837A1 (en) * | 2004-12-18 | 2006-09-28 | Hewlett-Packard Development Company, L.P. | Method and apparatus for generating an identifier-based public/private key pair |
CN1262087C (zh) * | 2005-01-14 | 2006-06-28 | 南相浩 | 基于标识的密钥产生方法 |
US8467535B2 (en) * | 2005-01-18 | 2013-06-18 | Certicom Corp. | Accelerated verification of digital signatures and public keys |
US20070165847A1 (en) * | 2006-01-18 | 2007-07-19 | Langin-Hooper Jerry J | Defined-distribution pseudo-random number generator |
US7720225B2 (en) * | 2006-03-07 | 2010-05-18 | Research In Motion Limited | Table splitting for cryptographic processes |
CN100369042C (zh) * | 2006-03-23 | 2008-02-13 | 南相浩 | 基于cpk电子标签的防伪方法和装置 |
US8311214B2 (en) * | 2006-04-24 | 2012-11-13 | Motorola Mobility Llc | Method for elliptic curve public key cryptographic validation |
CA2545975A1 (en) * | 2006-05-09 | 2007-11-09 | Nikolajs Volkovs | A digital signature scheme based on the division algorithm and the discrete logarithm problem |
WO2009030021A1 (en) * | 2007-09-04 | 2009-03-12 | Certicom Corp. | Signatures with confidential message recovery |
US8266435B2 (en) * | 2010-01-25 | 2012-09-11 | Compugroup Holding Ag | Method for generating an asymmetric cryptographic key pair and its application |
EP2555180A4 (en) * | 2010-03-31 | 2017-07-05 | Fujitsu Limited | Encryption processing device and encryption processing method |
US20110291803A1 (en) * | 2010-05-27 | 2011-12-01 | Zeljko Bajic | Rfid security and mobility architecture |
US8903083B2 (en) * | 2010-08-16 | 2014-12-02 | International Business Machines Corporation | Fast evaluation of many polynomials with small coefficients on the same point |
JP5488718B2 (ja) * | 2010-12-27 | 2014-05-14 | 富士通株式会社 | 暗号処理装置、暗号処理方法、およびプログラム |
WO2012090289A1 (ja) * | 2010-12-27 | 2012-07-05 | 富士通株式会社 | 暗号処理装置および方法 |
US8675869B2 (en) * | 2011-03-23 | 2014-03-18 | Blackberry Limited | Incorporating data into an ECDSA signature component |
EP2538606B1 (en) * | 2011-06-21 | 2017-08-09 | BlackBerry Limited | Provisioning a shared secret to a portable electronic device and to a service entity |
US9497029B2 (en) * | 2012-09-28 | 2016-11-15 | Intel Corporation | Hardening of direct anonymous attestation from side-channel attack |
CN103427997B (zh) * | 2013-08-16 | 2016-06-22 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
US10135621B2 (en) * | 2013-12-31 | 2018-11-20 | Nxp B.V. | Method to reduce the latency of ECDSA signature generation using precomputation |
US9436839B2 (en) * | 2014-07-21 | 2016-09-06 | Intel Corporation | Tokenization using multiple reversible transformations |
KR101599144B1 (ko) * | 2014-07-23 | 2016-03-02 | 삼성에스디에스 주식회사 | 키 생성 장치 및 방법 |
US9485088B2 (en) * | 2014-10-31 | 2016-11-01 | Combined Conditional Access Development And Support, Llc | Systems and methods for dynamic data masking |
US9654288B1 (en) * | 2014-12-11 | 2017-05-16 | Wickr Inc. | Securing group communications |
US10013363B2 (en) * | 2015-02-09 | 2018-07-03 | Honeywell International Inc. | Encryption using entropy-based key derivation |
FR3035986B1 (fr) * | 2015-05-06 | 2018-07-27 | Morpho | Procede de generation d'une signature de message a partir d'un jeton de signature chiffre a l'aide d'une fonction de chiffrement homomorphique |
US9800418B2 (en) * | 2015-05-26 | 2017-10-24 | Infosec Global Inc. | Signature protocol |
US20170230172A1 (en) * | 2016-02-09 | 2017-08-10 | Magnus Andersson Kåre Lars | Key agreement algorithm for cipher key creation over a public channel |
GB2549981B (en) * | 2016-05-05 | 2018-10-10 | Jung Tjhai Cen | A public key cryptosystem based on the partitioning of elements of vectors |
US9800411B1 (en) * | 2016-05-05 | 2017-10-24 | ISARA Corporation | Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme |
-
2017
- 2017-01-24 US US15/414,391 patent/US10341098B2/en active Active
-
2018
- 2018-01-15 EP EP18151725.1A patent/EP3352411B1/en active Active
- 2018-01-19 CN CN201810056964.6A patent/CN108347334B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946397A (en) * | 1995-10-03 | 1999-08-31 | Gemplus S.C.A. | Method of cryptography with public key based on the discrete logarithm |
US6091819A (en) * | 1996-08-16 | 2000-07-18 | Telcordia Technologies, Inc. | Accelerating public-key cryptography by precomputing randomly generated pairs |
US20060104447A1 (en) * | 2004-11-12 | 2006-05-18 | Microsoft Corporation | Discrete logarithm-based cryptography using the Shafarevich-Tate group |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020073314A1 (zh) * | 2018-10-12 | 2020-04-16 | 深圳市汇顶科技股份有限公司 | 密钥生成方法、获取方法、私钥更新方法、芯片和服务器 |
US11190351B2 (en) | 2018-10-12 | 2021-11-30 | Shenzhen GOODIX Technology Co., Ltd. | Key generation method and acquisition method, private key update method, chip, and server |
Also Published As
Publication number | Publication date |
---|---|
US10341098B2 (en) | 2019-07-02 |
US20180212767A1 (en) | 2018-07-26 |
EP3352411A1 (en) | 2018-07-25 |
EP3352411B1 (en) | 2020-09-16 |
CN108347334B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348231A (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
US11159305B2 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
Koziel et al. | Post-quantum cryptography on FPGA based on isogenies on elliptic curves | |
CN104270247B (zh) | 适用于量子密码系统的高效泛Hash函数认证方法 | |
JP6576564B2 (ja) | 安全かつ効率的なブロック暗号アルゴリズムの実現方法と装置 | |
CN108718231A (zh) | 一种全同态加密方法、装置和计算机可读存储介质 | |
CN108347334A (zh) | 生成加密密钥对的方法 | |
Kumari et al. | Preserving health care data security and privacy using Carmichael's theorem-based homomorphic encryption and modified enhanced homomorphic encryption schemes in edge computing systems | |
Ustimenko | On graph-based cryptography and symbolic computations | |
CN115102688A (zh) | 数据处理方法、多项式计算方法及电子设备 | |
CN111712816B (zh) | 使用密码蒙蔽以用于高效地使用蒙哥马利乘法 | |
JP4177526B2 (ja) | 乗算剰余演算方法および乗算剰余回路 | |
Bejo et al. | AES S-box construction using different irreducible polynomial and constant 8-bit vector | |
Mullan | Some results in group-based cryptography | |
CN101809638A (zh) | 运算方法和运算装置 | |
US20210194669A1 (en) | Cryptographic processing method, associated electronic device and computer program | |
CN106452726B (zh) | 一种s盒及其构造方法 | |
JP2002358010A (ja) | べき乗剰余演算器 | |
US20210297233A1 (en) | System and method for performing a fully homomorphic encryption on a plain text | |
Razali et al. | Improved point 5P formula for twisted edwards curve in projective coordinate over prime field | |
Shiriaev et al. | Efficient implementation of the CKKS scheme using a quadratic residue number system | |
JP6293681B2 (ja) | マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム | |
Das et al. | Mathematics Behind the RSA Algorithm | |
Berlin et al. | An Approach to Achieve Modern Cryptographic Encryption System for Preserving Secrets using Number System Generator | |
Kumar et al. | Improving Resistance against Attack of L2DCASKE Encryption Algorithm by using RCA Rule 30 based S-Box |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |