一种伽罗瓦域GF(2^n)下本原多项式的快速寻找方法与流程

文档序号:15095574发布日期:2018-08-04 14:29阅读:4867来源:国知局

本发明涉及计算机领域,具体地说,是一种伽罗瓦域GF(2^n)下本原多项式的快速寻找方法。



背景技术:

有限域理论作为现代代数的重要分支,在密码学、编码理论、组合理论、大规模集成电路设计等诸多领域都发挥着重要的作用,一方面有限域理论的应用极大地推动了这些学科的发展,另一方面,相关领域的研究热点都归结为有限域理论中的关键问题,使得有限域理论的重要性日益得到重视,充实和推动整个理论的发展。

有限域上的本原元和本原多项式在诸多领域都有重要应用。在密码学方面,可以利用本原多项式生成随机比特序列以及非线性组合序列,时钟序列等多种密钥流序列;在纠错编码理论中,可以利用本原多项式来构造汉明码;利用有限域上的多项式可以得到线性递归序列,为了得到最大周期的线性序列,就需要寻找本原多项式。

现在流行的二维码技术,包括微信、支付宝中使用的二维码编码与识别技术,其编码、解码以及纠错,关键的核心就在于伽罗瓦域,而其生成二维码的本原多项式为x^8+x^4+x^3+x^2+1。不同的本原多项式,决定了不同的域元素及其加法与乘法结果,因此,可以认为,不同的本原多项式,不同的生成元,即不同的二维码编解码方法。如某些专用的二维码,用普通的二维码扫码程序,则不能解析。如图1中的生成多项式,其次数为68(2t),在256个编码长度内,可以纠正34个分散甚至连续的错误。

对有限域的构造进行研究就必然要找出有限域的乘法生成元(即本原元),寻找本原元或本原多项式在理论上以及应用上都具有非常重要的地位。在大的有限域里,寻找本原多项式,快速算法的实现尤为重要。

期刊文献《计算机工程》,2008年第34卷第15期刊出的论文“求解本原多项式的快速算法”,结合求解最小多项式的方法给出在二元有限域上本原多项式的求解算法,在求解过程中同时给出了相应的最小多项式,并给出了算法相应的效能分析,具体的算法为:步骤1,求解出f(x)的一个根α及有限域GF(q);步骤2,计算模q的所有割圆陪集:C1,C2…,CV及陪集头的集合I;步骤3,计算每个陪集的最小多项式,对所有s∈I,其中,ms(x)即为αs及以s所在陪集为指数元素的最小多项式,设这个集合为M;步骤4,去除M中的多项式x,及x+1;步骤5,判断M中是否还有未判断的元素:若没有,则终止算法,若有,则从M中去除多项式p(x);步骤6,判断p(x)的互反多项式是否已经判断过,若判断过则转步骤5;步骤7,判断p(x)是否满足定理1(若一个n次多项式f(x)满足下列条件:(1)f(x)为不可约多项式;(2)f(x)可整除xm+1,m=2n-1;(3)f(x)除不尽xq+1,q<m。则称f(x)为本原多项式。),若是,则将f(x)放入集合F,否则转步骤5。该算法能够在执行最为占用时间的判断算法之前将搜索范围至少缩小为原有范围的1/6,提高搜索效果。

期刊文献《北京石油化工学院学报》,2003年第11卷第2期刊出的论文“利用窗口法寻找产生伪随机码的本原多项式”,作者提出了寻找本原多项式的窗口法,从伪随机码产生的原理出发,通过分析伪随机码的产生过程,并结合实际,借助MATLAB语言将窗口法实现,最后利用此窗口法寻找到了部分本原多项式。

然而,目前关于利用整数与多项式的对应关系,能更加快速的寻找伽罗瓦域(2^n)本原多项式的方法还未见报道。



技术实现要素:

本发明的目的是针对现有技术中的不足,提供一种伽罗瓦域下GF(2^n)本原多项式的快速寻找方法。

为实现上述目的,本发明采取的技术方案是:

一种伽罗瓦域下本原多项式的快速寻找方法,包括以下步骤:

S1,通过定义,寻找到GF(2^n)下的一个本原多项式;

S2,通过相应的本原多项式与生成元,生成相应的域元素、加法表、乘法表;

S3,通过以下步骤,获取所有本原多项式的相应根指数序列:

S301,以2^n-1为模,将与之有因式的数去掉,留下与模互素的数;

S302,以1开始,mod(2^n-1),后一个元素等于前一个×2mod(2^n-1),当等于第一个元素时,结束此循环,将此循环序列保存入相应数组中;

S303,选取最小一个未被选中的数,以步骤S302的方法,获得相应循环序列,保存至相应数组中;

S304,直至无元素可以选取,全部选取完毕,输出相应的序列,算法结束;

以相应序列作为以α为根的指数,即为相应本原多项式的根。

本发明还提供了一种分圆多项式的因式分解方法,包括以下步骤:

S1,将分圆多项式分解为本原多项式的乘积;

S2,将本原多项式使用按照如上方法获得的特定的根指数序列进行因式分解。

本发明还提供了一种分圆多项式的获得方法,包括以下步骤:

以任一本原多项式生成相应的域元素序列,其所有的本原元,即为其相应的根,所有以本原根为因式的乘积,即为分圆多项式。

本发明优点在于:

本发明利用整数与分圆多项式内在的对应关系,提出一种GF(2^n)本原多项式的快速寻找方法,本算法可以快速求解出GF(2^n)中相应的本原多项式,进行实际应用。

附图说明

附图1是基于x^8+x^4+x^3+x^2+1本原多项式,可纠正最大34个错误的生成多项式。

附图2是本发明伽罗瓦域下本原多项式的快速寻找方法中,获取所有本原多项式的相应根指数序列的流程图。

具体实施方式

下面结合附图对本发明提供的具体实施方式作详细说明。

在GF(28)之中,常用的本原多项式为m(x)=x^8+x^4+x^3+x^2+1,其多项式值用十进制表示是285,表示成十六进制形式为0x011D,二进制形式为100011101。生成域元素时,当生成元为X(等价于00000010),则它的次数增加一次,相当于左移一位,当超过了0x100,与本原多项式进行异或处理,这样就可生成254个域元素,加上0与1,则得到256个域元素。而生成元的取值并不仅仅限于X,但X是最为常用的取值。若取值为α(x)=X^2,用二进制表示为0000 0100,则代表次数每增加一次,左移两位,当该值超过256时,作mod本原多项式处理。若生成元α1为X2,本原生成多项式为X^8+X^5+X^3+X^2+1,则GF(2^8)域元素的表示形式如下表:

表1 GF(2^8)域元素与多项式、二进制十进制对照表

不同的本原多项式,以及本原元的选取,代表了不同的映射关系。在GF(28)中,有φ(255)/8=16个本原多项式,其中φ(255)是欧拉函数,代表与255互素的元素个数。如X^8+X^5+X^3+X+1,十进制可用299代替,X^8+X^7+X^6+X^5+X^4+X^2+1,十进制可用501代替,等等。本原多项式,以及α1的选择,在编解码过程中,决定了加减乘除具体的结果。

实施例1

如在GAP软件中,键入f:=CyclotomicPolynomial(GF(2),2^8-1),得到相应的分圆多项式:

x_1^128+x_1^127+x_1^126+x_1^123+x_1^122+x_1^121+x_1^113+x_1^112+x_1^110+x_1^109+x_1^108+x_1^107+x_1^105+x_1^104+x_1^98+x_1^97+x_1^95+x_1^94+x_1^93+x_1^92+x_1^90+x_1^89+x_1^83+x_1^82+x_1^80+x_1^79+x_1^78+x_1^76+x_1^74+x_1^72+x_1^71+x_1^70+x_1^68+x_1^67+x_1^65+x_1^64+x_1^63+x_1^61+x_1^60+x_1^58+x_1^57+x_1^56+x_1^54+x_1^52+x_1^50+x_1^49+x_1^48+x_1^46+x_1^45+x_1^39+x_1^38+x_1^36+x_1^35+x_1^34+x_1^33+x_1^31+x_1^30+x_1^24+x_1^23+x_1^21+x_1^20+x_1^19+x_1^18+x_1^16+x_1^15+x_1^7+x_1^6+x_1^5+x_1^2+x_1+Z(2)^0。

