一种可搜索公钥加密方法、采用该方法的系统和服务器与流程

文档序号:14749794发布日期:2018-06-22 11:24阅读:191来源:国知局

本发明涉及密码学和云存储安全领域,尤其涉及一种可搜索公钥加密方法、采用该方法的系统和服务器。



背景技术:

随着云计算的快速发展,为了节约本地的存储资源,同时为了便携地多点访问,越来越多的用户选择将自己的数据保存到云服务器上。为了保证数据的机密性,用户通常会将他们的隐私数据加密后再上传。如果使用传统的加密技术,则只有密钥的拥有者才能解密密文。因此,当用户想要在通过关键字去检索保存在云端的外包数据时,他们不得不将整个密文下载回来,在本地解密后再进行检索。显然,这会导致大量的网络开销、本地的计算开销和存储开销。为了在保证云数据机密性的同时实现安全高效的数据访问,可搜索加密便应运而生。在可搜索对称加密下,由于对称加密机制本身的局限性,在多用户的场景中,往往需要建立一个安全的信道来传输秘密信息。因此为了在公共网络下实现安全的通信和检索,可搜索公钥加密(PEKS)便被提出,并得到了广泛的研究。

一个典型的PEKS应用包括多个发送方,一个服务器和一个接收方。任何一个发送方都可以使用接收方的公钥去为关键字生成可搜索密文,然后将其发给服务器。接收方可以通过自己的私钥为关键字生成检索陷门,然后将其发给服务器,服务器拿到检索陷门后可以正确找到所有包含该关键字的密文,然后将其返回给接收方。对于一个可搜索加密方案,检索的安全性和效率一直是用户和研究者所关注的焦点。

在最近的一个研究中,徐鹏等人提出了结构化可搜索公钥加密(SPCHS)的概念,将同一个关键字的所有可搜索密文用一条隐形的链组织起来,通过这样的方式实现了线性的检索复杂度。虽然他们的实例化方案在检索复杂度上有了很大的改善,不过因为其在检索中的双线性映射这一复杂密码学操作是和检索结果线性相关的,因此,在检索效率这一方面,他们的方案仍然具有很大的提升空间。

如何实现更高速的检索,设计一个实用的可搜索公钥加密方案需要迫切解决的问题。

此外,工业物联网(IIoT)在工业4.0的驱动下得到了迅猛的发展,无线传感器网络(WSNs)作为IIoT重要的组成部分之一,在越来越多的场景中得到了应用,尤其是云辅助无线传感器网络(CWSNs),例如:医疗保健、农业技术、军队防御、环境监测以及智能会议等等。由于传感器采集的数据往往具有较高的敏感性,所以CWSNs的数据隐私保护便成了一个热点问题。

很多的加密方法被研究者应用到了CSWNs中,例如同态加密、基于属性加密、混合加密、对称加密等等。这些密码学方案致力于解决CSWNs的数据安全传输和存储。而如何实现数据的安全检索,可搜索公钥加密(PEKS)便是一个很好的解决方案。不过现有的PEKS方案无论是可搜索密文的生成,还是密文数据的检索都存在较大的效率问题。而在CSWNs模型中,数据的加密是由传感器完成的,考虑到传感器能源和计算能力受限的问题,迫切需要一种轻量级的加密算法,以降低传感器的开销。



技术实现要素:

针对现有技术之不足,本发明提供了一种可搜索公钥加密方法,本发明的方法保证了常数级的双线性映射操作,大大降低了检索过程中的复杂密码学运算过程,从计算的角度进一步提高了检索效率,使可搜索公钥加密能够在现实的应用场景中变得实用。

本发明公开了一种可搜索公钥加密方法,所述方法包括以下步骤:

步骤100:根据预设的安全参数构建双线性映射,输出公开参数PK和私钥SK;

步骤200:发送方根据所述公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri;

步骤300:所述发送方输入关键字W、所述公开参数PK和所述结构的私有部分Pri,通过加密算法为所述关键字W生成对应的可搜索密文并上传到服务器,所述通过加密算法为所述关键字W生成对应的可搜索密文包括:判断所述关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于所述第一加密算法的第二加密算法,其中,第一加密算法包含双线性映射操作,所述第二加密算法生成的可搜索密文通过隐含关系关联于所述关键字W上一次被加密时生成的可搜索密文;

步骤400:接收方输入所述关键字W和所述私钥SK,输出检索陷门TW并提交给所述服务器;

步骤500:所述服务器输入所述检索陷门TW、所述公开参数PK和由若干可搜索密文组成的可搜索密文集合,执行搜索算法,通过一次双线性映射操作找到采用所述第一加密算法生成的关键字W对应的可搜索密文,通过所述隐含关系找到采用所述第二加密算法生成的关键字W对应的可搜索密文。

