高斯约当消元装置的制作方法

文档序号:18397169发布日期:2019-08-09 23:32阅读:194来源:国知局
高斯约当消元装置的制作方法

本发明涉及线性方程组求解技术领域,尤其涉及一种高斯约当消元装置。



背景技术:

有限域是仅含有限多个元素的域,有限域上的线性方程组是指方程组中的每个系数都是有限域上的元素。有限域上的线性方程组的求解广泛的被运用于各种工程领域,例如密码学领域、通信领域、存储领域中。求解有限域的线性方程组是多变量公钥密码芯片最复杂的运算之一,它包含有限域加法、乘法、求逆、除法等,依赖于这些基础运算的效率。求解线性方程组是一个计算复杂度高且非常耗时的问题,目前对于求解线性方程组的优化,特别在有限域上的优化还存在较大的提升空间。



技术实现要素:

本发明为了解决上述现有技术的不足,提供一种高斯约当消元装置。

为了实现上述目的,本发明实施例提供一种高斯约当消元装置,包括:输入模块,包括多个输入单元;计算模块,包括多组计算单元,所述多组计算单元呈阶梯状排列,且所述第一组计算单元一一对应连接所述多个输入单元中除第一个输入单元之外的其他输入单元;控制模块,包括多个控制单元,所述多个控制单元除最后一个控制单元以外的每一所述控制单元依序对应连接每组计算单元中第一个计算单元,且所述多个控制单元中第一个控制单元还连接所述第一个输入单元;同步模块,包括多个同步单元,每一所述同步单元依序间隔设置在每两个所述控制单元之间;求逆模块,连接于所述控制模块的每一所述控制单元;输出模块,包括多个输出单元,且所述多个输出单元中最后一个输出单元连接所述最后一个控制单元、以及所述多个输出单元中除所述最后一个输出单元以外的其他输出单元的每一输出单元对应连接所述多组计算单元中每组计算单元的最后一个计算单元;其中,每一所述控制单元由第一有限状态机控制,包括第一控制状态、第二控制状态、第三控制状态、第四控制状态和第五控制状态;所述控制单元的所述第一控制状态为起始空状态;所述控制单元的所述第二控制状态为:接收输入的第一组系数中第一行系数,所述第一行系数包括:第一控制系数和第二控制系数;当所述第一控制系数非零时,将所述第一控制系数传输至所述求逆模块,以由所述求逆模块对所述第一控制系数进行求逆运算得到求逆后第一控制系数;接收由所述求逆模块发送的所述求逆后第一控制系数;将所述求逆后第一控制系数作为第一计算系数输出至相邻的同层所述计算单元;根据所述求逆后第一控制系数和所述第二控制系数计算得到所述控制单元的控制存储变量,并保存所述控制存储变量;所述控制单元的所述第三控制状态为:接收输入的所述第一组控制系数中第二行系数,所述第二行系数包括对应的行序号、第三控制系数和第四控制系数;将所述行序号作为第一同步值输出至相邻的所述同步单元;根据所述第三控制系数、所述第四控制系数和所述控制存储变量计算得到第二同步值输出至相邻的所述同步单元;当所述第二同步值非零时,将所述第三控制系数作为所述第一计算系数输出至相邻的同层所述计算单元;以及定义控制计数变量,并对所述控制计数变量赋值保存;所述控制单元的所述第四控制状态为:判断存储的所述控制计数变量是否满足第一控制计数条件,当所述控制计数变量满足所述第一控制计数条件时,将所述控制存储变量作为第二计数系数输出至相邻的上层所述计算单元中;以及判断存储的所述控制计数变量是否满足第二控制计数条件,当所述控制计数变量满足所述第二控制计数条件时,将所述控制计数变量自减一后保存;所述控制单元的所述第五控制状态为:将所述控制存储变量作为所述第一计算系数输出至相邻的同层所述计算单元中。

在本发明的一个实施例中,所述第一控制计数条件为所述控制计数变量等于二;所述第二控制计数条件为所述控制计数变量大于零。

在本发明的一个实施例中,所述控制单元的所述第二控制状态还包括:当所述第一控制系数为零时,所述控制存储变量为零,以及将零作为所述第一计算系数输出至相邻的同层所述计算单元。

在本发明的一个实施例中,所述同步单元用于将由所述控制单元输入的所述第一同步值和所述第二同步值输出至相邻的下一个所述控制单元。

在本发明的一个实施例中,每一所述计算单元由第二有限状态机控制,包括第一计算状态、第二计算状态、第三计算状态、第四计算状态和第五计算状态。