其因式分解,得到以下16个本原多项式:

x_1^8+x_1^4+x_1^3+x_1^2+Z(2)^0 (1)

x_1^8+x_1^5+x_1^3+x_1+Z(2)^0 (2)

x_1^8+x_1^5+x_1^3+x_1^2+Z(2)^0 (3)

x_1^8+x_1^6+x_1^3+x_1^2+Z(2)^0 (4)

x_1^8+x_1^6+x_1^4+x_1^3+x_1^2+x_1+Z(2)^0 (5)

x_1^8+x_1^6+x_1^5+x_1+Z(2)^0 (6)

x_1^8+x_1^6+x_1^5+x_1^2+Z(2)^0 (7)

x_1^8+x_1^6+x_1^5+x_1^3+Z(2)^0 (8)

x_1^8+x_1^6+x_1^5+x_1^4+Z(2)^0 (9)

x_1^8+x_1^7+x_1^2+x_1+Z(2)^0 (10)

x_1^8+x_1^7+x_1^3+x_1^2+Z(2)^0 (11)

x_1^8+x_1^7+x_1^5+x_1^3+Z(2)^0 (12)

x_1^8+x_1^7+x_1^6+x_1+Z(2)^0 (13)

x_1^8+x_1^7+x_1^6+x_1^3+x_1^2+x_1+Z(2)^0 (14)

x_1^8+x_1^7+x_1^6+x_1^5+x_1^2+x_1+Z(2)^0 (15)

x_1^8+x_1^7+x_1^6+x_1^5+x_1^4+x_1^2+Z(2)^0 (16)

请参见图2,图2是本发明伽罗瓦域下本原多项式的快速寻找方法中,获取所有本原多项式的相应根指数序列的流程图。包括以下步骤:

S301,以2^n-1为模。将与之有因式的数去掉,留下与模互素的数。

S302,以1开始,每一个元素×2,mod(2^n-1),当等于第一个元素时,结束此循环,保存入相应数组中。

S303,选取最小一个未被选中的数,以步骤S302的方法,获得相应循环序列,保存至相应数组中。

S304,直至无元素可以选取,全部选取完毕,输出相应的序列。算法结束。

如GF(2^8),与2^8-1=255互素的数,按照上述步骤,得到的序列如下:

本原多项式与上述根指数序列的对应关系如下:

x_1^8+x_1^4+x_1^3+x_1^2+Z(2)^0=(x_1+Z(2^8))(x_1+Z(2^8)^2)(x_1+Z(2^8)^4)(x_1+Z(2^8)^8)(x_1+Z(2^8)^16)(x_1+Z(2^8)^32)(x_1+Z(2^8)^64)(x_1+Z(2^8)^128) (1)

x_1^8+x_1^5+x_1^3+x_1+Z(2)^0=(x_1+Z(2^8)^13)(x_1+Z(2^8)^26)(x_1+Z(2^8)^52)(x_1+Z(2^8)^67)(x_1+Z(2^8)^104)(x_1+Z(2^8)^134)(x_1+Z(2^8)^161)(x_1+Z(2^8)^208) (2)

x_1^8+x_1^5+x_1^3+x_1^2+Z(2)^0=(x_1+Z(2^8)^31)(x_1+Z(2^8)^62)(x_1+Z(2^8)^124)(x_1+Z(2^8)^143)(x_1+Z(2^8)^199)(x_1+Z(2^8)^227)(x_1+Z(2^8)^241)(x_1+Z(2^8)^248) (3)

x_1^8+x_1^6+x_1^3+x_1^2+Z(2)^0=(x_1+Z(2^8)^59)(x_1+Z(2^8)^103)(x_1+Z(2^8)^118)(x_1+Z(2^8)^157)(x_1+Z(2^8)^179)(x_1+Z(2^8)^206)(x_1+Z(2^8)^217)(x_1+Z(2^8)^236) (4)

