具有可搜索功能的代理隐私集合求交方法转让专利

申请号 : CN202110239426.2

文献号 : CN113132345B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高莹刘翔刘文心

申请人 : 北京航空航天大学

摘要 :

本发明公开了一种具有可搜索功能的代理隐私集合求交方法,在保护数据隐私的前提下,实现了外包数据后能同时进行可搜索加密存储和代理隐私集合求交计算。根据数据库的大小不同所产生的具体需求,设计了两个具体的协议来实现可搜索加密和隐私集合求交的结合。第一个方案FS‑PSI结合流密码,适用于较小的数据集,简单易用,对用户友好。第二个方案SS‑PSI结合基于索引构造的SSE方案并且适用于较大的数据库,对用户有额外要求。相较于其它代理隐私集合求交协议拥有最优的交互和计算复杂度。

权利要求 :

1.一种具有可搜索功能的代理隐私集合求交方法,其特征在于,包括以下步骤:S11,根据第一用户和第二用户的用户私钥和伪随机函数对各自的明文数据库进行加密生成第一加密数据库和第二加密数据库,并将所述第一加密数据库和所述第二加密数据库上传至服务器;

S12,根据所述第一用户和所述第二用户的用户私钥、待搜索关键词和伪随机函数在本地生成第一搜索陷门和第二搜索陷门,利用所述第一用户与所述第二用户进行交互,通过所述第二用户生成计算许可,将所述第一搜索陷门、所述第二搜索陷门和所述计算许可发送至服务器;

S13,根据所述第一搜索陷门和所述第二搜索陷门,对加密数据库的每一个数据集进行搜索,得到第一搜索结果和第二搜索结果;

S14,根据所述计算许可计算所述第一搜索结果和所述第二搜索结果的交集密文,所述第二用户对所述交集密文进行解密得到交集明文,将所述交集明文发送给所述第一用户;

所述S11进一步包括:

将用户的每一个数据集合看做一串单词流,对于每一个单词流的每一个单词,所述第一用户和所述第二用户将单词和用户私钥作为伪随机函数的输入得到对应单词的加密密钥,将单词与对应的加密密钥异或得到单词对应的密文,全部加密完成生成所述第一加密数据库和所述第二加密数据库,并上传到服务器。

2.根据权利要求1所述的方法,其特征在于,所述S12进一步包括:所述第一用户和所述第二用户分别生成所述第一搜索陷门 和所述

第二搜索陷门 其中,w为待搜索关键词,KA为所述第一用户的用户私钥,KB为所述第二用户的用户私钥,F为伪随机函数;

通过所述第一用户将F(KA,w)发送给所述第二用户,所述第二用户生成所述计算许可所述第一用户将所述第一搜索陷门发送至服务器,所述第二用户将所述第二搜索陷门和所述计算许可发送至服务器。

3.根据权利要求2所述的方法,其特征在于,所述S13进一步包括:服务器根据所述第一搜索陷门在所述第一加密数据库EDBA中进行搜索,得到所述第一搜索结果EDBA(w),其中,w为待搜索关键词;

服务器根据所述第二搜索陷门在所述第二加密数据库EDBB中进行搜索,得到所述第二搜索结果EDBB(w)。

4.根据权利要求3所述的方法,其特征在于,所述S14进一步包括:服务器根据所述第二用户发送的所述计算许可计算所述第一搜索结果和所述第二搜索结果的交集密文 并将所述交集密文发送给所述第二用户,所述第二用户利用待搜索关键词w和用户私钥KB生成待搜索关键词对应的加密密钥F(KB,w),再与所述交集密文 异或得到交集明文 将所述交集明文S发送给所述第一用户。

5.一种具有可搜索功能的代理隐私集合求交方法,其特征在于,包括:S21,根据第一用户和第二用户的用户私钥和安全对称加密算法对各自的明文数据库进行加密生成第一加密数据库和第二加密数据库,并利用索引构造方法生成第一索引和第二索引,分别对所述第一用户和所述第二用户的明文数据库中的每一个数据集构建第一指示集合和第二指示集合,对所述第一指示集合和所述第二指示集合进行加密得到第一指示文件和第二指示文件,其中,所述指示集合表明明文数据库的中的每一个关键词是否在该数据集中,将所述第一加密数据库、所述第二加密数据库、所述第一索引、所述第二索引、所述第一指示文件和所述第二指示文件发送至服务器;