根据一个优选实施方式,所述第二加密算法不包含双线性映射操作且所述第二加密算法的第二计算量小于所述第一加密算法的第一计算量。

根据一个优选实施方式,所述公开参数所述私钥SK=α,公钥P=gα,其中,q为一个素数,G和G1表示两个具有素数阶q的乘法群,g是G群的一个生成元,是一个具有可计算性、双线性、非退化性的双线性映射,H1和H2是两个抗碰撞哈希函数,分别为第一抗碰撞哈希函数H1:{0,1}*→G和第二抗碰撞哈希函数H2:G1→{0,1}logq

根据一个优选实施方式,所述步骤200包括:运行随机数生成算法得到一个随机数u,求幂,初始化结构并输出所述结构的公共部分Pub=gu和所述结构的私有部分Pri=(u),其中,所述结构的私有部分Pri是一个形如(u,{(W,Pt)|Pt∈G1})的变长列表,被初始化为(u),把所述结构的公共部分Pub上传至所述服务器。

根据一个优选实施方式,所述步骤300包括:

步骤310:所述发送方输入关键字W、所述公开参数PK和所述结构的私有部分Pri,根据所述关键字W在所述结构的私有部分Pri中查询是否存在(W,Pt),如果是,表示所述关键字W不是第一次被加密,则转至步骤330,如果否,表示所述关键字W是第一次被加密,则转至步骤320;

步骤320:采用所述第一加密算法,所述第一加密算法包括:运行随机数生成算法得到一个随机数R,然后令Pt=R,生成所述关键字W的私有状态Pt并将(W,Pt)插入到所述结构的私有部分Pri中,运行第一抗碰撞哈希函数H1、求幂、执行双线性映射操作、求逆、乘法运算和第二抗碰撞哈希函数H2,输出可搜索密文

步骤330:采用所述第二加密算法,所述第二加密算法包括:运行随机数生成算法得到随机数R,运行第二抗碰撞哈希函数H2、求逆和乘法运算,输出可搜索密文C=(H2(Pt),Pt-1·R),然后令Pt=R,更新所述结构的私有部分Pri中所述关键字的私有状态Pt。

根据一个优选实施方式,所述检索陷门Tw=H1(W)a

根据一个优选实施方式,所述步骤500包括:

步骤510:所述服务器输入所述检索陷门TW、所述公开参数PK、所述可搜索密文集合和所述结构的公共部分Pub,执行双线性映射操作计算运行所述第二抗碰撞哈希函数H2,生成可搜索密文的第一部分

步骤520:所述服务器在所述可搜索密文集合中对可搜索密文的第一部分进行匹配搜索,判断是否找到匹配的可搜索密文,如果是,转至步骤530,如果否,则转至步骤540;

步骤530:识别步骤520中所述匹配的可搜索密文的第二部分计算然后运行第二抗碰撞哈希函数H2,生成下一次需要搜索的可搜索密文的第一部分转至步骤520;

步骤540:所述服务器停止搜索并输出已经找到的可搜索密文。除了搜索关键字W第一次被加密时对应的可搜索密文外,后续的该关键字W的其他可搜索密文都不需要执行双线性映射操作,大大的降低了搜索过程的计算开销,提高了搜索的效率。

本发明还公开了一种实用型可搜索公钥加密系统,所述系统包括密钥分发中心、服务器、接收方和发送方,所述密钥分发中心根据预设的安全参数构建双线性映射,输出公开参数PK和私钥SK;所述发送方根据所述公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri;所述发送方输入关键字W、所述公开参数PK和所述结构的私有部分Pri,通过加密算法为所述关键字W生成对应的可搜索密文并上传到服务器,所述通过加密算法为所述关键字W生成对应的可搜索密文包括:判断所述关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于所述第一加密算法的第二加密算法,其中,所述第一加密算法包含双线性映射操作,所述第二加密算法生成的可搜索密文通过隐含关系关联于所述关键字W上一次被加密时生成的可搜索密文;所述接收方输入所述关键字W和所述私钥SK,输出检索陷门TW并提交给所述服务器;所述服务器输入所述检索陷门TW、所述公开参数PK和若干可搜索密文组成的可搜索密文集合,执行搜索算法,通过一次双线性映射操作找到采用所述第一加密算法生成的关键字W对应的可搜索密文,通过所述隐含关系找到采用所述第二加密算法生成的关键字W对应的可搜索密文。

根据一个优选实施方式,所述第二加密算法不包含双线性映射操作且所述第二加密算法的第二计算量小于所述第一加密算法的第一计算量。