x_1^8+x_1^6+x_1^4+x_1^3+x_1^2+x_1+Z(2)^0=(x_1+Z(2^8)^37)(x_1+Z(2^8)^41)(x_1+Z(2^8)^73)(x_1+Z(2^8)^74)(x_1+Z(2^8)^82)(x_1+Z(2^8)^146)(x_1+Z(2^8)^148)(x_1+Z(2^8)^164) (5)

x_1^8+x_1^6+x_1^5+x_1+Z(2)^0=(x_1+Z(2^8)^23)(x_1+Z(2^8)^46)(x_1+Z(2^8)^92)(x_1+Z(2^8)^113)(x_1+Z(2^8)^139)(x_1+Z(2^8)^184)(x_1+Z(2^8)^197)(x_1+Z(2^8)^226) (6)

x_1^8+x_1^6+x_1^5+x_1^2+Z(2)^0=(x_1+Z(2^8)^19)(x_1+Z(2^8)^38)(x_1+Z(2^8)^49)(x_1+Z(2^8)^76)(x_1+Z(2^8)^98)(x_1+Z(2^8)^137)(x_1+Z(2^8)^152)(x_1+Z(2^8)^196) (7)

x_1^8+x_1^6+x_1^5+x_1^3+Z(2)^0=(x_1+Z(2^8)^7)(x_1+Z(2^8)^14)(x_1+Z(2^8)^28)(x_1+Z(2^8)^56)(x_1+Z(2^8)^112)(x_1+Z(2^8)^131)(x_1+Z(2^8)^193)(x_1+Z(2^8)^224) (8)

x_1^8+x_1^6+x_1^5+x_1^4+Z(2)^0=(x_1+Z(2^8)^127)(x_1+Z(2^8)^191)(x_1+Z(2^8)^223)(x_1+Z(2^8)^239)(x_1+Z(2^8)^247)(x_1+Z(2^8)^251)(x_1+Z(2^8)^253)(x_1+Z(2^8)^254) (9)

x_1^8+x_1^7+x_1^2+x_1+Z(2)^0=(x_1+Z(2^8)^53)(x_1+Z(2^8)^77)(x_1+Z(2^8)^83)(x_1+Z(2^8)^106)(x_1+Z(2^8)^154)(x_1+Z(2^8)^166)(x_1+Z(2^8)^169)(x_1+Z(2^8)^212) (10)

x_1^8+x_1^7+x_1^3+x_1^2+Z(2)^0=(x_1+Z(2^8)^29)(x_1+Z(2^8)^58)(x_1+Z(2^8)^71)(x_1+Z(2^8)^116)(x_1+Z(2^8)^142)(x_1+Z(2^8)^163)(x_1+Z(2^8)^209)(x_1+Z(2^8)^232) (11)

x_1^8+x_1^7+x_1^5+x_1^3+Z(2)^0=(x_1+Z(2^8)^47)(x_1+Z(2^8)^94)(x_1+Z(2^8)^121)(x_1+Z(2^8)^151)(x_1+Z(2^8)^188)(x_1+Z(2^8)^203)(x_1+Z(2^8)^229)(x_1+Z(2^8)^242) (12)

x_1^8+x_1^7+x_1^6+x_1+Z(2)^0=(x_1+Z(2^8)^43)(x_1+Z(2^8)^86)(x_1+Z(2^8)^89)(x_1+Z(2^8)^101)(x_1+Z(2^8)^149)(x_1+Z(2^8)^172)(x_1+Z(2^8)^178)(x_1+Z(2^8)^202) (13)

x_1^8+x_1^7+x_1^6+x_1^3+x_1^2+x_1+Z(2)^0=(x_1+Z(2^8)^61)(x_1+Z(2^8)^79)(x_1+Z(2^8)^122)(x_1+Z(2^8)^158)(x_1+Z(2^8)^167)(x_1+Z(2^8)^211)(x_1+Z(2^8)^233)(x_1+Z(2^8)^244) (14)

