一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种Tate双线性对及其变体的加速方法与流程

2022-03-05 05:29:07 来源:中国专利 TAG:

一种tate双线性对及其变体的加速方法
技术领域
1.本发明涉及密码技术领域,尤其涉及一种tate双线性对及其变体的加速方法。


背景技术:

2.2001年boneh和franklin基于weil双线对构造出了第一个基于身份标识的加密方案。此后,双线性对也被广泛应用于基于身份的密码、短签名、代理加密、环签名等常规公钥加密系统无法实现的加密应用中。然而相比于rsa等传统的公钥加密方案,基于双线对的密码方案会涉及到数论、有限域和椭圆曲线等多个数学领域的内容,这导致其应用的难度和复杂度大大提升。


技术实现要素:

3.本发明提出一种tate双线性对及其变体的加速方法,用以解决或者至少部分解决现有技术中存在的计算效率不高的技术问题。
4.为了解决上述技术问题,本发明提供了一种tate双线性对及其变体的加速方法,应用于以sm9为代表的基于双线性对的密码算法,包括:
5.s1:根据固定输入的点坐标,预先计算并存储椭圆曲线点倍运算和点加运算的中间值和对应线函数的参数值;
6.s2:根据动态输入的点坐标,结合步骤s1中存储的中间值和参数值,计算得到线函数值,作为双线性对有限扩展上的稀疏元素,用于miller算法计算;
7.s3:根据步骤s2计算得到的稀疏元素,采用稀疏乘法迭代计算miller算法的输出值;
8.s4:根据步骤s3计算得到的值,通过幂指数运算,得到双线性对运算的结果。
9.在一种实施方式中,令s=6t 2,t是bn曲线参数,p和r是由t定义的大素数,w是的pk次根,k为嵌入次数,对于固定输入用ti保存点乘运算第i步的中间值,a,b,c为线函数求值后的系数,步骤s1包括:
10.s1.1:初始化t
l-1
=q;
11.s1.2:设s的二进制比特长度为l,将s以二进制形式表示为且s
l-1
=1。对i从l-2遍历到0:
12.s1.2.1:计算倍点t
′i=[2]t
i 1
,过点t
i 1
切线切线在雅可比坐标系下,t
i 1
=(x1,y1,z1),则倍点t
′i=[2]t
i 1
=(x2,y2,z2),其中:),其中:
[0013]
s1.2.2:如果si=1,计算点加t
″i=t
′i q,过点t
′i和q切线和q切线在雅可比坐标系下,t
′i=(x1,y1,z1),则点加t