本发明还公开了一种服务器,所述服务器根据预设的安全参数构建双线性映射,输出公开参数PK和私钥SK,然后将所述公开参数PK发送给发送方,将所述私钥发送给接收方;所述发送方根据所述公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri;所述发送方输入关键字W、所述公开参数PK和所述结构的私有部分Pri,通过加密算法为所述关键字W生成对应的可搜索密文并上传到服务器,所述通过加密算法为所述关键字W生成对应的可搜索密文包括:判断所述关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于所述第一加密算法的第二加密算法,其中,第一加密算法包含双线性映射操作,所述第二加密算法生成的可搜索密文通过隐含关系关联于所述关键字W上一次被加密时生成的可搜索密文;所述接收方输入所述关键字W和所述私钥SK,输出检索陷门TW并提交给所述服务器;所述服务器输入所述检索陷门TW、所述公开参数PK和若干可搜索密文组成的可搜索密文集合,执行搜索算法,通过一次双线性映射操作找到采用所述第一加密算法生成的关键字W对应的可搜索密文,通过所述隐含关系找到采用所述第二加密算法生成的关键字W对应的可搜索密文。

本发明提供的一种可搜索公钥加密方法、采用该方法的系统和服务器至少具有如下优势:

(1)可用于多用户场景下的外包数据的安全检索;

(2)本发明实现了在不可信网络环境下对服务器的数据进行安全的检索;

(3)本发明构造的加密过程和搜索过程的算法简单、可搜索密文短,且在保证语义安全性的条件下,从计算的角度降低了检索过程中的时间开销,使得在检索算法中的双线性映射为常数级,大大改善了可搜索公钥加密的效率。

附图说明

图1是本发明的方法的一个优选实施方式的示意图;

图2是步骤300的一个优选实施方式的示意图;

图3是步骤500的一个优选实施方式的示意图;

图4是本发明的系统的一个优选实施方式的示意图;和

图5是本发明的加密过程和搜索过程的示意图。

附图标记列表

A:发送方 B:服务器 C:接收方

D:密钥分发中心 E:隐含关系

具体实施方式

下面结合附图进行详细说明。

为了便于理解,在可能的情况下,使用相同附图标记来表示各附图中共同的相似元件。

如在整篇本申请中所使用的那样,词语“可以”系容许含义(即,意味着有可能的)而不是强制性含义(即,意味着必须的)。类似地,词语“包括”意味着包括但不限于。

短语“至少一个”、“一个或多个”以及“和/或”系开放式表达,它们涵盖操作中的关联与分离两者。例如,表述“A、B和C中的至少一个”、“A、B或C中的至少一个”、“A、B和C中的一个或更多个”、“A、B或C”和“A、B和/或C”中的每个分别指单独A、单独B、单独C、A和B一起、A和C一起、B和C一起或A、B和C一起。

术语“一种”或“一个”实体指的是该实体中的一个或多个。这样,术语“一”(或“一”)、“一个或多个”以及“至少一个”在本文中可以交换地使用。还应该注意,术语“包括”、“包含”和“具有”可以交换地使用。

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

密钥分发中心:具有创建系统、生成及分发用户公私钥功能。例如是可信的第三方机构。其具体功能的实现可以由具有数据处理能力的设备完成。

发送方:具有加密文件及关键字,创建密文索引的功能。例如是个人或者机构。其具体功能的实现可以由具有数据处理能力的设备完成。

接收方,具有解密密文文件以及生成检索陷门的功能。例如是个人或机构。其功能的实现由具有数据处理能力的设备完成。

服务器:具有存储文件密文及关键字可搜索密文,并能提供检索功能的机构。其具体功能的实现可以由具有数据处理能力的设备完成。

具有数据处理能力的设备:例如是服务器、服务器集群、工作站、超级计算机、台式电脑、笔记本电脑、平板和手机中的至少一种。本领域技术人员可以根据实际的计算量需求和/或使用需求选择实际的设备。

实施例1

参照图1,本实施例公开了一种可搜索公钥加密方法。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。

根据一个优选实施方式,本发明的方法可以包括步骤100:根据预设的安全参数构建双线性映射,输出公开参数PK和私钥SK。优选地,公开参数PK是公开的。也就是说,任何人都可以获得公开参数PK。比如,发送方A和/或服务器B。私钥SK由接收方C秘密保存。应当注意的是,公开参数PK在一些其他的文献中可能被称为主公钥PK,私钥SK被称为主私钥SK,或者采用其他本发明中提及的等效名称。只要在与本发明所表达的思想一致的情况下,都应当纳入本发明的保护范围。

