CN111614465B - 基于超奇异同源秘钥封装协议的公钥生成方法和装置 - Google Patents

基于超奇异同源秘钥封装协议的公钥生成方法和装置 Download PDF

Info

Publication number
CN111614465B
CN111614465B CN202010412895.5A CN202010412895A CN111614465B CN 111614465 B CN111614465 B CN 111614465B CN 202010412895 A CN202010412895 A CN 202010412895A CN 111614465 B CN111614465 B CN 111614465B
Authority
CN
China
Prior art keywords
homologous
elliptic curve
curve
following formula
point
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.)
Active
Application number
CN202010412895.5A
Other languages
English (en)
Other versions
CN111614465A (zh
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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN202010412895.5A priority Critical patent/CN111614465B/zh
Publication of CN111614465A publication Critical patent/CN111614465A/zh
Application granted granted Critical
Publication of CN111614465B publication Critical patent/CN111614465B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • H04L9/3033Public 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 details relating to pseudo-prime or prime number generation, e.g. primality test

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

本申请提供一种基于超奇异同源秘钥封装协议的公钥生成方法和装置,该方法包括:获取同源质数和椭圆曲线;在所述椭圆曲线上生成第一公共点对和第二公共点对;获取私钥,计算私核;将所述第二公共点对作为高阶同源曲线上的初始像点,以所述椭圆曲线作为初始椭圆曲线,计算获得高阶同源曲线,将高阶同源曲线上的像点作为公钥。本申请通过将输入参数转换为新的数据表示方式,并使用该方式进行相应的有限域算法,可以替代传统的蒙哥马利表示方法,采用本申请实施例提供的新的数据表示方式对SIKE方案进行实现,并且在新的数据表示方式的基础上,能够提高SIKE协议实现的效率。

Description

基于超奇异同源秘钥封装协议的公钥生成方法和装置
技术领域
本申请涉及椭圆曲线加密系统技术领域,具体涉及一种基于超奇异同源秘钥封装协议的公钥生成方法和装置。
背景技术
公钥密码学是互联网安全的基础,允许双方在不需要提前交换密钥信息的情况下也能安全通信。目前所有广泛应用的公钥密码系统均是基于大整数因式分解困难(比如Rivest Shamir Adleman,即RSA算法)或者是在某些群中计算离散对数困难(比如椭圆曲线加密算法,即ECC)来实现的。由于ECC在同样安全级别的前提下比RSA占用资源更少,其在公钥密码系统中地位越来越重要。在目前的计算资源下,ECC或RSA均能提供很好的安全保障。但量子计算机的出现将会打破这样的状况,据消息称,成熟的量子计算机将会在未来的15年内被设计出来,面对这样的威胁,针对量子计算机的加密系统设计变得十分迫切。针对抗量子计算机攻击的加密系统设计,基于同源的ECC可以直接被采用,但目前还存在诸如算法复杂度高、运算速度过慢的缺点亟待解决。
椭圆曲线之间的同源指的是那些保留了无限远点的椭圆曲线间的一种同态,利用椭圆曲线间的同源构建加密系统的想法由Rostovtsev和Stolbunov于2006年提出,该系统采用的是普通的椭圆曲线间的同源,之后在2010年被Childs,Jao和Stolbunov用亚指数量子攻击方法所攻击。随后,于2011年,Jao和De Feo提出了一个基于超奇异(Supersingular)椭圆曲线的同源密码交换,该方法能有效的防御亚指数攻击,该方法也被称为超奇异同源Diffie-Hellman密钥交换(supersingular isogeny Diffie-Hellman key-exchange,SIDH)。SIDH是超奇异同源秘钥封装协议(supersingular isogeny key encapsulation,SIKE)的基础,SIKE是目前被NIST作为后量子密码标准的候选者之一。
以Alice向Bob发送消息为例,SIKE协议主要分为三个步骤。第一步,Bob使用相应的密钥生成其公钥和私钥,该私钥可以安全地反复使用。Alice的那些密钥是在传递的消息和鲍勃的公钥的基础上生成的。同时,Bob生成一个假消息以供后续使用。第二步,j不变式通过使用所有者的私钥和另一方的公钥获得,并通过哈希函数加密,生成他们的共享密钥。第三步,Alice以两种形式加密她的消息,一种是将他们的共享密钥加密为cA,另一种是采用哈希函数将其他的参数加密为em,并将其发送给Bob。鲍勃收到这两个密文后,能够解密Alice发送的消息、以及Alice的公钥和密钥。同时,他将伪造的消息fmB以与Alice相同的加密方式加密为em’。他判断解密而来的Alice的公钥与在第二步中接收的公钥是否相同,如果相同,即认证成功,则将Alice发送的消息输出为em,否则输出为em’。
在SIKE协议第一步的运算过程中,涉及许多有限域运算,有限域运算的效率直接关系到Alice向Bob发送消息时加解密等过程的效率。现有有限域运算通常基于蒙哥马利表示方法,该算法中,同源质数p采用以下公式进行表示:
Figure BDA0002493894350000011
其中,a和b为小的素数,eA和eB为正整数,在基于上述表示方法的基础上,进行有限域运算。但是,利用现有蒙哥马利表示方法进行有限域运算过程中,仍然存在消耗较大,进而导致SIKE协议在实现过程中存在效率较低的问题。
发明内容
本申请提供一种基于超奇异同源秘钥封装协议的公钥生成方法,以解决现有技术中,利用蒙哥马利表示方法进行有限域运算时,导致SIKE协议在实现过程中存在效率较低的问题。
本申请的第一方面,提供一种基于超奇异同源秘钥封装协议的公钥生成方法,包括:
步骤101,获取同源质数p,并获取椭圆曲线E0
其中,p=f'·Ln-1,L为基数,
Figure BDA0002493894350000021
f'=ab,n=gcd(eA+α,eB+β);a和b为小的素数,eA和eB为正整数,α和β均为小的正整数;
E0:Dy2=x3+Cx2+x,C和D为有限域值,且满足D(C2-4)≠0;
步骤102,在所述椭圆曲线E0上生成第一公共点对{PA,QA}和第二公共点对{PB,QB},所述第一公共点对为Alice在椭圆曲线E0上选取的两个点,所述第二公共点对为Bob在椭圆曲线E0上选取的两个点;
其中,PA在椭圆曲线E0上的坐标表示为
Figure BDA0002493894350000022
Figure BDA0002493894350000023
QA在椭圆曲线E0上的坐标表示为
Figure BDA0002493894350000024
Figure BDA0002493894350000025
当0≤j<n-1时,tj,uj,vj,wj∈[0,L-1],而tn-1,un-1,vn-1,wn-1∈[0,f'L-1];
步骤103,获取私钥skA,并根据以下公式计算私核R:
R=PA+[skA]QA
步骤104,将所述第二公共点对{PB,QB}作为高阶同源曲线E'上的初始像点,以椭圆曲线E0作为初始椭圆曲线,计算获得高阶同源曲线E',其中,所述高阶同源曲线的阶数为
Figure BDA0002493894350000026
将E'上的像点作为公钥pkA
可选的,步骤103包括连续的点加操作和倍点操作,其中,
根据以下公式进行所述点加操作:
Figure BDA0002493894350000027
Figure BDA0002493894350000028
其中,(xR',yR')为所述点加操作所得R'的坐标,R'为R的中间值,
Figure BDA0002493894350000029
根据以下公式进行所述倍点操作:
Figure BDA00024938943500000210
Figure BDA00024938943500000211
可选的,根据以下公式计算
Figure BDA00024938943500000212
Figure BDA00024938943500000213
其中,令cj=tj+uj,0≤j≤n-1,将cj作为第一系数项;
当0≤j<n-1时,0≤cj<2L-1,对于超出系数约束范围[0,L)的第一系数项cj,根据以下公式进行调整其第一系数项大小:
cj+1·Lj+1+cj·Lj=(cj+1+1)·Lj+1+(cj-L)·Lj
当j=n-1时,判断cn-1是否超出系数约束范围,如果超出,根据以下公式进行调整其第一系数项大小:
cn-1·Ln-1+c0 mod p=(cn-1-f'L)·Ln-1+(1+c0)mod p。
可选的,根据以下公式计算
Figure BDA0002493894350000031
Figure BDA0002493894350000032
其中,令dj=tj-uj,0≤j≤n-1,将dj作为第二系数项;
当0≤j<n-1时,-L+1≤dj≤L-1,对于超出系数约束范围[0,L)的第二系数项dj,根据以下公式进行调整其第二系数项大小:
dj+1·Lj+1+dj·Lj=(dj+1-1)·Lj+1+(dj+L)·Lj
当j=n-1时,判断dn-1是否超出系数约束范围,如果超出,根据以下公式进行调整其第二系数项大小:
dn-1·Ln-1+d0 mod p=(dn-1+f'L)·Ln-1+(d0-1)mod p。
可选的,根据以下公式进行模求反操作:
Figure BDA0002493894350000033
可选的,根据以下公式进行模除以2的操作:
Figure BDA0002493894350000034
其中,
Figure BDA0002493894350000035
0≤j≤n-1;
当0≤j≤n-2时,
Figure BDA0002493894350000036
当j=n-1时,
Figure BDA0002493894350000037
可选的,根据以下公式进行模乘操作:
Figure BDA0002493894350000038
本申请的第二方面,提供一种基于超奇异同源秘钥封装协议的公钥生成装置,包括:
获取模块,用于获取同源质数p,并获取椭圆曲线E0
其中,p=f'·Ln-1,L为基数,
Figure BDA0002493894350000039
f'=ab,n=gcd(eA+α,eB+β);a和b为小的素数,eA和eB为正整数,α和β均为小的正整数;
E0:Dy2=x3+Cx2+x,C和D为有限域值,且满足D(C2-4)≠0;
生成模块,用于在所述椭圆曲线E0上生成第一公共点对{PA,QA}和第二公共点对{PB,QB},所述第一公共点对为Alice在椭圆曲线E0上选取的两个点,所述第二公共点对为Bob在椭圆曲线E0上选取的两个点;
其中,PA在椭圆曲线E0上的坐标表示为
Figure BDA0002493894350000041
Figure BDA0002493894350000042
QA在椭圆曲线E0上的坐标表示为
Figure BDA0002493894350000043
Figure BDA0002493894350000044
当0≤j<n-1时,tj,uj,vj,wj∈[0,L-1],而tn-1,un-1,vn-1,wn-1∈[0,f'L-1];
第一计算模块,用于获取私钥skA,并根据以下公式计算私核R:
R=PA+[skA]QA
第二计算模块,用于将所述第二公共点对{PB,QB}作为高阶同源曲线E'上的初始像点,以椭圆曲线E0作为初始椭圆曲线,计算获得高阶同源曲线E',其中,所述高阶同源曲线的阶数为
Figure BDA0002493894350000045
将E'上的像点作为公钥pkA
可选的,所述第一计算模块包括连续的点加操作单元和倍点操作单元,其中,
所述点加操作单元用于根据以下公式进行所述点加操作:
Figure BDA0002493894350000046
Figure BDA0002493894350000047
其中,(xR',yR')为所述点加操作所得R'的坐标,R'为R的中间值,
Figure BDA0002493894350000048
所述倍点操作单元用于根据以下公式进行所述倍点操作:
Figure BDA0002493894350000049
Figure BDA00024938943500000410
由以上技术方案可知,本申请提供一种基于超奇异同源秘钥封装协议的公钥生成方法和装置,该方法包括:获取同源质数和椭圆曲线;在所述椭圆曲线上生成第一公共点对和第二公共点对;获取私钥,计算私核;将所述第二公共点对作为高阶同源曲线上的初始像点,以所述椭圆曲线作为初始椭圆曲线,计算获得高阶同源曲线,将高阶同源曲线上的像点作为公钥。本申请通过将输入参数转换为新的数据表示方式,并使用该方式进行相应的有限域算法,可以替代传统的蒙哥马利表示方法,采用本申请实施例提供的新的数据表示方式对SIKE方案进行实现,并且在新的数据表示方式的基础上,能够提高SIKE协议实现的效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于超奇异同源秘钥封装协议的公钥生成方法的工作流程图;
图2为本申请实施例提供的一种基于超奇异同源秘钥封装协议的公钥生成装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中,为了解决现有蒙哥马利表示方法进行有限域运算过程中,存在消耗较大,进而导致SIKE协议在实现过程中存在效率较低的问题,采用一种新的数据表示方式来表示同源质数p,该数据表示方法如下:
Figure BDA0002493894350000051
其中,a和b为小的素数,eA和eB为正整数,α和β均为小的正整数,f是为了使p为质数的小参数,在SIKE协议中,f通常被设置为1。
如果令f'=f·ab
Figure BDA0002493894350000052
则有:
p=f'·Ln-1。
这样,我们就可以将一个Fp域上的元素Z,用基于非常规的基数L来表示:
Figure BDA0002493894350000053
其中,当0≤j<n-1时,zj∈[0,L-1],而zn-1∈[0,f'L-1]。
这样一来,基于上述新的数据表示方式,我们建立了一个能够映射Fp域上所有元素的映射。
基于此,本申请实施例提供一种基于超奇异同源秘钥封装协议的公钥生成方法,该公钥生成方法应用于终端,该终端可以电脑、笔记本等。该公钥生成方法中,Fp域上的元素均采用上述新的数据表示方式进行表示,相关计算均建立在新的数据表示方式上。
图1为本申请实施例提供的一种基于超奇异同源秘钥封装协议的公钥生成方法的工作流程图。
参见图1,本申请实施例提供的公钥生成方法包括以下步骤:
步骤101,获取同源质数p,并获取椭圆曲线E0
其中,p=f'·Ln-1,L为基数,
Figure BDA0002493894350000054
f'=ab,n=gcd(eA+α,eB+β);a和b为小的素数,eA和eB为正整数,α和β均为小的正整数;
E0:Dy2=x3+Cx2+x,C和D为有限域值,且满足D(C2-4)≠0。
该步骤中,gcd表示最大公约数的运算。
步骤102,在所述椭圆曲线E0上生成第一公共点对{PA,QA}和第二公共点对{PB,QB},所述第一公共点对为Alice在椭圆曲线E0上选取的两个点,所述第二公共点对为Bob在椭圆曲线E0上选取的两个点;
其中,PA在椭圆曲线E0上的坐标表示为
Figure BDA0002493894350000055
Figure BDA0002493894350000056
QA在椭圆曲线E0上的坐标表示为
Figure BDA0002493894350000057
Figure BDA0002493894350000058
当0≤j<n-1时,tj,uj,vj,wj∈[0,L-1],而tn-1,un-1,vn-1,wn-1∈[0,f'L-1]。
步骤103,获取私钥skA,并根据以下公式计算私核R:
R=PA+[skA]QA
步骤104,将所述第二公共点对{PB,QB}作为高阶同源曲线E'上的初始像点,以椭圆曲线E0作为初始椭圆曲线,计算获得高阶同源曲线E',其中,所述高阶同源曲线的阶数为
Figure BDA0002493894350000061
将E'上的像点作为公钥pkA
该步骤中,基于私核R计算高阶同源曲线E',可表示为:φ:E0→E',
Figure BDA0002493894350000062
通常为2或3,以
Figure BDA0002493894350000063
为例,高阶同源曲线E'的计算公式为:
Figure BDA0002493894350000064
在基于私核R的高阶同源曲线E'上,计算PA的像点φ(PA),以
Figure BDA0002493894350000065
为例,像点φ(PA)的计算公式为:
Figure BDA0002493894350000066
Figure BDA0002493894350000067
每一次迭代将像点φ(PA)作为下一次迭代的私核,连续迭代计算eA次,并将迭代最后一次的像点作为公钥pkA
在上述计算过程中,所涉及的有限域运算均采用和步骤103中所涉及的有限域运算相同的运算方式,也就是说,在公钥生成方法的操作中,所有有限域运算均建立在新的数据表示方式上。本申请实施例以步骤103中涉及的有限域运算为例,介绍这种新的数据表示方式下的有限域运算,在此不作赘述。
由以上技术方案可知,本申请实施例通过将输入参数转换为新的数据表示方式,并使用该方式进行相应的有限域算法,可以替代传统的蒙哥马利表示方法,采用本申请实施例提供的新的数据表示方式对SIKE方案进行实现。本申请实施例中的算法操作已经以C语言的形式进行了实现,并且移植到了最新的SIKE实现方案中。在SIKEp751密码等级的最新软件实现中,在2.6GHz Intel Xeon E5-2690处理器上运行时,采用本方法实现的SIKE方案比之前最快的实现方式相比,速度提高了约1.65倍。由此可见,在新的数据表示方式的基础上,能够提高SIKE协议实现的效率。
本申请实施例提供的步骤103中,对于私核R的计算公式:R=PA+[skA]QA,从右到左进行阶梯计算,其中,输入为:skA
Figure BDA0002493894350000068
Figure BDA0002493894350000069
输出为:
Figure BDA00024938943500000610
skA为一个vbit的标量,步骤103的计算过程如下:
步骤1031,初始化,令
Figure BDA00024938943500000611
步骤1032,定义变量i,0≤i≤v-1,从0到v-1次迭代,即从低位到高位展开;
步骤1033,假设从i=0开始迭代,如果skA(i)=1,则R1=R0+R1,如果skA(i)=0,则R2=R0+R2
步骤1034,步骤1033迭代完成之后,令R0=[2]R0
步骤1035,输出
Figure BDA00024938943500000612
由以上计算过程可知,步骤103在执行过程中包括连续的点加操作和倍点操作,其中,
根据以下公式进行所述点加操作:
Figure BDA00024938943500000613
Figure BDA00024938943500000614
其中,(xR',yR')为所述点加操作所得R'的坐标,R'为R的中间值,
Figure BDA0002493894350000071
根据以下公式进行所述倍点操作:
Figure BDA0002493894350000072
Figure BDA0002493894350000073
在点加操作和倍点操作的计算公式中,包含了模加、模减、模乘、模求反以及模除以2的取模操作,在新的数据表示方式的基础上,本申请实施例提供了各种取模操作的运算流程。
在一种可实现的方式中,根据以下公式计算
Figure BDA0002493894350000074
Figure BDA0002493894350000075
其中,令cj=tj+uj,0≤j≤n-1,将cj作为第一系数项;
当0≤j<n-1时,0≤cj<2L-1,对于超出系数约束范围[0,L)的第一系数项cj,根据以下公式进行调整其第一系数项大小:
cj+1·Lj+1+cj·Lj=(cj+1+1)·Lj+1+(cj-L)·Lj
当j=n-1时,判断cn-1是否超出系数约束范围,如果超出,根据以下公式进行调整其第一系数项大小:
cn-1·Ln-1+c0 mod p=(cn-1-f'L)·Ln-1+(1+c0)mod p。
在一种可实现的方式中,根据以下公式计算
Figure BDA0002493894350000076
Figure BDA0002493894350000077
其中,令dj=tj-uj,0≤j≤n-1,将dj作为第二系数项;
当0≤j<n-1时,-L+1≤dj≤L-1,对于超出系数约束范围[0,L)的第二系数项dj,根据以下公式进行调整其第二系数项大小:
dj+1·Lj+1+dj·Lj=(dj+1-1)·Lj+1+(dj+L)·Lj
当j=n-1时,判断dn-1是否超出系数约束范围,如果超出,根据以下公式进行调整其第二系数项大小:
dn-1·Ln-1+d0 mod p=(dn-1+f'L)·Ln-1+(d0-1)mod p。
在一种可实现的方式中,根据以下公式进行模求反操作:
Figure BDA0002493894350000078
在一种可实现的方式中,根据以下公式进行模除以2的操作:
Figure BDA0002493894350000079
其中,
Figure BDA00024938943500000710
0≤j≤n-1;
当0≤j≤n-2时,
Figure BDA00024938943500000711
当j=n-1时,
Figure BDA0002493894350000081
在一种可实现的方式中,根据以下公式进行模乘操作:
Figure BDA0002493894350000082
模乘操作是基本算数运算的核心操作,对于SIKE协议,同源质数p通常格式为
Figure BDA0002493894350000083
其中2和3的幂数互素。如果加一个小的正整数α或β到eA或eB上使其不再互素,而他们的最大公约数一般大于2。
在上述模乘计算公式中,令
Figure BDA0002493894350000084
当0≤j<n-1时,
Figure BDA0002493894350000085
Figure BDA0002493894350000086
在计算过程中,可以使用类似一阶Karatsuba(一种快速乘法算法)的方法来简化模乘操作所对应的公式,从而简化计算。
随后,商和最低项相合并。然后需要一系列的加减将每一个系数项调整到约束的取值范围内。我们调用了(n+1)个优化的巴雷特取模算法(IBR)来处理这些取模操作。具体算法步骤如下:
a)计算(q0,l0)=IBR(δ0,L);
b)当0<j<n-1时,计算(qj,lj)=IBR(δj+qj-1,L);
c)计算第n-1项,(qn-1,ln-1)=IBR(δn-1+qn-2,f'L);
d)(q00)=IBR(l0+qn-1,L);
f)通过一系列模加减计算将系数调整到算法约束的范围内。
通过上述运算步骤,最终可以得到xP和xQ的模乘结果。
以上说明均为FP域上的操作函数,实际方案中还需要用到
Figure BDA0002493894350000087
域上的操作,对于
Figure BDA0002493894350000088
域上的两个操作数G和H,其中
Figure BDA0002493894350000089
其中,
Figure BDA00024938943500000810
均为FP域上的以新的数据表示方式表示的操作数。因此有以下计算公式:
Figure BDA00024938943500000811
Figure BDA00024938943500000812
Figure BDA00024938943500000813
Figure BDA00024938943500000814
Figure BDA00024938943500000815
目前,SIKE协议实现过程中的四组同源质数都有
Figure BDA00024938943500000816
的格式,其中eA和eB互质,它们可以使用本申请实施例提供的方法依照相应的参数进行分解。例如SIKEp434,
Figure BDA00024938943500000817
SIKEp503:
Figure BDA00024938943500000818
SIKEp751:
Figure BDA00024938943500000819
等。SIKEp503和SIKEp751参数方案已经使用C语言进行实现,且在64位的Xeon E5-2690服务器上运行并统计了代码的总运行周期数以及其中主要有限域运算的运行周期数。同时还统计了传统实现方法下相应的运算周期数作为对比,需要注意的是在运行过程中关闭了服务器的TurboBoost,结果如下表所示。
表一 利用本申请方法实现的SIKEp751中的主要有限域运算周期数与传统方法对比结果
Figure BDA0002493894350000091
表二 SIKEp751参数下的总运行周期数对比结果
阶段 传统方法(周期数) 本方案方法(周期数) 提升比率
密钥生成 330394357 200167938 1.651
加密 535098458 324778282 1.648
解密 575180241 348305883 1.651
全阶段 1440673056 873252103 1.650
表三 SIKEp503参数下的总运行周期数对比结果
阶段 传统方法(周期数) 本方案方法(周期数) 提升比率
密钥生成 99448697 61837086 1.608
加密 163759088 101847565 1.608
解密 174201386 108200191 1.610
全阶段 437409171 271884842 1.609
通过上述表格,可以明显看出,通过采用本方案的方法,可以明显的提升有限域运算的运算速度。以SIKE协议为例,当在SIKEp751和SIKEp503中使用本方法进行实现时,分别比原方法取得了1.65倍和1.61倍左右的速度提升。
实际运算过程中,原本采用常规数据表示方式的数据,可以与本申请提供的新的数据表示方式相互转化,以下对相互转化的方式进行说明。
从常规数据表示方式转换为新的数据表示方式的方法如下:
输入项为常规数据表示方式的操作数S,非常规基数L以及参数p=f'·Ln-1。
当0≤j≤n-2时,循环进行zj=S mod L,S=[S/L];最后一项为最后一次循环的zn-1=S。输出从常规数据表示方式转换为新的数据表示方式的Z,
Figure BDA0002493894350000092
从新的数据表示方式转换为常规数据表示方式的方法如下:
输入项为基于新的数据表示方式的
Figure BDA0002493894350000093
基数L,以及参数p=f'·Ln-1。
T=zn-1,当j从n-2递减到0时,循环计算更新T=T·L+zj。如果T=p,则将T的值置为零;如果T=p+1,则将T的值置为一。输出从新的数据表示方式转换为常规数据表示方式的T,T∈FP=Z mod p。
图2为本申请实施例提供的一种基于超奇异同源秘钥封装协议的公钥生成装置的结构示意图。
参见图2,本申请的另一实施例提供一种基于超奇异同源秘钥封装协议的公钥生成装置,包括:
获取模块100,用于获取同源质数p,并获取椭圆曲线E0
其中,p=f'·Ln-1,L为基数,
Figure BDA0002493894350000101
f'=ab,n=gcd(eA+α,eB+β);a和b为小的素数,eA和eB为正整数,α和β均为小的正整数;
E0:Dy2=x3+Cx2+x,C和D为有限域值,且满足D(C2-4)≠0;
生成模块200,用于在所述椭圆曲线E0上生成第一公共点对{PA,QA}和第二公共点对{PB,QB},所述第一公共点对为Alice在椭圆曲线E0上选取的两个点,所述第二公共点对为Bob在椭圆曲线E0上选取的两个点;
其中,PA在椭圆曲线E0上的坐标表示为
Figure BDA0002493894350000102
Figure BDA0002493894350000103
QA在椭圆曲线E0上的坐标表示为
Figure BDA0002493894350000104
Figure BDA0002493894350000105
当0≤j<n-1时,tj,uj,vj,wj∈[0,L-1],而tn-1,un-1,vn-1,wn-1∈[0,f'L-1];
第一计算模块300,用于获取私钥skA,并根据以下公式计算私核R:
R=PA+[skA]QA
第二计算模块400,用于将所述第二公共点对{PB,QB}作为高阶同源曲线E'上的初始像点,以椭圆曲线E0作为初始椭圆曲线,计算获得高阶同源曲线E',其中,所述高阶同源曲线的阶数为
Figure BDA0002493894350000106
将E'上的像点作为公钥pkA
可选的,所述第一计算模块包括连续的点加操作单元和倍点操作单元,其中,
所述点加操作单元用于根据以下公式进行所述点加操作:
Figure BDA0002493894350000107
Figure BDA0002493894350000108
其中,(xR',yR')为所述点加操作所得R'的坐标,R'为R的中间值,
Figure BDA0002493894350000109
所述倍点操作单元用于根据以下公式进行所述倍点操作:
Figure BDA00024938943500001010
Figure BDA00024938943500001011
上述实施例中,所涉及的模加、模减、模乘、模求反以及模除以2的取模操作,均建立在新的数据表示方式的基础上。对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
本申请实施例通过将输入参数转换为新的数据表示方式,并使用该方式进行相应的有限域算法,可以替代传统的蒙哥马利表示方法,采用本申请实施例提供的新的数据表示方式对SIKE方案进行实现。本申请实施例中的算法操作已经以C语言的形式进行了实现,并且移植到了最新的SIKE实现方案中。在SIKEp751密码等级的最新软件实现中,在2.6GHzIntel Xeon E5-2690处理器上运行时,采用本方法实现的SIKE方案比之前最快的实现方式相比,速度提高了约1.65倍。由此可见,在新的数据表示方式的基础上,能够提高SIKE协议实现的效率。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

Claims (9)

1.一种基于超奇异同源秘钥封装协议的公钥生成方法,其特征在于,包括:
步骤101,获取同源质数p,并获取椭圆曲线E0
其中,p=f'·Ln-1,L为基数,
Figure FDA0003860578850000011
f'=ab,n=gcd(eA+α,eB+β);a和b为小的素数,eA和eB为正整数,α和β均为小的正整数;
E0:Dy2=x3+Cx2+x,C和D为有限域值,且满足D(C2-4)≠0;
步骤102,在所述椭圆曲线E0上生成第一公共点对{PA,QA}和第二公共点对{PB,QB},所述第一公共点对为Alice在椭圆曲线E0上选取的两个点,所述第二公共点对为Bob在椭圆曲线E0上选取的两个点;
其中,PA在椭圆曲线E0上的坐标表示为
Figure FDA0003860578850000012
QA在椭圆曲线E0上的坐标表示为
Figure FDA0003860578850000013
当0≤j<n-1时,tj,uj,vj,wj∈[0,L-1],而tn-1,un-1,vn-1,wn-1∈[0,f'L-1];
步骤103,获取私钥skA,并根据以下公式计算私核R:
R=PA+[skA]QA
步骤104,将所述第二公共点对{PB,QB}作为高阶同源曲线E'上的初始像点,以椭圆曲线E0作为初始椭圆曲线,计算获得高阶同源曲线E',其中,所述高阶同源曲线的阶数为
Figure FDA0003860578850000014
将E'上的像点作为公钥pkA,其中,
Figure FDA0003860578850000015
时,所述高阶同源曲线E'的计算公式为:
Figure FDA0003860578850000016
2.根据权利要求1所述的公钥生成方法,其特征在于,步骤103包括连续的点加操作和倍点操作,其中,
根据以下公式进行所述点加操作:
Figure FDA0003860578850000017
Figure FDA0003860578850000018
其中,(xR',yR')为所述点加操作所得R'的坐标,R'为R的中间值,
Figure FDA0003860578850000019
根据以下公式进行所述倍点操作:
Figure FDA00038605788500000110
Figure FDA00038605788500000111
3.根据权利要求2所述的公钥生成方法,其特征在于,
根据以下公式计算
Figure FDA00038605788500000112
Figure FDA00038605788500000113
其中,令cj=tj+uj,0≤j≤n-1,将cj作为第一系数项;
当0≤j<n-1时,0≤cj<2L-1,对于超出系数约束范围[0,L)的第一系数项cj,根据以下公式进行调整其第一系数项大小:
cj+1·Lj+1+cj·Lj=(cj+1+1)·Lj+1+(cj-L)·Lj
当j=n-1时,判断cn-1是否超出系数约束范围,如果超出,根据以下公式进行调整其第一系数项大小:
cn-1·Ln-1+c0 mod p=(cn-1-f'L)·Ln-1+(1+c0)mod p。
4.根据权利要求2所述的公钥生成方法,其特征在于,
根据以下公式计算
Figure FDA0003860578850000021
Figure FDA0003860578850000022
其中,令dj=tj-uj,0≤j≤n-1,将dj作为第二系数项;
当0≤j<n-1时,-L+1≤dj≤L-1,对于超出系数约束范围[0,L)的第二系数项dj,根据以下公式进行调整其第二系数项大小:
dj+1·Lj+1+dj·Lj=(dj+1-1)·Lj+1+(dj+L)·Lj
当j=n-1时,判断dn-1是否超出系数约束范围,如果超出,根据以下公式进行调整其第二系数项大小:
dn-1·Ln-1+d0 mod p=(dn-1+f'L)·Ln-1+(d0-1)mod p。
5.根据权利要求2所述的公钥生成方法,其特征在于,
根据以下公式进行模求反操作:
Figure FDA0003860578850000023
6.根据权利要求2所述的公钥生成方法,其特征在于,
根据以下公式进行模除以2的操作:
Figure FDA0003860578850000024
其中,
Figure FDA0003860578850000025
当0≤j≤n-2时,
Figure FDA0003860578850000026
当j=n-1时,
Figure FDA0003860578850000027
7.根据权利要求2所述的公钥生成方法,其特征在于,
根据以下公式进行模乘操作:
Figure FDA0003860578850000028
8.一种基于超奇异同源秘钥封装协议的公钥生成装置,其特征在于,包括:
获取模块,用于获取同源质数p,并获取椭圆曲线E0
其中,p=f'·Ln-1,L为基数,
Figure FDA0003860578850000031
f'=ab,n=gcd(eA+α,eB+β);a和b为小的素数,eA和eB为正整数,α和β均为小的正整数;
E0:Dy2=x3+Cx2+x,C和D为有限域值,且满足D(C2-4)≠0;
生成模块,用于在所述椭圆曲线E0上生成第一公共点对{PA,QA}和第二公共点对{PB,QB},所述第一公共点对为Alice在椭圆曲线E0上选取的两个点,所述第二公共点对为Bob在椭圆曲线E0上选取的两个点;
其中,PA在椭圆曲线E0上的坐标表示为
Figure FDA0003860578850000032
QA在椭圆曲线E0上的坐标表示为
Figure FDA0003860578850000033
当0≤j<n-1时,tj,uj,vj,wj∈[0,L-1],而tn-1,un-1,vn-1,wn-1∈[0,f'L-1];
第一计算模块,用于获取私钥skA,并根据以下公式计算私核R:
R=PA+[skA]QA
第二计算模块,用于将所述第二公共点对{PB,QB}作为高阶同源曲线E'上的初始像点,以椭圆曲线E0作为初始椭圆曲线,计算获得高阶同源曲线E',其中,所述高阶同源曲线的阶数为
Figure FDA00038605788500000310
将E'上的像点作为公钥pkA,所述高阶同源曲线E'的计算公式为:
Figure FDA0003860578850000034
9.根据权利要求8所述的公钥生成装置,其特征在于,所述第一计算模块包括连续的点加操作单元和倍点操作单元,其中,
所述点加操作单元用于根据以下公式进行所述点加操作:
Figure FDA0003860578850000035
Figure FDA0003860578850000036
其中,(xR',yR')为所述点加操作所得R'的坐标,R'为R的中间值,
Figure FDA0003860578850000037
所述倍点操作单元用于根据以下公式进行所述倍点操作:
Figure FDA0003860578850000038
Figure FDA0003860578850000039
CN202010412895.5A 2020-05-15 2020-05-15 基于超奇异同源秘钥封装协议的公钥生成方法和装置 Active CN111614465B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010412895.5A CN111614465B (zh) 2020-05-15 2020-05-15 基于超奇异同源秘钥封装协议的公钥生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010412895.5A CN111614465B (zh) 2020-05-15 2020-05-15 基于超奇异同源秘钥封装协议的公钥生成方法和装置

Publications (2)

Publication Number Publication Date
CN111614465A CN111614465A (zh) 2020-09-01
CN111614465B true CN111614465B (zh) 2023-03-24

Family

ID=72201476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010412895.5A Active CN111614465B (zh) 2020-05-15 2020-05-15 基于超奇异同源秘钥封装协议的公钥生成方法和装置

Country Status (1)

Country Link
CN (1) CN111614465B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685003B (zh) * 2021-01-05 2024-05-28 南京大学 一种用于获取同源密码的模乘结果的运算装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107425968A (zh) * 2017-06-22 2017-12-01 广东工业大学 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统
CN110011995B (zh) * 2019-03-26 2021-04-09 创新先进技术有限公司 多播通信中的加密和解密方法及装置
CN111106937A (zh) * 2019-12-31 2020-05-05 深圳职业技术学院 一种基于随机素数的双通道交换的超奇异椭圆曲线算法的密钥交换方法

Also Published As

Publication number Publication date
CN111614465A (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
US12034838B2 (en) Method and device to protect a cryptographic exponent
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
Dawahdeh et al. A new modification for menezes-vanstone elliptic curve cryptosystem
Jalali et al. ARMv8 SIKE: Optimized supersingular isogeny key encapsulation on ARMv8 processors
Dawahdeh et al. Modified ElGamal elliptic curve cryptosystem using hexadecimal representation
Kalra et al. Elliptic curve cryptography: survey and its security applications
Ruzai et al. Increment of insecure RSA private exponent bound through perfect square RSA diophantine parameters cryptanalysis
CN111614465B (zh) 基于超奇异同源秘钥封装协议的公钥生成方法和装置
CN112350827B (zh) 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
CN113535121B (zh) 基于秘密分享协议的安全高效数学除法计算的优化方法
Li Pseudo-random scalar multiplication based on group isomorphism
CN110233727B (zh) 一种sm2运算方法、系统、设备及计算机存储介质
JPWO2005013243A1 (ja) モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム
KR102490702B1 (ko) 유한 필드 디피 헬만에서 보안 소수를 선택하기 위한 방법 및 시스템
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
RU2541938C1 (ru) Способ шифрования с защитой от квантовых атак на основе циклов функций вебера
KR100341507B1 (ko) 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
Jalali et al. Optimized supersingular isogeny key encapsulation on armv8 processors
Fouotsa et al. InSIDH: a Simplification of SiGamal.
US20240205006A1 (en) Encryption device, decryption device, key generation device, encryption method, decryption method, key generation method, computer program product for encryption, computer program product for decryption, and computer program product for key generation
Liu et al. Cryptanalysis of cramer-shoup like cryptosystems based on index exchangeable family
JPH0798563A (ja) 楕円曲線による署名、認証及び秘密通信方式
Banoth et al. Mathematical Foundation for Classical and Modern Cryptography

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