一种边计算环境下轻量级的可搜索公钥加密方法与流程

文档序号:17428944发布日期:2019-04-17 03:14阅读:325来源:国知局
一种边计算环境下轻量级的可搜索公钥加密方法与流程

本发明属于密码学和边缘计算领域,更具体地,涉及一种边计算环境下轻量级的可搜索公钥加密方法。



背景技术:

随着物联网技术的高速发展,物联网设备大量增加,每秒钟产生的数据量越来越大,这给目前的云计算技术中的网络带宽和系统处理能力带来了很大挑战。为了应对这一点,边计算出现了。边计算的概念就是在物联网设备和云服务器中间设置一个边服务器,边服务器的作用是对物联网设备上传的数据保存、处理并为相关物联网设备提供反馈。由于边服务器距离物联网设备更近,并且相比传统的云服务器中心模型,服务的物联网设备更少,因此,边计算技术大大降低了与物联网设备通信时的网络延迟以及对数据的处理时延,提高了响应速度。同时由于边服务器计算资源丰富,它可以通过运行一些更加安全但是因为功耗与性能原因无法在物联网设备上运行的加密算法,在本地对物联网设备上传的数据进行加密保护,这也提高了数据的安全性。加密技术在提高数据安全性的同时也给用户带来了麻烦,如果一个用户想要在大量的密文中搜索某个密文,他就必须将所有的密文全部解密再进行搜索,这大大降低了效率,因此可搜索加密被提出。这其中,可搜索公钥加密(peks,public-keyencryptionwithkeywordsearch)相比可搜索对称加密(sse)无需共享通用的密钥,在通信过程中具有更好的安全性,适用于多个发送者向一个接受者发送加密文件的场景。

但是在iot(internetofthings,物联网)设备使用可搜索公钥加密的过程中仍然存在一些问题:1.传统的可搜索公钥加密是在客户端与服务器之间使用的,但是在边计算环境下,如果peks密文全部由iot设备生成,因为iot设备的计算资源有限,而生成peks密文的计算开销较大,所以需要消耗大量的时间,并且增加iot设备的功耗,因此传统的可搜索公钥加密方案在边计算环境下不具有实用性;2.如果iot设备将所有数据都发送给边服务器,通过边服务器生成peks密文,这样既无法保证所传输数据的安全性,又没能充分利用iot设备的计算能力,加重了边服务器的负担。因此,如何在大量边服务器存在的iot场景下构造安全高效的轻量级可搜索公钥加密方案就成了一个亟待解决的问题。



技术实现要素:

针对现有技术的缺陷,本发明的目的就是解决现有技术中仅使用iot设备生成peks密文时间开销大、仅使用边服务器生成peks密文安全性无保证的技术问题。本发明通过iot设备在本地生成初步加密的peks密文,再将双线性映射外包给边服务器,在不损失安全性的情况下提高了生成peks密文的效率。

为实现上述目的,第一方面,本发明实施例提供了一种边计算环境下轻量级的可搜索公钥加密方法,所述可搜索公钥加密方法包括以下步骤:

s1.生成用户公私钥对和系统的公共参数,将用户公钥发送给iot设备,将用户私钥发送给用户,将系统的公共参数发送给iot设备、用户端、边服务器和云服务器;

s2.iot设备根据用户的公钥pk、系统的公共参数和数据关键字w′,生成初步加密的关键字的公钥可搜索密文cpe,并将其发送给边服务器;

s3.边服务器根据系统的公共参数,对cpe双线性映射加密生成关键字的peks密文cpeks,并将其上传到云服务器;

s4.云服务器存储各边服务器上传的peks密文;

s5.用户端根据用户私钥sk、系统的公共参数和搜索关键字w,生成搜索关键字w的peks陷门tw,将其发送给云服务器;

s6.云服务器根据系统的公共参数,通过peks陷门搜索云服务器中存储的peks密文,并将搜索结果转发给用户端。

