一种基于查找树的复合有限域求逆装置的制作方法

文档序号:14119962阅读:210来源:国知局

本发明涉及计算机技术领域,尤其涉及一种基于查找树的复合有限域求逆装置。



背景技术:

有限域求逆属于有限域运算,与有限域加法、乘法、除法、平方、乘方等运算一起被密码算法广泛使用。复合有限域属于有限域,复合有限域求逆的特点是需要进行子域的运算。常用的复合有限域是gf((2n)2),域的大小是(2n)2,它的子域是gf(2n)。gf((2n)2)的求逆运算一般需要子域gf(2n)的加法、乘法、求逆等运算。因为复合有限域是gf((2n)2)求逆包含子域gf(2n)运算,所以通过优化gf(2n)运算可以提升gf((2n)2)的求逆效率。

现有技术中的复合有限域求逆器在实时和对速度敏感的环境下,无法实现有限域求逆所要达到的运算效率。



技术实现要素:

本发明针对现有技术中存在的问题,提供了一种基于查找树的复合有限域求逆装置,能够有效提高有限域求逆的运算效率。

本发明就上述技术问题而提出的技术方案如下:

本发明提供一种基于查找树的复合有限域求逆装置,包括控制器、输入端口、输出端口和运算器;

所述输入端口用于输入复合有限域gf((2n)2)的求逆运算数a(x);

所述控制器用于调用所述运算器对所述求逆运算数a(x)进行求逆运算,获得复合有限域gf((2n)2)的求逆运算结果b(x);

所述运算器用于运行加法运算、乘法运算、平方运算和基于查找树的求逆运算;

所述输出端口用于输出所述求逆运算结果b(x)。

进一步地,所述求逆运算数a(x)的多项式表示形式为a(x)=ahx+al;

所述求逆运算结果b(x)的多项式表示形式为b(x)=bhx+bl;b(x)=a(x)-1

其中,ah,al,bh,bl均为有限域gf(2n)的元素。

进一步地,所述运算器包括加法运算模块、乘法运算模块、平方运算模块和求逆运算模块;

所述输入端口还用于输入时钟信号;

所述控制器具体用于在第一个时钟周期,调用所述加法运算模块计算s0=ah+al,调用所述平方运算模块计算s1=ah2,调用所述乘法运算模块计算s3=ah×al;

在第二个时钟周期,调用所述平方运算模块计算s2=al2,调用所述乘法运算模块计算s4=s1×e;

在第三个时钟周期,调用所述加法运算模块计算s5=s4+s3;

在第四个时钟周期,调用所述加法运算模块计算s6=s5+s2;

在第五个时钟周期,调用所述求逆运算模块计算s7=s6-1

在第六个时钟周期,调用所述乘法运算模块计算bl=s0×s7;

在第七个时钟周期,调用所述乘法运算模块计算bh=ah×s7,进而计算b(x)=bhx+bl;

其中,s0,ah,s1,al,s2,s3,s4,s5,s6,s7,bl,bh均为有限域gf(2n)的元素,e为有限域gf(2n)的常数。

进一步地,所述加法运算模块包括n个异或逻辑门,用于针对有限域gf(2n)的两个已知元素c(x)和d(x),计算ei=ci+di,进而获得加法运算结果

其中,c(x)=cn-1xn-1+cn-2xn-2+...+c0,d(x)=dn-1xn-1+dn-2xn-2+...+d0,e(x)=en-1xn-1+en-2xn-2+...+e0,i=0,1,...,n-1,n≥1,+是有限域gf(2n)的加法运算,cn-1,cn-2,...,c0,dn-1,dn-2,...,d0,en-1,en-2,...,e0均为有限域gf(2n)的元素。

进一步地,所述乘法运算模块包括多个与逻辑门和异或逻辑门,用于针对有限域gf(2n)的两个已知元素c(x)和d(x),计算j=0,1,...,2n-2,进而计算i=0,1,...,n-1,n≥1,获得乘法运算结果

