一种公钥可搜索加密方法及系统

文档序号:1965855 发布日期:2021-12-14 浏览:19次 >En<

阅读说明:本技术 一种公钥可搜索加密方法及系统 (Public key searchable encryption method and system ) 是由 戚丽君 庄金成 于 2021-09-14 设计创作,主要内容包括:本发明属于公钥可搜索加密领域,提供一种公钥可搜索加密方法及系统。其中该方法包括接收方用于生成检索陷门并提交给云服务器;发送方用于将生成的可搜索密文和密文文件一起上传到云服务器;云服务器用于返回所有匹配的可搜索密文的密文文件,将其发送给接收方;生成可搜索密文的过程为计算每个加密文件附加的关键字的哈希值;根据关键字的哈希值计算可搜索密文的中间参量;均匀随机选取多项式,结合可搜索密文的中间参量,计算生成可搜索密文的直接参量,生成可搜索密文。本发明可在不牺牲效率的情况下,通过基于标准模型和格问题的Ring-SIS/LWE困难性假设来保证更好的安全性,使方案既能保证各个算法的效率又能提供长期安全性。(The invention belongs to the field of public key searchable encryption and provides a public key searchable encryption method and system. The method comprises the steps that a receiving party is used for generating a retrieval trapdoor and submitting the retrieval trapdoor to a cloud server; the sender is used for uploading the generated searchable ciphertext and the ciphertext file to the cloud server together; the cloud server is used for returning all the matched ciphertext files of the searchable ciphertext and sending the ciphertext files to the receiving party; the process of generating the searchable ciphertext is to calculate the hash value of the keyword attached to each encrypted file; calculating intermediate parameters of the searchable ciphertext according to the hash value of the keyword; and uniformly and randomly selecting a polynomial, combining intermediate parameters of the searchable cipher text, calculating direct parameters for generating the searchable cipher text, and generating the searchable cipher text. The invention can ensure better security through Ring-SIS/LWE difficulty hypothesis based on standard model and lattice problem under the condition of not sacrificing efficiency, so that the scheme can ensure the efficiency of each algorithm and provide long-term security.)

一种公钥可搜索加密方法及系统

技术领域

本发明属于公钥可搜索加密领域,尤其涉及一种公钥可搜索加密方法及系统。

背景技术

本部分的陈述仅仅是提供了与本发明相关的

背景技术

信息,不必然构成在先技术。

公钥可搜索加密(Public Key Encryption with Keyword Search,PEKS)旨在实现加密文件的检索。PEKS允许系统中的任何用户向服务器发送加密文件,并提供与这些文件相对应的关键字。接收者可以使用它的私钥生成并发送他想要的关键词的陷门,并使服务器能够搜索加密数据以检索与该关键词相关联的文件。

自PEKS方案引入以来,人们已经提出了几种具有各种特征的PEKS方案。然而,由于一些障碍(例如高端到端延迟和缺乏长期安全性等),PEKS方案在实践中的广泛采用受到了阻碍。Abdalla等人提出了一种通用的由匿名的IBE到PEKS变换的框架,Behnia等人通过利用现有的基于格的IBE方案,结合Abdalla等人的通用变换,提出了一个在随机预言模型(ROM)下的基于NTRU的PEKS方案。虽然这个方案在Test算法和PEKS算法的效率上都有非常明显的优势,但该方案的KeyGen算法和Trapdoor算法却仍然不能保证较高的效率。

发明人发现,目前基于Abdalla等人的通用匿名的IBE到PEKS变换的公钥可搜索加密方法在同时保障搜索效率和加密的长期安全性方面还有待提高。

发明内容

为了解决上述背景技术中存在的技术问题,本发明提供一种公钥可搜索加密方法及系统,其能够同时保障搜索效率和加密的长期安全性。

为了实现上述目的,本发明采用如下技术方案:

本发明的第一个方面提供一种公钥可搜索加密方法,其包括:

所述接收方用于根据预设的安全参数,计算公钥可搜索加密过程中所使用的公钥及其对应私钥,以及基于预先设定搜索的关键字,生成检索陷门并提交给云服务器;所述发送方用于根据公钥为每个加密文件附加的关键字生成可搜索密文,并将生成的可搜索密文和密文文件一起上传到云服务器;

所述云服务器用于根据检索陷门来检索所有可搜索密文,并返回所有匹配的可搜索密文的密文文件,并将这些匹配的可搜索密文的密文文件发送给接收方;

其中,根据公钥为每个加密文件附加的关键字生成可搜索密文的过程为:

计算每个加密文件附加的关键字的哈希值;

根据相应关键字的哈希值计算可搜索密文的中间参量;

