基于FPGA的椭圆曲线加密设计

>2019-05-20 10:30:54 来源:网络
标签:

摘 要: 椭圆曲线加密是一种目前已知的统统公钥密码体系体例中可以或许或许供给最高比特强度的一种公钥体系体例。在FPGA实现椭圆曲线加密体系时,基于GF(2)的多项式有限域中的乘法、求逆运算是此中的两大难点。本文供给了一种椭圆曲线加密的FPGA实现的布局,着重讨论了基于GF(2)的多项式有限域中的乘法、求逆运算的实现,并与软件实现的机能停止了比较。

 

加密的平安性
从数论的角度来说,任何公钥密码体系都树立在一个NP(无法处理的成就)的基础上,即对付特定的成就,没有办法找到一个多项式光阴算法求解该成就。一样平常求解此类成就的算法都是指数光阴或许亚指数光阴,例如如今常用的RSA算法便是基于大整数因式分解成就的难解性。颠末近三十多年的研究,RSA算法虽然并不存在多项式光阴的算法,但是可以或许或许找到亚指数光阴的算法,目前其密钥长度必需大于1024位能力包管信息传递的平安,而椭圆曲线加密体系 (EllipTIc Curve Cryptosystem—ECC) 是目前已知的统统公钥密码体系体例中可以或许或许供给最高比特强度 (Strength-Per-Bit) 的一种公钥体系体例,只必要160的密钥就可以或许或许到达1024位RSA算法供给的平安品级。其根据是有限域上的椭圆曲线上的点群中的离散对数成就(ECDLP),很多密码专家认为它是指数级的难度。因此对付椭圆曲线加密体系来说,这一点从计算量、处理速率、存储空间和通讯带宽等角度阐发,椭圆曲线加密体系都有很大的优势。IEEE已经制定的公钥加密算法模范P1363便是基于ECC算法的。如今密码学界普遍认为它将替代RSA成为通用的公钥密码算法,目前已成为研究的热门,是很有前途的研究偏向。

 

图1 点算法实现

 


图2 密钥、数据交换

 


图3 椭圆曲线加密体系布局图

 


图4 椭圆曲线加密体系FPGA电路模块框图

 


图5 验证体系布局

 

椭圆曲线加密体系体例
椭圆曲线

引进Non-supersingular椭圆曲线Weierstrass方程E:Y2+XY=X3+aX2+c此中a,c∈GF(2k),c≠0。为简化以后的运算,引进z使X=x/z;Y=y/z,则椭圆曲线方程化为E:y2z+xyz=x3+ax2z+cz3,定义(x, y, z)=λ(x, y, z)。可以或许看出当z≠0,(X, Y)和(x, y, z)相对应,当z=0可以或许懂得为沿y轴趋向无穷远,定义为无穷远点O。则椭圆曲线上统统的点外加无穷远点构成的丛聚构成一个Abel群,O是单位元(零元)。在椭圆曲线E上定义了两种点运算:点运算和点运算。


1) 椭圆曲线上点运算定义为:设P=( x1, y1, 1)∈E,Q=( x2, y2, 1) ∈E,-P=( x1, y1+ x1, 1), 当Q≠-P时 PQ=(x3, y3, z3) 则
当P≠Q时:
此中A=(x2z1+x1),B=(y2z1+y1), C=A+B,D=A2(A+a2z1)z1BC
当P=Q时:
此中


2) 椭圆曲线上的点运算定义为:设P=(x1, y1, 1)∈E,(ltlt-1...l0)2是整数l的二进制表示情势,lP=PPAP=Q且Q∈E。


利用上面的点运算,得点算法实现如图1所示。定义l=logpQ,若P的周期很大,则利用l、P求Q是比较容易的,但利用P、Q求l是很难处理的,这便是ECDLP,椭圆曲线用鼙是树立在这个难题之上。