具体地,步骤s1中,根据系统预设的安全参数k,构建双线性映射生成用户公私钥对(pk,sk)和系统的公共参数p。

具体地,步骤s1中,根据预设的安全参数k,构建双线性映射e:g1×g1→g2,随机选取一个和一个生成元g∈g1,生成用户公钥pk=gs和用户私钥sk=s,其中,g1、g2都是阶为p的循环群,p是素数;同时选择哈希函数h:{0,1}*→g1,生成系统的公共参数p=(e,g,h)。

具体地,步骤s2中,iot设备随机选取生成初步加密的关键字的公钥可搜索密文其中,r=r1*r2。

具体地,步骤s3中,各个边服务器接收iot设备的密文进行双线性映射处理,生成peks密文

具体地,步骤s5中,用户使用私钥sk=s和搜索关键字w,生成peks陷门tw=(h(w)s)。

具体地,步骤s6中,云服务器根据用户端的peks陷门tw=(h(w)s),依次检测其存储的所有peks密文通过比较e(tw,gr)与是否相等,来判断peks密文cpeks是否包含搜索关键字w,若相等,则peks密文cpeks包含关键字w,否则,不包含。

具体地,步骤s6中,搜索结果为包含搜索关键字w的零个或多个peks密文的集合sw。

第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的可搜索公钥加密方法。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:

本发明通过拆分peks加密算法,在iot设备上生成初步加密的peks密文,将计算开销大的双线性映射操作外包给边服务器,充分考虑了iot设备计算资源受限问题,利用了iot设备和边服务器间网络延迟小、带宽高的特点,在不损失安全性的情况下提高了生成peks密文的效率、降低了iot设备的计算开销。

附图说明

图1为本发明实施例提供的一种边计算环境下轻量级的可搜索公钥加密方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

首先,对本发明中用到的一些术语进行解释。

密钥生成中心:具有生成系统公共参数和用户公私钥对的功能。

iot设备:具有生成初步加密的关键字的公钥可搜索密文并传递给边服务器的功能。

边服务器:具有接收iot设备生成的初步加密的公钥可搜索密文和生成peks密文并传递给云服务器的功能。

云服务器:具有接收边服务器生成的peks密文、存储peks密文、接收用户生成的peks陷门和执行peks搜索并将搜索结果转发给用户的功能。

用户端:具有生成关键字的peks陷门并上传给云服务器、接收云服务器搜索结果的功能。

上述设备相互协调、共同实现了边计算环境下轻量级的可搜索公钥加密。

peks的英文全称是public-keyencryptionwithkeywordsearch,中文名称是关键字可搜索公钥加密,其算法机制如下:

1.(pk,sk)←setup(k):输入安全参数k,输出公钥pk和私钥sk;

2.cpeks←peks(pk,w):输入公钥pk和关键字w,输出关键字w对应的公钥可搜索密文cpeks;

3.tw←trapdoor(sk,w):输入私钥sk和关键字w,输出关键字w对应的搜索陷门tw;

4.sw←search(tw,sc):输入搜索陷门tw与包含全部可搜索密文cpeks的集合sc,输出包含关键字w的公钥可搜索密文集合sw。

如图1所示,一种边计算环境下轻量级的可搜索公钥加密方法,该方法包括以下步骤:

s1.生成用户公私钥对和系统的公共参数,将用户公钥发送给iot设备,将用户私钥发送给用户,将系统的公共参数发送给iot设备、用户端、边服务器和云服务器;

s2.iot设备根据用户的公钥pk、系统的公共参数和关键字w′,生成初步加密的关键字的公钥可搜索密文cpe,并将其发送给边服务器;

s3.边服务器接收来自iot设备的初步加密的关键字的公钥可搜索密文cpe,根据系统的公共参数,对其双线性映射加密生成关键字的peks密文cpeks,并将其上传到云服务器;

