CN108897526B - 一种基于多次平方运算的复合有限域求逆器及其求逆方法 - Google Patents
一种基于多次平方运算的复合有限域求逆器及其求逆方法 Download PDFInfo
- Publication number
- CN108897526B CN108897526B CN201810698830.4A CN201810698830A CN108897526B CN 108897526 B CN108897526 B CN 108897526B CN 201810698830 A CN201810698830 A CN 201810698830A CN 108897526 B CN108897526 B CN 108897526B
- Authority
- CN
- China
- Prior art keywords
- layer
- node
- finite field
- array module
- port
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于多次平方运算的复合有限域求逆器,包括运算控制器、输入端口、输出端口、加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块,所述运算控制器分别与输入端口、输出端口、加法运算阵列模块、乘法运算阵列模块和平方运算阵列模块连接。本发明还公开了基于上述多次平方运算的复合有限域求逆器的复合有限域求逆方法。本发明通过多次平方运算实现了复合有限域的求逆运算,在计算GF((2n)2)的求逆运算相对于现有的有限域求逆器能够提高效率,可以广泛运用于各种工程领域。
Description
技术领域
本发明涉及对有限域的元素进行求逆的装置,特别涉及一种基于多次平方运算的复合有限域求逆器及其求逆方法。
背景技术
复合有限域是有限域的一类,包括复合有限域加法、乘法、求逆、平方、乘方、除法等。GF((2n)2)是常用的复合有限域的一种形式,它的大小是(2n)2,它的子域是GF(2n)。GF((2n)2)的运算被广泛应用在密码系统、通信系统和编码中。其中,GF((2n)2)的求逆运算是一项非常耗时和耗费资源的运算,影响它的广泛应用。
设计高效的GF((2n)2)的求逆运算结构可以优化求逆运算。另外,因为复合有限域GF((2n)2)求逆包含子域GF(2n)的运算,所以通过优化GF(2n)运算可以提升GF((2n)2)的求逆效率。现有技术中存在的复合有限域求逆器较少基于多次平方运算来实现求逆。在实时和对速度敏感的环境下,使用基于乘方运算的复合有限域求逆器来实现有限域求逆可以提高运算效率。
发明内容
为了克服现有技术的上述缺点与不足,本发明的目的在于提供一种基于多次平方运算的复合有限域求逆器,在计算GF((2n)2)的求逆运算相对于现有的有限域求逆器能够提高效率,可以广泛运用于各种工程领域。
本发明的目的通过以下技术方案实现:
一种基于多次平方运算的复合有限域求逆器,包括:
运算控制器,用于控制输入输出和调用与其相连的部件计算有限域GF((2n)2);
输入端口,包括用于输入复合有限域GF((2n)2)的求逆运算数a(x)的端口a、用于输入时钟信号t的端口clk、用于输入复合有限域GF((2n)2)的不可约多项式q(x)的端口q和用于输入子域GF(2n)的不可约多项式p(x)的端口p;
输出端口,包括用于输出复合有限域GF((2n)2)的求逆运算结果b(x)的端口b;
加法运算阵列模块,用于计算多个子域GF(2n)加法;
乘法运算阵列模块,用于计算多个子域GF(2n)乘法;
平方运算阵列模块,用于计算多个子域GF(2n)平方;
所述运算控制器分别与输入端口、输出端口、加法运算阵列模块、乘法运算阵列模块和平方运算阵列模块连接。
所述输入端口的运算数a(x)由两个n比特的数ah,al组成,表示成多项式的形式:
a(x)=ahx+al,
ah,al是有限域GF(2n)的元素;
所述输入端口的运算数a(x)表示成系数的形式:
a(x)=a(ah,al),
ah,al是有限域GF(2n)的元素;
所述输入端口的时钟信号t是单比特信号,取值是0或1,代表低电平或高电平;低电平转向高电平代表一个时钟周期的开始;
所述输入端口的复合有限域GF((2n)2)的不可约多项式q(x),表示成多项式的形式:
q(x)=x2+x+e,
e是有限域GF(2n)的常数;
所述输入端口的子域GF(2n)的不可约多项式p(x),表示成多项式的形式:
p(x)=xn+pn-1xn-1+pn-2xn-2+...+p1x+1,
pn-1,pn-2,...,p1是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数;
所述输入端口的子域GF(2n)的元素c(x),可以表示成多项式的形式:
c(x)=cn-1xn-1+cn-2xn-2+...+c0,
cn-1,cn-2,...,c0是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数。
所述输入端口的子域GF(2n)的元素c(x),可以表示成系数的形式:
c(x)=c(cn-1,cn-2,...,c0),
cn-1,cn-2,...,c0是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数。
所述输出端口的运算数b(x)由两个n比特的数bh,bl组成,表示成多项式的形式:
b(x)=bhx+bl,
bh,bl是有限域GF(2n)的元素;
所述输出端口的运算数b(x)表示成系数的形式:
b(x)=b(bh,bl),
bh,bl是有限域GF(2n)的元素。
所述加法运算阵列模块包含多个加法查找树结构,用于计算GF(2n)的两个已知元素f(x),g(x)的加法h(x)=f(x)+g(x),其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
g(x)=gn-1xn-1+gn-2xn-2+...+g0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,gn-1,gn-2,...,g0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)+g(x)使用加法查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层,n≥1;
扩展层在查找树的叶子节点下的一层,扩展层的每个节点与三个叶子节点相连;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点代表数值0,右节点代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;
若GF(2n)的加法h(x)=f(x)+g(x),并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x),则第n-1层的节点nf和ng与扩展层的节点ns相连;若从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nh与扩展层的节点ns相连。
所述加法运算阵列模块计算h(x)=f(x)+g(x)的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,判断从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
然后,对于g(x)=gn-1xn-1+gn-2xn-2+...+g0,从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x);
若第n-1层的节点nf和ng与扩展层的节点ns相连,并且第n-1层的节点nh与扩展层的节点ns相连,则从第0层到第n-1层的节点nh的路径代表的GF(2n)的元素是h(x)=f(x)+g(x),即是h(x)=f(x)+g(x)的运算结果。
所述乘法运算阵列模块包含多个乘法查找树结构,用于计算GF(2n)的两个已知元素f(x),g(x)的乘法h(x)=f(x)×g(x),其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
g(x)=gn-1xn-1+gn-2xn-2+...+g0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,gn-1,gn-2,...,g0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)×g(x)使用乘法查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层;
扩展层在查找树的叶子节点下的一层,扩展层的每个节点与三个叶子节点相连;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点代表数值0,右节点代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;
若GF(2n)的乘法h(x)=f(x)×g(x),并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x),则第n-1层的节点nf和ng与扩展层的节点ns相连;若从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nh与扩展层的节点ns相连。
所述乘法运算阵列模块计算h(x)=f(x)×g(x)的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,查找从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
然后,对于g(x)=gn-1xn-1+gn-2xn-2+...+g0,查找从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x);
若第n-1层的节点nf和ng与扩展层的节点ns相连,并且第n-1层的节点nh与扩展层的节点ns相连,则从第0层到第n-1层的节点nh的路径代表的GF(2n)的元素是h(x)=f(x)×g(x),即是h(x)=f(x)×g(x)的运算结果。
所述平方运算阵列模块,包含多个平方查找树结构,用于计算GF(2n)的已知元素f(x)的乘法h(x)=f(x)2,其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)2使用平方查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点代表数值0,右节点代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;例如,由左根节点开始,包括左根节点的左孩子节点、左根节点的左孩子节点的左孩子节点等节点,直到最左边的叶子节点结束的路径代表GF(2n)的元素(00...00)2;
若GF(2n)的平方h(x)=f(x)2,并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nf与节点nh相连。
所述的基于多次平方运算的复合有限域求逆器,计算h(x)=f(x)2的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,判断从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
所述基于多次平方运算的复合有限域求逆器的复合有限域求逆方法,计算GF((2n)2)的求逆b(x)=a(x)-1的步骤如下:
等待时钟信号t由低电平转向高电平;第一步,计算a′(x)=a(x)2;第二步,令b(x)=a′(x),计算a″(x)=a′(x)2;第三步,计算b(x)=b(x)a″(x),并计算a″′(x)=a″(x)2;第四步,计算b(x)=b(x)a″′(x),并计算a″″(x)=a″′(x)2;直到第2n步完成计算b(x);
计算GF((2n)2)的求逆b(x)=a(x)-1完成后,将b(x)输出至输出端口b。
与现有技术相比,本发明具有以下优点和有益效果:
本发明的基于多次平方运算的复合有限域求逆器,通过多次平方运算实现了复合有限域的求逆运算,在计算GF((2n)2)的求逆运算相对于现有的有限域求逆器能够提高效率,可以广泛运用于各种工程领域。
附图说明
图1为本发明的实施例的一种基于多次平方运算的复合有限域求逆器的结构示意图。
具体实施方式
下面结合实施例,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例
如图1所示,基于多次平方运算的复合有限域求逆器,包括:
运算控制器,用于控制输入输出和调用与其相连的部件计算有限域GF((2n)2),n≥1;
输入端口,包括用于输入复合有限域GF((2n)2)的求逆运算数a(x)的端口a、用于输入时钟信号t的端口clk、用于输入复合有限域GF((2n)2)的不可约多项式q(x)的端口q和用于输入子域GF(2n)的不可约多项式p(x)的端口p;
输出端口,包括用于输出复合有限域GF((2n)2)的求逆运算结果b(x)的端口b;
加法运算阵列模块,用于计算多个子域GF(2n)加法;
乘法运算阵列模块,用于计算多个子域GF(2n)乘法;
平方运算阵列模块,用于计算多个子域GF(2n)平方;
所述运算控制器分别与输入端口、输出端口、加法运算阵列模块、乘法运算阵列模块和平方运算阵列模块连接。
所述输入端口的运算数a(x)由两个n比特的数ah,al组成,可以表示成多项式的形式:
a(x)=ahx+al,
ah,al是有限域GF(2n)的元素。
所述输入端口的运算数a(x)可以表示成系数的形式:
a(x)=a(ah,al),
ah,al是有限域GF(2n)的元素。
所述输入端口的时钟信号t是单比特信号,取值是0或1,代表低电平或高电平;低电平转向高电平代表一个时钟周期的开始。
所述输入端口的复合有限域GF((2n)2)的不可约多项式q(x),可以表示成多项式的形式:
q(x)=x2+x+e,
e是有限域GF(2n)的常数。
所述输入端口的子域GF(2n)的不可约多项式p(x),可以表示成多项式的形式:
p(x)=xn+pn-1xn-1+pn-2xn-2+...+p1x+1,
pn-1,pn-2,...,p1是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数。
所述输入端口的子域GF(2n)的元素c(x),可以表示成多项式的形式:
c(x)=cn-1xn-1+cn-2xn-2+...+c0,
cn-1,cn-2,...,c0是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数。
所述输入端口的子域GF(2n)的元素c(x),可以表示成系数的形式:
c(x)=c(cn-1,cn-2,...,c0),
cn-1,cn-2,...,c0是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数。
所述输出端口的运算数b(x)由两个n比特的数bh,bl组成,可以表示成多项式的形式:
b(x)=bhx+bl,
bh,bl是有限域GF(2n)的元素;
所述输出端口的运算数b(x)可以表示成系数的形式:
b(x)=b(bh,bl),
bh,bl是有限域GF(2n)的元素。
所述运算控制器与输入端口相连,监听输入端口a,接收复合有限域GF((2n)2)的求逆运算数a(x)的端口a;监听输入端口clk,接收时钟信号t;监听输入端口q,接收复合有限域GF((2n)2)的不可约多项式q(x);监听输入端口p,接收子域GF(2n)的不可约多项式p(x)。
所述运算控制器与加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块相连。
所述运算控制器计算复合有限域GF((2n)2)的元素的平方,复合有限域GF((2n)2)的元素可以表示为a(x)=ahx+al,那么计算a(x)的平方的步骤如下:
等待时钟信号t由低电平转向高电平(由0变成1);第一个时钟周期,调用乘方运算阵列模块计算s0=ah 2和s1=al 2,s0,ah,s1,al是子域GF(2n)的元素;第二个时钟周期,调用乘法运算阵列模块计算s2=s0e,s2,s0,e是子域GF(2n)的元素;第三个时钟周期,调用加法运算阵列模块计算s3=s2+s1,s3,s2,s1是子域GF(2n)的元素;令b(x)=bhx+bl,bh=s0,bl=s3,bh,bl是子域GF(2n)的元素,b(x)是复合有限域GF((2n)2)的元素,则b(x)是a(x)=ahx+al的平方运算结果。
所述运算控制器计算复合有限域GF((2n)2)的两个元素的乘法,复合有限域GF((2n)2)的两个元素可以表示为a(x)=ahx+al和b(x)=bhx+bl,那么计算a(x)和b(x)的乘法的步骤如下:
等待时钟信号t由低电平转向高电平(由0变成1);第一个时钟周期,调用乘法运算阵列模块计算s0=ahbh、s1=ahbl、s2=albh和s3=albl,s0,s1,s2,s3,ah,al,bh,bl是子域GF(2n)的元素;第二个时钟周期,调用乘法运算阵列模块计算s4=s0e,调用加法运算阵列模块计算s6=s0+s1,s6,s4,s1,s0,e是子域GF(2n)的元素;第三个时钟周期,调用加法运算阵列模块计算s5=s4+s3、s7=s6+s2,s7,s6,s5,s4,s3,s2是子域GF(2n)的元素;令b(x)=bhx+bl,bh=s7,bl=s5,bh,bl是子域GF(2n)的元素,b(x)是复合有限域GF((2n)2)的元素,则b(x)是a(x)=ahx+al的乘法运算结果。
所述加法运算阵列模块,包含多个加法查找树结构,用于计算GF(2n)的两个已知元素f(x),g(x)的加法h(x)=f(x)+g(x),其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
g(x)=gn-1xn-1+gn-2xn-2+...+g0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,gn-1,gn-2,...,g0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)+g(x)使用加法查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层;
扩展层在查找树的叶子节点下的一层,扩展层的每个节点与三个叶子节点相连;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点(左根节点和左孩子节点)代表数值0,右节点(右根节点和右孩子节点)代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;例如,由左根节点开始,包括左根节点的左孩子节点、左根节点的左孩子节点的左孩子节点等节点,直到最左边的叶子节点结束(第n-1层的最左边的节点)的路径代表GF(2n)的元素(00...00)2;
若GF(2n)的加法h(x)=f(x)+g(x),并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x),则第n-1层的节点nf和ng与扩展层的节点ns相连;若从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nh与扩展层的节点ns相连;
计算h(x)=f(x)+g(x)的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,查找从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
然后,对于g(x)=gn-1xn-1+gn-2xn-2+...+g0,查找从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x);
若第n-1层的节点nf和ng与扩展层的节点ns相连,并且第n-1层的节点nh与扩展层的节点ns相连,则从第0层到第n-1层的节点nh的路径代表的GF(2n)的元素是h(x)=f(x)+g(x),即是h(x)=f(x)+g(x)的运算结果。
所述乘法运算阵列模块,包含多个乘法查找树结构,用于计算GF(2n)的两个已知元素f(x),g(x)的乘法h(x)=f(x)×g(x),其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
g(x)=gn-1xn-1+gn-2xn-2+...+g0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,gn-1,gn-2,...,g0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)×g(x)使用乘法查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层;
扩展层在查找树的叶子节点下的一层,扩展层的每个节点与三个叶子节点相连;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点(左根节点和左孩子节点)代表数值0,右节点(右根节点和右孩子节点)代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;例如,由左根节点开始,包括左根节点的左孩子节点、左根节点的左孩子节点的左孩子节点等节点,直到最左边的叶子节点结束(第n-1层的最左边的节点)的路径代表GF(2n)的元素(00...00)2;
若GF(2n)的乘法h(x)=f(x)×g(x),并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x),则第n-1层的节点nf和ng与扩展层的节点ns相连;若从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nh与扩展层的节点ns相连;
计算h(x)=f(x)×g(x)的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,判断从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
然后,对于g(x)=gn-1xn-1+gn-2xn-2+...+g0,从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x);
若第n-1层的节点nf和ng与扩展层的节点ns相连,并且第n-1层的节点nh与扩展层的节点ns相连,则从第0层到第n-1层的节点nh的路径代表的GF(2n)的元素是h(x)=f(x)×g(x),即是h(x)=f(x)×g(x)的运算结果。
所述平方运算阵列模块,包含多个平方查找树结构,用于计算GF(2n)的已知元素f(x)的乘法h(x)=f(x)2,其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)2使用平方查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点(左根节点和左孩子节点)代表数值0,右节点(右根节点和右孩子节点)代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;例如,由左根节点开始,包括左根节点的左孩子节点、左根节点的左孩子节点的左孩子节点等节点,直到最左边的叶子节点结束(第n-1层的最左边的节点)的路径代表GF(2n)的元素(00...00)2;
若GF(2n)的平方h(x)=f(x)2,并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nf与节点nh相连;
计算h(x)=f(x)2的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,判断从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
基于多次平方运算的复合有限域求逆器计算GF((2n)2)的求逆b(x)=a(x)-1的步骤如下:
等待时钟信号t由低电平转向高电平(由0变成1);第一步,计算a′(x)=a(x)2;第二步,令b(x)=a′(x),计算a″(x)=a′(x)2;第三步,计算b(x)=b(x)a″(x),并计算a″′(x)=a″(x)2;第四步,计算b(x)=b(x)a″′(x),并计算a″″(x)=a″′(x)2;直到第2n步完成计算b(x)。
所述运算控制器与输出端口相连,计算GF((2n)2)的求逆b(x)=a(x)-1完成后,将b(x)输出至输出端口b。
面以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是单比特信号,时钟周期是100纳秒;
运算控制器计算GF((24)2)的b(x)=a(x)-1的求逆,步骤如下:
运算控制器接收输入运算数a(x)、时钟信号、GF((24)2)的不可约多项式q(x)=x2+x+9,GF(24)的不可约多项式p(x)=x4+x+1,等待时钟信号t由低电平转向高电平(由0变成1);
第一步,调用加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块计算a′(x)=a(x)2;第二步,令b(x)=a′(x),调用加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块计算a″(x)=a′(x)2;第三步,调用加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块计算b(x)=b(x)a″(x)和a″′(x)=a″(x)2;第四步,调用加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块计算b(x)=b(x)a″′(x)和a″″(x)=a″′(x)2;直到第2n步完成计算b(x)。运算控制器将b(x)输出至输出端口b。
下面以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是单比特信号,时钟周期是100纳秒;
运算控制器计算GF((24)2)的b(x)=a(x)-1的求逆,步骤如下:
运算控制器接收输入运算数a(x)、时钟信号、GF((24)2)的不可约多项式q(x)=x2+x+9,GF(24)的不可约多项式p(x)=x4+x+1,等待时钟信号t由低电平转向高电平(由0变成1);
第一步,调用加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块计算a′(x)=a(x)2;第二步,令b(x)=a′(x),调用加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块计算a″(x)=a′(x)2;第三步,调用加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块计算b(x)=b(x)a″(x)和a″′(x)=a″(x)2;第四步,调用加法运算阵列模块、乘法运算阵列模块和乘方运算阵列模块计算b(x)=b(x)a″′(x)和a″″(x)=a″′(x)2;直到第2n步完成计算b(x)。运算控制器将b(x)输出至输出端口b。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (2)
1.一种基于多次平方运算的复合有限域求逆器,其特征在于,包括:
运算控制器,用于控制输入输出和调用与其相连的部件计算有限域GF((2n)2);
输入端口,包括用于输入复合有限域GF((2n)2)的求逆运算数a(x)的端口a、用于输入时钟信号t的端口clk、用于输入复合有限域GF((2n)2)的不可约多项式q(x)的端口q和用于输入子域GF(2n)的不可约多项式p(x)的端口p;
输出端口,包括用于输出复合有限域GF((2n)2)的求逆运算结果b(x)的端口b;
加法运算阵列模块,用于计算多个子域GF(2n)加法;
乘法运算阵列模块,用于计算多个子域GF(2n)乘法;
平方运算阵列模块,用于计算多个子域GF(2n)平方;
所述运算控制器分别与输入端口、输出端口、加法运算阵列模块、乘法运算阵列模块和平方运算阵列模块连接;
所述输入端口的运算数a(x)由两个n比特的数ah,al组成,表示成多项式的形式:
a(x)=ahx+al,
ah,al是有限域GF(2n)的元素;
所述输入端口的运算数a(x)表示成系数的形式:
a(x)=a(ah,al),
ah,al是有限域GF(2n)的元素;
所述输入端口的时钟信号t是单比特信号,取值是0或1,代表低电平或高电平;低电平转向高电平代表一个时钟周期的开始;
所述输入端口的复合有限域GF((2n)2)的不可约多项式q(x),表示成多项式的形式:
q(x)=x2+x+e,
e是有限域GF(2n)的常数;
所述输入端口的子域GF(2n)的不可约多项式p(x),表示成多项式的形式:
p(x)=xn+pn-1xn-1+pn-2xn-2+...+p1x+1,
pn-1,pn-2,...,p1是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数;
所述输入端口的子域GF(2n)的元素c(x),表示成多项式的形式:
c(x)=cn-1xn-1+cn-2xn-2+...+c0,
cn-1,cn-2,...,c0是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数;
所述输入端口的子域GF(2n)的元素c(x),表示成系数的形式:
c(x)=c(cn-1,cn-2,...,c0),
cn-1,cn-2,...,c0是有限域GF(2)的元素,即二进制数(0)2和(1)2中的一个数;
所述输出端口的运算数b(x)由两个n比特的数bh,bl组成,表示成多项式的形式:
b(x)=bhx+bl,
bh,bl是有限域GF(2n)的元素;
所述输出端口的运算数b(x)表示成系数的形式:
b(x)=b(bh,bl),
bh,bl是有限域GF(2n)的元素;
所述加法运算阵列模块包含多个加法查找树结构,用于计算GF(2n)的两个已知元素f(x),g(x)的加法h(x)=f(x)+g(x),其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
g(x)=gn-1xn-1+gn-2xn-2+...+g0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,gn-1,gn-2,...,g0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)+g(x)使用加法查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层,n≥1;
扩展层在查找树的叶子节点下的一层,扩展层的每个节点与三个叶子节点相连;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点代表数值0,右节点代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;
若GF(2n)的加法h(x)=f(x)+g(x),并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x),则第n-1层的节点nf和ng与扩展层的节点ns相连;若从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nh与扩展层的节点ns相连;
所述加法运算阵列模块计算h(x)=f(x)+g(x)的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,判断从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
然后,对于g(x)=gn-1xn-1+gn-2xn-2+...+g0,从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x);
若第n-1层的节点nf和ng与扩展层的节点ns相连,并且第n-1层的节点nh与扩展层的节点ns相连,则从第0层到第n-1层的节点nh的路径代表的GF(2n)的元素是h(x)=f(x)+g(x),即是h(x)=f(x)+g(x)的运算结果;
所述乘法运算阵列模块包含多个乘法查找树结构,用于计算GF(2n)的两个已知元素f(x),g(x)的乘法h(x)=f(x)×g(x),其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
g(x)=gn-1xn-1+gn-2xn-2+...+g0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,gn-1,gn-2,...,g0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)×g(x)使用乘法查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层;
扩展层在查找树的叶子节点下的一层,扩展层的每个节点与三个叶子节点相连;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点代表数值0,右节点代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;
若GF(2n)的乘法h(x)=f(x)×g(x),并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x),则第n-1层的节点nf和ng与扩展层的节点ns相连;若从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nh与扩展层的节点ns相连;
所述乘法运算阵列模块计算h(x)=f(x)×g(x)的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,查找从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
然后,对于g(x)=gn-1xn-1+gn-2xn-2+...+g0,查找从第0层到第n-1层的节点ng的路径代表GF(2n)的元素g(x);
若第n-1层的节点nf和ng与扩展层的节点ns相连,并且第n-1层的节点nh与扩展层的节点ns相连,则从第0层到第n-1层的节点nh的路径代表的GF(2n)的元素是h(x)=f(x)×g(x),即是h(x)=f(x)×g(x)的运算结果;
所述平方运算阵列模块,包含多个平方查找树结构,用于计算GF(2n)的已知元素f(x)的乘法h(x)=f(x)2,其中,
f(x)=fn-1xn-1+fn-2xn-2+...+f0,
h(x)=hn-1xn-1+hn-2xn-2+...+h0,
fn-1,fn-2,...,f0,hn-1,hn-2,...,h0是有限域GF(2)的元素;
计算h(x)=f(x)2使用平方查找树结构,描述如下:
查找树结构包含两颗查找树,每颗树包含n层,把最上面一层,即根节点所在的层称为第0层,则最下面一层,即叶子节点所在的层是第n-1层;
所有树节点除了叶子节点均有左孩子节点和右孩子节点;
左节点代表数值0,右节点代表数值1;
每一条从根节点到一个叶子节点的路径分别代表一个GF(2n)的元素;例如,由左根节点开始,包括左根节点的左孩子节点、左根节点的左孩子节点的左孩子节点等节点,直到最左边的叶子节点结束的路径代表GF(2n)的元素(00...00)2;
若GF(2n)的平方h(x)=f(x)2,并且从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x),从第0层到第n-1层的节点nh的路径代表GF(2n)的元素h(x),则第n-1层的节点nf与节点nh相连;
计算h(x)=f(x)2的步骤如下:
首先,对于f(x)=fn-1xn-1+fn-2xn-2+...+f0,判断从第0层到第n-1层的节点nf的路径代表GF(2n)的元素f(x);
2.基于权利要求1所述基于多次平方运算的复合有限域求逆器的复合有限域求逆方法,其特征在于,计算GF((2n)2)的求逆b(x)=a(x)-1的步骤如下:
等待时钟信号t由低电平转向高电平;第一步,计算a′(x)=a(x)2;第二步,令b(x)=a′(x),计算a″(x)=a′(x)2;第三步,计算b(x)=b(x)a″(x),并计算a″′(x)=a″(x)2;第四步,计算b(x)=b(x)a″′(x),并计算a″″(x)=a″′(x)2;直到第2n步完成计算b(x);
计算GF((2n)2)的求逆b(x)=a(x)-1完成后,将b(x)输出至输出端口b。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810698830.4A CN108897526B (zh) | 2018-06-29 | 2018-06-29 | 一种基于多次平方运算的复合有限域求逆器及其求逆方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810698830.4A CN108897526B (zh) | 2018-06-29 | 2018-06-29 | 一种基于多次平方运算的复合有限域求逆器及其求逆方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897526A CN108897526A (zh) | 2018-11-27 |
CN108897526B true CN108897526B (zh) | 2022-10-21 |
Family
ID=64347351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810698830.4A Active CN108897526B (zh) | 2018-06-29 | 2018-06-29 | 一种基于多次平方运算的复合有限域求逆器及其求逆方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897526B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110224829B (zh) * | 2019-06-14 | 2022-05-13 | 深圳职业技术学院 | 基于矩阵的后量子加密方法及装置 |
CN112051983B (zh) * | 2020-09-03 | 2023-08-11 | 深圳职业技术学院 | 一种基于流水线的有限域高斯约当消元装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639314A (zh) * | 2014-12-31 | 2015-05-20 | 深圳先进技术研究院 | 基于aes加密/解密算法的装置和流水控制方法 |
CN106951210A (zh) * | 2017-03-21 | 2017-07-14 | 深圳职业技术学院 | 一种基于心动阵列的有限域乘法装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200834411A (en) * | 2007-02-06 | 2008-08-16 | Univ Nat Chiao Tung | Method of accomplishing finite field divider structure |
CN102521211B (zh) * | 2011-11-17 | 2014-09-10 | 华南理工大学 | 一种求解有限域上线性方程组的并行装置 |
CN106445464B (zh) * | 2016-10-13 | 2019-04-02 | 深圳职业技术学院 | 一种基于心动模型的复合有限域乘法器 |
CN107797790B (zh) * | 2017-11-03 | 2021-07-09 | 深圳职业技术学院 | 一种基于全一不可约多项式的有限域求逆器 |
CN107994981A (zh) * | 2017-11-28 | 2018-05-04 | 哈尔滨理工大学 | 基于复合域的低熵通用高阶掩码的计算方法 |
CN108008934B (zh) * | 2017-12-04 | 2021-09-07 | 深圳职业技术学院 | 一种基于查找表的复合有限域求逆装置 |
CN107885486B (zh) * | 2017-12-04 | 2021-09-07 | 深圳职业技术学院 | 一种基于查找树的复合有限域求逆装置 |
-
2018
- 2018-06-29 CN CN201810698830.4A patent/CN108897526B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639314A (zh) * | 2014-12-31 | 2015-05-20 | 深圳先进技术研究院 | 基于aes加密/解密算法的装置和流水控制方法 |
CN106951210A (zh) * | 2017-03-21 | 2017-07-14 | 深圳职业技术学院 | 一种基于心动阵列的有限域乘法装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108897526A (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897526B (zh) | 一种基于多次平方运算的复合有限域求逆器及其求逆方法 | |
CN103942028A (zh) | 应用在密码技术中的大整数乘法运算方法及装置 | |
Gokhale et al. | Design of area and delay efficient Vedic multiplier using Carry Select Adder | |
CN100583023C (zh) | 组合多项式和自然乘法的乘法器架构 | |
CN102314330B (zh) | 一种复合有限域乘法器 | |
CN110109646A (zh) | 数据处理方法、装置和乘加器及存储介质 | |
CN102004627B (zh) | 乘法舍入实现方法和装置 | |
CN101295237A (zh) | 求商和余数的高速除法器 | |
CN107885486B (zh) | 一种基于查找树的复合有限域求逆装置 | |
CN106951210B (zh) | 一种基于心动阵列的有限域乘法装置 | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN113467754A (zh) | 一种基于分解约简的格加密模乘运算方法及架构 | |
JPH09325955A (ja) | 二乗和の平方根演算回路 | |
CN108268243B (zh) | 一种基于查找的复合域乘法装置 | |
CN108874367B (zh) | 一种基于乘方运算的复合有限域求逆器及其求逆方法 | |
CN113672196A (zh) | 一种基于单数字信号处理单元的双乘法计算装置和方法 | |
JPH05197525A (ja) | オペランドを否定するための否定方法及び否定回路 | |
CN112631546A (zh) | 基于ko-8算法的高性能模乘器 | |
JPS6186872A (ja) | たたみこみによるデイジタル信号のリアルタイム処理のための装置 | |
JP2019121171A5 (zh) | ||
TWI529614B (zh) | 用於伽羅瓦場的串列乘積累加器 | |
US20080021947A1 (en) | Triple-base number digital signal and numerical processing system | |
CN116820394B (zh) | 一种面向椭圆曲线加密算法的标量乘电路 | |
CN112051983B (zh) | 一种基于流水线的有限域高斯约当消元装置 | |
CN111610955B (zh) | 一种数据饱和加打包处理部件、芯片及设备 |
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 |