在本发明的一个实施例中,所述计算单元的所述第一计算状态为空状态;所述计算单元的所述第二计算状态为:分别接收由所述输入单元输入的第二组系数中第一个系数和由所述控制单元输入的所述第一计算系数;根据所述第一个系数和所述第一计算系数计算得到所述计算单元的计算存储变量,并保存所述计算存储变量;将所述第一计算系数输出至相邻的同层所述计算单元;所述计算单元的所述第三计算状态为:分别接收由所述输入单元输入的第二组系数中第二个系数和由所述控制单元再次输入的所述第一计算系数;根据所述第一计算系数、所述第二个系数和所述计算存储变量计算得到第一计算输出值;将所述第一计算系数输出至相邻的同层所述计算单元中,以及输出所述第一计算输出值至相邻的下层所述计算单元或所述控制单元中;根据所述计算单元位置信息得到计算计数变量,并保存所述计算计数变量;所述计算单元的所述第四计算状态为:判断所述计算计数变量是否满足第一计算计数条件,当所述计算计数变量满足所述第一计算计数条件时,将所述计算存储变量作为第二计算输出值输出至相邻的下层所述计算单元或所述控制单元中;以及判断所述计算计数变量是否满足第二计算计数条件,当所述计算计数变量满足所述第二计算计数条件时,将所述计算计数变量自减一后保存;所述计算单元的所述第五计算状态为:将所述计算存储变量输出至相邻的同层所述计算单元。

在本发明的一个实施例中,所述计算单元的所述第四计算状态还包括:当所述计算计数变量不满足所述第一计算计数条件时,判断所述第二计算系数是否不等于所述第二计算输出值;当判断所述第二计算系数不等于所述第二计算输出值时,根据所述第一计算系数、所述第二计算系数和所述计算存储变量计算得到新的计算存储变量,并将所述第二计算系数作为所述第二计算输出值输出至邻近的下层所述计算单元或所述控制单元中,以及将所述第一计算系数输出至相邻的同层所述计算单元中。

在本发明的一个实施例中,所述输入模块用于周期性输入线性方程组的系数矩阵;其中,所述系数矩阵为m*m,其中m为正整数,且所述系数矩阵中的所有系数以转置平行四边形的排列方式进行排布;其中,所述第一个输入单元用于将所述系数矩阵中前两列系数和行序号作为所述第一组系数周期性输入邻近的所述控制单元中;所述其他输入单元中每一输入单元用于将所述系数矩阵中除所述前两列系数以外的每一列系数对应输入至相邻的所述计算单元。

在本发明的一个实施例中,所述输出模块用于输出所述线性方程组的高斯约当消元结果。

在本发明的一个实施例中,当所述系数矩阵为4*4时,在第四个周期所述系数矩阵中第一行系数被归一化、在第六个周期所述系数矩阵中第二行系数被所述归一化和消元、在第八个周期所述系数矩阵中第三行系数被所述归一化和所述消元、以及在第十个周期所述系数矩阵中第四行系数被所述归一化和所述消元。

上述技术方案可以具有如下优点或有益效果:本发明实施例提供的高斯约当消元装置通过设置心动结构,可以快速求解线性方程组,实现了有限域高斯消元运算,避免现有求解线性方程组计算复杂度高且耗时长的问题,求解速度更快且设计简单,优化了求解线性方程组的求解过程,特别优化了在有限域上的求解过程,适用性更广,可以广泛地运用于各种工程领域,特别是密码算法的硬件实现和各种数学问题的求解中。

附图说明

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

图1为本发明实施例提供的高斯约当消元装置的结构示意图;

图2为本发明实施例提供的高斯约当消元装置的具体实施方式的结构示意图;

图3为本发明实施例提供的高斯约当消元装置的具体实施方式中同步单元的结构示意图;

图4为本发明实施例提供的高斯约当消元装置的具体实施方式中求逆模块的结构示意图;

图5为本发明实施例提供的高斯约当消元装置的具体实施方式中计算单元的结构示意图;

图6为本发明实施例提供的高斯约当消元装置的具体实施方式中控制单元的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解这样使用的术语在适当情况下可以互换,以便这里描述的本发明实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。

参见图1,本发明实施例提供的一种高斯约当消元装置。如图1所示,高斯约当消元装置10例如包括输入模块11、计算模块、控制模块、同步模块、求逆模块15和输出模块16。