s4.云服务器存储各边服务器上传的peks密文;

s5.用户端根据用户私钥sk、系统的公共参数和用户需要搜索的关键字w,生成关键字w的peks陷门tw,将其发送给云服务器;

s6.云服务器接收来自用户端的peks陷门,根据系统的公共参数,通过peks陷门搜索云服务器中存储的peks密文,并将搜索结果转发给用户端。

步骤s1.生成用户公私钥对和系统的公共参数,将用户公钥发送给iot设备,将用户私钥发送给用户,将系统的公共参数发送给iot设备、用户端、边服务器和云服务器。

密钥生成中心根据系统预设的安全参数k∈n,构建双线性映射生成用户公私钥对(pk,sk)和系统的公共参数p。

优选地,密钥生成中心根据预设的安全参数k,构建双线性映射e:g1×g1→g2,随机选取一个和一个生成元g∈g1,生成用户公钥pk=gs和用户私钥sk=s。其中g1、g2都是阶为p的循环群,p是素数。同时选择哈希函数h:{0,1}*→g1,生成系统的公共参数p=(e,g,h)。

步骤s2.iot设备根据用户的公钥pk、系统的公共参数和关键字w′,生成初步加密的关键字的公钥可搜索密文cpe,并将其发送给边服务器。

在iot场景中,每个iot设备都会产生大量的数据。考虑到数据安全性和数据检索的效率,需要对这些数据进行轻量级可搜索公钥加密。初步加密的关键字的公钥可搜索密文cpe是由iot设备使用用户公钥pk和对数据提取出的关键字w′,生成的初步加密的三段peks密文。在生成peks密文的过程中,充分考虑iot设备计算资源受限问题,仅生成计算开销较小的初步加密的peks密文。

优选地,iot设备随机选取生成初步加密的关键字的公钥可搜索密文其中r=r1*r2。

步骤s3.边服务器接收来自iot设备的初步加密的关键字的公钥可搜索密文cpe,根据系统的公共参数,对其双线性映射加密生成关键字的peks密文cpeks,并将其上传到云服务器。

关键字的peks密文cpeks是由初步加密的三段peks密文cpe进行双线性映射操作生成的两段peks密文。在边计算环境下,大量的边服务器具有丰富的计算资源。通过边服务器进行计算开销较大的双线性映射操作,充分利用了边服务器丰富的计算资源,减轻了iot设备的负担。

优选地,各个边服务器接收iot设备的密文进行双线性映射处理,生成peks密文

步骤s4.云服务器存储各边服务器上传的peks密文。

云服务器收到各个边服务器上传的peks密文时,将其保存在本地的数据库中。

步骤s5.用户端根据用户私钥sk、系统的公共参数和用户需要搜索的关键字w,生成关键字w的peks陷门tw,将其发送给云服务器。

用户想要搜索某个关键字时,使用自己的私钥生成一个peks陷门,并提交给云服务器进行搜索后,接收云服务器的搜索结果。

优选地,用户使用私钥sk=s和数据的关键字w,生成peks陷门tw=(h(w)s)。

步骤s6.云服务器接收来自用户端的peks陷门,根据系统的公共参数,通过peks陷门搜索云服务器中存储的peks密文,并将搜索结果转发给用户端。

对于一次peks搜索陷门tw的搜索,云服务器会执行peks搜索算法search(tw,sc),生成包含关键字w的peks密文集合sw。若查找到对应的peks密文,则将密文集合发送给用户;否则的话,返回给用户null。搜索结果为包含零至多个peks密文的集合。

优选地,云服务器根据用户的peks搜索陷门tw=(h(w)s),依次检测其存储的所有peks密文通过比较e(tw,gr)与是否相等,来判断peks密文cpeks是否包含关键字w。若相等,则peks密文cpeks包含关键字w,否则,不包含。最终生成包含关键字w的peks密文集合sw。

以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

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