一种具有高效前向索引的可搜索公钥加密方法及系统技术方案

技术编号:20947313 阅读:29 留言:0更新日期:2019-04-24 03:35
本发明专利技术公开了一种具有高效前向索引的可搜索公钥加密方法及系统,通过具有高效的前向索引的SPE‑FI方案,使得检索时的时间复杂度与接收者所拥有文件的数量线性相关,比传统的检索复杂度与可搜索密文数量线性相关的可搜索公钥加密方案更加高效;同时本发明专利技术是无状态的,相比其他带有隐藏结构的PEKS方案,本发明专利技术不需要发送者在本地保存用于维护可搜索密文间关系的隐藏结构信息,避免私有状态的使用,降低了发送者的开销。

A Searchable Public Key Encryption Method and System with High Efficiency Forward Index

The invention discloses a searchable public key encryption method and system with high efficiency forward index. By adopting SPE FI scheme with high efficiency forward index, the time complexity of retrieval is linearly correlated with the number of documents owned by the recipient, which is more efficient than the traditional searchable public key encryption scheme with linearly correlated retrieval complexity with the number of searchable ciphertext. Compared with other PEKS schemes with hidden structure, the present invention does not require the sender to store the hidden structure information for maintaining the relationship between searchable ciphertext locally, avoids the use of private state and reduces the sender's overhead.

