一种TATE配对的实现方法及其电路结构.pdf

上传人:a1 文档编号:1504651 上传时间:2018-06-18 格式:PDF 页数:16 大小:863.67KB
返回 下载 相关 举报
摘要
申请专利号:

CN201710018081.1

申请日:

2017.01.10

公开号:

CN106911475A

公开日:

2017.06.30

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效 IPC(主分类):H04L 9/30申请日:20170110|||公开

IPC分类号:

H04L9/30

主分类号:

H04L9/30

申请人:

中国科学院信息工程研究所

发明人:

张锐; 丁天; 张倩

地址:

100093 北京市海淀区闵庄路甲89号

优先权:

专利代理机构:

北京君尚知识产权代理事务所(普通合伙) 11200

代理人:

司立彬

PDF下载: PDF下载
内容摘要

本发明公开了一种Tate配对的实现方法及其电路结构。本发明的电路结构中指令控制模块,用于存储Tate配对算法的控制指令和配置指令,对整个Tate配对计算的调度过程进行控制;存储模块,用于存储Tate配对的输入、预算值和计算的中间结果;待计算数据选择器,用于根据控制指令从存储模块中读取数据,并将其发送给计算单元;计算单元,用于根据配置指令进行Fp、下的运算并将计算结果发送给中间结果数据选择器;中间结果数据选择器,用于根据访问控制模块的指令将收到的中间结果数据发送给存储模块;访问控制模块,用于根据控制指令,控制中间结果选择器和待计算数据选择器的数据流动。本发明能快速计算Tate配对。

权利要求书

1.一种Tate配对的电路结构,其特征在于,包括存储模块、两计算单元、待计算数据选择器、中间结果数据选择器、访问控制模块、指令控制模块;其中,所述指令控制模块,用于存储Tate配对算法的控制指令和配置指令,对整个Tate配对计算的调度过程进行控制;所述存储模块,用于存储Tate配对的输入、预算值和计算的中间结果;所述待计算数据选择器,用于根据所述访问控制模块的控制指令从所述存储模块中读取数据,并将其发送给所述计算单元;所述计算单元,用于根据所述指令控制模块发送过来的配置指令进行Fp下的加法、减法、乘法、求逆运算和下的加法、减法、乘法运算;并将计算结果发送给所述中间结果数据选择器;所述中间结果数据选择器,用于根据所述访问控制模块的指令将收到所述中间结果数据发送给所述存储模块;所述访问控制模块,用于根据所述指令控制模块发送过来的控制指令,控制所述中间结果选择器和所述待计算数据选择器的数据流动。2.如权利要求1所述的电路结构,其特征在于,所述计算单元包括三个相同的Fp模计算模块和一个Fp模逆计算模块;其中,所述Fp模计算模块能够执行Fp下的加法、减法、乘法计算。3.如权利要求2所述的电路结构,其特征在于,所述Fp模计算模块采用蒙哥马利算法进行乘法计算,Fp模逆计算模块采用欧几里得算法进行求逆计算。 -->4.如权利要求1或2或3所述的电路结构,其特征在于,所述计算单元包括两种计算模式,当配置为Fp下的计算模式时,所述计算单元中的Fp模计算模块和Fp模逆计算模块独立进行运算;当配置为下的计算模式时,所述计算单元同时调用三个Fp模计算模块进行运算。5.一种Tate配对的实现方法,其中,P为BN曲线上的挠点,Q为的零轨迹子群中映射在有限域上的点,r为BN曲线上的点群的阶,p为一素数,E为有限域上的椭圆曲线,椭圆曲线E上的点群记为fr,p(Q)为关于阶r和点P、Q的函数值;其步骤为:1)将阶r用二进制的形式表示,其二进制的位数为L;将点P和Q转换为Jacobian坐标;记fr,p(Q)为f,其初始值为1;2)去除r的二进制数的最高位,然后从高位到低位依次遍历每一位:如果当前位为0,则进行倍点操作,如果当前位为1,则进行倍点操作和加点操作,得到该阶r的fr,p(Q);3)对步骤2)最终得到该fr,p(Q)进行最终模幂运算,得到点P、Q的Tate配对tr(P,Q)。6.如权利要求5所述的方法,其特征在于,所述倍点操作的过程为:计算倍点2T,点Q在过点T切线上的值lT,T(Q)和Miller函数的平方f2,最终得到新的Miller函数值f2·lT,T(Q);所述加点操作的过程为:计算加点T+P,过点T和P切线上的值lT,P(Q),然后计算f·lT,P(Q)。7.如权利要求6所述的方法,其特征在于,在Jacobian坐标系下,T点表示为T=(X1,Y1,Z1),X1,Y1,Z1∈Fp,Q点表示为Q=(x,y),则点2T表示为2T=(X3,Y3,Z3);其中,Z3=2Y1Z1;过点T切线上Q点的值为8.如权利要求6所述的方法,其特征在于,在Jacobian坐标系下,T=(X1,Y1,Z1),P=(X2,Y2),则加点T+P=(X3,Y3,Z3);其中,Q=(x,y),点Q在过点T和P切线上的值9.如权利要求5~8任一所述的方法,其特征在于,点P、Q的Tate配对的映射10.如权利要求5~8任一所述的方法,其特征在于,素数p=36z4+36z3+24z2+6z+1,阶r=36z4+36z3+18z2+6z+1,z为整数。 -->

