当前位置: 简表范文网 > 专题范文 > 公文范文 >

椭圆加密算法的改进算法研究与分析

| 来源:网友投稿


打开文本图片集

摘要:随着移动互联网技术、物联网、电子商务等各种应用的急速发展,针对计算机安全、网络安全、信息安全的威胁越来越严重,信息安全的重要性越来越得到人们的重视,椭圆曲线加密技术目前在TLS、PGP和SSH等中应用广泛,在有限域 GF(p)上包括椭圆曲线点加法运算及其可视化,在有限域 GF(p)上椭圆曲线标量乘法运算及其可视化,椭圆曲线点对实数域 R的加法运算及其几何意义,都将在本论文中展开研究。

关键词:椭圆曲线;椭圆曲线加密;可视化工具;加密与解密

中图分类号:TP311      文献标识码:A      文章编号:1009-3044(2019)01-0054-03

本文主要是研究在安全性、计算效率方面有很大优势的一种公钥密码[1]体制——椭圆曲线加密算法及其应用。其研讨工作主要有以下几个方向:HTML5+ jQuery框架 Web前端开发技术,椭圆曲线加密算法与数学有着密切的关系,尤其是对在有限域上的椭圆曲线形成的循环子群[2]、生成元的生成算法进行了详细的研究,因为它们对于实际的 ECC加密算法的实现非常关键。相关的算法和实现细节也在论文中进行了展示;并改进了双点计算的方法[9],从而提高了椭圆曲线密码的加密和解密过程的速度。点nP的标量运算的时间复杂度从O(n)提高到log(n)。

1 椭圆曲线群运算及可视化工具开发

椭圆曲线加密一直都广泛地在TLS、PGP和SSH中运用。椭圆曲线加密算法在数学领域中也可以灵活运用,例如椭圆曲线几何、集合论、阿贝尔群、有限域等。这些运算不仅抽象,而且计算量也很大。故本文利用HTML5和css、jQuery框架等相结合的想法,利用研究有限域椭圆曲线的可视化工具进行开发研究。

1.1 椭圆曲线的可视化工具的开发

为了更好地理解椭圆曲线上的点的各种操作及其几何意义,有必要直观地理解椭圆曲线,例如奇异曲线。 因此,本文开发了实际场和有限域中的椭圆曲线可视化工具软件。 b的值在真实场上给出了各种不同的椭圆曲线。

1.2 椭圆曲线Abel群的定义及几何意义的可视化

为了点加运算更加清晰地展现出来,本文开发了可视化工具软件显示其代数计算的结果以及其几何意义:椭圆曲线连接到两个不同点P和Q的和,并且PQ的延长线和曲线相对于x轴的交点称为椭圆的切线。 图1-2( a)是椭圆曲线上的两个点 P(1,2), Q(3, 4)相加得到点 R(-3,2)以及其几何意义,点 R(-3, 2)是 PQ延长线和椭圆曲线的交点(-3,-2)的对称点。 图1-2(a)还验证了椭圆曲线下的组的定义: 在椭圆曲线上,三个非单位点 P, Q,- R以直线连接,并且它们的和为 P+ Q+ (- R)= O.图1-2( b)说明了在椭圆曲线上定义组的另一个规则: 若 P、 Q互为逆元,即 P与 Q关于 x轴对称或者说 Q=- P,则 P+ Q= O,它也表达了一个无限点。

标量乘法也称为双点运算,即计算。当变量n很大时,计算的时间复杂度也会变大。 图1-3(a)是椭圆曲线上不相同的两个点的相加; 图1-3( b)显示了两个相互反向元素的点的相加,即通过该点的椭圆的正切,切线和椭圆曲线交点处的对称点是添加两个相同点的结果; 图1-3( b)和1-3( c)表示添加两个相同的点( P+ P)具有点 P的双标量乘法(2 P)的结果在几何上是一致的。

1.3 有限域GF(p)上椭圆曲线群点集的计算

假设有椭圆曲线[E97(2,3):y2=x3+2x+3(mod97)],其上有 P(3,6),如果在 P上执行标量乘法计算,你会发现结果只有五个不同的值( O, P,2 P,3 P,4 P),并且循环出现。 可以证明的是纯量乘法在加法运算下是出于封闭状态下的,换句话说,通过在有限域上的椭圆曲线的点 P上迭代地执行标量乘法而获得的一组点构成循环子组。 P称为循环子群的生成元( generator)或基元( base point)。

子群的阶:由P生成的椭圆曲线上的子群的阶是指一个最小的正整数n,满足nP=O。例如在图1-4中,椭圆曲线[E97(2,3):y2=x3+2x+3(mod97)]上的一个点P(12,3)生成的子群的阶是50。