优选地,步骤100中所述的“构建双线性映射”,其运行方法如下:密钥分发中心D输入安全参数1k。根据k的大小,密钥分发中心D选择相应的椭圆曲线:Y2=X3+aX+b,其中,a和b是系数,再由椭圆曲线上的点构成两个素数q阶的群:G、G1,选择一种函数映射将群G中的元素映射到群G1中去。安全参数1k数值越大,所选择椭圆曲线上的点也越多,群也越大。

根据一个优选实施方式,该方法还可以包括步骤200:发送方A根据公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri。优选地,结构的公共部分Pub可以上传到服务器B。结构的私有部分Pri可以由发送方A秘密地保存在本地。

根据一个优选实施方式,该方法还可以包括步骤300:发送方A输入关键字W、公开参数PK和结构的私有部分Pri,通过加密算法为关键字W生成对应的可搜索密文并上传到服务器B。优选地,通过加密算法为关键字W生成对应的可搜索密文包括:判断关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于第一加密算法的第二加密算法。优选地,第一加密算法可以包含双线性映射操作。第二加密算法生成的可搜索密文可以通过隐含关系关联于关键字W上一次被加密时生成的可搜索密文。

根据一个优选实施方式,该方法还可以包括步骤400:接收方C输入关键字W和私钥SK,输出检索陷门TW并提交给服务器B。优选地,接收方C通过安全信道将检索陷门TW发送给服务器B。这样可以防止他人利用该检索陷门TW进行搜索,提高检索过程的安全性。

根据一个优选实施方式,该方法还可以包括步骤500:服务器B输入检索陷门TW、公开参数PK和由若干可搜索密文组成的可搜索密文集合,执行搜索算法,通过一次双线性映射操作找到采用第一加密算法生成的关键字W对应的可搜索密文,通过隐含关系找到采用第二加密算法生成的关键字W对应的可搜索密文。第二加密算法不仅进行了加密过程,生成了当前关键字W对应的可搜索密文,同时逐渐构建了当前被加密的关键字W对应可搜索密文和上一次被加密的关键字W的隐含关系。检索时,通过该隐含关系,能够降低检索过程的计算量。也就是说,使得本发明在保证语义安全性的条件下,从计算的角度降低了检索过程中的时间开销,提高了检索效率。

根据一个优选实施方式,第一加密算法的第一计算量大于第二加密算法的第二计算量。这样可以在加密的同时降低相应关键字第二次及以后被加密的计算开销,提高加密的效率。优选地,第二加密算法可以不包含双线性映射操作。双线性映射操作所需的计算开销较大,通过该方式,使得在检索算法中的双线性映射为常数级,大大改善了可搜索公钥加密的效率,使可搜索公钥加密能够在现实的应用场景中变得实用。从效果上来讲,本发明在检索速度上已经可以和可搜索对称加密方案媲美。

根据一个优选实施方式,公开参数私钥SK=α,公钥P=gα。优选地,q为一个素数,G和G1表示两个具有素数阶q的乘法群,g是G群的一个生成元,是一个具有可计算性、双线性、非退化性的双线性映射,H1和H2是两个抗碰撞哈希函数,分别为第一抗碰撞哈希函数H1:{0,1}*→G和第二抗碰撞哈希函数H2:G1→{0,1}logq。优选地,本发明中使用的抗碰撞哈希函数具备两个基本特性:单向性和抗碰撞性;单向性是指只能从哈希函数的输入推导出输出,而不能从哈希函数的输出计算出输入;抗碰撞性是指不能找到两个不同的哈希函数输入使其哈希后的结果相同。本发明中的第一抗碰撞哈希函数H1是以关键字为输入,以任意字符串表示;输出为群G的元素。第二抗碰撞哈希函数H2是以群G1为输入,输出为定长的字符串。

根据一个优选实施方式,步骤200可以包括:运行随机数生成算法得到一个随机数u、求幂、初始化结构并输出结构的公共部分Pub=gu和结构的私有部分Pri=(u)。优选地,结构的私有部分Pri是一个形如(u,{(W,Pt)|Pt∈G1})的变长列表,被初始化为(u)。优选地,把结构的公共部分Pub上传至服务器B。

根据一个优选实施方式,参照图2,步骤300可以包括:

步骤310:所述发送方A输入关键字W、所述公开参数PK和所述结构的私有部分Pri,根据关键字W在结构的私有部分Pri中查询是否存在(W,Pt),如果是,表示关键字W不是第一次被加密,则转至步骤330,如果否,表示关键字W是第一次被加密,则转至步骤320;

步骤320:采用第一加密算法,第一加密算法包括:运行随机数生成算法得到一个随机数R,然后令Pt=R,生成关键字W的私有状态Pt并将(W,Pt)插入到结构的私有部分Pri中,运行第一抗碰撞哈希函数H1、求幂、执行双线性映射操作、求逆、乘法运算和第二抗碰撞哈希函数H2,输出可搜索密文

