- 1、本文档共149页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例13】在Z23上的椭圆曲线为y2=x3+12x+1,基点为P=(0,1),求循环阶。 解:因为 x2p=λ2-2x1=36 mod 23=13 y2p=λ(x1-x2p)-y1=6(0-13)-1 mod 23=13 所以2P=(13,13)。同样可以求得各个nP如表4.9所示。 因为模23下15P=(0,22)=(0,-1),与P=(0,1)以横轴为对称,所以16P=15P⊕P=Φ(无穷远点),表明基点P=(0,1)的循环阶是n=16。 表4.9 Z23上的椭圆曲线y2=x3+12x+1的数乘循环数据 4.7.6椭圆曲线上的密码系统 1.ElGamal公钥体系 1)系统参数 设E是定义在Zp(p3的素数)上的椭圆曲线,令α∈E,由α生成的子群H满足离散对数计算复杂要求,计算β=aα,其中a可任选。则私有密钥为k2=a,公有密钥为k1=(α,β,p)。 2)加密算法 对于明文x,随机选取正整数k∈Zp-1,有 Ek1(x, k)=(y1, y2) (4-73) 其中: y1=kα, y2=x+kβ (4-74) 3)解密算法 解密算法为 (y1, y2)=y2-ay1=x+kβ-akα=x+kaα-akα=x (4-75) 这种思路与离散对数公钥系统十分相似。离散对数公钥系统是把一个数x与它的a次方y作为公钥,而把a作为私钥,利用的是计算离散对数的复杂性。此处是把椭圆上的一个点x与它的a倍的那个点y作为公钥,而把a作为私钥,利用的是计算椭圆除法的复杂性。根据这个相似性,人们也往往把椭圆曲线问题称为椭圆曲线离散对数。 表4.5 由方程H·CT=0解出的四个码字 4.6.2McEliece密码体制 1.系统参数 设G是GF(2)上的[n,k,d]Goppa码的生成矩阵,其中n=2m,d=2i+1,k=n-mt;设明文集合为GF(2)k,密文集合为GF(2)n(这里k,n表示位数)。随机选取GF(2)上的k×k阶可逆矩阵S和n×n阶置换矩阵P,令 G′=SGP (4-56) 则私有密钥为S、G、P,公开密钥为G′。 2.加密算法 对于待加密明文m∈GF(2)k,其对应的密文为 C=mG′+z (4-57) 这里,z是GF(2)n上重量为t的随机向量(即z是长为n,其中t个1的任意向量)。 3.解密算法 收到C后,计算: CP-1=mSGPP-1+zP-1=mSG+z′ (4-58) 由于P是置换矩阵,因此z′与z重量不变,即w(z′)=w(z)=t。视z′为t位错误格式矢量,mSG+z′是发生了t位错的mSG,利用Goppa码的快速译码算法,经Goppa译码,错误得以纠正,将其译成m′=mS,于是明文为 m=m′S-1 (4-59) 【例8】已知(7,4,3)码的生成矩阵为 根据McELiece密码体制设计加、解密算法。 解:假设用户A选择: 则公开密钥为 设明文m=(0101),错误格式向量z=(1000000),则密文 C=mG′+z=(1101110) 解密分两步,先作逆置换: C′=CP-1=CPT=(1110011)=mSG+z′ 再经Goppa译码,得到: m′=mS=(1100) 最后: 因(7,3
文档评论(0)