其中,c(x)=cn-1xn-1+cn-2xn-2+...+c0,d(x)=dn-1xn-1+dn-2xn-2+...+d0,e(x)=en-1xn-1+en-2xn-2+...+e0,mod为模运算,p(x)=xn+pn-1xn-1+...+1为有限域gf(2n)的不可约多项式,pn-1,pn-2,...,p1,vjl,cl,dk,sj,ei,vji均为有限域gf(2n)的元素。

进一步地,所述平方运算模块包括多个与逻辑门和异或逻辑门,用于针对有限域gf(2n)的已知元素c(x),计算j=0,1,...,2n-2,进而计算i=0,1,...,n-1,n≥1,获得平方运算结果

其中,c(x)=cn-1xn-1+cn-2xn-2+...+c0,e(x)=en-1xn-1+en-2xn-2+...+e0,mod为模运算,p(x)=xn+pn-1xn-1+...+1为有限域gf(2n)的不可约多项式,pn-1,pn-2,...,p1,vjl,cl,ck,sj,ei,vji均为有限域gf(2n)的元素。

进一步地,所述求逆运算模块包括多个与逻辑门和异或逻辑门,用于针对有限域gf(2n)的已知元素c(x),基于查找树计算e(x)=c(x)-1

其中,c(x)=cn-1xn-1+cn-2xn-2+...+c0,e(x)=en-1xn-1+en-2xn-2+...+e0,cn-1,cn-2,...,c0,en-1,en-2,...,e0均为有限域gf(2n)的元素。

进一步地,所述求逆运算模块具体用于构建两颗查找树,每颗查找树具有n层,分别对应第0层至第n-1层;每棵查找树的第0层分别具有一个树节点,一个设为左节点,另一个设为右节点;从第0层到第n-2层,每一层的每个树节点具有两个子节点,分别设为左节点和右节点并作为下一层的树节点;其中,左节点代表数值0,右节点代表数值1;

对于c(x)=cn-1xn-1+cn-2xn-2+...+c0,从c0开始,根据c0的值对第0层的两个树节点进行标记,若c0的值为0,则标记两个树节点中的左节点,若为1,则标记两个树节点中的右节点,从而获得第0层标记节点;

根据c1的值对第0层标记节点所具有的两个子节点进行标记,若c1的值为0,则标记两个子节点中的左节点,若c1的值为1,则标记两个子节点中的右节点,从而获得第1层标记节点;

依次对每一层进行标记,直到获得第n-1层标记节点;

若所述第n-1层标记节点与第n-1层的另一个树节点相连,则判定c(x)有逆元;

判断相连的树节点是左节点还是右节点,若是左节点则设置en-1=0,若是右节点则设置en-1=1;

判断相连的树节点所属的第n-2层的树节点是左节点还是右节点,若是左节点则设置en-2=0,若是右节点则设置en-2=1;

依次对每一层进行判断,直到设置出e0的值,从而获得求逆运算结果

本发明实施例提供的技术方案带来的有益效果是:

在复合有限域求逆运算中,基于查找树进行求逆运算,相对于现有技术中的有限域求逆器,有效提高运算效率,可广泛应用于对称加密(如des、aes),公钥密码和rainbow、tts、uov签名等数学领域和工程领域。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于查找树的复合有限域求逆装置的有限域乘法器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种基于查找树的复合有限域求逆装置,参见图1,包括控制器1、输入端口、输出端口b和运算器;

所述输入端口包括端口a,用于输入复合有限域gf((2n)2)的求逆运算数a(x);

所述控制器1用于调用所述运算器对所述求逆运算数a(x)进行求逆运算,获得复合有限域gf((2n)2)的求逆运算结果b(x);

所述运算器用于运行加法运算、乘法运算、平方运算和基于查找树的求逆运算;

所述输出端口b用于输出所述求逆运算结果b(x)。

其中,控制器分别与输入端口、输出端口、运算器连接,用于调度相连接的部件。输入端口包括端口a,用于输入复合有限域gf((2n)2)的求逆运算数a(x),输出端口包括端口b,用于输出复合有限域gf((2n)2)的求逆运算结果b(x)。