【技术实现步骤摘要】
一种具有高效前向索引的可搜索公钥加密方法及系统
本专利技术属于云存储安全
,更具体地,涉及一种具有高效前向索引的可搜索公钥加密方法及系统。
技术介绍
随着互联网技术的高速发展,人们越来越倾向于将自己的文件上传保存到云端,进行外包存储。而这些文件往往包含重要的隐私或者秘密信息,因此在上传文件之前,用户会首先对文件进行加密。但是加密的文件又会带来另外的问题,即加密的文件无法支持搜索操作,这极大降低了文件的可用性,对于那些在云端拥有大量文件的用户来说更是如此。为了解决这个问题,提高加密文件的可用性,可搜索加密技术应运而生。可搜索加密分为两种——可搜索对称加密(SSE)与可搜索公钥加密(SPE),其中,SSE需要文件的发送者与加密者共享同一个对称密钥,这在存在多发送者的环境下是不实用的,因此我们主要关注SPE。传统的SPE技术在搜索时,其搜索的时间复杂度是与可搜索密文的数量线性相关的,也就是说与所有文件中所包含的总的关键字的数量线性相关。这是非常低效的,因为每个文件可能含有几十上百个关键字,这样一来总的可搜索密文的数量可能就非常庞大,严重影响检索耗时。近年来出现了带有隐藏结构的SPE方案,可以将检索复杂度降低到亚线性级,也就是只跟符合要求的密文的数量相关。这样的方案虽然大大提升了检索效率,但是也有个缺陷,就是它要求发送者在本地机器上维护一个私有状态,并且不同的设备其私有状态一般是不同的。这就给发送者带来了存储开销,并且当发送者在临时设备上发送密文时,每次使用临时设备都要初始化并生成不同的私有状态,会降低发送者的效率,为发送者带来困扰。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于解决现有SPE方案检索效率低、由于在临时设备上发送密文时都要初始化并生成不同的私有状态而导致发送者效率降低的技术问题。为实现上述目的,第一方面,本专利技术实施例提供了一种具有高效前向索引的可搜索公钥加密方法,该方法包括以下步骤:S1.输入公钥关键字集合W和文件密文标识符ID,其中,q为素数,G和G1为两个q阶乘法群,g为G群的生成元,为双线性映射,p←gs,s为私钥,H:{0,1}*→G为哈希函数,KS为关键字空间,关键字集合W={w1,w2,…wN}为KS的子集,N表示从文件密文标识符ID对应的文件中抽取的关键字w总个数;S2.选择两个随机数表示不含0的模q整数集合,初始化链表T为空;S3.令和S4.对i∈[1,N],计算标签以及数据并将标签-数据元组(Ii,Ci)插入到链表T中;S5.计算L←Create(T),从T中生成一个字典L;S6.输出最终的SPE-FI文件密文CSPE-FI=(C0,C′0,L)。一种具有高效前向索引的可搜索公钥加密方法,该方法包括以下步骤:S1.输入公钥pkSPE-FI、关键字集合W和文件密文标识符ID,其中,关键字集合W={w1,w2,…wN},N表示从文件密文标识符ID对应的文件中抽取的关键字w总个数;S2.选择两个随机数表示不含0的模q整数集合,初始化链表T为空;S3.令和S4.对i∈[1,N],计算标签以及数据并将标签-数据元组(Ii,Ci)插入到链表T中;S5.计算L←Create(T),从T中生成一个字典L;S6.输出最终的SPE-FI文件密文CSPE-FI=(C0,C′0,L)。为实现上述目的,第二方面,本专利技术实施例提供了一种基于具有高效前向索引的可搜索公钥加密的文件密文ID检索方法,该方法包括以下步骤:S1.输入检索陷门td与包含全部可搜索密文CSPE-FI的集合SC={CSPE-FI_1,CSPE-FI_2,…CSPE-FI_n},n表示检索服务器保存的所有可搜索密文的数量;S2.对每一个可搜索密文CSPE-FI_i=(Ci0,C′i0,Li),1≤i≤n,其中,Ci0、C′i0表示第i个前向索引的密文部分,Li表示前向索引中的索引本身,执行以下操作:(1)计算并验证其是否存在于Li中,若不存在,则返回空,否则,取出C′←Get(Li,l′),进行下一步,Get(Li,l′)表示从字典Li中取出与标签l′对应的数据;(2)计算出文件密文标识符并返回文件密文标识符ID。为实现上述目的,第三方面,本专利技术实施例提供了一种具有高效前向索引的可搜索公钥加密方法,该方法包括以下步骤:S1.发送者加密文件生成PKE文件密文并发送给文件服务器,加密文件对应的关键字集合生成SPE-FI可搜索密文并上传到检索服务器;S2.文件服务器接收并保存所述PKE文件密文,检索服务器接收并保存所述SPE-FI可搜索密文;S3.接收者生成SPE-FI检索陷门并发送给所述检索服务器;S4.所述检索服务器利用SPE-FI检索陷门对SPE-FI可搜索密文进行检索,将检索到的文件密文标识符ID提交给文件服务器;S5.所述文件服务器利用所述文件密文标识符ID获取对应的PKE文件密文并发送给接收者;S6.所述接收者解密接收到的PKE文件密文,并查看文件内容。具体地,步骤S1包括以下子步骤:S101.发送者执行CPKE←EncryptPKE(pkPKE,D)生成文件密文CPKE,并为文件CPKE分配文件密文标识符ID,其中,pkPKE表示PKE公钥,D表示发送者想要分享给接收者的文件;S102.发送者将文件密文CPKE上传到文件服务器中;S103.发送者执行CSPE-FI←EncryptSPE-FI(pkSPE-FI,W,ID)生成该文件对应的可搜索密文CSPE-FI,其中,pkSPE-FI表示SPE-FI公钥,W表示关键字集合,ID表示文件密文标识符;S104.发送者将可搜索密文CSPE-FI上传到检索服务器中。具体地,所述步骤S103包括以下步骤:(1)输入公钥关键字集合W和文件密文标识符ID,其中,q为素数,G和G1为两个q阶乘法群,g为G群的生成元,为双线性映射,p←gs,s为私钥,H:{0,1}*→G为哈希函数,KS为关键字空间,关键字集合W={w1,w2,…wN},N表示从文件密文标识符ID对应的文件中抽取的关键字w总个数;(2)选择两个随机数表示不含0的模q整数集合,初始化链表T为空;(3)令和(4)对i∈[1,N],计算标签以及数据并将标签-数据元组(Ii,Ci)插入到链表T中;(5)计算L←Create(T),从T中生成一个字典L;(6)输出最终的SPE-FI文件密文CSPE-FI=(C0,C′0,L)。具体地,步骤S6具体为:接收者收到文件服务器返回的文件密文后,使用PKE私钥skPKE进行解密,得到文件Di,1≤i≤m,m表示检索服务器检索到的文件密文标识符ID总个数。为实现上述目的,第四方面,本专利技术实施例提供了一种加密装置,该加密装置使用如第一方面所述的具有高效前向索引的可搜索公钥加密方法。为实现上述目的,第五方面,本专利技术实施例提供了一种检索装置,该检索装置使用如第二方面所述的文件密文ID检索方法。为实现上述目的,第六方面,本专利技术实施例提供了一种具有高效前向索引的可搜索公钥加密系统,所述系统包括:发送者、文件服务器、检索服务器和接收者;所述发送者具有加密要分享给接收者的文件,生成PKE文件密文并上传至文件服务器,对该要分享给接收者的文件对应的关键字集合进行SPE-FI加密,生成SPE-FI可搜索本文档来自技高网...

