ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:22.46KB ,
资源ID:5063206      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5063206.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlab有限域上的运算.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

matlab有限域上的运算.docx

1、matlab有限域上的运算1 有限域基础知识1、 有限域(Galois域)得构造令 p为一个素数、 则对任意得一个正整数 ,存在一个特征为p,元素个数为 pn 得有限域 GF(pn)、注:任意一个有限域,其元素得个数一定为 ,其中p 为一个素数(有限域得特征),n为一个正整数、例(有限域 G(p))令p为一个素数,集合F()=Z=,1,2,p1、在 GF(p) 上定义加法 与乘法 分别为模 p 加法与模 p 乘法,即任意得 a,GF(p), a=(a+b)mop,ab=(ab)odp则 F(p), 为一个有p 个元素得有限域,其中零元素为 0,单位元为、令 a 为G() 中得一个非零元素、由于

2、gcd(a,p)1,因此,存在整数 b,c,使得 a+pc=、 由此得到a 得逆元为 1=mop、域 G()称为一个素域(prm iel)、例注1:给定 与 p,例1中得等式ab+c1可以通过扩展得欧几里得除法得到,从而求得 G(p) 中任意非零元素得逆元、例2(有限域 GF(p))从 F(p) 出发,对任意正整数 n,n2,我们可以构造元素元素个数为pn 得有限域 GF(pn) 如下: 令g(x) 为一个GF() 上次数为 n得不可约多项式,集合 GF(pn)=GF(p)x()0x+a2+a1xn1|aiGF(p),0in在 (pn) 上定义加法与乘法 分别为模 g(x) 加法与模 g(x)

3、 乘法,即任意得a(x),b(x)GF(pn), a(x)(x)=(x)+b(x),(x)b()=(a(x)b(x))odg()则 GF(n),, 为一个有 p 个元素,特征为 p 得有限域,其中零元素为 GF(p) 中得0,单位元为 () 中得 1、令 () 为GF(pn) 中得一个非零元素、 由于 gcd(a(x),g(x))=1,因此,存在F() 上得多项式 b(),c(),使得 a(x)b(x)+g(x)(x)=1、 由此得到a()得逆元为 1(x)=b(x)mod(x)、域GF(p)称为G(p) 得(n 次)扩域(xension fld),而 GF(p)称为 GF(n)得子域(sub

4、field)、例注、1: 给定 GF(p) 上得多项式 a(x) 与(x),例2中得等式a()b(x)+g(x)c()=1 可以通过扩展得欧几里得除法得到,从而求得 GF(pn)中任意非零元素得逆元、例注、2:设() 就是一个含有 q 个元素得有限域、 对任意正整数 , GF(q)上得 n 次不可约多项式一定存在、更进一步,GF(q) 上首项系数为1得 n 次不可约多项式得个数为 N(n)=nd|n(d)d=1nd(d)qn/d其中 为Moebis函数,定义为 (m)=(1)k如果m1如果m=p2p,其中p1,2,k为互不相同得素数其它1、2有限域得性质令 GF(q) 就是一个含有 q 个元素