进一步地,所述求逆运算数a(x)的多项式表示形式为a(x)=ahx+al;

所述求逆运算结果b(x)的多项式表示形式为b(x)=bhx+bl;b(x)=a(x)-1

其中,ah,al,bh,bl均为有限域gf(2n)的元素。

需要说明的是,gf((2n)2)的不可约多项式是q(x)=x2+x+e,e是有限域gf(2n)的常数。求逆运算数a(x)由两个n比特的数组成,可以表示为多项式形式,也可表示成系数的形式,如a(x)=a(ah,al),ah,al是有限域gf(2n)的元素。求逆运算结果b(x)的由两个n比特的数组成,可以表示成多项式的形式,也可表示成系数的形式,如b(x)=b(bh,bl),bh,bl是有限域gf(2n)的元素。

进一步地,所述运算器包括加法运算模块2、乘法运算模块3、平方运算模块4和求逆运算模块5;

所述输入端口还包括端口clk,用于输入时钟信号;

所述控制器1具体用于在第一个时钟周期,调用所述加法运算模块计算s0=ah+al,调用所述平方运算模块计算s1=ah2,调用所述乘法运算模块计算s3=ah×al;

在第二个时钟周期,调用所述平方运算模块计算s2=al2,调用所述乘法运算模块计算s4=s1×e;

在第三个时钟周期,调用所述加法运算模块计算s5=s4+s3;

在第四个时钟周期,调用所述加法运算模块计算s6=s5+s2;

在第五个时钟周期,调用所述求逆运算模块计算s7=s6-1

在第六个时钟周期,调用所述乘法运算模块计算bl=s0×s7;

在第七个时钟周期,调用所述乘法运算模块计算bh=ah×s7,进而计算b(x)=bhx+bl;

其中,s0,ah,s1,al,s2,s3,s4,s5,s6,s7,bl,bh均为有限域gf(2n)的元素,e为有限域gf(2n)的常数。

需要说明的是,控制器1分别与加法运算模块4、第一乘法运算模块5、第二乘法运算模块6、第一平方运算模块7、第二平方运算模块8和求逆运算模块9连接。输入端口还包括端口clk,用于输入时钟信号。控制器还用于解析所述时钟信号。时钟信号是单比特信号,取值是0或1,代表低电平或高电平,低电平转向高电平代表一个时钟周期的开始。加法运算模块包括用于计算gf(2n)加法的逻辑门电路;乘法运算模块包括用于计算gf(2n)乘法的逻辑门电路;平方运算模块包括用于计算gf(2n)平方的逻辑门电路;求逆运算模块包括用于计算gf(2n)求逆的查找结构。

进一步地,所述加法运算模块包括n个异或逻辑门,用于针对有限域gf(2n)的两个已知元素c(x)和d(x),计算ei=ci+di,进而获得加法运算结果

其中,c(x)=cn-1xn-1+cn-2xn-2+...+c0,d(x)=dn-1xn-1+dn-2xn-2+...+d0,e(x)=en-1xn-1+en-2xn-2+...+e0,i=0,1,...,n-1,n≥1,+是有限域gf(2n)的加法运算,cn-1,cn-2,...,c0,dn-1,dn-2,...,d0,en-1,en-2,...,e0均为有限域gf(2n)的元素。

需要说明的是,有限域gf(2n)的加法使用异或逻辑门,因此加法运算模块包括n个异或逻辑门,用于计算gf(2n)的两个已知元素c(x)和d(x)的加法e(x)=c(x)+d(x)。在具体运行时,对于i=0,1,...,n-1,计算ei=ci+di,即可获得加法运算结果

进一步地,所述乘法运算模块包括多个与逻辑门和异或逻辑门,用于针对有限域gf(2n)的两个已知元素c(x)和d(x),计算j=0,1,...,2n-2,进而计算i=0,1,...,n-1,n≥1,获得乘法运算结果