加密体系体例
在Diffe-Hellman公钥体系体系体例中,详细的椭圆曲线、曲线上点P及P的周期大素数N都是公开信息。
A和B要停止通讯,首先获得椭圆曲线E、点P及素数N。然后用户A将[1,N-1]中随机选取的整数a作为私钥,A将KpubA=aP作为自己的公钥传送给用户B,与此同时B将 [1,N-1]中随机选取的整数b作为私钥,并将KpubB=bP作为自己的公钥传送给A。A、B各自将自己的私钥点乘于对方传过来的公钥获得KAB,如许就实现为了密钥的交换过程。当用户A必要将待传数据m传送给用户B时,A利用m和KAB天生Em,当用户B获得Em后,利用密钥交换过程自己天生的KAB和从用户A处获得的加密数据Em天生数据m。见图2。

 

椭圆加密体系体例实现
迄今所度胗τ的椭圆加密体系中,绝大部分的密钥长度都比较短,一样平常会合在30~60位,这是因为在软件实现时,因为软件履行速率所限,密钥长度比较大(≥160)的椭圆加密体系的速率将达不到应釉墼勖请求。与此同时,在硬件实现时,密钥长度比较大的椭圆加密体系将消耗大批的硬件资源。跟着椭圆加密算法研究的深入和可编程逻辑器件的疾速睁开,利用可编程逻辑器件实现椭圆加密体系已经是一个可能的抉择,下面将介绍一种实现计划,而且用软、硬件分离实现。


根据以上椭圆加密体系体例的请求,设计出图3的加密体系布局图,此中椭圆加密体系参数接口获得与加密无关的椭圆的基本参数,如私钥、椭圆曲线、椭圆曲线上的给定点等。椭圆曲线乘法节制部分重要卖力如何计算乘法结果,会大批调用PP和PQ来实现乘法功效;而PP和PQ颠末过程有限域加法、乘法和求逆的调用获得结果。


软件模子验证
软件实现的重要偏向是为硬件实现树立验证模子,全体软件的布局如图3所示。在软件验证体系实现的过程中,有限域上的加法是异或操纵。有限域上的乘法和求逆是关键点,必需预先考虑到硬件实现时的资源消耗,必要高效的算法。在此体系中应用了复合域GF((2n)m)带来的分外性,可以或许或许高效、疾速的实现乘法和求逆运算。


* GF(2n)上的乘法:A(y)&TImes;B(y)=C(Y)modQ(y),Q(y)为既约多项式。常用的有: Paar-Rosner乘法器、Mastrovito乘法器、Massey-Omura乘法器、Hasan-Bhargava乘法器等,此处介绍两种抉择:
1) 当n比较小时可用查表法实现,设ω为Q(y)=0的本原根,则F2n={0,ω,Aω2n-1},利用查表法获得A、B的级次数a、b,C的级次c=a+b,再次利用查表法由c得C。在本体系中就应用了此法实现GF(2n)上的乘法。
2) 当n比较大时,利用查表法资源消耗太大,难以承受,可利用C=Z&TImes;B(n比较大时),Z是由A(y),Q(y)确定的矩阵,此中:

 

* 复合有限域的乘法:以GF((24)2)为例,利用GF(24)上的乘法和加法可以或许构造出GF(28)的乘法。子域GF(24)的本原多项式为Q(y)=y4+y+1,第二个子域的本原多项式为R(z)=z3+z+ω14,此中ω是GF(24)的基底元素,称心Q(ω)=0。域中两个元素的乘法[a0+a1z]&TImes;[b0+b1z]可以或许表示为:

 

如许GF((24)2)在复合域上的乘法就可以或许颠末过程GF(24)上的有限域的数学运算而获得。
* 复合有限域的逆运算:复合有限域GF((2n)m)中的元素A的逆为:

 
存眷南京电子资讯网微信 ( ee-focus )
限量版产业观察、行业静态、技术大餐每日推荐
享用快时代的佳构慢阅读
 

 