x_1^8+x_1^7+x_1^6+x_1^5+x_1^2+x_1+Z(2)^0=(x_1+Z(2^8)^11)(x_1+Z(2^8)^22)(x_1+Z(2^8)^44)(x_1+Z(2^8)^88)(x_1+Z(2^8)^97)(x_1+Z(2^8)^133)(x_1+Z(2^8)^176)(x_1+Z(2^8)^194) (15)

x_1^8+x_1^7+x_1^6+x_1^5+x_1^4+x_1^2+Z(2)^0=(x_1+Z(2^8)^91)(x_1+Z(2^8)^107)(x_1+Z(2^8)^109)(x_1+Z(2^8)^173)(x_1+Z(2^8)^181)(x_1+Z(2^8)^182)(x_1+Z(2^8)^214)(x_1+Z(2^8)^218) (16)

实施例2

如GF(2^7),2^7-1=127,因127是质数,所以有1-126年与之互素的元素:这些元素7个一组,共18组,构成了18个本原多项式的根。

其分圆多项式如下:在GAP中键入f:=CyclotomicPolynomial(GF(2),127);

x_1^126+x_1^125+x_1^124+x_1^123+x_1^122+x_1^121+x_1^120+x_1^119+x_1^118+x_1^117+x_1^116+x_1^115+x_1^114+x_1^113+x_1^112+x_1^111+x_1^110+x_1^109+x_1^108+x_1^107+x_1^106+x_1^105+x_1^104+x_1^103+x_1^102+x_1^101+x_1^100+x_1^99+x_1^98+x_1^97+x_1^96+x_1^95+x_1^94+x_1^93+x_1^92+x_1^91+x_1^90+x_1^89+x_1^88+x_1^87+x_1^86+x_1^85+x_1^84+x_1^83+x_1^82+x_1^81+x_1^80+x_1^79+x_1^78+x_1^77+x_1^76+x_1^75+x_1^74+x_1^73+x_1^72+x_1^71+x_1^70+x_1^69+x_1^68+x_1^67+x_1^66+x_1^65+x_1^64+x_1^63+x_1^62+x_1^61+x_1^60+x_1^59+x_1^58+x_1^57+x_1^56+x_1^55+x_1^54+x_1^53+x_1^52+x_1^51+x_1^50+x_1^49+x_1^48+x_1^47+x_1^46+x_1^45+x_1^44+x_1^43+x_1^42+x_1^41+x_1^40+x_1^39+x_1^38+x_1^37+x_1^36+x_1^35+x_1^34+x_1^33+x_1^32+x_1^31+x_1^30+x_1^29+x_1^28+x_1^27+x_1^26+x_1^25+x_1^24+x_1^23+x_1^22+x_1^21+x_1^20+x_1^19+x_1^18+x_1^17+x_1^16+x_1^15+x_1^14+x_1^13+x_1^12+x_1^11+x_1^10+x_1^9+x_1^8+x_1^7+x_1^6+x_1^5+x_1^4+x_1^3+x_1^2+x_1+Z(2)^0。

因式分解如下:

x_1^7+x_1+Z(2)^0,

x_1^7+x_1^3+Z(2)^0,

x_1^7+x_1^3+x_1^2+x_1+Z(2)^0,

x_1^7+x_1^4+Z(2)^0,

x_1^7+x_1^4+x_1^3+x_1^2+Z(2)^0,

x_1^7+x_1^5+x_1^2+x_1+Z(2)^0,

x_1^7+x_1^5+x_1^3+x_1+Z(2)^0,

x_1^7+x_1^5+x_1^4+x_1^3+Z(2)^0,

x_1^7+x_1^5+x_1^4+x_1^3+x_1^2+x_1+Z(2)^0,

x_1^7+x_1^6+Z(2)^0,

x_1^7+x_1^6+x_1^3+x_1+Z(2)^0,

x_1^7+x_1^6+x_1^4+x_1+Z(2)^0,

x_1^7+x_1^6+x_1^4+x_1^2+Z(2)^0,

x_1^7+x_1^6+x_1^5+x_1^2+Z(2)^0,

x_1^7+x_1^6+x_1^5+x_1^3+x_1^2+x_1+Z(2)^0,