其中,输入模块11包括多个输入单元。图1中示意出四个输入单元111-114,但本发明并不以此为限。

计算模块包括多组计算单元。图1中示意出三组计算单元121-123,但发明并不以此为限。其中,第一组计算单元121例如包括三个计算单元,分别为计算单元1211、计算单元1212和计算单元1213。第二组计算单元122例如包括两个计算单元,分别为计算单元1221和计算单元1222。第三组计算单元123例如包括一个计算单元1231。多组计算单元呈阶梯状排列。第一组计算单元121一一对应连接多个输入单元中除第一个输入单元111之外的其他输入单元。如图1所示,计算单元1211连接输入单元112、计算单元1212连接输入单元113、以及计算单元1213连接输入单元114。

控制模块,包括多个控制单元。图1中示意出四个控制单元131-134,但发明并不以此为限。多个控制单元中除最后一个控制单元即控制单元134以外的每一控制单元依序对应连接每组计算单元中第一个计算单元。如图1所示,控制单元131连接计算单元1211、控制单元132连接计算单元1221以及控制单元133连接计算单元1231。其中,第一控制单元131还连接第一个输入单元111。

同步模块包括多个同步单元,图1中示意出三个同步单元141-143,但发明并不以此为限。每一同步单元依序间隔设置在每两个控制单元之间。如图1所示,同步单元141分别连接控制单元131和控制单元132、同步单元142分别连接控制单元132和控制单元133、以及同步单元143分别连接控制单元133和控制单元134。

求逆模块15连接于控制模块的每一控制单元。如图1所示,求逆模块15分别连接控制单元131至控制单元134。

输出模块16包括多个输出单元。图1中示意出四个输出单元161-164,但发明并不以此为限。多个输出单元中最后一个输出单元即输出单元164连接最后一个控制单元即控制单元134、以及多个输出单元中除输出单元164以外的其他输出单元的每一其他输出单元对应连接多组计算单元中每组计算单元的最后一个计算单元。如图1所示,输出单元161连接计算单元1213、输出单元162连接计算单元1222、以及输出单元163连接计算单元1231。

其中,每一控制单元例如控制单元131-134均由有限状态机控制,且包括第一控制状态、第二控制状态、第三控制状态、第四控制状态和第五控制状态。提到的有限状态机(finite-statemachine,fsm),又称有限状态自动机,简称状态机,表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

进一步地,提到的第一控制状态例如为起始空状态。在该状态下,控制单元不做任何操作,等待系数输入。当有系数输入时,控制单元自动进入第二控制状态。

提到的第二控制状态例如为:接收输入的第一组系数中第一行系数,所述第一行系数包括:第一控制系数和第二控制系数,当所述第一控制系数非零时,将所述第一控制系数传输至求逆模块15,以由15求逆模块对所述第一控制系数进行求逆运算得到求逆后第一控制系数,接收由求逆模块15发送的所述求逆后第一控制系数,将所述求逆后第一控制系数作为第一计算系数输出至相邻的同层所述计算单元,根据所述求逆后第一控制系数和所述第二控制系数计算得到所述控制单元的控制存储变量,并保存所述控制存储变量。以控制单元131为例进行举例说明,控制单元131接收输入单元111输入的第一组系数中第一行系数,当第一行系数中第一控制系数不等于零时,将第一控制系数输出至求逆模块15,求逆模块15对第一控制系数进行求逆运算得到求逆后第一控制系数,发送至控制单元131,控制单元131接收求逆后第一控制系数,将求逆后第一控制系数和第二控制系数相乘得到控制存储变量并保存,以及将求逆后第一控制系数作为第一计算系数输出至与控制单元131相邻的同层计算单元即计算单元1211中。

控制单元进入第二控制状态完成计算后,当再次系数输入时,控制单元自动进入第三控制状态。

提到的第三控制状态例如为:接收输入的所述第一组控制系数中第二行系数,所述第二行系数包括对应的行序号、第三控制系数和第四控制系数,将所述行序号作为第一同步值输出至相邻的所述同步单元,根据所述第三控制系数、所述第四控制系数和所述控制存储变量计算得到第二同步值输出至相邻的所述同步单元,当所述第二同步值非零时,将所述第三控制系数作为所述第一计算系数输出至相邻的同层所述计算单元,以及定义控制计数变量,并对所述控制计数变量赋值保存。以控制单元131为例进行举例说明,控制单元131接收由输入单元111输入的第一组系数中第二行系数,将第二行系数中的行序号作为第一同步值输出至相邻的同步单元即同步单元141中,以及将第三控制系数与控制存储变量相乘得到相乘结果,并将相乘结果与第四控制系数相加得到第二同步值,将其输出至同步单元141,以及当第二同步值不等于零时,将第三控制系数作为第一计算系数输出至控制单元131相邻的同层计算单元即至计算单元1211中,并定义一个控制计数变量,将控制计数变量赋值保存,举例而言,将控制计数变量赋值为二进行保存。