S22,根据待搜索关键词,利用所述第一索引和所述第二索引在所述第一加密数据库和所述第二加密数据库中进行搜索,得到第一搜索结果和第二搜索结果,利用所述第一用户与所述第二用户进行交互,通过所述第二用户生成计算许可,将所述计算许可发送至服务器;

S23,根据所述计算许可和所述第一搜索结果与所述第二搜索结果中的指示集合进行匹配,得到临时集合,根据所述临时集合在所述第二用户的明文数据库中进行选择得到交集明文,将所述交集明文发送给所述第一用户。

6.根据权利要求5所述的方法,其特征在于,所述S21进一步包括:所述第一用户和所述第二用户利用各自的用户私钥和安全对称加密算法对各自的明文数据库进行加密得到所述第一加密数据库EDBA和所述第二加密数据库EDBB;

利用对称可搜索加密方案中的索引构造方法分别生成所述第一用户的第一索引IA和所述第二用户的第二索引IB;

构建所述第一用户的第一指示集合 其中,w为待搜索关键词,WA

为所述第一用户的明文数据集中的关键词全集,S为数据集,当w∈S时,指示集合中对应的值置为2,否则置为1;

构建所述第二用户的第二指示集合 其中,WB为所述第二用户的

明文数据集中的关键词全集,当w∈S时,指示集合中对应的值置为2,否则置为1;

对所述第一指示集合和所述第二指示集合进行加密得到

和 加密后的第一指示集合和第二指示集合构成第

一指示文件 和第二指示文件 其中,F为伪随机函数,KA为所述第一用户的用户私钥,KB为所述第二用户的用户私钥;

将所述第一加密数据库、所述第二加密数据库、所述第一索引、所述第二索引、所述第一指示文件和所述第二指示文件发送至服务器。

7.根据权利要求6所述的方法,其特征在于,所述S22进一步包括:根据待搜索关键词w,利用所述第一索引和所述第二索引在所述第一加密数据库和所述第二加密数据库中进行搜索,得到第一搜索结果EDBA(w), 和所述第二搜索结果EDBB(w), 其中, 为EDBA(w)对应的指示集合, 为EDBB(w)对应的指示集合;

通过所述第一用户将rA=F(KA,w)发送给所述第二用户,所述第二用户生成所述计算许可 所述第二用户将所述计算许可发送至服务器。

8.根据权利要求7所述的方法,其特征在于,所述S23进一步包括:服务器根据所述计算许可Pw计算 将 和 进行匹配得到所述临时集合将所述临时集合和所述第二加密数据库EDBB(w)发送

给所述第二用户,所述第二用户使用安全对称加密算法和用户私钥对所述第二加密数据库进行解密得到所述第二用户的明文数据库,选择所述临时集合中属于所述第二用户的明文数据库中的关键词组成所述交集明文,将所述交集明文发送给所述第一用户。

说明书 :

具有可搜索功能的代理隐私集合求交方法

技术领域

[0001] 本发明涉及代理隐私集合求交技术领域,特别涉及一种具有可搜索功能的代理隐私集合求交方法。

背景技术