因此,在有限域上GF(p)上橢圆曲线两个点相加P+Q=R的几何意义是:首先由P、Q确定斜率为m的一组平行线(满足线性方程y=mx+c (mod p)),如果椭圆曲线的点集合中的某个离散点R’落在某一条平行线上,则R’关于x轴的对称点R就是P+Q的计算结果。例如在图1-5中,椭圆曲线C上的两个点P(16,20), Q(41,120)进行点加运算,计算斜率C,c=83,得到满足方程C的一组平行线,在点集合中容易验证R’=(86, 46)满足该方程,则R’的逆元R=(86, -46)=(86,-46+127)=(86, 81)即为点P与Q相加的结果。

2 椭圆曲线加密算法的改进与优化

2.1 对椭圆曲线群纯量乘法的优化与改进过程

除了进行点加法之外,还有另外一种运算叫点乘运算[4]:cP=P+P+...+P,其意义为计算cP需要执行n-1次加法,其点乘运算的时间复杂度为O(n)。如果用k位二进制表示,即c=bk-1…b1b0,则算法的时间复杂度为O(2k),可以利用倍加运算(double and add operations.)进行快速计算,如果n表示为二进制,则该二进制表示可以转化为2的幂和。然后,我们取n的每一个二进制数,乘以它的2次方。

[n=i=0…k-1bi⋅2i]

(1) 若倍加操作的运算为O(1),则该算法的复杂度为O(logn),运用此优化改进之后其复杂度O(n)。计算151P,则将151用二进制表示则为100110111,151P=(1*27+0*26+0*25+1*24+0*23+1*22+1*21+1*20)P,最终计算出151P的结果需要通过7次的“加倍运算”与4次“相加运算”即可实现,运算的时间复杂度明显降低。

(2) 给定一个有限域椭圆曲线,要利用其实现椭圆曲线加密算法,那么椭圆曲线群生成元P的选择及其阶的计算至关重要。本文中采用的方法不是首先选择一个生成元,然后计算基于该生成元的子群,而是寻找一个生成元使其生成的循环子群具有高阶。所采用的方法如下:

① 选择一个椭圆曲线Ep(a,b): y2=x3+ax+b mod p;

② 计算该椭圆曲线的阶N;

③ 如果G=hP是单位元O,则转到第(4)步重新选择一个点P,否则就找到了一个具有阶n和辅因子h的循环子群的生成元G=hP。

(3) 例如,根据本文在第4章开发的可视化工具的计算,椭圆曲线y2=x3−x+3 (mod 37)的阶为N=42,N的因子有n=1 , 2, 3, 6, 7, 14, 21,42,选择n=7(素数)作为子群的阶,随机选择椭圆曲线的一个点P=(2, 3),h=N/n=42/7=6,计算hP=6P=(2,34)≠O,因此得到用于椭圆曲线加密的循环子群,其生成元是G(2, 34),阶为n=7。

2.2 椭圆曲线加密解密算法

2.2.1 ECC的密钥生成算法

假如通信双方为A,B,发送方为A,接收方为B,要生成一个用户B的公钥、私钥对的算法如下:

(1) 选择一个椭圆曲线E:y2=x3+ax+b(mod p),构造一个椭圆Abel群Ep(a, b);

(2) 在Ep(a, b)中挑选生成元G=(x0,y0), G应使得满足nG=O的最小n (n是G的阶)是一个非常大的素数;

(3) 选择一个小于n的整数nB作为私钥,公钥为PB=nBG, 即:

用户B的public key=(n, G, PB, Ep(a, b))。

用户B的secure key=nB(小于n)。

2.2.2 AàB实现保密通信,发送端A的加密算法

step1:将明文消息编码成一个数m<p,将m镶嵌到曲线上得点Pm=(xm,ym),再对点Pm做加密变换。

step2:在[1, n-1]内选取一个随机整数k, 计算点P1=kG。k是保密的,但接收端无须知道。

step3:根据B的公钥PB, 计算点P2=kPB。

step4:A端传送加密数据Cm={P1, Pm+P2},其为2个点。

2.2.3 AàB实现保密通信,接收端B的解密算法

step1:接收方B接收到的是2个点kG, Pm+kPB ,其用自己的私钥nB做如下计算:Pm+P2- nBP1即可解密,因为Pm+kPB- nBkG= Pm+knBG- nBkG=Pm。

step2:根据Pm,接收端再根据发送方的明文编码的镶嵌方法即可得到明文编码m,进一步得到明文。

2.3 椭圆曲线加解密算法的实现与结果分析

椭圆曲线密码体制是基于有限域GF(89)上的E89(-1,0): y2=x3-x mod 89,根据文献 [3]中的Schoof算法计算该椭圆曲线群的阶为N=80,N的所有因子为n=1, 2, 4, 5, 8, 10, 16, 20, 40, 80。对于N的每个因子n=1, 2, 4, 5, 8, 10, 16, 20, 40, 80,计算nP。