说明书

一种Tate配对的实现方法及其电路结构

技术领域

本发明属于信息安全领域,涉及一种Tate配对的实现方法及其电路结构,可应用
于公钥密码学领域。通过使用本发明,能够快速计算基于椭圆曲线或超椭圆曲线上的Tate
配对,为基于属性加密系统、数字签名、密钥协议等公钥密码学方案提供了基础技术支撑。

背景技术

椭圆曲线上的配对是具有特殊性质的映射,该映射将椭圆曲线点群中的两个点映
射为扩域的乘法群中的某个元素,此处正整数k为嵌入次数,其取值与所选取的椭圆曲线
相关。

假设G1和G2均为加法交换群,GT为乘法循环群,记映射为e,则双线性配对映射e的
定义如下:

e:G1×G2→GT

且对于任意的P,P1,P2∈G1和Q,Q1,Q2∈G2,满足以下条件

(1)双线性:

e(P1+P2,Q)=e(P1,Q)e(P2,Q),e(P,Q1+Q2)=e(P,Q1)e(P,Q2)

(2)非退化性:对于任意的P∈G1\{0},存在Q∈G2,使得e(P,Q)≠1;对于任意的Q∈
G2\{0},存在P∈G1,使得e(P,Q)≠1。

(3)可计算性:存在有效的算法(多项式时间算法)可以计算映射e。

双线性配对的安全性是基于双线性计算性Diffie Hellman困难问题假设(BCDHP
假设),即给定P,aP,abP∈G1,计算bP且满足e(P,P)b∈G2,其中为未知数。同时,对于
任意的多项式时间攻击者A而言,三元组(aP,abP,bP)和(aP,abP,R)在计算上是不可区分
的,其中R为G1中的一个随机数。即不存在任何有效的概率多项式时间算法满足:

|Pr[D(aP,abP,bP)=1]-Pr[D(aP,abP,R)=1]|>1/q

假设E为一条定义在Fp上的椭圆曲线。椭圆曲线E上的点群记为E(Fp),是一个有限
群。椭圆曲线E在Fp上的点的个数就是点群的阶,使用#E(Fp)来表示。椭圆曲线E上点记为P,
无穷远点记为O。定义l为满足lP=O的最小整数,称为点P的阶。椭圆曲线E上点P分为两类:
存在有限阶的点(挠点)和无穷阶的点。无穷阶的点意味着无法通过累加自身的值得到无穷
远点O。如果挠点P的有限阶为l,则称其为l-挠点。定义r为#E(Fp)的最大质因数,k为椭圆曲
线E的嵌入度,满足r|qk-1。

令G1=E(Fq)[r](G1=<P>,P为挠点),为
的零轨迹子群),GT=μr(μr为扩域上的单位根),则本发明所使用的Tate配对定义为:



利用不同的代数曲线可以构造出不同形式的双线性配对,而不同的代数曲线所能
提供的安全性和计算效率不同。本发明所涉及的Tate配对,是由基于256位素数域上嵌入度
k=12的BN曲线(Barreto-Naehrig curves)所构成的,可以提供超过128位的安全性。

本发明所使用的BN曲线下Tate配对的映射tr表示为:


目前Tate配对的算法没有较快的硬件实现方案,计算的步骤比较复杂,计算过程
需要大量的时间,严重制约了双线性配对在信息安全领域的应用;因此设计较快的计算算
法,保证硬件加速设计的合理的性能面积比,成为了一个亟待解决的问题。

发明内容

为了克服现有技术中存在的技术问题,本发明的目的是设计一种Tate配对的实现
方法及其电路结构。

实现上述目的所采用的解决方案为:

1、一种Tate配对算法的硬件实现,包括:

利用BN曲线的域扩张的特点,将和下的运算化简为Fp下的运算。根据
化简后运算的特点,设计了一种可以进行Fp和两种模式下的加法、减法、乘法、求逆运算
的计算单元。当配置为Fp下的计算模式时,1个计算单元可以同时独立计算3次Fp下的加法、
减法、乘法和1次求逆运算;当配置为下的计算模式时,可以计算1次下的加法、减法和
乘法运算。

Tate配对算法的电路结构包括多个模块,包含了存储模块、计算单元、待计算数据
选择器、中间结果数据选择器、访问控制模块、指令控制模块,能够快速计算由BN曲线构成
的Tate配对。存储模块,用来存储Tate配对的初始值、预算值和计算的中间结果。计算单元,
根据其配置的不同,可以进行Fp下的加法、减法、乘法、求逆运算和下的加法、减法、乘法
运算。待计算数据选择器,输入为存储模块的输出,输出为2个计算单元的输入。中间结果数
据选择器,输入为2个计算单元的输出,输出为存储模块的输入。访问控制模块,可以通过控
制中间结果数据选择器和待计算数据选择器来控制数据的流动。指令控制模块,中存储了
配置计算单元和访问控制模块的指令,对整个Tate配对的计算的过程进行控制。

2、一种Tate配对算法,包括:

Tate配对的计算分为“倍点操作”、“加点操作”、“最终模幂”三个部分,计算过程如
下:对Tate配对的输入P点和Q点的坐标转换后,通过待计算数据选择器进入计算单元。将二
进制的形式表示的r除去最高位,从高位到低位依次遍历判断每一位。如果为0,则执行“倍
点操作”;如果为0,则先后执行“倍点操作”和“加点操作”。当二进制的形式表示的r遍历完
毕后,进入最后模幂的计算。控制指令模块根据执行的操作不同,控制待计算数据选择器的
选择存储模块中的数据进入计算单元,指定计算单元的计算模式,并且通过控制中间结果
数据选择器将计算单元的计算结果存储到存储模块的不同位置。Tate配对的计算过程需要
反复重复此过程,Tate配对算法调度方案运行完毕后得到最终的计算结果。

由于Fp下的乘法、求逆运算的时间要远大于Fp下的加法、减法运算,指令控制模块
的设计需要考虑2个计算单元的均衡,避免其中一个计算单元在完成运算后,浪费大量时间
等待另一个计算单元的情况。可以通过调度Tate配对所需的计算,尽量把乘法、求逆运算的
操作平均分配给2个计算单元。

与现有技术相比,本发明的积极效果为:

本发明从减少循环次数、降低计算复杂度的角度出发,能够快速计算出Tate配对,
具有较强的可移植性和单元复用性,并且保证Tate配对计算的正确性。

附图说明

图1为本发明提供的计算单元硬件结构图;

图2为本发明提供的Fp模计算模块硬件结构图;

图3为本发明提供Tate配对算法调度方案的硬件实现的体系结构图。

具体实施方式

以下结合实施例和附图对本发明进行详细说明,但不构成对本发明的限制。

本发明所涉及的Tate配对,是基于素数域上嵌入度k=12的BN曲线所构成的,同时
由于BN曲线是六次扭曲(d=6),意味着有很多在扩域上的计算可以规约到扩域上,
使得其计算效率较高。本发明所涉及的BN曲线的形式如下:

E/Fp:Y2=X3+b,

根据给定的整数z,可以得到素数p=36z4+36z3+24z2+6z+1。BN曲线为有限域上
的椭圆曲线,BN曲线上的点群记为记为点群元素的数量记为阶r=#E(Fp),素数r=
36z4+36z3+18z2+6z+1。记BN曲线在有限域上的迹为整数t=p-r+1=6z2+1。

本发明所涉及的BN曲线下Tate配对的映射表示为:


其中P为BN曲线上的挠点,Q为的零轨迹子群中映射在有限域上的点。

本发明计算Tate配对时所使用的算法如算法1和算法2所示:

步骤1:将阶r用二进制的形式表示,将仿射坐标的点P和Q转换为Jacobian坐标。记
fr,p(Q)为f,其初始值为1。fr,p(Q)是一个和r、P点、Q点有关的函数值。

步骤2:如算法1所示,计算fr,p(Q),此步骤类似椭圆曲线加密算法中常见的Miller
算法。将二进制表示的r,其二进制的位数为L,除去最高位,从高位到低位依次遍历每一位。
如果遍历的当前位为0,则只需进行“倍点操作”,如果遍历的当前位为1,则需进行“倍点操
作”和“加点操作”。“倍点操作”的过程为:计算倍点2T,点Q在过点T切线上的值lT,T(Q),f2和
f2·lT,T(Q)。“加点操作”的过程为:计算加点T+P,过点T和P切线上的值lT,P(Q),f·lT,P(Q)。
步骤2的计算涉及和下的加法、减法、乘法、求逆运算,经过L-1次循环后(即算法
1中的for i from L-2downto 0),最终得到该阶r的fr,p(Q)。

算法1:计算fr,p(Q)



步骤3:如算法2所示,计算其中f为步骤2经过Miller算法得到的fr,p(Q)的
简写,此步骤也被称作最终模幂运算。步骤3的计算涉及下的加法、减法、乘法、求逆运
算,最终得到Tate配对tr(P,Q)。

算法2:计算



b←ap,b←a·b

4、计算fp,


6、计算Tz,(Tz)6z

7、T←(Tz)6z·T


本发明所涉及的BN曲线所在的扩域可以通过多次的塔域扩张构造,在Fp基础
上进行二次扩张得到扩域然后在基础上进行三次扩张得到扩域最后在基础
上进行二次扩张得到扩域扩域和的构造如表1所示,其中X,Y,Z∈Fp:

表1扩域的表示


根据计算Tate配对时所使用的算法1可知,计算涉及和下的加法、减
法、乘法、求逆运算。如果分别针对每个运算使用单独的模块进行计算,会造成本发明所涉
及的Tate配对的硬件实现规模十分庞大,且模块的利用率低,浪费大量的硬件资源。利用表
1所示的BN曲线所在的扩域的多次塔域扩张构造方法,可以对和下的运算进
行化简,最终归约为Fp和下的运算,进一步节省中间计算的存储资源。针对大量使用到的
Fp和下的运算,本发明提出一种计算单元的设计。

本发明所涉及的计算单元由3个相同的Fp模计算模块和1个Fp模逆计算模块组成,
其硬件结构如图1所示。计算单元中的Fp模计算模块可以执行Fp下的加法、减法、乘法计算,
Fp模计算模块的硬件结构如图2所示。在这里Fp模计算模块的乘法计算使用的是蒙哥马利算
法,Fp模逆计算模块的求逆计算使用的是欧几里得算法。当素数p的位数很大时,计算Fp下乘
法、求逆的时间要远大于计算加法、减法的时间。在本发明专利中,记1个Fp模计算模块在计
算Fp下乘法的时间为m,1个Fp模逆计算模块在计算Fp下求逆的时间为i。

本发明涉及的计算单元可以被配置为2种计算模式,分别为Fp和下的运算。当配
置为Fp下的计算模式时,所述计算单元中的Fp模计算模块和Fp模逆计算模块独立进行计算,
1个计算单元可以分别独立计算3次Fp下的加法、减法、乘法,或1次求逆运算;当配置为下
的计算模式时,所述计算单元同时调用三个Fp模计算模块进行运算,1个计算单元可以计算
1次下的加法、减法和乘法运算。

下的乘法c=a×b的计算规则如下(其中a=a0+a1X,b=b0+b1X,c=c0+c1X,a0,
a1,b0,b1,c0,c1,X∈Fp):

v0=a0b0,v1=a1b1

c0=v0+βv1

c1=(a0+a1)(b0+b1)-v0-v1