步骤330:采用第二加密算法,第二加密算法包括:运行随机数生成算法得到随机数R,运行第二抗碰撞哈希函数H2、求逆和乘法运算,输出可搜索密文C=(H2(Pt),Pt-1·R),然后令Pt=R,更新结构的私有部分Pri中关键字的私有状态Pt。第二加密算法不包括执行双线性映射操作,且通过较少的计算量实现了对关键字的加密和隐含关系的构建,极大地降低了计算开销,提高了加密的效率。后续的搜索过程的计算开销也会随之降低,提高搜索效率。

根据一个优选实施方式,检索陷门Tw=H1(W)α

根据一个优选实施方式,参照图3,步骤500可以包括:

步骤510:服务器B输入检索陷门TW、公开参数PK、可搜索密文集合和结构的公共部分Pub,执行双线性映射操作计算运行第二抗碰撞哈希函数H2,生成可搜索密文的第一部分

步骤520:服务器B在可搜索密文集合中对可搜索密文的第一部分进行匹配搜索,判断是否找到匹配的可搜索密文,如果是,转至步骤530,如果否,则转至步骤540;

步骤530:识别步骤520中匹配的可搜索密文的第二部分计算然后运行第二抗碰撞哈希函数H2,生成下一次需要搜索的可搜索密文的第一部分转至步骤520;

步骤540:服务器B停止搜索并输出已经找到的可搜索密文。

参见图5,图5示出了本发明的加密过程和搜索过程。其中,虚线箭头Line1是加密过程,点画线箭头Line2是搜索过程。虚线框内是可搜索密文集合。Pt[Wi]表示关键字Wi对应的私有状态Pt,其中,i∈[1,L]。W1~WL分别代表了不同的关键字W。为了简化,图中省略了关键字W2~WL的加密过程,省略了关键字W1~WL-1的搜索过程。加密过程中,上一次被加密的关键字W的可搜索密文依次通过隐含关系E关联于其后被加密的关键字W的可搜索密文。加密过程中,只需执行一次双线性映射操作,后续通过采用不包括双线性映射操作的加密算法构建隐含关系。搜索过程中,只需执行一次双线性映射操作,后续通过采用不包括双线性映射操作的搜索算法暴露隐含关系,依次得到后续的可搜索密文。通过该方法,大大降低了加密和搜索的计算开销,提高了加密和搜索的效率。

实施例2

本实施例是对实施例1的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。

根据一个优选实施方式,本发明的方法还可以包括:关键字的提取步骤。

优选地,关键字的提取步骤包括:获取待加密的文件;根据预设的关键字样本集,从待加密的文件提取关键字,所述关键字样本集包括不同粒度的关键字;将提取的关键字作为待加密的文件的关键字。通过该方式获得关键字效率高、数量齐全,而且避免了发送方A漏提、错题关键字或者接收方C和发送方A对文件的理解不一致导致接收方C不能有效检索到相关文件的问题。

根据一个优选实施方式,本发明的方法还包括:构建所述关键字样本集;

其中,所述构建所述关键字样本集的处理包括:

发送方A提供多篇本领域的关键字样本文章;

分别对所述多篇关键字样本文章中的语句进行自然语言分析,将所述语句切分为不同粒度的分词;

分别计算所述不同粒度的分词的评分;

根据所述评分超过预定阈值的分词生成所述预设的关键字样本集。通过该方式,能够更为精确地从待加密的文件中提取本领域的大家所熟知的关键词,使接收方C在检索过程中能够更为快速、有效地检索到相应的密文文件。优选地,关键字样本文章例如是本领域的论文、教材、词典和手册中的至少一种。优选地,本实施例中提到的本领域是指待加密的文件的所属领域。

实施例3

本实施例是对实施例1或2及其结合的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。

参照图4,本发明还公开了一种实用型可搜索公钥加密系统,该系统适于执行本发明记载的各个方法步骤,以达到预期的技术效果。在本实施例中,密钥分发中心D独立设置。独立设置的秘钥分发中心可以使系统具有更高的安全性。特别是密钥分发中心D和服务器B的拥有者不同的情况下,能够降低私钥被服务器B泄露的可能性。还能防止服务器B掌握私钥而私自查看关键字W的具体情况,截取用户的私密文件。

根据一个优选实施方式,该系统包括密钥分发中心D、服务器B、接收方C和发送方A,密钥分发中心D根据预设的安全参数构建双线性映射,输出公开参数PK和私钥SK;

发送方A根据公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri;

发送方A输入关键字W、公开参数PK和结构的私有部分Pri,通过加密算法为关键字W生成对应的可搜索密文并上传到服务器B,通过加密算法为关键字W生成对应的可搜索密文包括:

判断关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于第一加密算法的第二加密算法,

其中,第一加密算法包含双线性映射操作,第二加密算法生成的可搜索密文通过隐含关系关联于关键字W上一次被加密时生成的可搜索密文;

接收方C输入关键字W和私钥SK,输出检索陷门TW并提交给服务器B;

服务器B输入检索陷门TW、公开参数PK和若干可搜索密文组成的可搜索密文集合,执行搜索算法,通过一次双线性映射操作找到采用第一加密算法生成的关键字W对应的可搜索密文,通过隐含关系找到采用第二加密算法生成的关键字W对应的可搜索密文。

根据一个优选实施方式,第二加密算法不包含双线性映射操作且第二加密算法的第二计算量小于第一加密算法的第一计算量。

实施例4

本实施例是对实施例1、2或3及其结合的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。

再次参见图4,根据一个优选实施方式,步骤100可以包括:

步骤S110:输入安全参数1k,构建相应的双线性映射:G和G1表示两个具有素数阶q的乘法群,g是G群的一个生成元,运行随机数生成算法:私钥SK=α,求幂得到公钥P=gα,选择两个抗碰撞哈希函数H1:{0,1}*→G,H2:G1→{0,1}logq,令公开参数输出公开参数PK和私钥SK;

步骤S120:将公开参数PK发送给发送方A和/或服务器B,将私钥SK发送给接收方C。

优选地,步骤S110可以是由密钥分发中心D完成的。

优选地,本发明中所述的随机数生成算法其运行方法可以是:根据选择的椭圆曲线:Y2=X3+aX+b,随机选择自变量X的一个值x1,计算对应因变量Y的值y1;若点(x1,y1)在想要映射的群中,则成功生成了随机元素;若点(x1,y1)不在想要映射的群中,则继续选择X的值,直到找到出现在想要映射的群中的点。此外,域表示集合{1,2,...,q-1}。

优选地,本发明中提到的随机选择域中元素的随机数生成算法可以从Pairing-Based Cryptosystems(PBC)函数库中调用API运行。

优选地,本发明中提到的随机数生成算法同样按上述方法运行。本发明中提到的随机数生成算法同样可以从Pairing-Based Cryptosystems(PBC)函数库中调用API运行。

优选地,本发明中提到的抗碰撞哈希函数H1,H2同样可以从PBC函数库中调用API运行。

根据一个优选实施方式,步骤200可以为:发送方A输入公开参数PK,运行随机数生成算法输出结构(Pri=(u),Pub=gu)。优选地,结构的公共部分Pub=gu是求幂得到的。优选地,结构的私有部分Pri可以是一个形如(u,{(W,Pt)|Pt∈G1})的变长列表,被初始化为(u)。

优选地,结构的私有部分Pri可以由发送方A秘密地保存在本地。或者,结构的私有部分Pri可以由发送方A加密保存在第三方。这样可以防止结构的私有部分Pri占据本地内存,还可以让第三方作为备份,防止本地数据被破坏时不易构建后续的隐藏关系。

根据一个优选实施方式,步骤310可以包括:

步骤311:发送方A为需要加密的文件提取相关的关键字W,并使用已和接收方C协商好的对称密钥加密文件,生成对应的密文文件;

步骤312:发送方A输入关键字W,根据关键字W在结构的私有部分Pri中查询是否存在(W,Pt),如果是,表示所述关键字W不是第一次被加密,则转至步骤330,如果否,表示所述关键字W是第一次被加密,则转至步骤320。

根据一个优选实施方式,步骤320可以为:运行随机数生成算法令Pt=R,将(W,Pt)插入到结构的私有部分Pri中,运行第一抗碰撞哈希函数H1、求幂、执行双线性映射操作、求逆、乘法运算和第二抗碰撞哈希函数H2,输出可搜索密文

根据一个优选实施方式,步骤330可以为:运行随机数生成算法:运行抗碰撞哈希函数、求逆和乘法运算,输出可搜索密文C=(H2(Pt),Pt-1.R),然后令Pt=R,在结构的私有部分Pri中更新(W,Pt)。

根据一个优选实施方式,步骤300还可以包括:

步骤340:发送方A上传密文文件以及与之关联的可搜索密文至服务器B。

优选地,服务器B接收到密文文件和与之关联的可搜索密文之后,将密文文件和与之关联的可搜索密文按照关联的方式进行存储。

根据一个优选实施方式,步骤400可以包括:

步骤410:接收方C输入关键字W和私钥SK,运行第一抗碰撞哈希函数H1并求幂,得到检索陷门Tw=H1(W)a

