一种计算伽罗华域本原元正整数次幂的方法技术

技术编号:8883134 阅读:260 留言:0更新日期:2013-07-04 02:01
本发明专利技术涉及信息安全技术中的代数编解码领域,具体公开一种计算伽罗华域本原元正整数次幂的方法,包括:预先构造递归函数update_c(x),该递归函数update_c(x)用以根据本原多项式中最高次幂m和系数数组b[m]的值计算与本原元正整数次幂αn对应多项式表达系数数组c[m]的值;以n为参数,执行该递归函数update_c(x),用以获取数组c[m]的值;根据表达式αn=c[m-1]αm-1+c[m-2]αm-2+c[m-3]αm-3+...+c[1]α+c[0]进行计算,用以获取本原元正整数次幂αn的计算结果。本发明专利技术无需存储数组c[m]元素,有利于节省存储空间。

【技术实现步骤摘要】

本专利技术涉及信息安全技术中的代数编解码领域,具体来说是。
技术介绍
有限域乘法是目前代数编解码领域中应用到较多的运算,其中很多加密认证算法都要利用有限域乘法。伽罗华域就是广泛应用于代数编解码领域的一种重要有限域,伽罗华域的运算是主要指在特定规则下进行的两类运算:加法和乘法。在伽罗华域中仅包含O和I两个元素,其运算规则与有理数域不同,具体而言:加法是一种逻辑异或计算,可很容易利用一个异或门来实现;而乘法是一种逻辑与运算,利用一个与门也可以轻易实现。例如,对于一个伽罗华 域中ak(K为非负整数)的加法规则为:ak+ak = (ri)ak = 0,记为公式(一);a k+0 = a k+0* a k = (Γ0) a k = a k, a k+0 = a k 记为公式(二),其中 ~ 表示逻辑异或。例如a2+a2 = 0, a 2+0 = a 2,补充说明a°=l。对于一个伽罗华域GF (2m),若a为伽罗华域GF (2m)的本原元,可将GF (2m)的本原多项式表示为 P(X) = Xm+bXm-Wb Xm_2+bXm_3+...+b X+b ,其中:m 是正整数,数组b是本原多项式p(X)的O (m-1)次项的系数数组,b b是数组b的m个元素,b数组元素值为O或I。伽罗华域上元素的表示方法与域上运算算法关系密切,其域元素可用本原元素、剩余类、多项式及矢量表示,其中最直接的表示方法是本原元素表示方法(又称指数表示、幂次表示)。由生成GF(2m)域的本原多项式,可从本原元素表示法导出其他三种表示方法。根据伽罗华域原理,本原元a是方程P(X) =0的一个根,即 P ( Ct ) = O,可以得到 a m+b a m_1+b a m_2+b a m'..+b a +b =0,再根据伽罗华域加法原理得到 a m = b a ^+b a m_2+b a -3+...+b a +b,记为公式(三)。在代数编解码过程中,经常需要把α的正整数次幂即an(n为正整数)变换成最高次幂小于m的多项式表达式(简称为一表达式)。根据公式(三)可知无论η为多大的正整数,αη都可表示为最高次幂小于m的形式。例如:p(X) = X14+X12+Xn+X+1,则a 14 = a12+an+a+l, a 16 = a 14* a 2 = ( a 12+a n+a+1) a2 = a 14+( a 13+a 3+a 2)=a 12+a n+a+1+( a 13+a 3+a 2) = a 13+a 12+a n+a 3+a 2+a+1,因此 an 可以表示为如下格式:ct n = c a m:+c a m 2+c a m 3+...+c a +c ,记为公式(四),其中c c 是a n对应多项式表达系数数组c 的m个元素,c数组元素值为O或1由公式(四)可知,若求得a11对应多项式表达系数数组c的值,则可进一步求得a n的表达式。在已知本原多项式,即本原多项式最高幂次m值和本原多项式系数数组b值已知的情况下,对于任意正整数n,都有唯一确定的a n对应多项式表达系数数组c与之相对应。因此,计算本原元a的正整数次幂a "的关键在于获取该数组c 的值。现有技术中采用一种制表存储方式来计算α η,即预先存储与η对应的数组c,之后查表获取相应的数组元素c c ,再根据公式(四)计算αη。通过存储每个η对应的数组c 来提供α11表达式的值,其中η最多取值个数用N表示,则存储每个η对应的数组c 共需要N*m个比特的存储空间。当N比较大而且m值比较大时,则需要很大的存储空间来存放每个η对应的数组c 。比如I彡η彡1024,m = 16,则需要16384比特的空间来存放每个η对应的数组c 。这无疑提高了处理器的存储要求,因而有必要提出一种新的伽罗华域本原元正整数次幂的计算方法。
技术实现思路
有鉴于此,本专利技术的目的在于提供,用以解决存储本原元α η表达式所对应数组c ,在η范围比较大而且m值比较大情况下占用存储空间大的问题。为解决以上技术问题,本专利技术提供的技术方案是,,包括:预先构造递归函数update_c (X),该递归函数update_c (X)用以根据本原多项式中最高次幂m和系数数组b的值计算与本原元正整数次幂α11对应^"对应多项式表达系数数组c 的值;以η为参数,执行该递归函数update_c(x),用以获取数组c的值;根据表达式 a n = c a m:+c a m 2+c a m 3+...+c a +c 进打计算,用以获取本原元正整数次幂a n的计算结果。其中:该 递归函数update_C(X)中,输入参数x为正整数,递归规则如下:如果X小于m,则将数组c中的元素c更新为c与I的异或值;函数update_c(x)更新数组c结束。如果X等于m,则将数组c更新为数组c与数组b的按位异或值;函数update_c(x)更新数组c结束。如果X大于m,从步骤s_0开始执行以下操作:步骤s_0:判断b是否为I,若b为I则执行步骤s,否则执行步骤s _0 ;步骤s_l:比较χ-l值与m值,若χ-l小于m,则执行步骤s_2 ;若x_l等于m,则执行步骤s_3 ;若χ-l大于m,则执行步骤s_4 ;步骤s _2:执行 c = c ~b ,然后执行步骤 s _0 ;步骤s_3:执行 c = c ~b 、c = c ~b 、c =c ~b...c = c ~b、c = c ~b操作,然后执行步骤 s_0 ;步骤s_4:执行 update_c (x_l),然后执行步骤 s_0 ;步骤s_0:判断b是否为1,若b为I则执行步骤s _l,否则执行步骤s _0 ;步骤s _1:比较x_2值与m值,若x_2小于m,则执行步骤s _2 ’若x_2等于m,则执行步骤s _3 ;若χ-2大于m,则执行步骤s _4 ;步骤s_2:执行 c = c ~b,然后执行步骤 s_0 ;步骤s_3:执行 c = c ~b 、c = c ~b 、c =c ~b...c = c ~b、c = c ~b操作,然后执行步骤 s_0 ;步骤s _4:执行 update_c (x_2),然后执行步骤 s _0 ;步骤s _0:判断b 是否为1,若b 为I则执行步骤s _l,否则执行步骤s _0 ;步骤s_l:比较x_3值与m值,若x_3小于m,则执行步骤s_2 ;若x_3等于m,则执行步骤s _3 ;若χ-3大于m,则执行步骤s _4 ;步骤s_2:执行 c = c ~b,然后执行步骤 s_0 ;步骤s_3:执行 c = c ~b 、c = c ~b 、c =c ~b...c = c ~b、c = c ~b操作,然后执行步骤 s_0 ;步骤s _4:执行 update_c (χ-3),然后执行步骤 s _0 ;步骤s_0:判断b是否为1,若b为I则执行步骤s_l,否则执行步骤s_0 ;步骤s_l:比较χ-m+l值与m值,若χ-m+l小于m,则执行步骤s_2 ;若x-m+1等于m,则执行步骤s_3 ;若χ-m+l大于m,则执行步骤s_4 ;步骤s_2:执行 c = c ~b ,然后执行步骤 s _0 ;步骤s_3:执行 c = c 本文档来自技高网
...

【技术保护点】
一种计算伽罗华域本原元正整数次幂的方法,其特征在于,包括:预先构造递归函数update_c(x),该递归函数update_c(x)用以根据本原多项式中最高次幂m和系数数组b[m]的值计算与本原元正整数次幂αn对应多项式表达系数数组c[m]的值;以n为参数,执行该递归函数update_c(x),用以获取数组c[m]的值;根据表达式αn=c[m?1]αm?1+c[m?2]αm?2+c[m?3]αm?3+...+c[1]α+c[0]进行计算,用以获取本原元正整数次幂αn的计算结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:冷永春胡胜发
申请(专利权)人:安凯广州微电子技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1