掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及信息安全技术领域,具体而言,涉及一种基于安全多方计算的支持压缩的隐私信息检索方法及系统。

背景技术

隐私信息检索(Private Information Retrieval,PIR),也称匿踪查询,是隐私计算领域中的一个重要技术。隐私信息检索是指查询方隐藏敏感的查询条件,数据服务方提供匹配的查询结果却无法获知具体对应查询对象以及被查询的数据。数据不出域且能计算,杜绝数据缓存、数据泄漏、数据贩卖的可能性,从而达到数据隐私保护的目的。

现有的隐私信息检索大多是基于不经意传输协议和基于同态加密来实现的,基于不经意传输的隐私信息检索方案中使用的是RSA的n选1的OT协议。在不经意传输设置中,目标是限制用户和数据库的计算成本,而不考虑通信效率。而基于加法同态加密的隐私信息检索方案只关注通信效率,而不考虑计算成本,目标是让用户检索元素的速度比在实际环境中下载整个数据库的简单解决方案更快。经研究发现,当网络带宽仅为几百kbit/s时,这些方案在实际中的执行速度通常比下载整个数据库慢。这些方案的性能比较差的原因是,服务器至少需要执行n次(n为数据库元素数量)大整数模乘法或模指数。这些操作的计算成本通常高于简单地将数据发送到客户端的计算成本。目前的隐私信息检索技术尚不能很好地解决对数据库的隐私信息检索的检索效率低的问题,且难以同时兼顾查询方和被查询方的隐私。

发明内容

本发明要解决的技术问题是:

现有的隐私信息检索方法,存在检索效率低且难以同时兼顾查询方和被查询方的隐私的问题。

本发明为解决上述技术问题所采用的技术方案:

本发明提供了一种基于安全多方计算的支持压缩的隐私信息检索方法,包括如下步骤:

S1.服务端有原文数据集为n个元素的数据库D={db

S2.客户端对查询的索引i进行编码生成明文向量X=(a

S3.客户端对编码后包含查询索引的同态明文多项式Q进行加密得到查询密文q,向服务端发起查询;

S4.服务器收到客户端的查询密文q后,将查询密文q扩展为一个n维的查询密文向量p;

S5.服务器将扩展向量p中的元素p

S6.客户端接收来自服务器的响应结果,然后利用私钥sk解密得到检索结果。

进一步地,S1中所述的同态加密公钥私钥具体生成方法为:

(he.pk,he.sk)←FHE-KeyGen(1

FHE-KeyGen(·)表示同态加密公钥(he.pk)、私钥(he.sk)生成函数,λ是客户端设定的安全系数。

进一步地,S1中所述基于安全计算的隐私信息检索协议进行运算的过程为:服务器将原文数据集为n个元素的数据库D={db

DB←PIR.Setup(D)

其中PIR.Setup(D)函数为SealPIR中方法。

进一步地,S2中所述将查询向量X编码到一个同态明文多项式Q的计算方法为:

Q=a

其中a

进一步地,S3中具体包括如下过程:

首先,客户端通过给定的公钥pk对编码后包含查询索引的同态明文多项式Q使用FV密码系统的加密函数进行加密得到查询密文q,即

q←Symmetric-Encry(pk,Q)

其中Symmetric-Encry(·)表示加密函数,客户端利用秘钥symmetric.sk加密Q,得到包含所需元素编码的单个密文查询请求q;

然后,向服务端发起查询。

进一步地,S4包括如下过程:

服务器收到客户端的查询密文q后,将查询密文q通过Expand操作扩展为一个n维的查询密文向量p,即:

p←PIR.Expand(q)

p={p0,p

所述Expand操作包括:秘钥生成、加密、解密、同态加法、同态乘法及替换操作;所述替换操作包括如下过程:

若服务端数据库元素数量n=2,客户端想要第i个元素x

其次服务端对上述扩展密文进行替换操作c'

最后服务端将从客户端收到的包含其所需索引i的密文q经过上述操作后,形成与服务端数据库相同长度的密文向量;

将所述替换操作用于将n≤N的服务端数据库中元素扩展为相同长度n的密文向量。

进一步地,S5中所述服务器将扩展密文向量p中的元素p

resp←DB[PIR.Answer(p)]

其中PIR.Answer(·)表示该方案进行同态乘、同态加计算函数,resp为密文查询结果。

进一步地,S6所述客户端接收来自服务器的响应结果,然后利用私钥sk解密得到检索结果的计算方法为:

b←FHE-Decry

其中HE-Decry

一种基于安全多方计算的支持压缩的隐私信息检索系统,该系统具有与上述技术方案任一项技术方案的步骤对应的程序模块,运行时执行上述的基于安全多方计算的支持压缩的隐私信息检索方法中的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现上述技术方案中任一项所述的基于安全多方计算的支持压缩的隐私信息检索方法的步骤。

相较于现有技术,本发明的有益效果是:

本发明一种基于安全多方计算的支持压缩的隐私信息检索方法,首先,本发明客户端不创建和服务端相同长度的密文查询向量,而是客户端发送包含所需元素索引编码的单个密文。然后,服务端执行一个新的无关展开过程(Expand),从单个密文中提取相应的包含和数据库条目相等的n个密文的向量,不泄露任何关于客户端索引的信息,也不增加响应的大小。最终,服务器可以像之前一样在提取的向量上继续执行XPIR协议;保障了查询方和被查询方敏感数据机密性的同时,提高客户端检索效率。

在方案的整体架构上,本发明的支持可压缩的隐私信息检索方案基于一个单服务器,无需使用额外的辅助服务器,相较于现有技术的双云架构,降低了服务架构的复杂性,具有较大的优势。

附图说明

图1为本发明实施例中的基于安全多方计算的支持压缩的隐私信息检索方法的流程图一;

图2为本发明实施例中的基于安全多方计算的支持压缩的隐私信息检索方法的流程图二;

图3为本发明实施例中的查询密文q的扩展方法。

具体实施方式

在本发明的描述中,应当说明的是,在本发明的实施例中所提到的术语“第一”、“第二”、“第三”仅用于描述目的,并不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者多个该特征。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

具体实施方案一:结合图1至图3所示,本发明提供一种基于安全多方计算的支持压缩的隐私信息检索方法,包括如下步骤:

S1.服务端有原文数据集为n个元素的数据库D={db

S2.客户端对查询的索引i进行编码生成明文向量X=(a

S3.客户端对编码后包含查询索引的同态明文多项式Q进行加密得到查询密文q,向服务端发起查询;

S4.服务器收到客户端的查询密文q后,将查询密文q扩展为一个n维的查询密文向量p;

S5.服务器将扩展向量p中的元素p

S6.客户端接收来自服务器的响应结果,然后利用私钥sk解密得到检索结果。

现有方案中检索服务往往需要客户端和服务器之间进行多轮通信,导致整个方案通信开销较大。且检索请求需包含与数据库同等大小的密文向量,导致两个服务器之间有较大的通信过程,因此通信开销很高。本实施方案的支持可压缩的隐私信息检索方案,只需要客户端一次利用PIR查询即可得到查询结果。

本实施方案中,采用Python对服务端原始数据进行预处理,通过对服务端原始数据进行脏数据处理、填充空缺值、归一化处理等数据处理方式处理数据得到最终优化后的数据集供服务端使用。

具体实施方案二:S1中所述的同态加密公钥私钥具体生成方法为:

(he.pk,he.sk)←FHE-KeyGen(1

FHE-KeyGen(·)表示同态加密公钥(he.pk)、私钥(he.sk)生成函数,λ是客户端设定的安全系数,得到的公钥、私钥用于后续查询时对查询索引进行加密处理,以及查询后将加密查询结果进行解密得到最终结果。本实施方案其它与具体实施方案一相同。

具体实施方案三:S1中所述基于安全计算的隐私信息检索协议进行运算的过程为:

服务器将原文数据集为n个元素的数据库D={db

DB←PIR.Setup(D)

其中PIR.Setup(D)函数为SealPIR中方法。本实施方案其它与具体实施方案二相同。

本实施方案中为了有效保护用户的隐私安全,采用隐私信息检索(PIR)技术提供安全的数据查询服务。隐私信息检索允许客户端从由不受信任的服务器管理的数据库中检索元素,且不会将客户端检索的元素和检索的结果泄露给服务器。D={db

本实施方案中,数据库D={db

具体实施方案四:S2中所述将查询向量X编码到一个同态明文多项式Q的计算方法为:

Q=a

其中a

具体实施方案五:S3中具体包括如下过程:

首先,客户端通过给定的公钥pk对编码后包含查询索引的同态明文多项式Q使用FV密码系统的加密函数进行加密得到查询密文q,即

q←Symmetric-Encry(pk,Q)

其中Symmetric-Encry(·)表示加密函数,客户端利用秘钥symmetric.sk加密Q,得到包含所需元素编码的单个密文查询请求q;

然后,向服务端发起查询。本实施方案其它与具体实施方案一相同。

具体实施方案六:如图3所示,S4包括如下过程:

服务器收到客户端的查询密文q后,将查询密文q通过Expand操作扩展为一个n维的查询密文向量p,即:

p←PIR.Expand(q)

p={p

所述Expand操作包括:秘钥生成、加密、解密、同态加法、同态乘法及替换操作;所述替换操作包括如下过程:

若服务端数据库元素数量n=2,客户端想要第i个元素x

其次服务端对上述扩展密文进行替换操作c'

最后服务端将从客户端收到的包含其所需索引i的密文q经过上述操作后,形成与服务端数据库相同长度的密文向量;

将所述替换操作用于将n≤N的服务端数据库中元素扩展为相同长度n的密文向量。本实施方案其它与具体实施方案一相同。

具体实施方案七:S5中所述服务器将扩展密文向量p中的元素p

resp←DB[PIR.Answer(p)]

其中PIR.Answer(·)表示该方案进行同态乘、同态加计算函数,resp为密文查询结果。本实施方案其它与具体实施方案一相同。

本实施方案得到最终PIR检索结果resq,该结果为密文,服务器对其明文信息不可知。

具体实施方案八:S6所述客户端接收来自服务器的响应结果,然后利用私钥sk解密得到检索结果的计算方法为:

b←FHE-Decry

其中HE-Decry

在整个响应查询阶段中,服务器接收的为加密过后的查询索引,扩展后的向量元素依旧为密文状态,并且数据库中的每个元素都需要参与计算,因此服务器无法感知客户端的查询目标。其次,查询结果都是基于密文的运算而来的,因此服务器也无法得知客户端的检索结果。

具体实施方案九:一种基于安全多方计算的支持压缩的隐私信息检索系统,该系统具有与上述具体实施方案一至八任一项实施方案的步骤对应的程序模块,运行时执行上述的基于安全多方计算的支持压缩的隐私信息检索方法中的步骤。

具体实施方案十:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现具体实施方案一至八中任一项所述的基于安全多方计算的支持压缩的隐私信息检索方法的步骤。

实施例1

为了评估本发明提出的基于安全多方计算的支持压缩的隐私信息检索方法的性能,对本发明方法进行工程实现。

本实施例使用C++和Python语言编写代码对本发明方法进行工程实现,其中RPIR部分使用了SealPIR方案的开源代码,实验代码中检索相关方案使用Python代码实现。实验运行在IntelCorei52.6GHz8核处理器,16GB内存的计算机上,操作系统为Ubuntu20.04STL。每个实验结果用10次试验结果的平均值来进行表示,其中查询时间使用系统时间进行计算,结果如表1所示。

表1

实验表明;本方明方法与现有的XPIR方法相比,由于本发明客户端不创建和服务端相同长度的密文查询向量,而是让客户端发送包含所需元素索引编码的单个密文。服务端执行一个新的无关展开过程(Expand),从单个密文中提取相应的包含和数据库条目相等的n个密文的向量,不泄露任何关于客户端索引的信息,也不增加响应的大小。所以本方案在通讯开销上有显著的降低。对于较大的数据库,相比较XPIR方案本方案的查询大小减少180倍。但是,本方案的压缩方案会给服务器带来11%到24%的CPU开销(超过XPIR),但是,综合考虑认为这是一个合理的性能上的权衡开销。

虽然本发明公开披露如上,但本发明公开的保护范围并非仅限于此。本发明领域技术人员在不脱离本发明公开的精神和范围的前提下,可进行各种变更与修改,这些变更与修改均将落入本发明的保护范围。

相关技术
  • 一种基于安全多方计算的数据隐私保护方法和系统
  • 一种基于安全多方计算的隐私时间戳的数字版权方法及系统
技术分类

06120116490321