根据下的乘法c=a×b的计算规则,计算1次下的乘法运算需要计算3次Fp下
的乘法,通过算法的合理排序,将3次Fp下的乘法分配在同一时间,可以有效避免本发明所
涉及的计算单元中的某个Fp模计算模块在执行Fp下加法、减法运算的完成运算后,浪费大量
时间等待执行其他Fp模计算模块执行Fp下乘法运算。根据合理排序后的算法,1个计算单元
在计算1次下乘法,需要的计算时间近似为m,与1个Fp模计算模块在计算Fp下乘法的时间
相同。类似的,1次下的平方运算需要计算2次Fp下的乘法,但是由于计算单元的硬件结
构,需要的计算时间近似为m。

为了计算本发明涉及的Tate配对,在算法1、2的基础上,设计了一种包含了存储模
块、计算单元、待计算数据选择器、中间结果数据选择器、访问控制模块、指令控制模块的硬
件结构,能够快速计算由BN曲线构成的Tate配对。本发明涉及的Tate配对算法的硬件结构
如图3所示:

所述存储模块,用于存储Tate配对的输入、预算值和计算的中间结果,由50个256
位寄存器组成。所述计算单元,用于根据所述指令控制模块发送过来的配置指令进行Fp下
的加法、减法、乘法、求逆运算和下的加法、减法、乘法运算;并将计算结果发送给所述中
间结果数据选择器。每个计算单元的输入为6个256位,输出为3个256位。所述待计算数据选
择器,用于根据所述访问控制模块的指令从所述存储模块中读取数据,并将其发送给所述
计算单元。所述中间结果数据选择器,用于根据所述访问控制模块的指令将收到所述中间
结果数据发送给所述存储模块;所述访问控制模块,用于根据所述指令控制模块发送过来
的控制指令,控制所述中间结果选择器和所述待计算数据选择器的数据流动。所述指令控
制模块,用于存储Tate配对算法的控制指令和配置指令,对整个Tate配对的计算的调度过
程进行控制。

本发明所涉及的Tate配对分为“Miller函数”部分(如算法1所示)和“最终模幂”部
分(如算法2所示),其中“Miller函数”部分主要包含“倍点操作”、“加点操作”。因此在分析
本发明涉及的Tate配对的计算时,分为“倍点操作”、“加点操作”、“最终模幂”三个部分来描
述指令控制模块分配2个计算单元的过程。计算过程如下:Tate配对的输入P点和Q点的坐标
转换后,存储在存储模块中,通过待计算数据选择器进入计算单元。将二进制的形式表示的
r除去最高位,然后从高位到低位依次遍历判断每一位。如果为0,则本发明所实施的电路结
构执行“倍点操作”;如果为1,则本发明所实施的电路结构先后执行“倍点操作”和“加点操
作”。当二进制的形式表示的r遍历完毕后,进入最后模幂的计算。访问控制模块根据执行的
操作不同,控制待计算数据选择器的选择存储模块中的数据进入计算单元,指定计算单元
的计算模式,并且通过控制中间结果数据选择器将计算单元的计算结果存储到存储模块的
不同位置。Tate配对的计算过程需要反复重复此过程,直到二进制的形式表示的r遍历完
毕,Tate配对算法调度方案运行完毕后得到最终的计算结果。

指令控制模块是计算Tate配对过程的核心。由于Fp下的乘法、求逆运算的时间要
远大于Fp下的加法、减法运算,指令控制模块的设计需要考虑2个计算单元的均衡,避免其
中一个计算单元在完成运算后,浪费大量时间等待另一个计算单元的情况。可以通过调度
Tate配对所需的计算,尽量把乘法、求逆运算的操作平均分配给2个计算单元。

本发明涉及的Tate配对的输入P点和Q点,分别表示如下:

P=(X,Y,Z),其中Z=1,X,Y,Z∈Fp

Q=(x,y)=(x1·u+x0,y1·u+y0),其中x0,x1,y0,y1,u∈Fp

(1)倍点操作的计算

倍点操作涉及和下的加法、减法、乘法运算,具体包括计算倍点2T,点Q
在过点T切线上的值lT,T(Q),Miller函数的平方f2,最终得到新的Miller函数值f2·lT,T(Q)。

在Jacobian坐标系下,T点表示为T=(X1,Y1,Z1),X1,Y1,Z1∈Fp,Q点表示为Q=(x,
y),则倍点2T表示为2T=(X3,Y3,Z3),其中:




过点T切线上Q点的值为