控制单元进入第三控制状态完成计算后,当再次系数输入时,控制单元自动进入第四控制状态。

提到的第四控制状态例如为:判断存储的所述控制计数变量是否满足第一控制计数条件,当所述控制计数变量满足所述第一控制计数条件时,将所述控制存储变量作为第二计数系数输出至相邻的上层所述计算单元中,以及判断存储的所述控制计数变量是否满足第二控制计数条件,当所述控制计数变量满足所述第二控制计数条件时,将所述控制计数变量自减一后保存。以控制单元132为例进行举例说明,控制单元132中存储的控制计数变量例如为2,首先判断当前控制计数变量是否等于2,当前存储的控制计数变量满足等于2的条件,将控制存储变量作为第二计数系数输出至控制单元132相邻的上层计算单元中即计算单元1211中,然后判断当前控制计数变量是否大于零,当前控制计数变量满足大于零的条件,将当前控制计数变量减一存储,即存储的新的控制计数变量为1。

此外,控制单元进入第四控制状态完成首次计算后,下一周期,控制单元会根据判断条件是否满足第四控制状态来决定是否进入第四控制状态。具体地,以控制单元132为例进行举例说明,下一周期,控制单元132存储的控制计数变量为1不满足恒等于2的条件,但满足大于零的条件,所以控制计数变量减一进行保存,即保存的控制计数变量为0,此周期控制单元132不产生输出。

控制单元进入第四控制状态完成循环计算,当下一周期,控制单元存储的控制计数变量不满足进入第四控制状态的调节,即控制单元进入第五控制状态,且之后的每一周期均处于第五控制状态。

提到的第五控制状态例如为:将所述控制存储变量作为所述第一计算系数输出至相邻的同层所述计算单元中。以控制单元132为例进行举例说明,控制单元132将控制存储变量作为第一计算系数输出至相邻的同层计算单元即计算单元1221中。

进一步地,前述提到的第一控制计数条件例如为所述控制计数变量等于二。提到的第二控制计数条件例如为所述控制计数变量大于零。

此外,所述控制单元的所述第二控制状态还包括:当所述第一控制系数为零时,所述控制存储变量为零,以及将零作为所述第一计算系数输出至相邻的同层所述计算单元。

需要说明的是,本实施例提供的高斯约当消元装置中每一控制单元均包含上述五个控制状态,且初始时处于第一控制状态等待系数输入,当首次有系数输入时自动进入第二控制状态,再次有系数输入时自动进入第三控制状态,之后的周期只要满足第四控制状态,就进入第四控制状态。在不满足第四控制状态的控制条件后,自动进入第五控制状态且之后均处于第五控制状态。

进一步地,同步单元用于将控制单元输入的第一同步值和第二同步值输出至相邻的下一个控制单元。如图1所示,同步单元141将控制单元131输入的第一同步值和第二同步值输出至控制单元132、同步单元142将控制单元132输入的第一同步值和第二同步值输出至控制单元133、以及同步单元142将控制单元133输入的第一同步值和第二同步值输出至控制单元134。

进一步地,每一个计算单元例如由有限状态机控制,且包括第一计算状态、第二计算状态、第三计算状态、第四计算状态和第五计算状态。

其中,提到的第一计算状态为空状态,表示此时计算单元没有运算或者运算已经结束。

提到的第二计算状态例如为归一状态,具体为:分别接收由所述输入单元输入的第二组系数中第一个系数和由所述控制单元输入的所述第一计算系数,根据所述第一个系数和所述第一计算系数计算得到所述计算单元的计算存储变量,并保存所述计算存储变量,将所述第一计算系数输出至相邻的同层所述计算单元。以计算单元1211为例进行举例说明。计算单元1211接收由输入单元112输入的第二组系数中第一个系数和控制单元131输入的第一计算系数,此时提到的第一计算系数为前述提到的求逆后第一控制系数。计算单元1211将第一计算系数和第一个系数相乘得到计算存储变量进行保存,并将第一计算系数输出至相邻的同层计算单元即计算单元1212。