其中,c(x)=cn-1xn-1+cn-2xn-2+...+c0,d(x)=dn-1xn-1+dn-2xn-2+...+d0,e(x)=en-1xn-1+en-2xn-2+...+e0,mod为模运算,p(x)=xn+pn-1xn-1+...+1为有限域gf(2n)的不可约多项式,pn-1,pn-2,...,p1,vjl,cl,dk,sj,ei,vji均为有限域gf(2n)的元素。

需要说明的是,有限域gf(2n)的加法使用异或逻辑门、乘法使用与逻辑门,因此乘法运算模块包含多个与逻辑门和异或逻辑门,用于计算gf(2n)的两个已知元素c(x)和d(x)的乘法e(x)=c(x)×d(x)。在具体运行时,对于j=0,1,...,2n-2,计算对于i=0,1,...,n-1,计算最后获得乘法运算结果

进一步地,所述平方运算模块包括多个与逻辑门和异或逻辑门,用于针对有限域gf(2n)的已知元素c(x),计算j=0,1,...,2n-2,进而计算i=0,1,...,n-1,n≥1,获得平方运算结果

其中,c(x)=cn-1xn-1+cn-2xn-2+...+c0,e(x)=en-1xn-1+en-2xn-2+...+e0,mod为模运算,p(x)=xn+pn-1xn-1+...+1为有限域gf(2n)的不可约多项式,pn-1,pn-2,...,p1,vjl,cl,ck,sj,ei,vji均为有限域gf(2n)的元素。

需要说明的是,有限域gf(2n)的加法使用异或逻辑门、乘法使用与逻辑门,因此乘法运算模块包含多个与逻辑门和异或逻辑门,用于计算gf(2n)的已知元素c(x)的平方e(x)=c(x)2。在具体运行时,对于j=0,1,...,2n-2,计算对于i=0,1,...,n-1,计算最后获得平方运算结果

进一步地,所述求逆运算模块包括多个与逻辑门和异或逻辑门,用于针对有限域gf(2n)的已知元素c(x),基于查找树计算e(x)=c(x)-1

其中,c(x)=cn-1xn-1+cn-2xn-2+...+c0,e(x)=en-1xn-1+en-2xn-2+...+e0,cn-1,cn-2,...,c0,en-1,en-2,...,e0均为有限域gf(2n)的元素。

进一步地,所述求逆运算模块具体用于构建两颗查找树,每颗查找树具有n层,分别对应第0层至第n-1层;每棵查找树的第0层分别具有一个树节点,一个设为左节点,另一个设为右节点;从第0层到第n-2层,每一层的每个树节点具有两个子节点,分别设为左节点和右节点并作为下一层的树节点;其中,左节点代表数值0,右节点代表数值1;

对于c(x)=cn-1xn-1+cn-2xn-2+...+c0,从c0开始,根据c0的值对第0层的两个树节点进行标记,若c0的值为0,则标记两个树节点中的左节点,若为1,则标记两个树节点中的右节点,从而获得第0层标记节点;

根据c1的值对第0层标记节点所具有的两个子节点进行标记,若c1的值为0,则标记两个子节点中的左节点,若c1的值为1,则标记两个子节点中的右节点,从而获得第1层标记节点;

依次对每一层进行标记,直到获得第n-1层标记节点;

若所述第n-1层标记节点与第n-1层的另一个树节点相连,则判定c(x)有逆元;

判断相连的树节点是左节点还是右节点,若是左节点则设置en-1=0,若是右节点则设置en-1=1;

判断相连的树节点所属的第n-2层的树节点是左节点还是右节点,若是左节点则设置en-2=0,若是右节点则设置en-2=1;

依次对每一层进行判断,直到设置出e0的值,从而获得求逆运算结果