持续阅读
AiRiA展出自立人工智能芯片QNPU

5月17日至19日,2019世界半导体大会在南京国际博览中央举行。这是一场汇丛聚成电路行业精英的盛会。除了传统半导体设计、制作、封测企业加入之外,以中国科学院主动化研究所南京智能芯片创新研究院AiRiA为代表的人工智能企业也在大会中崭露头角。

Intel首席架构师Raja:架构晋升应对制程提高减缓

如果想实现指数级的增长,必必要硬件和软件共同创新,且两者的互相交换,比以往任什么时候候都更重要。

实现自立可控,紫光同创FPGA芯片开端供客户试用

5月16日,紫光国微在投资者交换运动中表示,公司子公司紫光同创的FPGA芯片目前已经有几个系列的产品实现为了开拓,正在供给给客户试用,出货量还较小。

【技术分享】什么是NoC技术?详解片上多核体系和片上网络技术

体系级芯片也被称为片上体系,是指在单个芯片内部实现大部分甚至完备的电子体系功效的一中酒U中酒歉叨电子体系的中央,跟着集成电路工艺技术的睁开也逐渐向中低端电子体系睁开。如今,很多诸如腕表、手分的可穿戴设备和智能玩具等低端嵌入式设备也都以体系级芯片为中央来睁开设计。

英特尔宣布收买Omnitek,面前的深层技术逻辑为何

英特尔宣布收买一家名为Omnitek的英国公司,旨在“增强FPGA在视频(video)和视觉(vision)领域的产品组合”。对付很多人来说,Omnitek并不是一个非常认识的名字。那么,究竟它为何遭到了英特尔的青眼,和这次收买眼前的深层技术逻辑为何,就让老石在本文为大家深入阐发。

更多资讯
为什么要给程序瘦身?可履行程序代码瘦身有哪些办法?

跟着应用程序的功效越来越多,实现越来越复杂,第三方库的引入,UI体验的优化等浩繁因素程序中的代码量成倍的增长,从而导致应用程序包的体积越来越大。当程序体积变大后不只会出现编译流程变慢,而且还会出现运行机能成就,会增长应用下载时长和消耗用户的移动网络流量等等。因此在这些浩繁的成就下必要对应用停止瘦身处理。

数学真的难学又无用?万能的Python或许可以或许改变你的设法主意

不管是三大数学软件Matlab(通讯、节制等工程例外)、Maple、Mathematica,还是三大统计软件Spass、Stata、SAS,这些可视化的软件自己便是编程的一个别现,它咱咱们在一定程度上低落了咱咱咱们应用数学的门坎,但另外一方面它咱咱们眼前的功效是可以或许被编程取代的,而Python在数学和数据科学领域的流行,也是逐渐取代这些软件的一个过程。

【技术分享】详解AXI_LITE协定/AXI_STREAM总线的时序
【技术分享】详解AXI_LITE协定/AXI_STREAM总线的时序

因为ZYNQ架构和常用接口IP核经常出现 AXI协定,赛灵思的协定手册讲解时序比较分散。所以收收藏AXI协定的几种时序,便利编程。

Python为什么越来越受迎接?

跟着大数据和人工智能的睁开,Python遭到了越来越多程序员的迎接。“人生苦短,我用 Python。”已经在程序员的世界中广为流传。

解释 NLP 和情感阐发的配景,探究两个开源的 Python 包

自然语言处理(NLP)是机械学习的一种,它解决了口语或书面语言和计算机辅助阐发这些语言之间的相干性。日常生活中咱咱咱们阅历了有数的 NLP 创新,有醋靼镏徒ㄒ榈绞时语音翻译,另有口译。

友情链接:养殖致富网  冠熙新闻网  大学生思想政治网  中国公共资源发布网  中国美术新闻网  华夏夜读网  移动电源品牌网  宝泉石材网  花瓣养生新闻网  丰汇资讯新闻网