提到的第三计算状态例如为消元状态,具体为:分别接收由所述输入单元输入的第二组系数中第二个系数和由所述控制单元再次输入的所述第一计算系数,根据所述第一计算系数、所述第二个系数和所述计算存储变量计算得到第一计算输出值,将所述第一计算系数输出至相邻的同层所述计算单元中,以及输出所述第一计算输出值至相邻的下层所述计算单元或所述控制单元中,根据所述计算单元位置信息得到计算计数变量,并保存所述计算计数变量。以计算单元1211为例进行举例说明。计算单元1211分别接收由输入单元112输入的第二个系数和控制单元131再次输入的第一计算系数。计算单元1211将第一计算系数与计算存储变量相乘得到相乘结果后加上第二个系数得到计算输出值,将计算输出值输出至相邻的下层计算单元或控制单元中,即控制单元132中,将第一计算系数输出至相邻的同层计算单元即计算单元1212中,以及根据计算单元1211位置信息即i=0,j=2得到计算计数变量count=j+j-i-i,并保存所述计算计数变量。

计算单元进入第三计算状态完成计算后,当再次有系数输入即下一周期时,计算单元自动进入第四计算状态。

提到的第四计算状态例如为:判断所述计算计数变量是否满足第一计算计数条件,当所述计算计数变量满足所述第一计算计数条件时,将所述计算存储变量作为第二计算输出值输出至相邻的下层所述计算单元或所述控制单元中,以及判断所述计算计数变量是否满足第二计算计数条件,当所述计算计数变量满足所述第二计算计数条件时,将所述计算计数变量自减一后保存。以计算单元1211为例进行举例说明。首先判断计算单元1211存储的计算计数变量count是否满足第一计算计数条件,即count=j+j-i-i,此时计算单元1211存储的计算计数变量满足第一计算计数条件,将计算存储变量作为第二计算输出值输出至相邻的下层单元中,即输入至控制单元132中。然后判断计算计数变量是否满足第二计算计数条件即计算计数变量大于零,此时的计算单元1211存储的计算计数变量满足大于零的条件,然后将计算计数变量自减一后存储,举例而言,之前计算计数变量例如为4,此时的计算计数变量为3进行存储。

进一步地,提到的第四计算状态例如还包括:当所述计算计数变量不满足所述第一计算计数条件时,判断所述第二计算系数是否不等于所述第二计算输出值,以及当判断所述第二计算系数不等于所述第二计算输出值时,根据所述第一计算系数、所述第二计算系数和所述计算存储变量计算得到新的计算存储变量,并将所述第二计算系数作为所述第二计算输出值输出至邻近的下层所述计算单元或所述控制单元中,以及将所述第一计算系数输出至相邻的同层所述计算单元中。

计算单元首次进入第四计算状态后,当下一周期,计算单元会先判断是否满足进入第四计算状态的条件,即第一计算计数条件和第二计算计数条件。若满足至少一个计算计数条件,计算单元处于第四计算状态。若不满足,计算单元进入第五计算状态,且之后的每一周期均处于第五计算状态。

提到的第五计算计数状态例如为:将所述计算存储变量输出至相邻的同层所述计算单元。以计算单元1211为例进行举例说明。计算单元将自身的计算存储变量输出至相邻的同层计算单元即计算单元1212中。

需要说明的是,本实施例提供的高斯约当消元装置中每一计算单元均包含上述五个计算状态,且初始时均处于第一计算状态,当首次输入系数时处于第二计算状态,再次输入系数后,计算单元处于第三计算状态,之后的周期只要满足第四计算状态,就进入第四计算状态。在不满足第四计算状态的计算条件后,自动进入第五计算状态且之后均处于第五计算状态。

进一步地,输入模块11例如用于周期性输入线性方程组的系数矩阵。其中,系数矩阵例如为m*m,其中m为正整数,且系数矩阵中的所有系数以转置平行四边形的排列方式进行排布。其中线性方程组例如为有限域上线性方程组。其中,第一输入单元例如输入单元111用于将系数矩阵中前两列系数和行序号作为第一组系数周期性输入邻近的控制单元例如控制单元131中。其他输入单元例如输入单元112-114中每一输入单元用于将所述系数矩阵中除所述前两列系数以外的每一列系数对应输入至相邻的所述计算单元。

进一步地,输出模块16用于输出线性方程组的高斯约当消元结果。