需要说明的是,每棵树的第0层的树节点为根节点,一棵树的根节点设为左根节点,另一棵树的根节点设为右根节点。从第0层到第n-2层,每一层的每个树节点具有两个子节点作为下一层的树节点,例如,第0层的两个根节点分别具有两个子节点作为第1层的树节点,因此第1层具有4个树节点。第n-1层中的树节点为叶子节点。每一条从根节点开始到叶子节点结束的路径分别代表一个gf(2n)的元素。例如,从左根节点开始,到其两个子节点的左节点,直到最左边的叶子节点结束(第n-1层的最左边的节点)的路径代表gf(2n)的元素(00...00)2。

若gf(2n)的求逆e(x)=c(x)-1,并且从第0层到第n-1层的节点nt的路径代表gf(2n)的元素c(x),从第0层到第n-1层的节点nk的路径代表gf(2n)的元素e(x),则第n-1层的节点nk与nt相连。因此,求逆运算模块的运行过程如下:

首先,对于c(x)=cn-1xn-1+cn-2xn-2+...+c0,判断c0的值是0还是1,若为0,则标记左根节点,反之则标记右根节点;

接着,查找第0层标记的根节点具有两个子节点,判断c1的值是0还是1,若为0,则标记左节点,反之则标记右节点;

接下来往下每一层都依据这样的判断方法标记节点,直到第n-1层,标记某个叶子节点;

若标记的叶子节点与另一个叶子节点相连,则c(x)有逆元,标记这个相连的叶子节点;

若这个叶子节点是左节点,则en-1=0,若这个叶子节点是右节点,则en-1=1;

若这个叶子节点的父亲节点(即该叶子节点所属的树节点)是左节点,则en-2=0,若这个叶子节点的父亲节点是右节点,则en-2=1;

接下来往上每一层都依据这样的判断方法计算ei的值,直到第0层为止;

最后,是e(x)=c(x)-1的运算结果。

下面以n=4为例说明本发明实施例提供的复合有限域求逆装置的工作过程。

输入端口的运算数a(x)是复合有限域gf((24)2)的元素,可以表示成多项式的形式:

a(x)=ahx+al,

ah,al是有限域gf(24)的元素。

输出端口的运算数b(x)是复合有限域gf((24)2)的元素,可以表示成多项式的形式:

b(x)=bhx+bl,

bh,bl是有限域gf(24)的元素。

输入端口的时钟信号clk是单比特信号,时钟周期是20纳秒。

控制器用于调度其他部件,计算gf((24)2)的b(x)=a(x)-1的求逆,其中gf((24)2)的不可约多项式是q(x)=x2+x+9,步骤如下:

首先,第一个时钟周期,调用加法运算模块计算s0=ah+al,s0,ah,al是有限域gf(24)的元素;

调用平方运算模块计算s1=ah2,s1,ah是有限域gf(24)的元素;

调用乘法运算模块计算s3=ah×al,s3,ah,al是有限域gf(24)的元素;

接着,第二个时钟周期,调用平方运算模块计算s2=al2,s2,al是有限域gf(24)的元素;

调用乘法运算模块计算s4=s1×e,s4,s1,e是有限域gf(24)的元素;

然后,第三个时钟周期,调用加法运算模块计算s5=s4+s3,s5,s4,s3是有限域gf(24)的元素;

接着,第四个时钟周期,调用加法运算模块计算s6=s5+s2,s6,s5,s2是有限域gf(24)的元素;

然后,第五个时钟周期,调用求逆运算模块计算s7=s6-1,s7,s6是有限域gf(24)的元素;

接着,第六个时钟周期,调用乘法运算模块计算bl=s0×s7,bl,s0,s7是有限域gf(24)的元素;

然后,第七个时钟周期,调用乘法运算模块计算bh=ah×s7,bl,ah,s7是有限域gf(24)的元素;

最后,b(x)=bhx+bl是a(x)=ahx+al的逆元。

本发明实施例在复合有限域求逆运算中,基于查找树进行求逆运算,相对于现有技术中的有限域求逆器,有效提高运算效率,可广泛应用于对称加密(如des、aes),公钥密码和rainbow、tts、uov签名等数学领域和工程领域。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1