在计算2T=(X3,Y3,Z3)和lT,T(Q)时只需要Fp和下的加法、减法、乘法计算,且不
需要Fp下的求逆计算。使用1个计算单元计算2T=(X3,Y3,Z3)和lT,T(Q),如果将计算过程在1
个计算单元中的3个Fp模计算模块中合理分配,只需要6m的时间。

计算f2的时候,涉及下的平方运算,此时γ为表1中的符号,其计算公式如下:。

v=f0·f1

c0=(f0+f1)(f0+γf1)-v-γv

c1=2v

在这里v,c0,则计算1个下的平方,需要2个下的乘法。进一步化简
下的乘法c=a×b,其计算公式如下(在这里a0,a1,b0,b1,c0,c1,):

v0=a0b0,v1=a1b1,v2=a2b2

c0=v0+ξ[(a1+a2)(b1+b2)-v1-v2]

c1=(a0+a1)(b0+b1)-v0-v1+ξv2

c2=(a0+a2)(b0+b2)-v0+v1-v2

在计算下的乘法只涉及下的加法、减法、乘法运算,且不需要Fp下的求逆计
算。使用1个计算单元计算下的乘法,需要6m的时间;如果使用1个计算单元计算下的
乘法,只需要3m的时间。

在本发明的实施例中,将下的平方运算中的计算v=f0·f1的部分和计算2T=
(X3,Y3,Z3)和lT,T(Q)分别并行使用1个计算单元,计算开销为6m时间。将下的平方运算中
的剩余部分使用2个计算单元,计算开销为3m时间。因此计算2T=(X3,Y3,Z3),lT,T(Q)和
下f2,共需要的时间开销为9m。

lT,T(Q)可以表示为(l0+l1v)+(l2v)w的形式,其中l0∈Fp,根据塔域扩张
的构造,可以得到f·lT,T(Q)=[(f0,0+f0,1v+f0,2v2)+(f1,0+f1,1v+f1,2v2)w]·[(l0+l1v)+(l2v)
w],涉及下的加法、减法、乘法运算,且不需要Fp下的求逆计算。使用
Karatsuba算法来计算1次下的乘法需要18次Fp下的乘法运算,但是由于lT,T(Q)的表示形
式,只需要14次或9次Fp下的乘法运算。因此f·lT,T(Q)计算使用2个计算单元,计算开销为
7m时间。

因此,倍点操作的计算开销为16m时间。

(2)加点操作的计算

倍点操作涉及和下的加法、减法、乘法运算,具体包括计算加点T+P,点
Q在过点T和P割线上的值lT,P(Q),最终得到新的Miller函数值f·lT,P(Q)。

在Jacobian坐标系下,T=(X1,Y1,Z1),P=(X2,Y2),则加点T+P=(X3,Y3,Z3),其中:




点Q在过点T和P割线上的值

在计算T+P=(X3,Y3,Z3)和lT,P(Q)时只需要Fp和下的加法、减法、乘法计算,且不
需要Fp下的求逆计算,使用2个计算单元的开销为5m时间。

计算f·lT,P(Q)的方式和f·lT,T(Q)相同,使用相同的指令,因此使用2个计算单
元,计算开销为7m时间。

因此,加点操作的计算开销为12m时间。

(3)最终模幂的计算

最终模幂的计算即其中(p12-1)/r可以化简为(p6-1)×(p2+1)×[(p4-p2
+1)/r],因此计算最终模幂的算法如算法2所示。

的计算,其中f=f0+f1w,利用塔域扩
张的特性和共轭的性质,只需要进行1次下的减法运算。f-1的计算,即
下的求逆运算,需要将f-1=(f0+f1w)-1,化简如下(其中γ如表1所示):

t1=(f0)2,t2=(f1)2,t3=t1-γt2

(f0+f1w)-1=(f0-f1w)/t3

注意到1次下的求逆运算,经过分解后,还包括一次下的求逆运算,需要继
续分解计算。当a=a0+a1Y+a2Y2,其中则a-1化简如下(ξ如表1所示):

A=(a0)2-ξa1a2,B=ξ(a2)2-a0a1,C=(a1)2-a0a2

F=ξa1C+a0A+ξa2B

(a0+a1Y+a2Y2)-1=(A+BY+CY2)/F