x_1^7+x_1^6+x_1^5+x_1^4+Z(2)^0,

x_1^7+x_1^6+x_1^5+x_1^4+x_1^2+x_1+Z(2)^0,

x_1^7+x_1^6+x_1^5+x_1^4+x_1^3+x_1^2+Z(2)^0。

实施例3

如Gf(2^4),与2^4-1=15互素的数有1,2,4,7,8,11,13,14,其中一组根为1,2,4,8,另一组根为7,11,13,14,其分圆多项式为:

x_1^8+x_1^7+x_1^5+x_1^4+x_1^3+x_1+Z(2)^0。

其本原多项式为:

x_1^4+x_1+Z(2)^0,

x_1^4+x_1^3+Z(2)^0。

且互为互反多项式。

讨论:

本原元、本原多项式、分圆多项式之间的关系:

不同的本原多项式具有互反多项式等特定的关系。将本原多项式的解分组,并比较其中的关系可知,16个本原多项式中,有8对互反多项式,知道了其中一个多项式,必知道另一多项式。其中(1)与(9),(2)与(12),(3)与(8),(4)与(7),(5)与(16),(6)与(11),(10)与(13),(14)与(15)为互反多项式。

本原多项式之间存在着共轭关系。如用不同的本原多项式生成域元素,默认生成元为X(等价于00000010),在GF(2^8)中,将不同的根指数组代入,所得到的本原多项式相互生成关系如下表:

表2本原多项式与扩域中元素的根指数的关系

表格的第一行,代表了不同的本原多项式,用十进制数值来表示。表格的第一列,代表了相应的根指数序列,如1,则代表了(1,2,4,8,16,32,64,128),7,则代表了(7,14,28,56,112,131,193,224)。表格中的具体元素值,1,2,3,…,16,代表了具体的本原多项式,与表格第一行十进制表示的本原多项式存在着一一对应的关系。如1代表x_1^8+x_1^4+x_1^3+x_1^2+Z(2)^0,2代表了x_1^8+x_1^5+x_1^3+x_1+Z(2)^0,…,,16代表了x_1^8+x_1^7+x_1^6+x_1^5+x_1^4+x_1^2+Z(2)^0。

在285(x_1^8+x_1^4+x_1^3+x_1^2+Z(2)^0)这个本原多项式下生成的域元素,其本原多项式的因式分解如下,(x_1+Z(2^8))(x_1+Z(2^8)^2)(x_1+Z(2^8)^4)(x_1+Z(2^8)^8)(x_1+Z(2^8)^16)(x_1+Z(2^8)^32)(x_1+Z(2^8)^64)(x_1+Z(2^8)^128)。若本原多项式为355,其根指数序列为(7,14,28,56,112,131,193,224),则相应的乘积结果为2,即本原多项式299,即x_1^8+x_1^5+x_1^3+x_1+Z(2)^0。

分圆多项式与本原多项式的关系:本原多项式的乘积,即为分圆多项式。

因此,本发明也提供了一种分圆多项式的因式分解方法。

总结:

本发明的方法,是基于伽罗瓦域的运算。而伽罗瓦域的运算,首先要有伽罗瓦域元素的生成。而伽罗瓦域元素的生成,与本原多项式密切相关。而第一个本原多项式的寻找,必须根据定义:即在二元域及其扩域的基础上,f(x)可整除xm+1,m=2n-1;f(x)除不尽xq+1,q<m。

当寻找到第一个本原多项式后,即可根据上述关系,寻找出所有的本原多项式,以及本原多项式之间变换关系。而在本原多项式确定的情况下,本原元选取的不同,可构成不同的域元素及对应的加法与乘法。

在某一个本原多项式确定的情况下,对于任意生成元生成的伽罗瓦域元素序列,其相应本原多项式分解的指数序列固定,即根的指数总是那些分解出来的数字序列。

从而,每一个特定的本原元,以及本原多项式,都有着同等重要的作用,并可以相互转换。

而分圆多项式的因式分解中体现出来的共轭与以及元素之间的对称关系,更体现了圆的本质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。

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