【技术保护点】
1.一种具有高效前向索引的可搜索公钥加密方法,其特征在于,该方法包括以下步骤:S1.输入公钥

【技术特征摘要】
1.一种具有高效前向索引的可搜索公钥加密方法,其特征在于,该方法包括以下步骤:S1.输入公钥关键字集合W和文件密文标识符ID,其中,q为素数,G和G1为两个q阶乘法群,g为G群的生成元,G×G←G1为双线性映射,p←gs,s为私钥,H:{0,1}*→G为哈希函数,KS为关键字空间,关键字集合W={w1,w2,…wN}为KS的子集,N表示从文件密文标识符ID对应的文件中抽取的关键字w总个数;S2.选择两个随机数表示不含0的模q整数集合,初始化链表T为空;S3.令和S4.对i∈[1,N],计算标签以及数据并将标签-数据元组(Ii,Ci)插入到链表T中;S5.计算L←Create(T),从T中生成一个字典L;S6.输出最终的SPE-FI文件密文CSPE-FI=(C0,C″0,L)。2.一种基于具有高效前向索引的可搜索公钥加密的文件密文ID检索方法,其特征在于,该方法包括以下步骤:S1.输入检索陷门td与包含全部可搜索密文CSPE-FI的集合SC={CSPE-FI_1,CSPE-FI_2,…CSPE-FI_n},n表示检索服务器保存的所有可搜索密文的数量;S2.对每一个可搜索密文CSPE-FI_i=(Ci0,C′i0,Li),1≤i≤n,其中,Ci0、C′i0表示第i个前向索引的密文部分,Li表示前向索引中的索引本身,执行以下操作:(1)计算并验证其是否存在于Li中,若不存在,则返回空,否则,取出C′←Get(Li,l′),进行下一步,Get(Li,l′)表示从字典Li中取出与标签l′对应的数据;(2)计算出文件密文标识符并返回文件密文标识符ID。3.一种具有高效前向索引的可搜索公钥加密方法,其特征在于,该方法包括以下步骤:S1.发送者加密文件生成PKE文件密文并发送给文件服务器,加密文件对应的关键字集合生成SPE-FI可搜索密文并上传到检索服务器;S2.文件服务器接收并保存所述PKE文件密文,检索服务器接收并保存所述SPE-FI可搜索密文;S3.接收者生成SPE-FI检索陷门并发送给所述检索服务器;S4.所述检索服务器利用SPE-FI检索陷门对SPE-FI可搜索密文进行检索,将检索到的文件密文标识符ID提交给文件服务器;S5.所述文件服务器利用所述文件密文标识符ID获取对应的PKE文件密文并发送给接收者;S6.所述接收者解密接收到的PKE文件密文,并查看文件内容。4.如权利要求3所述的方法,其特征在于,步骤S1包括以下子步骤:S101.发送者执行CPKE←EncryptPKE(pkPKE,D)生成文件密文CPKE,并为文件CPKE分配文件密文标识符ID,其中,pkPKE表示PKE公钥,D表示发送者想要分享给接收者的文件;S102.发送者将文件密文...

【专利技术属性】
技术研发人员:徐鹏陈天阳金海王蔚
申请(专利权)人:华中科技大学深圳华中科技大学研究院
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1