[0002] 随着云计算的发展,数据外包存储也逐渐热门起来。云存储平台的兴起为个人和企业都提供了很多便利,例如降低数据存储成本和数据管理开销。然而,用户的数据如果未经任何加密来存储会很容易泄露信息。此外,我们总是要考虑云服务器的不可信性即我们不希望服务器可以监视我们的数据。然而,通过传统加密方式(如3‑DES或AES)加密的数据无法满足可搜索的需求,这是数据库的使用中相当重要的一个功能。可搜索加密正是用来解决这一问题的特殊的加密方案。对称可搜索加密(SSE)基于对称加密方案,可以用于构建类似个人云盘的一对一云存储系统。在SSE的帮助下,用户可以将数据加密上传并且能够在之后对数据进行关键字搜索。在近年来的研究中,基于索引进行SSE方案的构造是主流,因为索引结构可以有效地提高搜索效率。
[0003] 隐私集合求交(PSI)是指各自拥有数据集合的两方,可以在不泄露其它剩余的集合元素下,计算他们集合的交集。PSI技术有包括数据挖掘在内的一系列广泛的现实应用:比如说两家互不信任的公司可以找到共同的用户而不透露整个用户数据;或者多家福利机构能识别出共同的受益人并保护其个人信息。传统的PSI协议属于两方计算协议,而随着云服务的发展,一些能允许云服务器代理隐私集合求交计算的协议也被提出,称为代理隐私集合求交。对比于两方PSI协议,代理PSI协议依赖云服务器的计算资源,可以大大节省用户的计算开销,但相应的也引入了一些额外的安全需求。
[0004] 考虑这样的场景:两个用户的数据存储在同一个云存储平台中,如果他们希望获取双方在某方面的共同信息,做法是先利用自己的私钥通过可搜索加密从云服务器上搜索并下载相关数据,然后再利用另一个PSI协议来完成交集的计算。由于需要重复地下载和上传数据,这样的方法显然有着太多额外的交互与计算开销。

发明内容

[0005] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006] 为此,本发明的一个目的在于提出一种具有可搜索功能的代理隐私集合求交方法,该方法只有在用户双方都同意的情况下,云服务器才能通过双方共同生成的计算许可来计算相关数据集的交集;不需要在每次进行PSI计算时重新准备数据,解决了现有协议在新场景下表现不佳的问题,在半诚实敌手模型下具备安全性且高效。
[0007] 本发明的另一个目的在于提出另一种具有可搜索功能的代理隐私集合求交方法。
[0008] 为达到上述目的,本发明一方面实施例提出了一种具有可搜索功能的代理隐私集合求交方法,包括:
[0009] S11,根据第一用户和第二用户的用户私钥和伪随机函数对各自的明文数据库进行加密生成第一加密数据库和第二加密数据库,并将所述第一加密数据库和所述第二加密数据库上传至服务器;
[0010] S12,根据所述第一用户和所述第二用户的用户私钥、待搜索关键词和伪随机函数在本地生成第一搜索陷门和第二搜索陷门,利用所述第一用户与所述第二用户进行交互,通过所述第二用户生成计算许可,将所述第一搜索陷门、所述第二搜索陷门和所述计算许可发送至服务器;
[0011] S13,根据所述第一搜索陷门和所述第二搜索陷门,对加密数据库的每一个数据集进行搜索,得到第一搜索结果和第二搜索结果;
[0012] S14,根据所述计算许可计算所述第一搜索结果和所述第二搜索结果的交集密文,所述第二用户对所述交集密文进行解密得到交集明文,将所述交集明文发送给所述第一用户。
[0013] 为达到上述目的,本发明另一方面实施例提出了一种具有可搜索功能的代理隐私集合求交方法,包括:
[0014] S21,根据第一用户和第二用户的用户私钥和安全对称加密算法对各自的明文数据库进行加密生成第一加密数据库和第二加密数据库,并利用索引构造方法生成第一索引和第二索引,分别对所述第一用户和所述第二用户的明文数据库中的每一个数据集构建第一指示集合和第二指示集合,对所述第一指示集合和所述第二指示集合进行加密得到第一指示文件和第二指示文件,其中,所述指示集合表明明文数据库的中的每一个关键词是否在该数据集中,将所述第一加密数据库、所述第二加密数据库、所述第一索引、所述第二索引、所述第一指示文件和所述第二指示文件发送至服务器;
[0015] S22,根据待搜索关键词,利用所述第一索引和所述第二索引在所述第一解密数据库和所述第二加密数据库中进行搜索,得到第一搜索结果和第二搜索结果,利用所述第一用户与所述第二用户进行交互,通过所述第二用户生成计算许可,将所述计算许可发送至服务器;
[0016] S23,根据所述计算许可和所述第一搜索结果与所述第二搜索结果中的指示集合进行匹配,得到临时集合,根据所述临时集合在所述第二用户的明文数据库中进行选择得到交集明文,将所述交集明文发送给所述第一用户。
[0017] 本发明实施例的具有可搜索功能的代理隐私集合求交方法,具有如下优势和有益效果:
[0018] 1)本发明允许用户进行多次的PSI问题计算而不需要每次都重新准备数据;
[0019] 2)本发明对小数据集和大数据集都有相应的方案,使用时可以根据不同场景进行变换;
[0020] 3)本发明在新的模型下在已有方案中具有最低的通信复杂度和计算复杂度,同时保证了安全性。
[0021] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0022] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0023] 图1为根据本发明一个实施例的具有可搜索功能的代理隐私集合求交方法流程示意图;
[0024] 图2为根据本发明一个实施例的具有可搜索功能的代理隐私集合求交方法流程图;
[0025] 图3为根据本发明一个实施例的建立阶段示意图;
[0026] 图4为根据本发明一个实施例的陷门与计算许可生成阶段示意图;
[0027] 图5为根据本发明一个实施例的搜索阶段示意图;
[0028] 图6为根据本发明一个实施例的代理隐私集合求交阶段示意图;
[0029] 图7为根据本发明另一个实施例的具有可搜索功能的代理隐私集合求交方法流程图;
[0030] 图8为根据本发明另一个实施例的建立阶段示意图;
[0031] 图9为根据本发明另一个实施例的搜索与计算许可生成阶段示意图;
[0032] 图10为根据本发明另一个实施例的代理隐私集合求交阶段示意图。