步骤420:接收方C生成检索请求并将检索请求和生成的检索陷门Tw一起发送至服务器B。

根据一个优选实施方式,步骤510可以包括:服务器B输入检索陷门TW、公开参数PK、可搜索密文集合和结构的公共部分Pub,执行双线性映射操作,计算运行第二抗碰撞哈希函数H2,生成可搜索密文的第一部分得到

根据一个优选实施方式,步骤520可以包括:服务器B在可搜索密文集合中根据得到的进行匹配,如果找到了相匹配可搜索密文,则转至步骤530,如果没有找到相匹配可搜索密文,则转至步骤540;

根据一个优选实施方式,步骤530可以包括:用表示找到的可搜索密文的第二部分,计算然后计算然后转至步骤520。

根据一个优选实施方式,步骤540可以包括:返回所有已经找到的可搜索密文并停止检索。

根据一个优选实施方式,本发明还可以包括:

步骤600:服务器B根据找到可搜索密文,返回与之关联的密文文件给接收方C。

根据一个优选实施方式,本发明还可以包括:

步骤700:接收方C根据已经和发送方A协商好的对称密钥解密密文文件。

实施例5

本实施例是对实施例1、2、3或4及其结合的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。

本发明还公开了一种服务器B,该服务器B采用了本发明记载的方法,以达到预期的技术效果。在本实施例中,将密钥分发中心D的功能并入了服务器B中,简化了系统的结构。

根据一个优选实施方式,该服务器B可以根据预设的安全参数构建双线性映射,输出公开参数PK和私钥SK。然后,服务器B可以将公开参数PK发送给发送方A,将私钥SK发送给接收方C。发送方A可以根据公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri。发送方A可以输入关键字W、公开参数PK和结构的私有部分Pri,通过加密算法为关键字W生成对应的可搜索密文并上传到服务器B。通过加密算法为关键字W生成对应的可搜索密文的步骤可以包括:判断关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于第一加密算法的第二加密算法。加密算法可以包括第一加密算法和第二加密算法。第一加密算法可以包含双线性映射操作。第二加密算法生成的可搜索密文可以通过隐含关系关联于关键字W上一次被加密时生成的可搜索密文。接收方C输入关键字W和私钥SK,输出检索陷门TW并提交给服务器B。服务器B输入检索陷门TW、公开参数PK和若干可搜索密文组成的可搜索密文集合,执行搜索算法,通过一次双线性映射操作找到采用第一加密算法生成的关键字W对应的可搜索密文。找到采用第一加密算法生成的关键字W对应的可搜索密文后,服务器B通过隐含关系找到采用第二加密算法生成的关键字W对应的可搜索密文。

根据一个优选实施方式,第二加密算法不包含双线性映射操作且第二加密算法的第二计算量小于第一加密算法的第一计算量。

实施例6

本实施例是对实施例1、2、3、4或5及其结合的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。

本发明还公开了一种服务器B,该服务器B采用了本发明记载的方法,以达到预期的技术效果。在本实施例中,将密钥分发中心D的功能并入了接收方C中,简化了系统的结构。该方式可以解决服务器B是不可信的情况下,搜索的安全性问题。这样,服务器B就不会掌握私钥,可搜索加密的搜索过程是在服务器B不知道搜索的关键字W的具体情况下完成。

根据一个优选实施方式,接收方C可以根据预设的安全参数构建双线性映射,输出公开参数PK和私钥SK。然后,接收方C可以将公开参数PK发送给至少一个发送方A和/或服务器B,并将私钥SK秘密保存在本地。发送方A可以根据公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri。发送方A可以输入关键字W、公开参数PK和结构的私有部分Pri,通过加密算法为关键字W生成对应的可搜索密文并上传到服务器B。通过加密算法为关键字W生成对应的可搜索密文的步骤可以包括:判断关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于第一加密算法的第二加密算法。加密算法可以包括第一加密算法和第二加密算法。第一加密算法可以包含双线性映射操作。第二加密算法生成的可搜索密文可以通过隐含关系关联于关键字W上一次被加密时生成的可搜索密文。接收方C输入关键字W和私钥SK,输出检索陷门TW并提交给服务器B。服务器B输入检索陷门TW、公开参数PK和若干可搜索密文组成的可搜索密文集合,执行搜索算法,通过一次双线性映射操作找到采用第一加密算法生成的关键字W对应的可搜索密文。找到采用第一加密算法生成的关键字W对应的可搜索密文后,服务器B通过隐含关系找到采用第二加密算法生成的关键字W对应的可搜索密文。优选地,服务器B可以保存公开参数PK,并在一发送方A请求获得公开参数PK时将其发送给该发送方B。

实施例7

本实施例是对实施例1、2、3、4、5或6及其结合的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。

