System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 批量关键字隐匿查询方法及系统技术方案_技高网

批量关键字隐匿查询方法及系统技术方案

技术编号:41260346 阅读:2 留言:0更新日期:2024-05-11 09:18
本发明专利技术提供一种批量关键字隐匿查询方法及系统,方法应用于客户端,包括:由分桶个数和待查询批量关键字个数确定待填充矩阵和哈希函数个数;将选取的分桶编号二进制取反后纵向填充待填充矩阵大小,生成第一填充矩阵;由多个哈希函数分别对批量关键字运算,由每次运算的结果和关键字个数得到第一填充矩阵中当前运算对应的待重新填充矩阵元素的行列编号,由分桶编号二进制依次对多次运算对应行列编号的元素重新填充,得到第二填充矩阵;向服务端发送第二填充矩阵、多个函数和关键字个数,使其据此将多个键值对分到对应编号的桶中,含批量关键字的键值对被分到与分桶编号相同的桶内;向服务端发起针对分桶编号的批量关键字隐匿查询,得到查询结果。

【技术实现步骤摘要】

本专利技术涉及隐私计算,尤其涉及一种批量关键字隐匿查询方法及系统


技术介绍

1、隐私计算是一种可以实现数据的可用不可见的手段,通过隐私计算,个人数据的安全性得到保障,同时促进了数据的合法使用和创新发展。隐私计算应用于各种场景,如医疗数据分析、金融风控等。在数据库查询场景中,由于法律制约、查询双方存在竞争关系等因素,往往不可以对数据库的明文进行直接查询,这就需要在查询时对双方的信息引入一定的隐私保护。例如,多头贷问题是网络小额贷款平台放款时所要考虑的一个重要问题。假设银行b有一潜在贷款客户a,银行b为了足够多的了解客户a的信用情况,希望向银行c查询客户a贷款情况或信用记录。但因为害怕银行c抢走该客户,所以银行b不希望泄露自己在查询客户a这一事实,与此同时,银行c出于保护自身利益的目的,又不能将己方其他客户的所有数据都交给银行b任意查询。隐匿查询(private information retrieval,pir)是隐私计算中很实用的一项技术,用来保护用户的查询隐私。其目的是保证用户向服务器(数据源方)提交查询请求时,在用户查询信息不被泄漏的条件下完成查询,即整个查询过程中服务器不知道用户具体查询信息及查询出的数据项。

2、现有技术中有一种隐私关键词查询方法,如果客户端想检索n个关键字对应的值,则需要进行n次隐匿查询操作,计算通信开销为o(n),导致计算、通信开销较大。


技术实现思路

1、鉴于此,本专利技术实施例提供了一种批量关键字隐匿查询方法及系统,以消除或改善现有技术中存在的一个或更多个缺陷。

2、本专利技术的第一方面提供了一种批量关键字隐匿查询方法,所述方法应用于客户端,所述方法包括:

3、基于分桶个数和待查询的批量关键字中关键字的个数确定待填充矩阵的大小,基于所述分桶个数确定哈希函数的个数,其中,所述待填充矩阵的行数等于所述哈希函数的个数;

4、采用纵向反向填充方式将选取的分桶编号的二进制表示取反后纵向填充所述待填充矩阵,生成第一填充矩阵;

5、利用多个哈希函数分别对所述待查询的批量关键字进行哈希运算,基于每次哈希运算得到的哈希运算结果和所述关键字的个数得到所述第一填充矩阵中当前哈希运算对应的待重新填充的矩阵元素的行编号与列编号,并利用所述分桶编号的二进制表示依次对多次哈希运算对应的行编号与列编号的矩阵元素进行重新填充,得到第二填充矩阵;

6、向服务端发送所述第二填充矩阵、所述多个哈希函数和所述关键字的个数,使所述服务端根据所述第二填充矩阵、所述多个哈希函数和所述关键字的个数确定所述服务端持有的多个键值对对应的分桶编号,并将所述多个键值对分到对应分桶编号的桶中,其中,每个键值对包含一个关键字和对应的数据,包含待查询的批量关键字的键值对对应的分桶编号与所述选取的分桶编号相同;

7、向所述服务端发起针对所述选取的分桶编号的待查询的批量关键字的隐匿查询,得到所述待查询的批量关键字对应的查询结果。

8、在本专利技术的一些实施例中,向所述服务端发起针对所述选取的分桶编号的待查询的批量关键字的隐匿查询之后,所述方法或者包括:

9、接收来自所述服务端的待查询的批量关键字对应的加密数据;

10、通过执行不经意伪随机函数oprf协议,得到所述待查询的批量关键字对应的多个映射值,基于所述多个映射值分别对所述待查询的批量关键字对应的加密数据进行解密,将能够成功解密出的数据作为所述待查询的批量关键字对应的查询结果。

11、在本专利技术的一些实施例中,所述方法还包括:在存在哈希冲突的情况下,随机选择同一行中未被重新填充过的一列进行重新填充,使所述第二填充矩阵每一行中0和1的数量相同。

12、在本专利技术的一些实施例中,所述重新填充的数为所述分桶编号的二进制表示中每个位置的数,所述第一填充矩阵中每次哈希运算对应的待重新填充的矩阵元素的行编号与所述重新填充的数的位置编号相同。

13、在本专利技术的一些实施例中,所述待填充矩阵的行数为所述分桶个数以二为底数的对数值,列数为所述关键字的个数的二倍。

14、本专利技术的第二方面提供了一种批量关键字隐匿查询方法,所述方法应用于服务端,所述方法包括:

15、接收来自客户端的第二填充矩阵、多个哈希函数和待查询的批量关键字中关键字的个数,所述第二填充矩阵通过利用所述客户端选取的分桶编号的二进制表示依次对由经过多次哈希运算得到的哈希运算结果和所述关键字的个数分别得到的第一填充矩阵中对应的行编号与列编号的矩阵元素进行重新填充得到,所述第一填充矩阵通过纵向反向填充方式将所述分桶编号的二进制表示取反后纵向填充待填充矩阵后生成,所述待填充矩阵的大小基于分桶个数和所述待查询的批量关键字中关键字的个数确定,所述多次哈希运算为利用所述多个哈希函数分别对所述待查询的批量关键字进行的哈希运算,所述哈希函数的个数基于所述分桶个数确定,其中,所述待填充矩阵的行数等于所述哈希函数的个数;

16、根据所述第二填充矩阵、所述多个哈希函数和所述关键字的个数确定所述服务端持有的多个键值对对应的分桶编号,并将所述多个键值对分到对应分桶编号的桶中,其中,每个键值对包含一个关键字和对应的数据,包含待查询的批量关键字的键值对对应的分桶编号与所述选取的分桶编号相同;

17、接收由所述客户端发起的针对所述选取的分桶编号的待查询的批量关键字的隐匿查询,向所述客户端返回所述待查询的批量关键字对应的查询结果。

18、在本专利技术的一些实施例中,根据所述第二填充矩阵、所述多个哈希函数和所述关键字的个数确定所述服务端持有的多个键值对对应的分桶编号,并将所述多个键值对分到对应分桶编号的桶中之后,所述方法或者包括:

19、对所述服务端持有的多个键值对分别执行不经意伪随机函数oprf协议,得到对应的多个映射值,基于所述多个映射值分别对对应的多个键值对中多个关键字对应的数据进行加密,得到所述多个关键字对应的加密数据;

20、接收由客户端发起的针对所述选取的分桶编号的待查询的批量关键字的隐匿查询,向所述客户端返回所述待查询的批量关键字对应的加密数据,使所述客户端对通过执行不经意伪随机函数oprf协议,得到所述待查询的批量关键字对应的多个映射值,并基于所述多个映射值分别对所述待查询的批量关键字对应的加密数据进行解密,将能够成功解密出的数据作为所述待查询的批量关键字对应的查询结果。

21、在本专利技术的一些实施例中,基于所述多个映射值分别对对应的多个键值对中多个关键字对应的数据进行加密,包括:

22、对所述多个映射值分别与对应的多个键值对中多个关键字对应的数据进行异或运算,得到对应的多个异或结果,所述映射值的字符串长度大于对应的键值对中关键字对应的数据的字符串长度;

23、将所述多个映射值中未进行异或运算的字符串部分分别与对应的多个异或结果的字符串进行拼接,实现对所述多个键值对中多个关键字对应的数据的加密。

24、本专利技术的本文档来自技高网...

【技术保护点】

1.一种批量关键字隐匿查询方法,其特征在于,所述方法应用于客户端,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,向所述服务端发起针对所述选取的分桶编号的待查询的批量关键字的隐匿查询之后,所述方法或者包括:

3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在存在哈希冲突的情况下,随机选择同一行中未被重新填充过的一列进行重新填充,使所述第二填充矩阵每一行中0和1的数量相同。

4.根据权利要求1或2所述的方法,其特征在于,所述重新填充的数为所述分桶编号的二进制表示中每个位置的数,所述第一填充矩阵中每次哈希运算对应的待重新填充的矩阵元素的行编号与所述重新填充的数的位置编号相同。

5.根据权利要求1或2所述的方法,其特征在于,所述待填充矩阵的行数为所述分桶个数以二为底数的对数值,列数为所述关键字的个数的二倍。

6.一种批量关键字隐匿查询方法,其特征在于,所述方法应用于服务端,所述方法包括:

7.根据权利要求6所述的方法,其特征在于,根据所述第二填充矩阵、所述多个哈希函数和所述关键字的个数确定所述服务端持有的多个键值对对应的分桶编号,并将所述多个键值对分到对应分桶编号的桶中之后,所述方法或者包括:

8.根据权利要求7所述的方法,其特征在于,基于所述多个映射值分别对对应的多个键值对中多个关键字对应的数据进行加密,包括:

9.一种批量关键字隐匿查询系统,包括处理器和存储器,其特征在于,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如权利要求1至5中任一项所述方法的步骤,或者,实现如权利要求6至8中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述方法的步骤,或者,实现如权利要求6至8中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种批量关键字隐匿查询方法,其特征在于,所述方法应用于客户端,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,向所述服务端发起针对所述选取的分桶编号的待查询的批量关键字的隐匿查询之后,所述方法或者包括:

3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在存在哈希冲突的情况下,随机选择同一行中未被重新填充过的一列进行重新填充,使所述第二填充矩阵每一行中0和1的数量相同。

4.根据权利要求1或2所述的方法,其特征在于,所述重新填充的数为所述分桶编号的二进制表示中每个位置的数,所述第一填充矩阵中每次哈希运算对应的待重新填充的矩阵元素的行编号与所述重新填充的数的位置编号相同。

5.根据权利要求1或2所述的方法,其特征在于,所述待填充矩阵的行数为所述分桶个数以二为底数的对数值,列数为所述关键字的个数的二倍。

6.一种批量关键字隐匿查询方法,其特征在于,所述方法应用于服...

【专利技术属性】
技术研发人员:郭三川姚墨迪张熙孙静博方滨兴
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

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

1