一种用于终端小型设备的ECC轻量级加密方法与流程

文档序号:14879903发布日期:2018-07-07 09:29阅读:592来源:国知局

本申请涉及物联网感知层、无线通信和智能卡等领域,具体说是一种用于终端小型设备的ecc轻量级加密方法。



背景技术:

目前,物联网产业还处于初级阶段,物联网安全保护仍存在许多瓶颈问题。如目前开发的iot设备中,可穿戴设备、rfid、手机等小型终端设备的安全性没有足够的保障。

绝大部分小型设备使用aes128位加密消息,md5加密用户密码。aes对称密钥存储在设备里,如果存储方式不当,可以轻易的将密文还原成明文进行逆向分析,从而发起进一步的攻击。rsa加密方式,主要是通过密钥长度的增加来加强密文的安全性,这样在进行大量数据传输时会占用大量系统内存,运算时间长,不适合小型设的加密。近几年,基于ecc的elgamal加密算法受到国内外密码学、数学家和计算机科学领域专家的普遍关注,被广泛应用于一些技术标准中,但该算法标量乘占用大量的运算时间并且计算复杂度会随着随机数的增加而增加,从而严重的影响了加密效率,无法在小型终端设备中推广应用。

小型设备的微处理器运算性能与存储空间比较低,当进行大量数据传输时,一般的加密方式会占用大量系统内存,对系统处理器性能要求更高,常常导致系统超负荷运行甚至崩溃,因此,有必要研究一种新的轻量级加密算法取代现有的基于ecc的elgamal。



技术实现要素:

针对现有技术存在的上述问题,本申请提供了一种用于终端小型设备的ecc轻量级加密方法,针对小型终端设备,在适当降低安全性的前提下减少算法对系统内存的占用率,提高算法运算效率。

为实现上述目的,本申请采用的技术方案是:一种用于终端小型设备的ecc轻量级加密方法,具体包括如下过程:

生成密钥的过程:接收端在素数域f(p)或二进制域上确定一条椭圆曲线e(a,b),在已选好的椭圆曲线e(a,b)上随机选取两点g1(x1,y1)与g2(x2,y2),对点g1(x1,y1)与g2(x2,y2)进行一次点加运算,即g3(x3,y3)=g1(x1,y1)+g2(x2,y2),将椭圆曲线e(a,b)、g1(x1,y1)、g3(x3,y3)设为公钥发送给发送端,接收端将点g2(x2,y2)设为私钥;

加密明文的过程:发送端接收公钥{e,g1,c3},为了能对明文进行加密,发送端将准备加密的明文m1,m2嵌入椭圆曲线e(a,b)的点中形成明文点p1(x4,y4),p2(x5,y5);然后用接收到的公钥对明文点进行加密,具体采用点加和倍点运算,如下:

c1=p1+g1+2p2+g3

c2=p2+g1+2p1+g3

c3=p1+2g3+p2

密文点c1与点c2各加了一个点g3进行加盐处理,在不影响性能的前提下增加安全性,点c3为点c1与c2的参考点;c(c1,c2,c3)为加密后的密文;

解密密文的过程:用保留的私钥将接收到的密文解密成明文,具体采用点加和倍点运算,如下:

p1=c2-c3+g2

p2=c1-c3+g2

接收端解密后得到明文点然后解码为明文m1,m2。

进一步的,椭圆曲线为:ep:y2=x3+ax+b是有限域f上的一条曲线,x,y是点的坐标,a,b是曲线的系数,x,y,a,b属于有限域f,且4a3+27b2≠0,其中有限域f是素数域f(p)或二进制域f(2n)。

进一步的,点加运算,具体为:设点a(x1,y1)与b(x2,y2)是椭圆曲线e上的点,c(x3,y3)=a+b,则有:

进一步的,点减运算,具体为::对于任意一点a(x1,y1),则有-a(x1,y1)=a(x1,-y2);

c(x3,y3)=a(x1,y1)-b(x2,y2)=a(x1,y1)+b(x2,-y2)。

进一步的,倍点运算:设点a(x1,y1)在椭圆曲线e上,2a=c(x3,y3),则

本申请采用以上技术方案,能够取得如下的技术效果:本方法在保证安全性的同时降低了内存占用率,提高了算法运算效率,可为物联网感知层、无线通信和智能卡等领域小型设备提供加密功能。

具体实施方式

本实施例提供了一种用于终端小型设备的ecc轻量级加密方法,具体包括如下过程:

生成密钥的过程:接收端在素数域或二进制域上确定一条椭圆曲线e(a,b),在已选好的椭圆曲线e(a,b)上随机选取两点g1(x1,y1)与g2(x2,y2),对点g1(x1,y1)与g2(x2,y2)进行一次点加运算,即g3(x3,y3)=g1(x1,y1)+g2(x2,y2),将椭圆曲线e(a,b)、g1(x1,y1)、g3(x3,y3)设为公钥发送给发送端,接收端将点g2(x2,y2)设为私钥;

加密明文的过程:发送端接收公钥{e,g1,c3},发送端将准备加密的明文m1,m2嵌入椭圆曲线e(a,b)的点中形成明文点p1(x4,y4),p2(x5,y5);然后用接收到的公钥对明文点进行加密,具体采用点加和倍点运算,如下:

c1=p1+g1+2p2+g3

c2=p2+g1+2p1+g3

c3=p1+2g3+p2

密文点c1与点c2各加了一个点g3进行加盐处理,点c3为点c1与c2的参考点;c(c1,c2,c3)为加密后的密文;

解密密文的过程:用保留的私钥将接收到的密文解密成明文,具体采用点减和点加运算,如下:

p1=c2-c3+g2

p2=c1-c3+g2

接收端解密后得到明文点然后解码为明文m1,m2。

椭圆曲线为,ep:y2=x3+ax+b是有限域f上的一条曲线,x,y是点的坐标,a,b是曲线的系数,x,y,a,b属于有限域f,且4a3+27b2≠0,其中有限域f是素数域f(p)或二进制域f(2n)。

点加运算,具体为:设点a(x1,y1)与b(x2,y2)是椭圆曲线e上的点,c(x3,y3)=a+b,则有:

点减运算,具体为::对于任意一点a(x1,y1),则有

-a(x1,y1)=a(x1,-y2);

c(x3,y3)=a(x1,y1)-b(x2,y2)=a(x1,y1)+b(x2,-y2)。

倍点运算,设点a(x1,y1)在椭圆曲线e上,2a=c(x3,y3),则

本申请主要通过在已知椭圆曲线上随机选取的两个点来替代elgamal算法密钥生成中的一个随机点和一个随机数,重新设计了一个在密钥生成,加密解密过程只有点加、点减和倍点的新加密算法,规避了elgamal算法中标量乘运算,将elgamal算法中两个明文点加密为四个密文点的过程转化为只形成三个密文点的过程,并对密文进行加盐处理,从而有效地减少了加密算法对系统内存的占用率,提高算法运算效率。

以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请披露的技术范围内,根据本申请的技术方案及其发明构思加以等同替换或改变,都应涵盖在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1