一种基于安全多方计算的支持压缩的隐私信息检索方法及系统

文档序号:36262789发布日期:2023-12-06 00:45阅读:39来源:国知局
一种基于安全多方计算的支持压缩的隐私信息检索方法及系统

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


背景技术:

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

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


技术实现思路

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

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

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

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

5、s1.服务端有原文数据集为n个元素的数据库d={db0,db1,…,dbn-1},客户端生成同态加密公私钥pk、sk,私钥sk由客户端秘密保存,公钥pk向服务端公开,服务端根据客户端公布的公钥pk和服务端持有的n条原始数据基于安全计算的隐私信息检索协议进行运算构建he同态明文数据库;

6、s2.客户端对查询的索引i进行编码生成明文向量x=(a0,a1,a2,…an-1)=(0,...1,...0),其中,第i个元素ai=1,其余全为0,将查询向量x编码到一个同态明文多项式q;

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

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

9、s5.服务器将扩展向量p中的元素pi与he同态明文数据库中索引位置为i处的数据进行同态乘计算,并将所有同态乘运算结果进行同态加,得到最终检索结果resp;

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

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

12、(he.pk,he.sk)←fhe-keygen(1λ)

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

14、进一步地,s1中所述基于安全计算的隐私信息检索协议进行运算的过程为:服务器将原文数据集为n个元素的数据库d={db0,db1,…,dbn-1}作为输入,执行sealpir隐私信息检索方案的pir.setup(d)方法,将数据库d中的数据按照隐私信息检索方案要求进行处理和存储;构建he明文数据库db={b0,b1,…bn-1},即:

15、db←pir.setup(d)

16、其中pir.setup(d)函数为sealpir中方法。

17、进一步地,s2中所述将查询向量x编码到一个同态明文多项式q的计算方法为:

18、q=a0+a1x+...+an-2xn-2+an-1xn-1=xqueryindex

19、其中ai=0,i≠queryindex,ai=1,i=queryindex,查询向量x中的每个分量对应为he明文多项式中的系数,n为多项式次数。

20、进一步地,s3中具体包括如下过程:

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

22、q←symmetric-encry(pk,q)

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

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

25、进一步地,s4包括如下过程:

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

27、p←pir.expand(q)

28、p={p0,p1,…,pn-1},其中n为密文数据库大小,查询向量p中元素pi,0≤i≤n-1皆为密文,并与服务端he明文数据库db中的第i个元素一一对应;

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

30、若服务端数据库元素数量n=2,客户端想要第i个元素xi时,i∈{0,1}(n=2)是客户端所需的索引;服务端首先将q展开为两个密文c0=q和c1=q·x-1,具体为:

31、

32、

33、其次服务端对上述扩展密文进行替换操作c'j=cj+substitution(cj,n+1)j∈{0,1},将c0和c1加密的明文从多项式p(x)转换为p(-x)2,具体为:

34、

35、

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

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

38、进一步地,s5中所述服务器将扩展密文向量p中的元素pi与he同态明文数据库中索引位置为i处的数据进行同态乘计算,并将所有同态乘运算结果进行同态加,具体计算方法为:

39、resp←db[pir.answer(p)]

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

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

42、b←fhe-decryhe.sk(resp)

43、其中he-decryhe.sk(·)表示同态解密函数,resp客户端接收到的密文结果,b为同态解密得到的结果。

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

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

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

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

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

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