1P=(68,4), 2P=(21,42), 4P=(68,85), 5P=O, 8P=(21,47), 10P=O, 16P=(68,4), 20P=O, 40P=O, 80P=O。

易知,满足nP=O的最小的n=5且其为素数,计算其协因子h=N/n=16。随机选择椭圆曲线上一个P(12,5)且满足hP=16P=(68,85)≠O,则选择G=(68,85)作为用于椭圆曲线加密的循环子群的生成元。很显然其阶为n=5,因为nG=5G=5*16P=80P=O。

选择小于n的整数dB=3作为接收端B的私钥(Private Key),计算B的公钥(Public Key)PB=dBG=3(68,85)=(21,42)。

發送端A加密时选择一个秘密整数k=2,对明文消息“hello!”的加密过程及加密结果(密文)如下:

[明文 编码 分组m 将m映射到椭圆曲线上的点Pm(xm, ym), 取r=30, j=0…r-1 加密结果={P1,P3},k=2.

P1=kG=2(68,85)=(21,47), P2=kPKB=2(21,42)=(68,85)

P3=Pm+P2=Pm+(68,85) h 68 26 (77, 8), j=9 {(21,47),(15,45)} e 65 06 (12, 5), j=10 {(21,47),(51,41)} l 6c 21 (17, 1), j=10 {(21,47),(72,55)} l 6c 44 (1, 0), j=16 {(21,47),(15,45)} o 6f 27 (37, 8), j=28 {(21,47),(65,66)} ! 21 06 (12, 5), j=10 {(21,47),(51,41)} 60 (37, 8), j=17 {(21,47),(65,66)} 33 (25, 5), j=14 {(21,47),(32,42)} 密文{(P1,P3)} (21,47)(15,45),(21,47)(51,41),(21,47)(72,55),(21,47)(15,45),(21,47)(65,66),(21,47)(51,41),(21,47)(65,66),(21,47)(32,42) ]

一个明文分组映射为椭圆曲线上的点加密之后的密文是两个椭圆曲线的点,因此椭圆曲线加密传输的效率为50%。

3 结论

虽然还有很多不足,并且已经提出了大量的隐私保护方法,但仍然需要更多的研究,有许多挑战需要克服。其中最重要的可能是对用户隐私的适当保护的ECC算法。因此,本文提出改进了ECC的精确度,并使得椭圆曲线密码的加密和解密过程的速度得到提高、点的纯量乘法nP的计算时间复杂度提高,并力争达到工业级别的ECC加解密教学演示系统、数字签名教学演示系统。

参考文献:

[1] Carron, L.P., Morse Code: The Essential Language. Radio amateur"s library. Vol. 69. 1986: American Radio Relay League.

[2] 于伟. 椭圆曲线密码学若干算法研究[D].中国科学技术大学,2013.

[3] R. Schoof: Elliptic Curves over Finite Fields and the Computation of Square Roots mod p. Math. Comp., 44(170):483–494.Available at http://www.mat.uniroma2.it/~schoof/ctpts.pdf

[4] 陈少云.拉格朗日中值定理的应用实例[J].河南教育学院学报(自然科学版),2017,26(3):54-57.

[5] Chengwei Wang. Linear singular blending rational spline curve[P]. Computing, Control and Industrial Engineering (CCIE), 2011 IEEE 2nd International Conference on,2011.

[6] 劉建成,杨晓静,张玉.基于改进欧几里德算法的(n,1,m)卷积码识别[J].探测与控制学报,2012,34(1):64-68.

[7] 刘丽涛,王刃峰.基于JavaScript+jQuery的网站设计与实现[J].电脑编程技巧与维护,2018(8):40-41+53

[8] 易泽顺. 基于Web的数据可视化工具设计与实现[D].华中师范大学,2017.

[9] 李明. 椭圆曲线和超椭圆曲线上标量乘的快速计算[D].山东大学,2012.

[10] 张晓军.基于HTML5+CSS3.0+jQuery在移动电商APP开发中的应用[J].通讯世界,2015(6):57.

相关推荐

热门文章

关于珍爱生命作文800字高中【精选推荐】

范文参**网最近发表了一篇名为《2022关于珍爱生命的作文800字高中【】》的范文,感觉写的不错,希望对您有帮助,重新整理了一下发到这里。在平日的学习、工作和生活里,大家都不可避免地要接触到作文吧。下面小编为大家整理了2022关于的作文800字高中【5

2022清明网上祭英烈活动心得感悟经典范本10篇600字