均匀随机选取多项式,再结合可搜索密文的中间参量,计算出生成可搜索密文的直接参量,生成可搜索密文。

进一步地,所述公钥可搜索加密方法还包括:发送方、接收方和云服务器分别初始化运行环境。

进一步地,公钥及其对应私钥是由接收方密钥生成算法KeyGen(1k)生成的。

进一步地,公钥及其对应私钥是根据预设安全参数而生成多项式及与其关联的陷门计算出的,所述陷门由陷门生成算法根据预设安全参数而生成;所述与陷门相关联的多项式是随机生成的。

进一步地,所述生成检索陷门的过程为:

计算预先设定搜索的关键字的哈希值;

根据相应关键字的哈希值计算检索陷门的中间参量;

基于检索陷门的中间参量及原像采样算法,生成多项式,该多项式作为生成检索陷门;其中,检索陷门的中间参量的转置与所述多项式的乘积等于生成可搜索密文的过程中随机选取的多项式。

进一步地,所述云服务器根据检索陷门来检索所有可搜索密文的过程为:

根据检索陷门tw和可搜索密文s=(b,c2,c1),计算判断参量y=c2-bTtw

其中,b,c2,c1为可搜索密文的直接参量,c1←{0,1};

如果判断参量y更接近而不是0,则y=1,否则y=0;其中表示对q/2的下取整函数;q是整数环的模数,为已知参数;

如果y=c1,则说明检索陷门与可搜索密文互相匹配,否则不匹配。

本发明的第二个方面提供一种公钥可搜索加密系统,其包括发送方、接收方和云服务器;

所述接收方用于根据预设的安全参数,计算公钥可搜索加密过程中所使用到的公钥及其对应私钥,以及基于预先设定搜索的关键字,生成检索陷门并提交给云服务器;

所述发送方用于根据公钥为每个加密文件附加的关键字生成可搜索密文,并将生成的可搜索密文和密文文件一起上传到云服务器;

所述云服务器用于根据检索陷门来检索所有可搜索密文,并返回所有匹配的可搜索密文的密文文件,并将这些匹配的可搜索密文的密文文件发送给接收方;

其中,所述发送方根据公钥为每个加密文件附加的关键字生成可搜索密文的过程为:

计算每个加密文件附加的关键字的哈希值;

根据相应关键字的哈希值计算可搜索密文的中间参量;

均匀随机选取多项式,再结合可搜索密文的中间参量,计算出生成可搜索密文的直接参量,生成可搜索密文。

其中,所述接收方基于预先设定搜索的关键字,生成检索陷门的过程为:

计算预先设定搜索的关键字的哈希值;

根据相应关键字的哈希值计算检索陷门的中间参量;

基于检索陷门的中间参量及原像采样算法,生成多项式,该多项式作为生成检索陷门;其中,检索陷门的中间参量的转置与所述多项式的乘积等于生成可搜索密文的过程中随机选取的多项式。

与现有技术相比,本发明的有益效果是:

本发明的发送方根据公钥为每个加密文件附加的关键字生成可搜索密文的过程为计算每个加密文件附加的关键字的哈希值;根据相应关键字的哈希值计算可搜索密文的中间参量;均匀随机选取多项式,再结合可搜索密文的中间参量,计算出生成可搜索密文的直接参量,生成可搜索密文,本发明基于格上的Ring-SIS/LWE困难性假设,这提供了长期安全性,并且目前被认为可抵抗量子计算机的攻击,在标准模型下完成的,是IND-CPA安全且计算一致的;本发明与Behnia等人的PEKS方案进行比较,不但提供了更为显著的计算效率优势,而且基于标准模型和格问题的经典假设保证了更好的安全性。

本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1是本发明实施例的公钥可搜索加密方法流程图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

PEKS=(KeyGen,Trapdoor,PEKS,Test)加密方案主要包括四个算法:

(1)KeyGen(1k)→(pk,sk):密钥生成算法。假设方案安全参数为k,算法通过输入k,输出公钥pk和私钥sk;

(2)Trapdoor(w,pk,sk)→tw:陷门生成算法。输入用户想要检索的关键字w,公钥pk和私钥sk,算法输出陷门tw

(3)PEKS(w,pk)→sw:PEKS算法。输入关键字w和公钥pk,算法输出一个可搜索的密文sw

(4)Test(sw,t′w)→d:测试算法。输入可搜索的密文sw和陷门t′w,算法输出d,如果w=w′,d=1,否则d=0。

基于身份的加密(Identity Based Encryption,IBE)是一种公钥加密机制,以用户的身份(如用户的电子邮件地址)作为公钥,用户将其身份发送给可信第三方,由可信第三方生成与用户身份相对应的私钥。我们称可信第三方为私钥生成器(Private-KeyGenerator,PKG)。IBE=(Setup,Extract,Enc,Dec)加密方案主要包括4个算法:

Setup(1k)→(mpk,msk):密钥生成算法。假设方案安全参数为k,算法通过输入k,输出主公钥mpk和主私钥msk;

Extract(id,msk,mpk)→sk:提取算法。输入用户的身份id∈{0,1}k,主公钥mpk和主私钥msk,算法输出用户的私钥sk;

Enc(m,id,mpk)→c:加密算法。输入用户的身份id和消息m∈{0,1}*,算法输出密文c;

Dec(c,sk)→m:解密算法。输入密文c和用户私钥sk,算法输出从密文c恢复的明文消息m。

Abdalla等人提出了将IBE方案转化为PEKS方案的技术。即如果存在IND-CPA(选择明文攻击下的不可区分性)安全的匿名IBE方案,我们可以将其转化为IND-CPA安全且计算一致的PEKS方案。该转换方法输入一个IBE方案IBE=(Setup,Extract,Enc,Dec),并返回一个PEKS方案PEKS=(KeyGen,Trapdoor,PEKS,Test),转换方法中IBE方案与PEKS方案各算法的对应如下所示:

方案中的公钥pk和私钥sk分别是IBE方案的主公钥mpk和主私钥msk;

方案中的关键字w对应于IBE方案的身份id,PEKS方案中与关键字相关联的陷门tw是IBE方案中分配给身份的私钥sk;

PEKS方案的PEKS算法对应于IBE方案的加密算法:

PEKS(w,pk)选取C2∈{0,1}k,令Enc(C2,w,pk)→C1,返回(C1,C2).

如果Dec(tw,C1)=C2,Test(C1,C2)返回1,否则返回0。

基于该通用方法,Behnia等人提出了一个在随机预言模型(ROM)下的基于NTRU的PEKS方案。虽然该方案在Test算法和PEKS算法的效率上都有非常明显的优势,但该方案的KeyGen算法和Trapdoor算法却仍然不能保证较高的效率,本发明为了解决上述问题,提供了一种公钥可搜索加密方法及系统,其能够同时保障搜索效率和加密的长期安全性。

为了使方案既能保证各个算法的效率又能提供长期安全性,本发明构造了一个基于Ring-SIS/LWE困难性假设的标准模型下的PEKS方案,证明了PEKS方案可以在不牺牲效率的情况下,通过基于标准模型和格问题的经典假设来保证更好的安全性。

实施例一

参照图1,本实施例提供了一种公钥可搜索加密方法,其具体包括如下步骤:

步骤1:所述接收方用于根据预设的安全参数,计算公钥可搜索加密过程中所使用的公钥及其对应私钥,以及基于预先设定搜索的关键字,生成检索陷门并提交给云服务器。

在具体实施中,发送方、接收方和云服务器分别初始化运行环境;其中,在运行过程中所使用到的接收方的公钥及其对应私钥是由接收方密钥生成算法生成;

其中,所述密钥生成算法为KeyGen(1k)算法,其中k为系统预设的安全参数,具体为:

接收方根据系统预设的安全参数k,运行TrapGen(q,σ,h=0)算法,其中q是环的模数,σ是高斯参数,h∈Rq是给定的参数。如果a′没有在输入给定,则表示算法在中均匀选取a′。生成多项式和与之关联的陷门以此计算出公钥pk和私钥sk。其中,上标m和k均为已知设定参数。具体包含以下子步骤:

运行TrapGen(q,σ,h=0)算法,其中q是环的模数,σ是高斯参数,h∈Rq是给定的参数。如果a′没有在输入给定,则表示算法在中均匀选取a′。该算法生成多项式和与之关联的陷门满足a=(a′T,-a′T)T

均匀随机选取多项式u←Rq

根据上述步骤的结果生成公钥pk和私钥sk:

步骤2:发送方根据公钥为每个加密文件附加的关键字生成可搜索密文,并将生成的可搜索密文和密文文件一起上传到云服务器;

其中,利用陷门生成算法根据预设安全参数生成陷门。与陷门相关联的多项式是随机生成的。

其中,根据公钥为每个加密文件附加的关键字生成可搜索密文的过程为:

计算每个加密文件附加的关键字的哈希值;

根据相应关键字的哈希值计算可搜索密文的中间参量;

均匀随机选取多项式,再结合可搜索密文的中间参量,计算出生成可搜索密文的直接参量,生成可搜索密文。

发送方根据公钥pk为每个加密文件附加的关键字生成可搜索密文s,并将生成的可搜索密文和密文文件一起上传到云服务器。具体包括以下子步骤:

对关键字W,计算hw=H(w),其中函数是一个满秩差分编码(encodingwith Full-Rank Differences,FRD)函数,它可以将中的元素映射到Rq中的可逆元素;

计算aw=aT+(0,hwgT)T=(a′T,hwgT-a′TT)T其中

均匀随机选取多项式其中表示Rm-k(Rk、R)上方差为τ(γ、τ)的高斯分布;

计算其中表示对q/2的下取整函数;

根据上述步骤的结果生成可搜索密文s=(b,c2,c1)。

步骤3:接收方基于预先设定搜索的关键字,生成检索陷门并提交给云服务器。

其中,所述生成检索陷门的过程为:

计算预先设定搜索的关键字的哈希值;

根据相应关键字的哈希值计算检索陷门的中间参量;

基于检索陷门的中间参量及原像采样算法,生成多项式,该多项式作为生成检索陷门;其中,检索陷门的中间参量的转置与所述多项式的乘积等于生成可搜索密文的过程中随机选取的多项式。

具体地,接收方输入想要搜索的关键字w,生成检索陷门tw∈Rm并提交给云服务器。具体包括以下子步骤:

对关键字w,计算hw=H(w),其中函数H为如上所述的FRD函数;

计算aw=aT+(0,hwgT)T=(a′T,hwgT-a′TT)T

运行原像采样SamplePre(T,aw,hw,ζ,σ,α,u)算法[8],生成多项式x∈Rm,满足其中T,aw,hw,u如上所述,ζ,σ,α为给定的高斯参数;

根据上述步骤的结果生成检索陷门tw=x。其中,上标T均表示转置的意思。

步骤4:云服务器根据检索陷门来检索所有可搜索密文,返回所有匹配的可搜索密文的密文文件并将其发送给接收方。

其中,所述云服务器根据检索陷门来检索所有可搜索密文的过程为:

根据检索陷门tw和可搜索密文s=(b,c2,c1),计算判断参量y=c2-bTtw

其中,b,c2,c1为可搜索密文的直接参量,c1←{0,1};

如果判断参量y更接近而不是0,则y=1,否则y=0;其中表示对q/2的下取整函数;q是整数环的模数,为已知参数;

如果y=c1,则说明检索陷门与可搜索密文互相匹配,否则不匹配。

根据上述步骤的结果,云服务器返回所有符合陷门检索条件的密文文件。

表1是安全参数为80,格维数为512时的PEKS方案的不同操作时间:KeyGen,Trapdoor,PEKS和Test。

表1

表2是安全参数为80,格维数为1024时的PEKS方案的不同操作时间:KeyGen,Trapdoor,PEKS和Test。

表2

实施例二

本实施例提供了一种公钥可搜索加密系统,其具体包括发送方、接收方和云服务器;

所述接收方用于根据预设的安全参数,计算公钥可搜索加密过程中所使用的公钥及其对应私钥,以及基于预先设定搜索的关键字,生成检索陷门并提交给云服务器;所述发送方用于根据公钥为每个加密文件附加的关键字生成可搜索密文,并将生成的可搜索密文和密文文件一起上传到云服务器;

所述云服务器用于根据检索陷门来检索所有可搜索密文,并返回所有匹配的可搜索密文的密文文件,并将这些匹配的可搜索密文的密文文件发送给接收方;

其中,所述发送方根据公钥为每个加密文件附加的关键字生成可搜索密文的过程为:

计算每个加密文件附加的关键字的哈希值;

根据相应关键字的哈希值计算可搜索密文的中间参量;

均匀随机选取多项式,再结合可搜索密文的中间参量,计算出生成可搜索密文的直接参量,生成可搜索密文。

其中,所述接收方基于预先设定搜索的关键字,生成检索陷门的过程为:

计算预先设定搜索的关键字的哈希值;

根据相应关键字的哈希值计算检索陷门的中间参量;

基于检索陷门的中间参量及原像采样算法,生成多项式,该多项式作为生成检索陷门;其中,检索陷门的中间参量的转置与所述多项式的乘积等于生成可搜索密文的过程中随机选取的多项式。

在具体实施中,所述云服务器根据检索陷门来检索所有可搜索密文的过程为:

根据检索陷门tw和可搜索密文s=(b,c2,c1),计算判断参量y=c2-bTtw

其中,b,c2,c1为可搜索密文的直接参量,c1←{0,1};

如果判断参量y更接近而不是0,则y=1,否则y=0;其中表示对q/2的下取整函数;q是整数环的模数,为已知参数;

如果y=c1,则说明检索陷门与可搜索密文互相匹配,否则不匹配。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种双线性对计算加速系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!