本实施例公开了一种加密芯片,加密芯片适于执行本发明记载的方法步骤,以达到预期的技术效果。

根据一个优选实施方式,加密芯片根据所述公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri;

加密芯片输入关键字W、所述公开参数PK和所述结构的私有部分Pri,通过加密算法为所述关键字W生成对应的可搜索密文,所述通过加密算法为所述关键字W生成对应的可搜索密文包括:

判断所述关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于所述第一加密算法的第二加密算法,

其中,第一加密算法包含双线性映射操作,所述第二加密算法生成的可搜索密文通过隐含关系E关联于所述关键字W上一次被加密时生成的可搜索密文。

根据一个优选实施方式,加密芯片设于发送方的具有数据处理能力的设备之内。

根据另一个优选实施方式,加密芯片通过USB接口连接于发送方以执行发送方的加密过程。

采用本发明的方法的加密芯片在加密过程所消耗的计算资源相对较小,降低了传感器的配置要求,且提高了加密的速度。

实施例8

本实施例是对实施例1、2、3、4、5、6或7及其结合的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。

本实施例公开了一种传感器,传感器适于执行本发明记载的方法步骤,以达到预期的技术效果。

根据一个优选实施方式,传感器根据所述公开参数PK初始化可搜索密文结构,并输出结构的公共部分Pub和结构的私有部分Pri;

加密芯片输入关键字W、所述公开参数PK和所述结构的私有部分Pri,通过加密算法为所述关键字W生成对应的可搜索密文,所述通过加密算法为所述关键字W生成对应的可搜索密文包括:

判断所述关键字W是否是第一次被加密,如果是,则采用第一加密算法,如果否,则采用不同于所述第一加密算法的第二加密算法,

其中,第一加密算法包含双线性映射操作,所述第二加密算法生成的可搜索密文通过隐含关系E关联于所述关键字W上一次被加密时生成的可搜索密文。

根据一个优选实施方式,传感器设于发送方的具有数据处理能力的设备之内。

根据另一个优选实施方式,传感器通过USB接口连接于发送方以执行发送方的加密过程。

采用本发明的方法的传感器在加密过程所消耗的计算资源相对较小,降低了传感器的配置要求,且提高了加密的速度。

应当注意的是,本发明所列的各个方法步骤并非一定要编号顺序执行,在能实现本发明目的的情况下,一些步骤可以彼此交换顺序,这也应当包含在本发明的保护范围之内。

如本文中所使用的那样,术语“自动的”及其变型是指当执行过程或操作时在没有实质性人工输入的情况下完成的任何过程或操作。然而,如果在执行该过程或操作之前接收到该输入,则该过程或操作可以是自动的,即使该过程或操作的执行使用了实质性或非实质性的人工输入。如果这样的输入影响该过程或操作的执行方式,则该人工输入被认为是实质性的。准予执行该过程或操作的人工输入不被视为“实质性的”。

虽然已经详细描述了本发明,但是在本发明的精神和范围内的修改对于本领域技术人员将是显而易见的。这样的修改也被认为是本公开的一部分。鉴于前面的讨论、本领域的相关知识以及上面结合背景讨论的参考或信息(均通过引用并入本文),进一步的描述被认为是不必要的。此外,应该理解,本发明的各个方面和各个实施例的各部分均可以整体或部分地组合或互换。而且,本领域的普通技术人员将会理解,前面的描述仅仅是作为示例,并不意图限制本发明。

已经出于示例和描述的目的给出了本公开的前述讨论。这并不意图将本公开限制于本文公开的形式。在前述的具体实施方式中,例如,为了简化本公开的目的,本公开的各种特征在一个或多个实施例、配置或方面中被组合在一起。实施例、配置或方面的特征可以以除上面讨论的那些之外的替代实施例、配置或方面组合。本公开的该方法不应被解释为反映本公开需要比每个权利要求中明确记载的更多特征的意图。相反,如以下权利要求所反映的,创造性方面在于少于单个前述公开的实施例、配置或方面的所有特征。因此,以下权利要求由此被并入本具体实施方式中,其中每个权利要求其自身作为本公开的单独实施例。

而且,虽然本公开的描述已经包括对一个或多个实施例、配置或方面以及某些变型和修改的描述,但是其他变型、组合和修改也在本公开的范围内,例如在本领域技术人员的技能和知识范围内,在理解了本公开之后。旨在获得在允许的程度上包括替代实施例、配置或方面的权利,所述权利包括那些要求保护的替代的、可互换的和/或等效的结构、功能、范围或步骤的权利,无论这种替代的、可互换的和/或等效的结构、功能、范围或步骤是否在本文中公开,并且无意公开奉献任何可专利的主题。

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