本页是最新发布的《清明网上祭英烈活动心得感悟经典范文10篇600字》的详细范文参考文章,觉得有用就收藏了,希望大家能有所收获。清明祭心得感悟经典范文10篇600字说到清明节这个大家熟悉的节日,大家一定都是去祭拜祖先!但是可曾想过在清明节这天来祭奠我们的英烈们呢?下面是小编为您推荐

共青团成立100周年作文600字(完整)

本页是最新发布的《2022共青团成立100周年作文600字【精选】》的详细范文参考文章,好的范文应该跟大家分享,这里给大家转摘到。共青团员是中国共产党的后备力量,也是党的生命力的源,理论上的成熟是****上成熟的基础,****上的清醒来源于理论上的坚定。下面是小编为大家带来的

2022祖国在我心中演讲稿最新10篇(范文推荐)

最近发表了一篇名为《祖国在我心中演讲稿最新10篇》的范文,感觉很有用处,希望大家能有所收获。演讲是一门艺术。好的演讲自有一种激发听众情绪、赢得好感的鼓动性。要做到这一点,首先要依靠演讲稿思想内容的丰富、深刻,见解精辟,有独到之处,发人深思,语言表达要形象、生动,富有感染力。下面小编给大家带

2022全国中小学生安全教育日心得体会三篇

最近发表了一篇名为《2022全国中小学生安全教育日心得体会三篇》的范文,感觉写的不错,希望对您有帮助,重新编辑了一下发到。2022全国中小学生日心得体会三篇为贯彻落实珍爱,安全第一为主题的中小学安全日教育活动,我校领导高度重视,紧紧围绕安全日安全教育这一主线,在师生中开展了丰富多

2022年度关于端正态度作文初三(精选文档)

《2022关于端正态度的作文初三【精选】》是一篇好的范文,觉得有用就收藏了,看完如果觉得有帮助请记得(CTRL+D)收藏本页。在生活、工作和中,大家都不可避免地要接触到作文吧,作文是通过文字来表达一个主题意义的记叙方法。下面小编为大家整理了2022关于端正的作文初三【精选】的相关内容,以供参

草房子第一章秃鹤心得感悟合集【精选推荐】

《草房子第一章秃鹤的心得感悟》是一篇好的范文,觉得有用就收藏了,这里给大家转摘到。草讲述了发生在20世纪60年代初江南水乡动人动情的童年故事。读完了草房子小说,你有着怎样的草房子读书?你是否在找正准备撰写“草房子第一章秃鹤的心得感悟”,下面小编收集了相关的素材,供大家写文参考!草房子第

2022年大学生档案自我鉴定300字10篇

2022年普通大学生个人社会实践实习报告精选服务社会做好思想准备和业务准备,公司内部电脑系统都是统一英文系统,就要求自己以职场……[详细]2022年党员思想汇报例文两篇【完整版】所以在以后的学习和生活中,经历过苦难的中国,工作以及生活中,特别是通过学习党章党纪……[详细]企业员工服务意识培训心得体会

2022年爱细节作文600字初中范本

《2022爱的细节作文600字初中范文【】》是一篇好的范文,觉得应该跟大家分享,希望对网友有用。爱是冬日的一缕阳光,使饥寒交迫的人感到人间的温暖;爱是一场洒落在久旱的土地上的甘霖,使濒临绝境的人重新看到生活的希望;爱是一首飘落在夜空里的歌谣,使孤苦无依的人获得心灵的慰藉。下面小编为大家整理了20

2022年争先创优演讲稿最新10篇(完整文档)

《争先创优演讲稿最新10篇》是一篇好的范文,觉得有用就收藏了,这里给大家转摘到。演讲稿具有宣传、鼓动、教育和欣赏等作用,它可以把演讲者的观点、主张与思想感情传达给听众以及读者,使他们信服并在思想感情上产生共鸣。下面小编给大家带来关于争先创优演讲稿,希望会对大家的与有所帮助。争先创优演讲稿1

2022百年奋斗谋复兴勇毅前行兴伟业学习心得体会范本合集

《2022百年奋斗谋复兴勇毅前行兴伟业学习心得体会范文》是一篇好的范文,觉得有用就收藏了,希望对网友有用。2022百年奋斗谋复兴勇毅前行兴伟业学习心得体会范文了不起的红色精神,值得永远待播与发扬下去!相信祖国将会更加强大,更加繁荣富强。下面是小编为您推荐2022百年奋斗谋复兴勇毅前

2022年度《公民节约用水行为规范》倡议书范本

最近发表了一篇名为《2022《公民节约用水行为规范》倡议书范文【五篇】》的范文,感觉很有用处,看完如果觉得有帮助请记得(CTRL+D)收藏本页。虽然人类已浪费了许多,但是人类们已经感觉到水的可贵而开始保护起来。在此大家一起杜绝浪费水之源,保护水资源吧。下面小编在这里为大家精心整理了几篇20