进一步地,当提到的系数矩阵为4*4时,在第四个周期系数矩阵中第一行系数被归一化、在第六个周期系数矩阵中第二行系数被所述归一化和消元、在第八个周期系数矩阵中第三行系数被所述归一化和所述消元、以及在第十个周期系数矩阵中第四行系数被所述归一化和所述消元。

为了更好地理解本实施例,下面结合图2-图6对本实施例的具体实施方式进行说明。其中,以系数矩阵为4*4为例进行说明,应该知道的是,本实施例并不仅限与此。

如图2所示,其为对4*4的系数矩阵进行有限域高斯约当消元的高斯约当消元装置。高斯约当消元装置例如包括:输入模块,用于输入有限域上线性方程组的系数矩阵a。控制单元,用于执行控制命令。计算单元,用于系数矩阵中系数的归一化和消元。求逆模块,用于主元的有限域求逆。同步单元,用于时间同步插入的空操作。输出模块,用于输出高斯约当消元的结果。

其中,输入的系数矩阵a的规模是m×m,m是正整数。输入的系数矩阵a的第i行第j列的元素表示为ai,j。输入的系数矩阵a的系数是有限域gf(2n)的元素,n是正整数,系数的取值范围是0到2n-1。

如图3所示,提到的同步单元执行空操作,即输出等于输入。

c1=c0;

c3=c2。

如图4所示,提到的求逆模块的运算如下:

计算单元的归一运算定义如下:

a′ij=aij×aii-1.

计算单元的消元运算定义如下:

a′kj=akj+aki×aij.

如图5所示,计算单元例如有六个端口。计算单元的存储变量为pij,且初始值是0。其中,在计算单元中,c2是上层单元输入的系数,c0是左单元输入的系数,c4是下层单元输入的系数。计算单元由一个有限状态机控制,例如存在五种状态,s1、s2、s3、s4、s5。其中,计算单元的s1状态为空状态,表示没有运算或者运算已经结束。计算单元的s2状态为归一状态,描述如下:

pij=c2×c0;

c1=c0。

计算单元的s3状态为消元状态,描述如下:

count=j+j-i-i;

c3=pij×c0+c2;

c1=c0。

所述计算单元的s4状态描述如下:

if(count==j+j-i-i)c5=pi;

else

if(count>0)count=count-1,该单元的值被输送至上层单元。

计算单元的s5状态描述如下:

c2=pi,该单元的值被输送至右边的单元。

如图6所示,控制单元例如有十个端口。控制单元的存储变量pi,且初始值是0。在控制单元中,c3表示连续的行元素,c4是主元,c5是主元右边的元素。控制单元由一个有限状态机控制,例如存在五种状态s1、s2、s3、s4、s5。控制单元的s1状态为起始空状态,等待输入。控制单元处于s2状态时,首先c4被输送至求逆模块,c5被存储至pi:

if(c4≠0)c8=c4;

pi=c5。

求逆模块求逆后,控制单元计算如下:

if(c4≠0)c2=c1;

elsec2=0;

pi=pi×c2。

主元的逆元被输送到右边的单元,归一运算被执行。

控制单元的s3状态描述如下:

c6=c3;

c7=c4×pi+c5;

if(c7==0)c0=c3;

elsec2=c4。

消元被完成,结果输送至下层单元中。

控制单元的s4状态描述如下:

if(count==2)c9=pi;

if(count>0)count=count-1。

该单元的值被输送至上层单元中。

控制单元的s5状态描述如下:

c2=pi。

该单元的值被输送至右边的单元。

基于心动结构的高效有限域高斯约当消元装置对4*4的矩阵进行有限域高斯消元的过程如下:

(i)系数矩阵中系数以转置平行四边形的排列方式,从上至下依次输入到高斯约当消元装置中;

(ii)各单元依据自身有限状态机进行工作;

(iii)直到第四个周期,第一行系数被归一;

(iv)直到第六个周期,第二行系数被归一和消元;

(v)直到第八个周期,第三行系数被归一和消元;

(vi)直到第十个周期,第四行系数被归一和消元;

(vii)输出当前运算结果,即高斯约当消元的三角化结果。

综上所述,本发明实施例提供的高斯约当消元装置通过设置心动结构,可以高速求解线性方程组,实现了有限域高斯消元运算,避免现有求解线性方程组计算复杂度高且耗时长的问题,求解速度更快且设计简单,优化了求解线性方程组的求解过程,特别优化了在有限域上的求解过程,适用性更广,可以广泛地运用于各种工程领域,特别是密码算法的硬件实现和各种数学问题的求解中。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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