注意到1次下的求逆运算,经过分解后,还包括一次下的求逆运算,需要继续
分解计算。当a=a0+a1X,其中a0,a1∈Fp,则化简如下(β如表1所
示):

t1=(a0)2,t2=(a1)2,t3=t1-βt2


最终将1次下的求逆运算,化简为Fp下的求逆运算,可以使用2个Fp模逆计算模
块进行计算。最终的计算使用2个计算单元,通过复杂的分配过程,计算开销为26m+i时
间。

本发明实施例指定的BN曲线的参数z=6000000000001F2D(16进制表示)。根据给
定的z,可以得到256位的素数p=36z4+36z3+24z2+6z+1,其汉明重量为87。BN曲线上的点群
的阶r=#E(Fp),为256位的素数r=36z4+36z3+18z2+6z+1,其汉明重量为91。记BN曲线在Fp上
的迹为128位整数t-1=p-r=6z2+1,其汉明重量为28。因此在“Miller函数”部分中,循环了
255次,其中“倍点操作”进行255次,“加点操作”进行90次。本发明涉及的Tate配对的计算的
分配和计算开销总结如表2所示:

表2 Tate配对的计算步骤的开销


实施例1:给定P点(Px,Py),Q点(Qx0+Qx1X,Qy0+Qy1X),其参数如下:

px=256'h2143C691B939B083FA432FC11029B2C86419AD996EF3A9F18D8BB21EF0FA
A579;

py=256'h0143C3B68566CF29320AAC944ED681BF637EBF03C9D7BDE500BC7F3C4A4A
96A6;

qx0=256'h00C98F7F98435DA150E2CA69E424F4B01690FFE458DF62BF7126B522A9E
0A3DE;

qx1=256'h094939C9638F88F3BF29CAAF2AE0E47CE3A7AC7CDE48372283996846363
DE23B;

qy0=256'h02891DD88F3DCF1983A81E0DDD0C4727F008FE10FAEC54B5663D529E048
9510C;

qy1=256'h03A29EAD0874C26E9E0E9195F54089F0CB77791252D1ED496225D0772AA
D87DB;

经过本发明涉及的一种Tate配对算法的调度方案及其硬件实现,得到tr(P,Q),其
结构如下:

tr(P,Q)={[(f121,f120),(f111,f110),(f101,f100)],{(f021,f020),(f011,
f010),(f001,f000)]}

f000<=`TD 256'h2031e4e671cdb52414589124a98b72720010f92054808a252ad5f
7936e9f6bee;

f001<=`TD 256'h07c8777f8f6a138b075d25b0eed2c7db6d04882dc2df922b8e99e
6b19e5b3ee3;

f010<=`TD 256'h211c3d1aa60ce0f2843efe8451a68def9a8b81825e5100e38858b
5fbf10fcbb7;

f011<=`TD 256'h0060c96b240747adb2b80f4809486dba1f8e46dc232e13662f783
645e4fa3136;

f020<=`TD 256'h21ec35365bc32b17b0917a258f8bf6938437ad766550684f314b3
9aaeaf5467b;

f021<=`TD 256'h16ef01ba1de023aeb1d12ab79c412b18a99d805ec8e6120bdf401
7e985d9be8b;

f100<=`TD 256'h22c8a1da6113d7acc2479798ed95983f278a039563d700348d51a
1a6b3b9f38e;

f101<=`TD 256'h06bf6d607b4e12c6e3e2b7eb645a38c12bb7f512114da0df58595
4c8e5c4ed75;

f110<=`TD 256'h064f0663ef6fdae79f3408838142bd2252d141d9a75b6a8df5d7a
10824bb7736;

f111<=`TD 256'h14114b44012f864e47695d699a8329af0984cbcfe7faa92da4b4f
dc002294bd9;

f120<=`TD 256'h1f67eadf2c91c8d0d16cb86599161196d19882cfebc56e4bcb09d
a29085e6c10;

f121<=`TD 256'h0b2ec8c65440771a0c4ba14a791ac4bed71b146df7472d3d1318d
800adc712c3;

tr(P,Q)6的计算结果如下:

f000<=`TD 256'h21ae1b053aa1cc642460200a76b816eb4bbf8297572823f5d3d17
dd3d68eb6f7;

f001<=`TD 256'h0282cb0db37a24bd1863e43933cf17ea5a6b5b4da4c19fd3ab5b3
eb550981995;

