椭圆曲线密码系统的matlab实现

椭圆曲线密码系统的matlab实现

ID:40152853

大小:177.06 KB

页数:5页

时间:2019-07-23

椭圆曲线密码系统的matlab实现_第1页
椭圆曲线密码系统的matlab实现_第2页
椭圆曲线密码系统的matlab实现_第3页
椭圆曲线密码系统的matlab实现_第4页
椭圆曲线密码系统的matlab实现_第5页
资源描述:

《椭圆曲线密码系统的matlab实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、万方数据第34卷总第90期2013年6月西北民族大学学报(自然科学版)JournalofN盯mw嚣tUniversityforNationalities(NaturalScience)V01.34,No.2June,2013椭圆曲线密码系统的matlab实现宋春玉(西北民族大学数学与计算机科学学院,甘肃兰州730030)[摘要】文章利用椭圆曲线和加密解密原理,给出了用madab实现椭圆曲线密码系统的具体程序并第一次将椭圆曲线密码系统应用于汉字的加密和解密.[关键词】椭圈曲线;密码;删编程[中图分类号】0236【文献标识码】A【文章编号]1009—2102(2013102—0

2、014—04O引言椭圆曲线密码体制是由NealKoblitz和VictorMiller在1985年分别独立提出的,他们没有发明使用椭圆曲线加密的新的密码体制,但将有限域上的椭圆曲线用在了已经存在的Diffie—Hellman密钥分配体制和ELGamal体制中【1

3、.孙跃刚在其博士毕业论文中研究了有限域上大整数的模乘运算,对Montgomery模乘算法的实现给出了一个改进的算法,给出了基于无符号的滑动窗口算法,并证明这是一种运算效率比较高的算法【2].由于椭圆曲线密码系统的密钥很短就可以保证整个密码系统的安全,所以很多人对其进行了大量的研究,也有很多丰富的结果.本文对椭圆曲线

4、密码系统进行了matlab实现,并首次将其应用于汉字方面的应用.1椭圆曲线加密和解密的原理1.1椭圆曲线的建立选取一个域F口,还有一个定义在域F口上的非奇异椭圆曲线E及其上的一个阶为素数扎的点P.用(xp,匕,zp)表示点P的坐标.F口,椭圆曲线的参数口和b,P及其阶n是公开信息.1.2密钥的产生椭圆曲线密码系统建立后,每一个使用的人进行下面的计算:在区间[1,砣一1】里面任意选取一个整数d;计算Q=dP;公开密钥也含有点Q,使用的人的私钥是d.1.3椭圆曲线密码系统的加密原理当B要把消息m发给A时,要进行以下的计算:1)找到A的公开的密钥Q;2)把消息M表示为一个基域F口

5、里的元素.3)在区间[1,竹一1】里面任意选取一个整数k;4)计算点(Xl,y1,Z1)=kP;5)计算点(x2,y2,Z2)=kQ,如果x2=0,则回到3);6)计算C=mX2;[收稿日期]2013—03—30[作者简介】宋春玉(1985一),男,河南南阳人,硕士研究生,主要从事密码学与信息安全研究.一14—万方数据7)传加密消息(X,,y。,Z。,C)给A.1.4椭圆曲线密码系统的解密原理当A接收到从B来的密文(x。,y。,Z。,c)的时候,A需要进行下面的步骤:1)用它的私钥d,并计算点(x2,y2,Z2)=d(x1,yl,Z1).2)用计算m=c·xil,得到消息m

6、.2椭圆曲线密码系统的matlab实现2.1安全椭圆曲线的选择要使用椭圆曲线公钥密码进行加密,必须选择非奇异的椭圆曲线,也即△≠0.本文选择椭圆曲线y2=;/73+az+b.本文在整环上研究y2=z3+a;/7+bmoll,1.为了避免求逆运算,采用投影坐标系(f=d=1)下的椭圆曲线方程和算法.y2Z=X3+口XZ2+bZ3mod,1.为了使得该曲线为非奇异的,要求4口3+27b2≠0.本文采用自己输入参数而得到安全椭圆曲线和椭圆曲线上的整数点,程序如下:建立一个M文件E.mfunctionE(a,b,n)a--input(‘请输入a的值:’)b=input(‘请输入b的

7、值:’)n=input(‘请输入椭圆曲线的阶大素数n的值:’)if4*a'3+27*b-2==0%‘请注意选择安全的椭圆曲线参数’a=[]b=[]‘请输入安全的椭圆曲线参数’endfori=1:nforj-1:nfork=2:nifmod((j一1)‘2*(k一1),n)==mod((i一1)‘3+a*(i一1)*(k一1)^2+b*(k一1)‘3,n)z=[i一1,j一1,k一1]endend.由程序可以进行参数选择,如下:a=1,b=2。,l=23,d=13,点P(5,12,14)2.2将汉字转化为数组为了实现matlab将汉字加密,首先需要将汉字转化为数组.本文所采用

8、的方法是将汉字转换为其ascall码值.程序如下:建立一个M文件jiami.mfunctionjiami(str,m,n,t)a--input(‘请输入加密的文字:’,‘s’);S廿2a:一】5一万方数据m=abs(str);n=length(a);fori=1:ll/2t(i)=m(i);end本文选择对汉字“明天上午九点开会”进行加密和传送,由上面的程序可得字符串对应的aseall值用矩阵:[2612622825199782132020061288572432020250】来表示.2.3对转换后的数组进行加密A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。