具体实施方式

[0033] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0034] 下面参照附图描述根据本发明实施例提出的具有可搜索功能的代理隐私集合求交方法。
[0035] 如图1所示,展示了本发明的整体流程。本发明的可以根据数据集大小进行不同处理,在小数据集和大数据集两种场景下,分别提出了两个具体的协议FS‑PSI和SS‑PSI。其中FS‑PSI协议是在基于流密码的对称可搜索加密方案设计的,这一方法在数据库较小时仍然具有高效的搜索效率,而且简单易用,对用户友好。而SS‑PSI协议是在基于索引构建的SSE方案上设计的,对于较大的数据库,索引将大大提高搜索的效率,但是该协议也需要用户额外生成一些用于进行PSI计算的指示文件附于加密数据后。
[0036] FS‑PSI协议将用户的每一个数据集合看做一串单词流,并假设每个数据集合拥有同样的大小、每一个单词拥有相同的长度且不同的数据集合拥有的关键词不同。协议包括建立阶段、陷门与计算许可生成阶段、搜索阶段、代理隐私集合求交阶段。
[0037] 图2为根据本发明一个实施例的具有可搜索功能的代理隐私集合求交方法流程图。
[0038] 如图2所示,该具有可搜索功能的代理隐私集合求交方法包括以下步骤:
[0039] 步骤S11,根据第一用户和第二用户的用户私钥和伪随机函数对各自的明文数据库进行加密生成第一加密数据库和第二加密数据库,并将第一加密数据库和第二加密数据库上传至服务器。
[0040] 具体地,首先为建立阶段,包括初始化和加密数据库的生成。初始化包括用户私钥生成、用户本地状态的初始化和伪随机函数的选取。加密数据库即对于每一个单词流的每一个单词,用户将单词和用户私钥作为伪随机函数的输入得到对应单词的加密密钥,然后将单词与对应的加密密钥异或得到关键词对应的密文,全部加密完成后上传到服务器。
[0041] 进一步地,在本发明的一个实施例中,S11进一步包括:
[0042] 将用户的每一个数据集合看做一串单词流,对于每一个单词流的每一个单词,第一用户和第二用户将单词和用户私钥作为伪随机函数的输入得到对应单词的加密密钥,将单词与对应的加密密钥异或得到单词对应的密文,全部加密完成生成第一加密数据库和第二加密数据库,并上传到服务器。
[0043] 在本发明的实施例中,以两个用户为例进行介绍,Alice和Bob是用户,Carol是云服务器。
[0044] 如图3所示,以Alice为例,两个用户分别建立加密数据库并上传。建立阶段具体步骤如下:Alice确定安全参数λ,生成私钥KA,初始化本地状态,选择伪随机数生成器F。Alice的数据库DBA有n个大小为N的数据集合,第i个集合的形式为 对于每个数据集合的每个单词 计算 得到加密数据库EDBA。最后将EDBA上传给
Carol。
[0045] 步骤S12,根据第一用户和第二用户的用户私钥、待搜索关键词和伪随机函数在本地生成第一搜索陷门和第二搜索陷门,利用第一用户与第二用户进行交互,通过第二用户生成计算许可,将第一搜索陷门、第二搜索陷门和计算许可发送至服务器。
[0046] 具体地,该步骤为陷门与计算许可生成阶段,包括搜索陷门生成,代理隐私集合求交的计算许可生成。搜索陷门由用户通过用户私钥和待搜索关键词在本地生成,计算许可需要用户双方进行一次交互后由其中一方计算得到,然后全部发送给服务器。
[0047] 进一步地,在本发明的实施例中,S12进一步包括:
[0048] 第一用户和第二用户分别生成第一搜索陷门 和第二搜索陷门其中,w为待搜索关键词,KA为第一用户的用户私钥,KB为第二用户的用
户私钥,F为伪随机函数;
[0049] 通过第一用户将F(KA,w)发送给第二用户,第二用户生成计算许可
[0050] 第一用户将第一搜索陷门发送至服务器,第二用户将第二搜索陷门和计算许可发送至服务器。
[0051] 具体地,如图4所示,陷门与计算许可生成阶段具体步骤如下:对于要搜索的关键词w,Alice和Bob分别生成搜索陷门 然后Alice将F(KA,w)发送给Bob,Bob生成计算许可 最后Alice将tA发送给
Carol,Bob将tB和Pw发送给Carol。
[0052] 步骤S13,根据第一搜索陷门和第二搜索陷门,对加密数据库的每一个数据集进行搜索,得到第一搜索结果和第二搜索结果。
[0053] 具体地,在搜索阶段中,服务器利用收到的搜索陷门对数据库进行搜索,并保留搜索结果。
[0054] 进一步地,在本发明的实施例中,S13进一步包括:
[0055] 服务器根据第一搜索陷门在第一加密数据库EDBA中进行搜索,得到第一搜索结果EDBA(w),其中,w为待搜索关键词;
[0056] 服务器根据第二搜索陷门在第二加密数据库EDBB中进行搜索,得到第二搜索结果EDBB(w)。
[0057] 具体的,如图5所示,以Alice的加密数据库EDBA为例,搜索阶段具体步骤如下:Carol收到搜索陷门tA后,对每一个加密数据库中的每一个数据集进行如下操作:如果tA在该数据集中,则该数据集就是搜索结果。数据库中不同数据集具有不同的关键词,所以最终结果只有一个数据集,记为EDBA(w)。
[0058] 步骤S14,根据计算许可计算第一搜索结果和第二搜索结果的交集密文,第二用户对交集密文进行解密得到交集明文,将交集明文发送给第一用户。
[0059] 具体的,代理隐私集合求交阶段,包括密文数据集求交,解密。密文数据集求交即服务器利用收到的计算许可计算用户双方搜索结果的交集,将结果发送给其中一方。解密即用户收到交集密文后利用搜索关键词和用户私钥生成搜索关键词对应的加密密钥,然后与交集密文异或得到交集明文,并将结果返回。
[0060] 进一步地,在本发明的一个实施例中,S14进一步包括:
[0061] 服务器根据第二用户发送的计算许可计算第一搜索结果和第二搜索结果的交集密文 并将交集密文发送给第二用户,第二用户利用待搜索关键词w和用户私钥KB生成待搜索关键词对应的加密密钥F(KB,w),再与交集密文 异或得到交集明文 将交集明文S发送给第一用户。
[0062] 如图6所示,代理隐私集合求交阶段的具体步骤如下:Carol收到Bob发来的Pw之后,计算交集的密文 并将 发送给Bob。Bob收到 后,将其解密得到交集的明文 然后将S发送给Alice。
[0063] 根据本发明实施例提出的具有可搜索功能的代理隐私集合求交方法,只有在用户双方都同意的情况下,云服务器才能通过双方共同生成的计算许可来计算相关数据集的交集。FS‑PSI协议是在基于流密码的对称可搜索加密方案设计的,在数据库较小时仍然具有高效的搜索效率,而且简单易用,对用户友好。
[0064] 其次参照附图描述根据本发明实施例提出的具有可搜索功能的代理隐私集合求交方法。
[0065] 图7为根据本发明另一个实施例的具有可搜索功能的代理隐私集合求交方法流程图。
[0066] 如图7所示,该具有可搜索功能的代理隐私集合求交方法包括:
[0067] 步骤S21,根据第一用户和第二用户的用户私钥和安全对称加密算法对各自的明文数据库进行加密生成第一加密数据库和第二加密数据库,并利用索引构造方法生成第一索引和第二索引,分别对第一用户和第二用户的明文数据库中的每一个数据集构建第一指示集合和第二指示集合,对第一指示集合和第二指示集合进行加密得到第一指示文件和第二指示文件,其中,指示集合表明明文数据库的中的每一个关键词是否在该数据集中,将第一加密数据库、第二加密数据库、第一索引、第二索引、第一指示文件和第二指示文件发送至服务器。
[0068] 具体地,SS‑PSI协议同样假设不同数据集合具有的关键词不同。协议包括建立阶段、搜索与计算许可生成阶段、代理隐私集合求交阶段。
[0069] 建立阶段包括初始化、加密数据库和索引生成、指示文件生成。初始化包括用户私钥生成、用户本体状态的初始化、伪随机函数的选取和安全对称加密算法的选取。加密数据库和索引生成即用户根据私钥通过安全对称加密算法对本地明文数据库进行加密并生成相应加密索引。指示文件生成即用户对于数据库中的每一个数据集,给出一个集合,这个集合表明了数据库的中的每一个关键词是否在该数据集中,同时根据用户私钥和关键词利用伪随机数生成器生成的加密密钥对该集合进行加密。加密数据库、指示文件和索引都上传到服务器。
[0070] 进一步地,在本发明的一个实施例中,S21进一步包括:
[0071] 第一用户和第二用户利用各自的用户私钥和安全对称加密算法对各自的明文数据库进行加密得到第一加密数据库EDBA和第二加密数据库EDBB;
[0072] 利用对称可搜索加密方案中的索引构造方法分别生成第一用户的第一索引IA和第二用户的第二索引IB;
[0073] 构建第一用户的第一指示集合 其中,w为待搜索关键词,WA为第一用户的明文数据集中的关键词全集,S为数据集,当w∈S时,指示集合中对应的值置为2,否则置为1;
[0074] 构建第二用户的第二指示集合 其中,WB为第二用户的明文数据集中的关键词全集,当w∈S时,指示集合中对应的值置为2,否则置为1;
[0075] 对第一指示集合和第二指示集合进行加密得到和 加密后的第一指示集合和第二指示集合构成第一指
示文件 和第二指示文件 其中,F为伪随机函数,KA为第一用户的用户私钥,KB为第二用户的用户私钥;
[0076] 将第一加密数据库、第二加密数据库、第一索引、第二索引、第一指示文件和第二指示文件发送至服务器。
[0077] 如图8所示,以Alice为例,建立阶段具体步骤如下:Alice确定安全参数λ,生成私钥KA,初始化本地状态,选择伪随机数生成器F和安全对称加密算法SKE,以及某对称可搜索加密方案SSE。接着,Alice使用SKE和KA对自己的数据库DBA加密得到加密数据库EDBA,同时,Alice利用SSE方案中的索引构造方法生成索引IA。记DBA的关键词全集为WA,指示文件通过以下方法构造:对于DBA中的每个数据集S,生成一个指示集合 当w∈S时,指示集合中对应的值置为2,否则置为1。然后对所有的指示集合做一个加密:
所有加密后的指示集合就构成了指示文件 最后,
Alice将EDBA,IA, 全部发给Carol。
[0078] 步骤S22,根据待搜索关键词,利用第一索引和第二索引在第一解密数据库和第二加密数据库中进行搜索,得到第一搜索结果和第二搜索结果,利用第一用户与第二用户进行交互,通过第二用户生成计算许可,将计算许可发送至服务器。
[0079] 具体地,搜索与计算许可生成阶段,包括基于索引的搜索,代理隐私集合求交的计算许可生成。基于索引的搜索即服务器利用索引对加密数据库进行搜索并保留结果。计算许可生成需要用户双方进行一次交互然后由其中一方计算得到,最后发送给服务器。
[0080] 进一步地,在本发明的一个实施例中,S22进一步包括:
[0081] 根据待搜索关键词w,利用第一索引和第二索引在第一解密数据库和第二加密数据库中进行搜索,得到第一搜索结果EDBA(w), 和第二搜索结果EDBB(w), 其中, 为EDBA(w)对应的指示集合, 为EDBB(w)对应的指示集合;
[0082] 通过第一用户将rA=F(KA,w)发送给第二用户,第二用户生成计算许可第二用户将计算许可发送至服务器。
[0083] 如图9所示,搜索与计算许可生成阶段具体步骤如下:根据用户搜索需求关键字w,Carol使用SSE方案中的索引进行搜索,得到搜索结果 由于不同数据集合具有不同的关键词,所以EDBA(w),EDBB(w)都是一个数据集合,而 是这两个数据集合对应的指示集合。接着Alice将rA=F(KA,w)发送给Bob,Bob收到后计算然后将Pw发送给Carol。
[0084] 步骤S23,根据计算许可和第一搜索结果与第二搜索结果中的指示集合进行匹配,得到临时集合,根据临时集合在第二用户的明文数据库中进行选择得到交集明文,将交集明文发送给第一用户。
[0085] 具体地,代理隐私集合求交阶段,包括指示文件匹配,解密后的再选择。指示文件匹配即服务器通过计算许可和两个用户的指示文件得到那些在两个用户的数据集中都存在或者都不存在的元素。解密后的再选择即服务器将上述结果和搜索结果发送给其中一方,然后用户对这两个结果进行解密,通过对解密结果的分析得到交集明文。
[0086] 进一步地,在本发明的一个实施例中,S23进一步包括:
[0087] 服务器根据计算许可Pw计算 将 和 进行匹配得到临时集合将临时集合和第二加密数据库EDBB(w)发送给第二用户,第二
用户使用安全对称加密算法和用户私钥对第二加密数据库进行解密得到第二用户的明文数据库,选择临时集合中属于第二用户的明文数据库中的关键词组成交集明文,将交集明文发送给第一用户。
[0088] 如图10所示,代理隐私集合求交阶段的具体步骤如下:Carol收到Pw后计算接着对 和 进行匹配得到临时集合 并将集合Stack和之前得到的EDBB(w)一起发送给Bob。Bob收到后,首先使用SKE和KB对EDBB(w)解密得到DBB(w),然后选择Stack中那些属于DBB(w)的关键词,这些关键词组成了交集明文S,即最后将S发送给Alice。
[0089] 根据本发明实施例提出的具有可搜索功能的代理隐私集合求交方法,只有在用户双方都同意的情况下,云服务器才能通过双方共同生成的计算许可来计算相关数据集的交集。SS‑PSI协议是在基于索引构建的SSE方案上设计的,对于较大的数据库,索引将大大提高搜索的效率,但是该协议也需要用户额外生成一些用于进行PSI计算的指示文件附于加密数据后。
[0090] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0091] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0092] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。