f010<=`TD 256'h17cfb9c563d74abb273367868805a7dc44d4574a8cb4ec9279946
775cbdf266c;

f011<=`TD 256'h0076bd18b770f4ac51f7ae63e45e224c0ee24d7a6a47ce184de2c
9dd44d46257;

f020<=`TD 256'h02c83ea01204be61d53307a127271ece378d92ce22acb17b67c10
3f69af2bdec;

f021<=`TD 256'h13ff7ba1e40effba213b5346dd91e089b7391e91ed750ea6380e8
08cca4c06a5;

f100<=`TD 256'h1c800b055f15f265172c9034eb2a467cb7651d9686e0f07017f39
7c92264595e;

f101<=`TD 256'h193a925f7d2a8023441ff0f88c844a76717bdffbbc06259f73200
dd67def3c5c;

f110<=`TD 256'h23c8b3b3cc394b67567ce984285fb1d4c343a720747e3a3c61c4b
29fb4d93b10;

f111<=`TD 256'h1cda93571d14132ae8275ff6c3666065a7ae9af0c3675c33663e8
607c7ebe4c9;

f120<=`TD 256'h1ebf4311ed7403e5436edcaacbd3d90e8e886bac72fe393aed6bb
4eb9b47452f;

f121<=`TD 256'h14420203ac33c1a6991c2b1bf83ea67791d1c1c1c017b8fa949db
dc4b641255d;

tr(2P,3Q)的计算结果如下:

f000<=`TD 256'h21ae1b053aa1cc642460200a76b816eb4bbf8297572823f5d3d17
dd3d68eb6f7;

f001<=`TD 256'h0282cb0db37a24bd1863e43933cf17ea5a6b5b4da4c19fd3ab5b3
eb550981995;

f010<=`TD 256'h17cfb9c563d74abb273367868805a7dc44d4574a8cb4ec9279946
775cbdf266c;

f011<=`TD 256'h0076bd18b770f4ac51f7ae63e45e224c0ee24d7a6a47ce184de2c
9dd44d46257;

f020<=`TD 256'h02c83ea01204be61d53307a127271ece378d92ce22acb17b67c10
3f69af2bdec;

f021<=`TD 256'h13ff7ba1e40effba213b5346dd91e089b7391e91ed750ea6380e8
08cca4c06a5;

f100<=`TD 256'h1c800b055f15f265172c9034eb2a467cb7651d9686e0f07017f39
7c92264595e;

f101<=`TD 256'h193a925f7d2a8023441ff0f88c844a76717bdffbbc06259f73200
dd67def3c5c;

f110<=`TD 256'h23c8b3b3cc394b67567ce984285fb1d4c343a720747e3a3c61c4b
29fb4d93b10;

f111<=`TD 256'h1cda93571d14132ae8275ff6c3666065a7ae9af0c3675c33663e8
607c7ebe4c9;

f120<=`TD 256'h1ebf4311ed7403e5436edcaacbd3d90e8e886bac72fe393aed6bb
4eb9b47452f;

f121<=`TD 256'h14420203ac33c1a6991c2b1bf83ea67791d1c1c1c017b8fa949db
dc4b641255d;

经验证tr(2P,3Q)=tr(P,Q)6,这说明本发明涉及的一种Tate配对算法的调度方案
及其硬件实现能够正确的计算Tate配对。

一种TATE配对的实现方法及其电路结构.pdf_第1页
第1页 / 共16页
一种TATE配对的实现方法及其电路结构.pdf_第2页
第2页 / 共16页
一种TATE配对的实现方法及其电路结构.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《一种TATE配对的实现方法及其电路结构.pdf》由会员分享,可在线阅读,更多相关《一种TATE配对的实现方法及其电路结构.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明公开了一种Tate配对的实现方法及其电路结构。本发明的电路结构中指令控制模块,用于存储Tate配对算法的控制指令和配置指令,对整个Tate配对计算的调度过程进行控制;存储模块,用于存储Tate配对的输入、预算值和计算的中间结果;待计算数据选择器,用于根据控制指令从存储模块中读取数据,并将其发送给计算单元;计算单元,用于根据配置指令进行Fp、下的运算并将计算结果发送给中间结果数据选择器;中间结。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1