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

一种生成有限域乘法电路的方法、系统设备及介质与流程

2022-06-11 05:22:31 来源:中国专利 TAG:


1.本发明属于计算机存储领域,具体涉及一种生成有限域乘法电路的方法、系统、设备及介质。


背景技术:

2.在计算机存储领域,数据在存储和传输中往往需要用到一些编码算法,对数据进行保护或者加解密,这些算法实际实现中往往是通过惊醒额外的冗余来完成的,涉及到椭圆加密算法的一些内容,简而言之就是要确保加密的时候构造方程的系数选取有一种常用的方式就是使用范德蒙矩阵的数值作为其系数,而根据范德蒙矩阵的特性。要方程有解且解唯一,需要确保范德蒙系数的值均不相同。至此,我们得到了一个标准:构建元素均不相同的范德蒙矩阵作为系数,然后得到的方程来进行加解密或者编解码来保护需要存储的数据。
3.在实践中,上面的方法直接操作,几乎不可避免地遇到一个问题,那就是计算数据的溢出问题。这里面涉及到实际运算中需要进行的矩阵乘法的处理,将实数域运算直接应用于计算机处理数据,运算数据溢出问题是不可避免的。此时人们便将目光投向了不会产生运算数据溢出的一种数域-有限域。将运算的全部过程放在有限域中,那么溢出的问题自然就不复存在了。而且恰好这些运算过程只涉及基础的四则运算,非常适合有限域中进行处理。另外,由于有限域中的运算规则相比较于其他的一些域比如实数域更为简单,所以非常适合用于数据的运算和处理中,由于有限域不会有运算溢出问题,运算的数据和得到的结果均在有限域内,所以计算机表示起来位数可以做到固定,不会造成数据位的扩展或者减少,所以在存储领域,有限域的应用就遍地开花,成为存储处理中必要且十分重要的一环。而在具体的实现中,普遍为采用的有限域gf(2^n)。
4.而在使用有限域的方式计算数据时,即传统的有限域的处理方法多为软件实现,而软件是以查表的实现方式为主。虽然有限域的乘法运算有一些技巧可以提升运算效率,但是对于大量数据的运算来说,运算的资源消耗还是太大。
5.因此,亟需一种无需查表的硬件实现方案。


技术实现要素:

6.为解决上述问题,本发明提出一种生成有限域乘法电路的方法,包括:
7.确定参与乘法运算的数据的数据长度,并根据所述数据长度确定本原多项式;
8.将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式,并根据所述中间多项式中每一项的乘积关系生成数据扩展器电路;
9.根据所述本原多项式和所述中间多项式生成本原多项式取余电路,并将所述数据扩展器电路和所述本原多项式取余电路对应连接。
10.在本发明的一些实施方式中,将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式包括:
11.将所述数据根据数据长度按位相乘得到乘法矩阵;
12.将所述乘法矩阵根据乘法进位关系错位相加得到多个多项式;
13.将所述多个多项式作为所述中间多项式的每一项合并成中间多项式。
14.在本发明的一些实施方式中,方法还包括:
15.将所述多个多项式中的每一项数据按照先后顺序通过异或门逻辑相连生成所述扩展器电路。
16.在本发明的一些实施方式中,方法根据所述本原多项式和所述中间多项式生成本原多项式取余电路包括:
17.按照有限域计算原则将所述中间多项式中的每一项多项式除以所述本原多项式进行取余运算,并将取余运算后的多项式中的每一项数据按照先后顺序通过异或门逻辑以生成本原多项式取余电路。
18.在本发明的一些实施方式中,将所述数据在有限域内相乘得到乘法矩阵表包括:
19.将所述数据按照逆序相乘得到乘法矩阵;
20.将所述乘法矩阵根据乘法进位关系错位相加得到多个多项式;
21.将所述多个多项式作为所述中间多项式的每一项合并成中间多项式。
22.在本发明的一些实施方式中,方法还包括:
23.根据硬件电路在实际芯片的可用电路面积确定所述参与乘法运算的数据的数据长度。
24.在本发明的一些实施方式中,方法还包括:
25.根据电路面积选择本原多项式以生成所述本原多项式取余电路。
26.本发明的另一方面还提出一种生成有限域乘法电路的系统,包括:
27.初始化数据模块,所述初始化数据模块配置用于确定参与乘法运算的数据的数据长度,并根据所述数据长度确定本原多项式的长度及本原多项式;
28.数据扩展器电路生成模块,所述数据扩展器电路生成模块配置用于将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式,并根据所述中间多项式中每一项的乘积关系生成数据扩展器电路;
29.取余电路生成模块,所述取余电路生成模块配置用于根据所述本原多项式和所述中间多项式生成本原多项式取余电路,并将所述数据扩展器电路和所述本原多项式取余电路对应连接。
30.本发明的又一方面还提出一种计算机设备,包括:
31.至少一个处理器;以及
32.存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
33.本发明的再一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
34.本发明提出的一种生成有限域乘法电路的方法,方法通过对有限域乘法运算的解析,针对伽罗华域多项式的概念,通过硬件实现伽罗华域乘法的快速方案,相比普通的查找表方式,每次乘法的运算,都可以省略掉一次正反表的查表和所对应的一次逻辑加法运算,
转而通过的将运算利用硬件一步展开,得到实现,通过一定的面积损耗,得到了速度的提升。本发明支持不同的本原多项式配置,并且其原理可以扩展至更多位宽的gf(2^m)的有限域运算之中,无需查表,运算无需firmware支持,降低了软件开发的开销。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.图1为本发明实施例提供的一种生成有限域乘法电路的方法流程图;
37.图2为本发明实施例提供的一种生成有限域乘法电路的系统结构示意图。
38.图3为本发明实施例提供的一种计算机设备的结构示意图;
39.图4为本发明实施例提供的一种计算机可读存储介质的结构示意图;
40.图5为本发明实施例提供的一种生成有限域乘法的乘法矩阵错位示意图;
41.图6为本发明实施例提供的一种生成有限域乘法数据扩展电路示意图;
42.图7为本发明实施例提供的一种生成有限域乘法多项式取余示意图;
43.图8为本发明实施例提供的一种生成有限域乘法取余电路的示意图。
具体实施方式
44.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
45.如图1所示,本发明提出一种生成有限域乘法电路的方法,包括:
46.步骤s1、确定参与乘法运算的数据的数据长度,并根据所述数据长度确定本原多项式;
47.步骤s2、将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式,并根据所述中间多项式中每一项的乘积关系生成数据扩展器电路;
48.步骤s3、根据所述本原多项式和所述中间多项式生成本原多项式取余电路,并将所述数据扩展器电路和所述本原多项式取余电路对应连接。
49.在本发明的一些实施方式中,将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式包括:
50.将所述数据根据数据长度按位相乘得到乘法矩阵;
51.将所述乘法矩阵根据乘法进位关系错位相加得到多个多项式;
52.将所述多个多项式作为所述中间多项式的每一项合并成中间多项式。
53.在本发明的一些实施方式中,方法还包括:
54.将所述多个多项式中的每一项数据按照先后顺序通过异或门逻辑相连生成所述扩展器电路。
55.在本发明的一些实施方式中,方法根据所述本原多项式和所述中间多项式生成本原多项式取余电路包括:
56.按照有限域计算原则将所述中间多项式中的每一项多项式除以所述本原多项式进行取余运算,并将取余运算后的多项式中的每一项数据按照先后顺序通过异或门逻辑以生成本原多项式取余电路。
57.在本发明的一些实施方式中,将所述数据在有限域内相乘得到乘法矩阵表包括:
58.将所述数据按照逆序相乘得到乘法矩阵;
59.将所述乘法矩阵根据乘法进位关系错位相加得到多个多项式;
60.将所述多个多项式作为所述中间多项式的每一项合并成中间多项式。
61.在本发明的一些实施方式中,方法还包括:
62.根据硬件电路在实际芯片的可用电路面积确定所述参与乘法运算的数据的数据长度。
63.在本发明的一些实施方式中,方法还包括:
64.根据电路面积选择本原多项式以生成所述本原多项式取余电路。
65.在本发明的实施例中,与所述乘法运算的数据是指乘法电路的输入数据的位宽,通常是以二进制表示,是指相乘的两个数据的bit位数,例如以两个8bit的数据进行有限域相乘的乘法电路,其输入数据,可以理解为数据线各8条,总计16条输入到乘法电路。根据需要数据长度可以是2的指数次的数据长度,例如16位,32位等数据长度。
66.进一步,在确定了数据的长度之后,根据数据长度按照有限域的计算方式,将数据按每一bit位列出其相乘的矩阵表,硬件的具体的实现方式是按照乘数每一位的值,扩展被乘数每一位的值。以运算8位数据乘法为例,输入a=a7a6a5a4a3a2a1a0;输入b=b7b6b5b4b3b2b1b0;则a*b=(a7a6a5a4a3a2a1a0)*(b7b6b5b4b3b2b1b0)。a7-a0表示输入数据a的第8位到第1位的数据,同理,b7-b0则表示输入数据b的第8位到第1位的数据。则可以得到64个相乘的数字的矩阵:
67.[a7b7,a6b7,a5b7,a4b7,a3b7,a2b7,a1b7,a0b7,a7b6,a6b6...a7b1,a6b1,a5b1,a4b1,a3b1,a2b1,a1b1,a0b1,a7b0,a6b0,a5b0,a4b0,a3b0,a2b0,a1b0,a0b0]=[a*[b7],a*[b6],a*[b5],a*[b4]a*[b3],a*[b2],a*[b1],a*[b0]]
[0068]
进一步,根据上述矩阵表,将表示数据位相乘的之再按照乘法的进位关系错位相加得到中间多项式,具体错位相加如图5所示,即按照传统的乘法转加法的计算方式计算多个多项式,基于有限域的特点,无需进行进位。则以图5为例,第一个多项式为a7b7,第二个多项式为a6b7 a6b6,第三个多项式则为a5b7 a6b6 a7b5,即按照图5所示的错位矩阵从下到上相加作为1个多项式,并将所有的多项式组合成一个具有15个多项式的中间多项式h(x)。
[0069]
得到的乘法运算的计算结果即中间多项式如下:
[0070]
h(x)=h(14)x^14 h(13)x^13 h(12)x^12 h(11)x^11 h(10)x^10 h(9)x^9 h(8)x^8 h(7)x^7 h(6)x^6 h(5)x^5 h(4)x^4 h(3)x^3 h(2)x^2 h(1)x^1 h(0)。
[0071]
h(x)表示得到的中间多项式,h(14)表示最高位系数,即图5所示的最左侧的a7b7,h(13)表示a6b7 a6b6,x^14为多项式的代数表示形式。
[0072]
得到的h[14:0]是我们运算的中间值,是15位的,因为一个字节8bit,有限域内表示的最高次幂数是7(0-7),所以两个数相乘的最高次幂是14。
[0073]
进一步将h(x)系数中多项式中参与计算的数据位作为异或门电路的输入生成对
应的数据扩展器电路,具体地,如图6所示,图6中第一行,h(14)的系数为a7b7(图中书写为a7b7意义相同),h(14)只有一项,因此一个异或门逻辑。以此类推,第二行中h(13)的电路,如前所述,h(13)的系数为a6b7 a6b6,则将a6b7和a6b6作为一个异或逻辑门的输入进行异或逻辑运算。进一步,h(12)则是a5b7和a6b6经过异或逻辑门电路的进行计算,其结果再和a7b5进行异或。以此类推生成数据扩展器电路。
[0074]
需要说明的是,是由于采用有限域的计算,因此多项式中的“ ”在有限域中是异或逻辑,因此数据扩展器电路中均采用异或逻辑门。
[0075]
取余器的输入是数据扩展器的输出结果,即中间计算值,中间计算值明显不属于有限域内向的结果,有限域内数据表示都只有8bit,但计算中间值有15bit,要得到最终的运算结果,需要将从数据扩展器计算得到的计算中间直对我们选定的本原多项式进行取余运算。在gf(2^8)中,一般选取0x11d作为本原多项式,这是一种习惯选法,选择其他合适的多项式作为本源多项式也是可以的,在本硬件的实现中仅需在具体的运算中做少量调整即可。
[0076]
基于有限域的运算特点,中间值的取余运算需要结合多项式的情况进行处理,可以转变为对其本身低八位和高七位之间的相加运算来处理,其数学原理如下:
[0077]
首先,在有限域的乘法运算中有一个计算乘法的技巧,该技巧也记载于《密码编码学与网络安全》一书。以我们选取有限域内本原多项式多项式为0x11d为例,则本原多项式m(x)=x^8 x^4 x^3 x^2 1;
[0078]
首先有,x^8 mod m(x)=[m(x)

x^8]=x^4 x^3 x^2 1
[0079]
根据这个等式,对于多项式f(x),我们可得到:
[0080]
f(x)=b7x^7 b6x^6 b5x^5 b4x^4 b3x^3 b2x^2 b1x b0;
[0081]
x*f(x)=(b7x^8 b6x^7 b5x^6 b4x^5 b3x^4 b2x^3 b1x^2 b0x)mod m(x)。
[0082]
如果b7等于0,那么结果是一个小于8的多项式,不需要取模计算了。
[0083]
如果b7等于1,那么通过上面所得就有:
[0084]
x*f(x)=(b6x^7 b5x^6 b4x^5 b3x^4 b2x^3 b1x^2 b0x) (x^4 x^3 x 1);
[0085]
对于硬件实现来说,通过位异或运算,很容易计算。对于x的指数高于一次的情况,可以通过递归的形式使用。如:x^2*f(x)=x*[x*f(x)]。同理可以运算到x^m*f(x)的值。但是对于确定的gf(2^8)来说,根据上面运算得到的结果来看,只需要运算到x^14即可。
[0086]
由上面运算得到h(x)=h(14)x^14 h(13)x^13 h(12)x^12 h(11)x^11 h(10)x^10 h(9)x^9 h(8)x^8 h(7)x^7 h(6)x^6 h(5)x^5 h(4)x^4 h(3)x^3 h(2)x^2 h(1)x^1 h(0)。
[0087]
令h(x)对选定的m(x)进行取余运算,也即h(x)多项式的每一项对m(x)取余后相加。
[0088]
令:l(x)=h(7)x^7 h(6)x^6 h(5)x^5 h(4)x^4 h(3)x^3 h(3)x^2 h(1)x^1 h(0),可得:
[0089]
h(x)=h(14)x^14 h(13)x^13 h(12)x^12 h(11)x^11 h(10)x^10 h(9)x^9 h(8)x^8 l(x),其中l(x)的次幂数最高为7,取余运算结果还是其本身。而x^14,x^13,x^12,x^11,x^10,x^9,x^8的系数为h(14),h(13),h(12),h(11),h(10),h(9),h(8)。由上一步乘法运算结果,这些系数均可由计算得到,在本步骤处理只需要对对应的多项式对本原多项式取余
的结果带入进去,则即等于整个运算结果对本原多项式进行了取余运算。
[0090]
所以在本步骤中需要提前计算出x^14,x^13,x^12,x^11,x^10,x^9,x^8的对本原多项式取余之后的多项式表达,然后将所得到的结果全部加起来,并与l(x)相加,即可得到对应的运算的结果。
[0091]
当系统选取好本原多项式后,其高次幂的多项式表达既是固定不变的,以本原多项式取m(x)=x^8 x^4 x^3 x^2 1为例,则可得到如下多项式:
[0092]
l(x)=x^7 x^6 x^5 x^4 x^3 x^2 x 1
[0093]
x^8=x*x^7=x^8 mod m(x)=x^4 x^3 x^2 1
[0094]
x^9=x*x^8=x^5 x^4 x^3 x
[0095]
x^10=x*x^9=x^6 x^5 x^4 x^2
[0096]
x^11=x*x^10=x^7 x^6 x^5 x^3
[0097]
x^12=x*x^11=x^8 x^7 x^6 x^4=x^7 x^6 x^3 x^2 1
[0098]
x^13=x*x12=x^8 x^7 x^4 x^3 x=x^7 x^2 x 1
[0099]
x^14=x*x13=x^8 x^3 x^2 x=x^4 x 1
[0100]
上面的空白项可以看作系数为0,其他项实际系数由第一步乘法运算结果得到,所以在此将其按照多项式取模运算相加即得取余后的最终结果,其电路结构如下图8所示。至此则得到了运算的结果。
[0101]
具体地,参考上述公式或图7所示的等式列表,取余电路的生成是将上述取模运算的等号右边的对应位系数所表示。x^7的系数为h(7),x^6的系数为h(6),x^5的系数为h(5)...x^0(即1)的系数为h(0)。按照有限域的取模运算的规则,则取模运算的电路输入与输出关系即可表示为:
[0102]
c[7]=h(7) h(11) h(12) h(13);
[0103]
c[6]=h(6) h(10) h(11) h(12);
[0104]
c[5]=h(5) h(9) h(10) h(11);
[0105]
c[4]=h(4) h(8) h(9) h(10) h(14);
[0106]
c[3]=h(3) h(8) h(10) h(11) h(12);
[0107]
c[2]=h(2) h(8) h(10) h(12) h(13);
[0108]
c[1]=h(1) h(9) h(13) h(14);
[0109]
c[0]=h(0) h(8) h(12) h(13) h(14);
[0110]
上述c[7]~c[0]有图7所示的等式的右边的系数从上到下相加得到,等号右边为空表示该系数为0,以c[7]为例,c[7]的h(7)表示中间多项式h(x)中x^7的系数,即h(7)。h(11)是x^7下面对应的不为0的第一个数据为h(11)取模得到,即图中第5行h(11)与本原多项式取模运算后得到的多项式的第一项为x^7。
[0111]
为便于理解,可将上述计算式(图7)的生成过程理解为等号右侧的数据从上到下不为0的系数相加,x^7在第一行x^7不为空,由于l(x)表示中间多项式的低8位,其系数分别是h(7)~h(0),因此,其c[7]第一项为h(7),第二项在第5行,第5行用对应的中间多项式中的h(11),则c[7]的第二项为h(11),以此类推,第三项为h(12),第四项为h(13)。
[0112]
c[7]~c[0]便是本发明有限域乘法运算的输出结果,即将8位的输入数据a和8为的输入数据b计算得到8位的结果c。
[0113]
由于有限域的加法计算时以异或逻辑实现,因此c[7]~c[0]也可以硬件电路的异或逻辑门实现,结合上述实施例中的数据扩展器电路,将数据扩展器电路的15个输出(h(14)~h(0))作为取余电路的输入即可生成有限域乘法运算的硬件实现电路。
[0114]
上述实施例是以gf(2^8)为例,在硬件实现中只需要按照不同的位对计算中间值进行简单的异或运算即可。
[0115]
至于适配其他的本原多项式,也只是在取余模块异或运算的位置会有少许差异。
[0116]
通过判定外部配置的本元多项式的值,在运算中增加相关的运算权值因子,不同的本原多项式对应不同的运算权值因子即可实现根据本原多项式的配置来改变取余运算的配置,也即适配了不同本原多项式情况下的有限域乘法运算。
[0117]
在本发明的一些实施例中,数据扩展电路的数入数据决定数据扩展电路的大小,上述实施方式中,以8位输入数据为例进行说明,数据扩展电路的最深需要计算7层,取余电路最深计算5层。数据扩展电路和取余电路的计算深度以及所消耗的芯片面积大小则由输入数据的长度决定。因此在一些实施方式中,根据需要可选择不同长度作为输入数据的大小。或者根据需要选择生成多组8位的,数据扩展电路和取余电路。
[0118]
在本发明的一些实施例中,还可根据需要选择不同的本原多项式来生成对应的取余电路。在上述实施例中是以本原多项式为m(x)=x^8 x^4 x^3 x^2 1生成的取余电路,不同的本原多项式则会生成不同的取余电路,可根据芯片中硬件电路的可用面积大小合理选择合适的本原多项式生成对应的取余电路。
[0119]
如图2所示,本发明的另一方面还提出一种生成有限域乘法电路的系统,包括:
[0120]
初始化数据模块1,所述初始化数据模块1配置用于确定参与乘法运算的数据的数据长度,并根据所述数据长度确定本原多项式的长度及本原多项式;
[0121]
数据扩展器电路生成模块2,所述数据扩展器电路生成模块2配置用于将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式,并根据所述中间多项式中每一项的乘积关系生成数据扩展器电路;
[0122]
取余电路生成模块3,所述取余电路生成模块3配置用于根据所述本原多项式和所述中间多项式生成本原多项式取余电路,并将所述数据扩展器电路和所述本原多项式取余电路对应连接。
[0123]
如图3所示,本发明的又一方面还提出一种计算机设备,包括:
[0124]
至少一个处理器21;以及
[0125]
存储器22,所述存储器22存储有可在所述处理器21上运行的计算机指令23,所述指令23由所述处理器21执行时实现一种生成有限域乘法电路的方法,包括:
[0126]
确定参与乘法运算的数据的数据长度,并根据所述数据长度确定本原多项式;
[0127]
将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式,并根据所述中间多项式中每一项的乘积关系生成数据扩展器电路;
[0128]
根据所述本原多项式和所述中间多项式生成本原多项式取余电路,并将所述数据扩展器电路和所述本原多项式取余电路对应连接。
[0129]
在本发明的一些实施方式中,将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式包括:
[0130]
将所述数据根据数据长度按位相乘得到乘法矩阵;
[0131]
将所述乘法矩阵根据乘法进位关系错位相加得到多个多项式;
[0132]
将所述多个多项式作为所述中间多项式的每一项合并成中间多项式。
[0133]
在本发明的一些实施方式中,方法还包括:
[0134]
将所述多个多项式中的每一项数据按照先后顺序通过异或门逻辑相连生成所述扩展器电路。
[0135]
在本发明的一些实施方式中,方法根据所述本原多项式和所述中间多项式生成本原多项式取余电路包括:
[0136]
按照有限域计算原则将所述中间多项式中的每一项多项式除以所述本原多项式进行取余运算,并将取余运算后的多项式中的每一项数据按照先后顺序通过异或门逻辑以生成本原多项式取余电路。
[0137]
在本发明的一些实施方式中,将所述数据在有限域内相乘得到乘法矩阵表包括:
[0138]
将所述数据按照逆序相乘得到乘法矩阵;
[0139]
将所述乘法矩阵根据乘法进位关系错位相加得到多个多项式;
[0140]
将所述多个多项式作为所述中间多项式的每一项合并成中间多项式。
[0141]
在本发明的一些实施方式中,方法还包括:
[0142]
根据硬件电路在实际芯片的可用电路面积确定所述参与乘法运算的数据的数据长度。
[0143]
在本发明的一些实施方式中,方法还包括:
[0144]
根据电路面积选择本原多项式以生成所述本原多项式取余电路。
[0145]
如图4所示,本发明的再一方面还提出一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序402被处理器执行时实现一种生成有限域乘法电路的方法,包括:
[0146]
确定参与乘法运算的数据的数据长度,并根据所述数据长度确定本原多项式;
[0147]
将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式,并根据所述中间多项式中每一项的乘积关系生成数据扩展器电路;
[0148]
根据所述本原多项式和所述中间多项式生成本原多项式取余电路,并将所述数据扩展器电路和所述本原多项式取余电路对应连接。
[0149]
在本发明的一些实施方式中,将所述数据在有限域内相乘得到乘法矩阵表,根据所述乘法矩阵表中的乘积项生成中间多项式包括:
[0150]
将所述数据根据数据长度按位相乘得到乘法矩阵;
[0151]
将所述乘法矩阵根据乘法进位关系错位相加得到多个多项式;
[0152]
将所述多个多项式作为所述中间多项式的每一项合并成中间多项式。
[0153]
在本发明的一些实施方式中,方法还包括:
[0154]
将所述多个多项式中的每一项数据按照先后顺序通过异或门逻辑相连生成所述扩展器电路。
[0155]
在本发明的一些实施方式中,方法根据所述本原多项式和所述中间多项式生成本原多项式取余电路包括:
[0156]
按照有限域计算原则将所述中间多项式中的每一项多项式除以所述本原多项式进行取余运算,并将取余运算后的多项式中的每一项数据按照先后顺序通过异或门逻辑以
生成本原多项式取余电路。
[0157]
在本发明的一些实施方式中,将所述数据在有限域内相乘得到乘法矩阵表包括:
[0158]
将所述数据按照逆序相乘得到乘法矩阵;
[0159]
将所述乘法矩阵根据乘法进位关系错位相加得到多个多项式;
[0160]
将所述多个多项式作为所述中间多项式的每一项合并成中间多项式。
[0161]
在本发明的一些实施方式中,方法还包括:
[0162]
根据硬件电路在实际芯片的可用电路面积确定所述参与乘法运算的数据的数据长度。
[0163]
在本发明的一些实施方式中,方法还包括:
[0164]
根据电路面积选择本原多项式以生成所述本原多项式取余电路。
[0165]
本发明提出的一种生成有限域乘法电路的方法,方法通过对有限域乘法运算的解析,针对伽罗华域多项式的概念,通过硬件实现伽罗华域乘法的快速方案,相比普通的查找表方式,每次乘法的运算,都可以省略掉一次正反表的查表和所对应的一次逻辑加法运算,转而通过的将运算利用硬件一步展开,得到实现,通过一定的面积损耗,得到了速度的提升。本发明支持不同的本原多项式配置,并且其原理可以扩展至更多位宽的gf(2^m)的有限域运算之中,无需查表,运算无需firmware支持,降低了软件开发的开销。
[0166]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0167]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0168]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0169]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0170]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

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

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

相关文献