=t
′i q=(x3,y3,z3),其中:
[0014]
s1.2.3:如果si=0,ti=t
′i;否则,ti=t
″i。
[0015]
在一种实施方式中,令s=6t 2,t是bn曲线参数,p和r是由t定义的大素数,设动态输入为椭圆曲线上的点p,其坐标为(x
p
,y
p
),设双线性对运算的输出为f,步骤s2包括:
[0016]
s2.1:初始化f=1;
[0017]
s2.2:将s以二进制形式表示,设s的二进制比特长度为l,且s
l-1
=1,对i从l-2遍历到0:
[0018]
s2.2.1:计算f=f2·gt,t
(x
p
,y
p
);
[0019]
s2.2.2:如果si=1,计算f=f
·gt,q
(x
p
,y
p
)。
[0020]
在一种实施方式中,步骤s3中采用稀疏乘法计算f=f2·gt,t
(x
p
,y
p
)和f=f
·gt,q
(x
p
,y
p
)。
[0021]
在一种实施方式中,步骤s4计算
[0022]
在一种实施方式中,tate双线性对的变体包括ate对、optimal ate对和r-ate对。
[0023]
本技术实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0024]
目前sm9标识密码算法已成为国家标准并已纳入iso/iec国际标准体系,但实现sm9密码算法需要执行若干个双线性对运算,需要消耗较大的计算资源,阻碍了基于配对的密码算法在计算能力受限平台上的应用。
[0025]
本发明在不改变双线性对算法整体架构的基础上,针对基于配对的密码算法设计中输入之一为固定参数的情况,提出了加速实现方法,将双线性对计算分解为离线预计算和在线计算两个过程。离线预计算完成双线性对中的椭圆曲线点运算,在线计算在接收动态输入后完成剩余计算,有效提高计算效率。
附图说明
[0026]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0027]
图1为本发明具体实施例中一种tate双线性对及其变体的加速方法的流程图。
具体实施方式
[0028]
本发明涉及一种针对tate双线性对及其变体(包括tate对、ate对、optimal ate对、r-ate对)的加速方法,当输入的点固定时,基于双线性对中miller算法的结构及运算特点,使用预计算表,大幅度提高miller算法的运算效率,可以应用于基于tate双线性对及
其变体的密码算法软硬件实现领域,是利用预计算提高密码实现效率的方法。r-ate对是国密sm9标识密码算法中一种重要的双线性对,其计算性能对sm9密码算法的应用至关重要。本发明通过研究双线性对运算过程中miller算法特征,当输入的点固定时,椭圆曲线点的运算和线函数的参数值可以通过预计算完成。此方法能够大幅度提高miller算法的实现效率,对于r-ate对的miller算法运算效率提高了23.7%,特别适用于存储空间充足但计算资源有限的应用环境,有效地促进了基于双线性对的公钥密码算法在实际中的应用。
[0029]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0030]
本发明实施例提供了一种tate双线性对及其变体的加速方法,应用于以sm9为代表的基于双线性对的密码算法,包括:
[0031]
s1:根据固定输入的点坐标,预先计算并存储椭圆曲线点倍运算和点加运算的中间值和对应线函数的参数值;
[0032]
s2:根据动态输入的点坐标,结合步骤s1中存储的中间值和参数值,计算得到线函数值,作为双线性对有限扩展上的稀疏元素,用于miller算法计算。
[0033]
s3:根据步骤s2计算得到的稀疏元素,采用稀疏乘法迭代计算miller算法的输出值;
[0034]
s4:根据步骤s3计算得到的值,通过幂指数运算,得到双线性对运算的结果。
[0035]
本技术发明人通过大量的研究与实践发现:快速实现双线性对密码算法的性能瓶颈之一在于其中的双线性对运算。因此,针对双线性对研究有效的优化算法,具有重要价值。双线性对接收分别来自群和群的两个元素,并映射到中的一个元素作为输出。在构造基于双线性对的加密方案,如sm9公钥加密算法时,双线性对运算的输入之一是群的生成元,为一固定参数,因此可以针对固定参数生成预计算表,用于加速双线性对的运算;在构造基于双线性对的签名方案,如sm9数字签名算法时,双线性对运算的输入之一是群的生成元,为一固定参数,因此可以用预计算表加速运算。目前,针对参数固定的双线性对实现研究较少。针对双线性对输入之一为固定参数的情况,本发明提出了针对tate双线性对及其变体的加速实现方法。
[0036]
具体实施过程中,在利用本发明的方法构造基于双线性对的签名方案时,包括:
[0037]
密钥生成中心随机产生系统主私钥,计算并公布系统主公钥;
[0038]
签名者执行本发明的tate双线性对及其变体的加速方法,通过幂指数运算,得到双线性对运算的结果,再使用双线性对运算的结果加速sm9数字签名的生成。
[0039]
barreto和naehrig描述了一种在素域下构建双线对友好的方法,这种曲线很适合构建双线性对。bn曲线的定义如下:
[0040]
y2=x3 b,其中b≠0
[0041]
bn曲线是构建在256位有限域上的椭圆曲线,它的嵌入次数k=12。基域的特征p、群的阶r和frobneius的迹由参数t定义如下:
[0042]
p(t)=36t4 36t3 24t2 6t 1
[0043]
r(t)=36t4 36t3 18t2 6t 1
[0044]
tr(t)=6t2 1
[0045]
其中的选择要求使p和r都是大素数,t必须足够大来保证双线对加密的安全级别。
[0046]
定义在bn曲线上的双线性对算法需要在12次扩域下进行计算,基于有限域上的1-2-4-12塔式扩张结构为:
[0047][0048][0049][0050]
以r-ate对为例,双线性对算法如算法1所示。
[0051]
算法1 r-ate对算法
[0052][0053][0054]
本发明提出,在r-ate对算法流程第3)步中,g
t,t
(p)和g
t,q
(p)均是上的稀疏元素,其形式为a bx
p
w2 cy
p
w3,其中a,b,c是只与q有关的元素。因此,当输入q为固定点时,可以离线预计算存储若干个(a,b,c)的值。当在线计算双线性对的值时,只需从表中取出相应(a,s,c)的值,执行2个乘法即得到g
t,t
(p)或g
t,q
(p)的值。对于第5)、6)步,也适用该方法。
[0055]
在一种实施方式中,令s=6t 2,t是bn曲线参数,p和r是由t定义的大素数,w是的pk次根,k为嵌入次数,对于固定输入用ti保存点乘运算第i步的中间值,a,b,c为线函数求值后的系数,步骤s1包括:
[0056]
s1.1:初始化t
l-1
=q;
[0057]
s1.2:设s的二进制比特长度为l,将s以二进制形式表示为且s
l-1
=1。对i从l-2遍历到0:
[0058]
s1.2.1:计算倍点t
′i=[2]t
i 1
,过点t
i 1
切线切线
在雅可比坐标系下,t
i 1
=(x1,y1,z1),则倍点t
′i=[2]t
i 1
=(x2,y2,z2),其中:),其中:
[0059]
s1.2.2:如果si=1,计算点加t
″i=t
′i q,过点t
′i和q切线和q切线在雅可比坐标系下,t
′i=(x1,y1,z1),则点加t
″i=t
′i q=(x3,y3,z3),其中:),其中:
[0060]
s1.2.3:如果si=0,ti=t
′i;否则,ti=t
″i。
[0061]
在一种实施方式中,令s=6t 2,t是bn曲线参数,p和r是由t定义的大素数,设动态输入为椭圆曲线上的点p,其坐标为(x
p
,y
p
),设双线性对运算的输出为f,步骤s2包括:
[0062]
s2.1:初始化f=1;
[0063]
s2.2:将s以二进制形式表示,设s的二进制比特长度为l,且s
l-1
=1,对i从l-2遍历到0:
[0064]
s2.2.1:计算f=f2·gt,t
(x
p
,y
p
);
[0065]
s2.2.2:如果si=1,计算f=f
·gt,q
(x
p
,y
p
)。
[0066]
在一种实施方式中,步骤s3中采用稀疏乘法计算f=f2·gt,t
(x
p
,y
p
)和f=f
·gt,q
(x
p
,y
p
)。
[0067]
在一种实施方式中,tate双线性对的变体包括ate对、optimal ate对和r-ate对。
[0068]
请参见图1,为本发明提供的技术方案的运算流程示意图。
[0069]
本发明基于对现有技术的研究与分析,提出当输入q为固定点时,miller算法的加速实现方法如下,点的坐标表示包括但不限于雅可比投影坐标,双线性对包括但不限于r-ate对:
[0070]
设双线性对的静态输入动态输入动态输入
[0071]
1)离线预计算过程:
[0072]
第一步,令t=q。
[0073]
第二步,设s
l-1
=1。对i从l-2降至0,j=0,执行:
[0074]
设t的坐标为(x1,y1,z1),预计算t=[2]t,输出t的坐标为(x3,y3,z3),预计算并存储三个值j=j 1;
[0075]
如果si=1,设t的坐标为(x1,y1,z1),预计算t=t q,输出t的坐标为(x3,y3,z3),预计算并存储三个值{aj,bj,cj}={θx
q-yqz3,-θ,z3},j=j 1,其中
[0076]
第三步,预计算
[0077]
第四步,设t的坐标为(x1,y1,z1),q1的坐标为(x2,y2),预计算t=t q1,输出t的坐标为(x3,y3,z3),
[0078]
预计算并存储三个值{aj,bj,cj}={θx
q-yqz3,-θ,z3},j=j 1,其中},j=j 1,其中
[0079]
第五步,设t的坐标为(x1,y1,z1),-q2的坐标为(x2,y2),预计算t=t (-q2),输出t的坐标为(x3,y3,z3),预计算并存储三个值{aj,bj,cj}={θx
q-yqz3,-θ,z3},j=j 1,其中
[0080]
需要说明的是,如果便用tate对或ate对,则无需执行上述第三步~第五步。
[0081]
1)在线计算双线性对过程:
[0082]
第一步,令f=1,对i从l-2降至0,j=0,执行:
[0083]
令g[0][0]=aj,g[0][1]=cjy
p
,g[2][0]=bjx
p
,f=f2·
g,j=j 1;
[0084]
如果si=1,令g[0][0]=aj,g[0][1]=cjy
p
,g[2][0]=bjx
p
,f=f
·
g,j=j 1。
[0085]
第二步,令g[0][0]=aj,g[0][1]=cjy
p
,g[2][0]=bjx
p
,f=f
·
g,j=j 1。
[0086]
第三步,令g[0][0]=aj,g[0][1]=cjy
p
,g[2][0]=bjx
p
,f=f
·
g,j=j 1。
[0087]
第四步,输出
[0088]
如果使用tate对或ate对,无需执行第二步~第三步。
[0089]
对于r-ate,原始的miller算法需要约7048个乘法,而优化的miller算法只需要约5378个乘法,效率提升达23.7%。
[0090]
本发明的有益效果在于:目前sm9标识密码算法已成为国家标准并已纳入iso/iec国际标准体系,但实现sm9密码算法需要执行若干个双线性对运算,需要消耗较大的计算资源,阻碍了基于配对的密码算法在计算能力受限平台上的应用。
[0091]
本发明在不改变双线性对算法整体架构的基础上,针对基于配对的密码算法设计中输入之一为固定参数的情况,提出了加速实现方法,将双线性对计算分解为离线预计算和在线计算两个过程。离线预计算完成双线性对中的椭圆曲线点运算,在线计算在接收动态输入后完成剩余计算,有效提高计算效率。
[0092]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献