5、得有限域,Fq=GF()0为有限域 GF()中所有非零元素构成得集合、 则在乘法之下 Fq就是一个有限循环群、循环群 F 得一个生成元称为有限域 GF(q)得一个本原元、若GF(q)为一个本原元,则 (q)=0,1,,,q2并且 q1=1,即 、定义:设 GF() 就是一个含有 个元素得有限域,GF(p)就是GF() 得一个含有 个元素得子域(p不一定为素数),GF()、 则 GF(p)上以为根,首项系数为 1,并且次数最低得多项式称为 在GF(p) 上得极小多项式(mma plynomialof oerF(p)、特别地,若 () 为 GF(q)得一个本原元,则 在 F()上得极小多项式称为

6、GF() 上得一个本原多项式(riitepolnomialor GF(q) ovr F(p))、定义注1:对任意得 (q), 在 GF(p) 上得极小多项式存在并且唯一,并且 在 GF(p)上得极小多项式为GF(p)上得一个不可约多项式、定义注:设 F(), 则 与p 在GF(p) 上具有相同得极小多项式、 更进一步,集合 B()=,,p2,3,,i,中得元素具有相同得极小多项式、 设qpn,则 n=、 因此,集合 B() 中互不相同得元素得个数(记为 r)不超过n、可以证明,为 (q) 得一个本原元当且仅当 rn、定理:设GF(q) 就是一个含有 q 个元素得有限域,G(p)就是 F() 得

7、一个含有 p 个元素得子域、 设 (q),r 为满足 r=得最小正整数、则 在 GF(p)上得极小多项式 (x) 就是一个 次不可约多项式,并且 B()=,p,p2,pr1中得元素为(x) 在 GF(q) 上得所有不同得根,即g()=()(xp)(p2)(pr)、注:r 得计算方法如下:设 在 F 中得阶为 k、 集合 k=m|mk,gcd(m,)=1在模 k 乘法运算下就是一个含有()个元素得有限群(其中 为欧拉(Eler)函数)、 则 r 等于 pmodk 在Zk中得阶、推论:设() 就是一个含有 q个元素得有限域,GF(p) 就是 GF() 得一个含有 个元素得子域、设GF(q)|=pn

8、,即 =pn、 设 F(q) 为 GF(q) 得一个本原元,则 在 GF() 上得极小多项式 g(x) 得次数为 n,并且 (x)=(x)(p)(xp2)(xpn1)、更进一步,p,p2,,pn1 均为GF(q) 得本原元、注:设 GF() 就是一个含有p 个元素得有限域,n 就是任意一个正整数,则 F(p) 上得n次本原多项式一定存在、更进一步,GF(p) 上得首项系数为 得n 次本原多项式得个数为 (p),其中 为欧拉函数、例3 考虑二元域 GF() 上得不可约多项式 p()=+,构造有限域 GF(3)=F(2)/(),1,,+1,2,2+1,2,2+1、容易验证,,3,4,5,6 都就是

9、F() 得本原元、 GF() 上得首项系数为 得3 次本原多项式有两个,分别为 (i) ,2,4 在 F(2) 上得极小多项式 g(x)=(x+)(x+2)(4)=3x+1(ii)3,5,6 在GF(2)上得极小多项式 g(x)=3+x2+1有限域() 上得本原多项式一定就是 GF(p)上得不可约多项式;但就是,G(p) 上得不可约多项式不一定就是 GF(p) 上得本原多项式、 定理:设 G()就是一个含有 q个元素得有限域,GF(p)就是GF() 得一个含有 个元素得子域, g(x) 就是 F(p) 上得一个不可约多项式、 则(x)为G(p) 上得本原多项式当且仅当 g(x) 在 F(q)

10、上得根都就是 GF(q) 得本原元、下面例子说明不可约多项式不一定就是本原多项式、例4 考虑二元域 F(2) 上得不可约多项式()x4+x3+2x+1,构造有限域 F(2)=GF(2)xp(x)a+c2+xa,b,c,dG(2)、显然,x(24)、 由于 x=,即 得阶为5,因此,x 不就是 GF(24) 得本原元、于就是,p(x) 不就是 GF()上得本原多项式、另外,可以验证 x+ 就是F(4) 得本原元、Matlab 中得有限域计算函数Maa中自带得有限域得计算就是在 GF() 上进行得,即在二元域 GF(2) 得扩域中进行计算,其中 116、 由 “1、1 有限域得构造” 得“例 可知

11、,我们只需先找到一个 G(2) 上得m 次不可约多项式 (x),得到集合 G(2)xg(x),然后定义其上得加法与乘法分别为模 (x) 加法与模g(x) 乘法,即得到有限域 GF(2m)、然而,这样得到得有限域GF(2m)中,元素 x 未必就是本原元,这将给后面得(乘法)运算带来很多麻烦、 因此,在不可约多项式g(x) 得挑选上,我们最好选择一个本原多项式、 这其实就就是 Matlab 中得做法、Maa 中 G(m)得元素: 在 Maab 中 GF(2m):=F(2)D(D),其中 p(D)为一个 GF(2) 上得 m 次本原多项式、 GF(2m)aD+m2Dm2+a1+a0,iGF(2),0

12、i1因此,每个 GF(2m) 中得元素本质上就是一个次数小于m得多项式,每个元素与多项式之间有“11”对应关系、 例如,取 =3与本原多项式p(D)=D3+D+1,则我们得到有限域 GF(23),其中得元素与多项式之间得对应关系如下:(23)(2)D/(D)二进制00000110012013D+1014D2105D2+11016D2+11072+D+11GF(2) 上得多项式由系数组成得二进制所对应得(十进制)数字来表示、 例如,多项式 p(D)=D3D+1 得系数组成得二进制为 1011,因此,多项式 p(D) 表示为数字 1、2、定义有限域数组在 Matlab 中,函数 gf用来定义一个有

13、限域数组,函数申明如下:XGF=G(X,M,PRIM_PL)函数创建有限域 (2M) 上得一个数组,使用得 F()上得 M 次本原多项式为 PRIM_OLY; M 就是一个 1至16 之间得整数;数组 X 中得元素为 0至 2 之间得数、 例如,生成有限域GF(3) 中得所有元素,并令本原多项式为 p()=D3D+1、 GF8=g(0:7,3,13)GF8 GF(2)ary、Primie plynmal = D3+D2+1 (1 decimal)rrayeemts = 0 1 2 3 4 5 7如果不指定本原多项式,则 Mlb 将使用默认本原多项式、 例如 f(0:,3)an =F(23) a

14、rry、 Primtiv plyomia D3+1 (11 dcimal)Arry lemes= 0 1 2 3 6 7在这里例子中,Matlab使用了 3 次本原多项式 3D、如果不指定次数 与本原多项式 PRIM_PLY,则生成二元域 GF() 中得元素、 gf(0:1)as =GF() aray、 ray lements = 0 1生成得有限域中得数组可以参与运算(、等)、 注意:参与运算得操作数必须来自同一个有限域,用于生成有限域得本原多项式也必须相同!一个典型得例子就是计算有限域得乘法表如下: GF8 gf(0:7,)GF8= F(2) ray、Primitive olynomal

15、= D3+1 (11decim)Aray ents = 0 3 4 6 7 G8*GF8ans= (23) array、Primitie polynomal = D3+ (1 ecimal)Arayement 0 0 0 0 0 0 0 0 1 2 3 56 7 0 2 6 3 7 0 6 5 7 4 1 2 0 4 3 7 6 5 1 5 1 4 2 7 0 6 1 5 3 2 4 0 1 6 4 3 F8 g(0:7,3,3)8 = G(23) array、 rimitie olynmial = D3+D21(3eimal)rray elmens 0 1 2 3 4 7 G8GF8Wrni

16、ng: okupables nodefied for hi oder 23 andpriitivepolmia 3、Athmeti still orscorrtly but liplatin,oeniti,andnven eementis faster wih okup tabls、Use ftable to cete ad ve thlop tbles、 In g、ettablesat3 Igf、mmesa 20ansF(23)ary、 Prmtiepolynoml= 3+2+1 (13 dciml)ray eemn 0 0 0 0 0 0 0 1 2 3 4 5 6 7 4 6 5 7 1

17、 3 3 6 1 2 4 0 4 1 7 2 6 0 7 2 3 6 4 0 1 7 2 4 0 7 4 6 1 2在这里我们用两个不同得本原多项式构造有限域 GF(2),得到两张不同得乘法表、注:当我们计算(2)/3+2+ 得乘法表时,Matla 给产生一个警告 “Wrnig: Lookp tbes nt defiedfr thi re 23 ad primitie plynoml 、” 从警告中我们可以瞧出,Matlab 中有限域得乘法就是通过查表来完成得,这样可以显著地提高计算得速度、我们可以通过命令gtable来创建并保存查找表格、 注2:用本原多项式 D3+D+1与 3D2+1 生成

18、两个不同得元素个数为 得有限域,然而这两个有限域就是同构得、 一般地,我们有如下有限域同构定理:定理: 任意两个元素个数相同得有限域一定同构、与本原元多项式相关得函数pimpoy函数proy 用于计算 G(2) 上得本原多项式,函数申明如下:PR = PRIMPLY(, OP, nodspa)其中M 为本原多项式得次数,其取值为 2 至 16 之间得整数;选项 P 得定义如下:OP = min 给出一个权值最小得本原多项式OPT = max 给出一个权值最大得本原多项式PT = all 给出所有得本原多项式OT =L 给出所有权值为L得本原多项式字符串 ndispy 用于关闭默认得本原多项式显示方式、例如,输出 F(2) 上所有次数为 3 得本原多项式、 primpoly(3,al)rimtepolnoial(s)=D3+DD3+21an =113 rimpol(3,all,ndspla)ans=113isritive函数 iprmit用来检查GF(2)上得多项式就是否为本原多项式,函数申明如下:CK ISMIVE(A)其中A 为一个表示多项式得数字,并且表示得多项式得次数不能超过 6、如果A 为本原多项式,则返回 1;否则返回 、例如,检查多项式 D3+D 与DD+D1 就是否为本原多项式如下: iprimitve(1)ans = ismitie(15)ans =0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1