CN117834132A - 基于高维矩阵运算的隐匿查询方法、装置、设备及介质 - Google Patents
基于高维矩阵运算的隐匿查询方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117834132A CN117834132A CN202410010726.7A CN202410010726A CN117834132A CN 117834132 A CN117834132 A CN 117834132A CN 202410010726 A CN202410010726 A CN 202410010726A CN 117834132 A CN117834132 A CN 117834132A
- Authority
- CN
- China
- Prior art keywords
- plaintext
- code
- decryption result
- server
- query
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004364 calculation method Methods 0.000 claims abstract description 61
- 238000005192 partition Methods 0.000 claims abstract description 50
- 230000006854 communication Effects 0.000 claims abstract description 30
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 8
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 101000772194 Homo sapiens Transthyretin Proteins 0.000 description 3
- 102100029290 Transthyretin Human genes 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于高维矩阵运算的隐匿查询方法、装置、设备及介质,应用于客户端,该方法中根据哈希函数对明文ID进行加密,获得第一索引码和第一尾数码;采用同态加密公钥对第一尾数码进行加密,获得密文尾数码;将第一索引码和密文尾数码发送至服务端,以便服务端基于第一索引码选择分区,根据线性方程和密文尾数码计算分区的计算结果;采用同态加密私钥对计算结果进行解密,获得解密结果;若解密结果用于指示明文ID存在,则对解密结果进行解析,获得属性信息。如此,通过索引码限定查询范围,服务端仅获取该分区的计算结果,减少计算量,提高计算效率,客户端根据计算结果获得解密结果,一次数据交互即实现查询,提高通信效率。
Description
技术领域
本申请涉及隐私计算技术领域,特别是涉及一种基于高维矩阵运算的隐匿查询方法、装置、设备及介质。
背景技术
隐匿查询(Private Information Retrieval,PIR)也称私有信息查询,目的是保证用户向数据源方提交查询请求时,在查询信息不被感知与泄漏的前提下完成查询,服务端获取查询请求且无法获知真正的查询条件与查询结果,客户端获取查询结果且无法获知查询结果之外的其他信息。
隐匿查询主要包括基于不经意传输的隐匿查询、基于同态加密的隐匿查询以及基于keyword的隐匿查询,然而,目前的隐匿查询过程中查询和计算效率较低,进而影响了客户端和服务端的通信效率。
发明内容
本申请提供了一种基于高维矩阵运算的隐匿查询方法、装置、设备及介质,能够提高隐匿查询过程中的查询效率和计算效率,进而提高了客户端和服务端的通信效率。
第一方面,本申请提供了一种基于高维矩阵运算的隐匿查询方法,应用于客户端,所述客户端与服务端进行通信连接,所述方法包括:
根据哈希函数对明文标识符ID进行加密,获得第一索引码和第一尾数码,所述第一索引码和所述第一尾数码对应;
采用同态加密公钥对所述第一尾数码进行加密,获得密文尾数码;
将所述第一索引码和所述密文尾数码发送至服务端,以便所述服务端基于所述第一索引码选择分区,并根据线性方程和所述密文尾数码计算所述分区的计算结果;
采用同态加密私钥对所述计算结果进行解密,获得解密结果,所述同态加密私钥与所述同态加密公钥对应;
若所述解密结果用于指示所述明文ID存在,则对所述解密结果进行解析,获得属性信息,所述属性信息与所述明文ID对应。
可选地,所述解密结果包括所述线性方程的解向量,在所述若所述解密结果用于指示所述明文ID存在,则对所述解密结果进行解析,获得属性信息之前,还包括:
若所述解向量为0,则所述解密结果指示所述明文ID存在;
若所述解向量不为0,则所述解密结果指示所述明文ID不存在。
可选地,所述对所述解密结果进行解析,获得属性信息,包括:
对所述解密结果进行解析,获取属性值;
根据分隔符对所述属性值切分,并基于映射关系获得与所述明文ID对应的所述属性信息。
可选地,所述线性方程的获取过程,包括:
获取多个明文ID和多个明文属性,所述多个明文ID和所述多个明文属性对应;
根据所述哈希函数对所述多个明文ID进行加密,获得多个哈希编码;
对所述多个明文属性进行数值转化,获得属性值;
根据所述多个哈希编码构建向量矩阵;
基于所述向量矩阵和所述属性值获得所述线性方程。
可选地,所述多个哈希编码中各个编码包括索引码和尾数码,所述根据所述多个哈希编码构建向量矩阵,包括:
根据所述索引码对所述多个哈希编码划分,获得多个分区;
根据所述尾数码的位数对所述多个分区中各个分区进行切分,获得多个切片;
获取所述多个切片的向量矩阵,所述向量矩阵为满秩矩阵。
第二方面,本申请还提供了一种基于高维矩阵运算的隐匿查询装置,应用于客户端,所述客户端与服务端进行通信连接,所述装置包括:
第一加密单元,用于根据哈希函数对明文标识符ID进行加密,获得第一索引码和第一尾数码,所述第一索引码和所述第一尾数码对应;
第二加密单元,用于采用同态加密公钥对所述第一尾数码进行加密,获得密文尾数码;
发送单元,用于将所述第一索引码和所述密文尾数码发送至服务端,以便所述服务端基于所述第一索引码选择分区,并根据线性方程和所述密文尾数码计算所述分区的计算结果;
解密单元,用于采用同态加密私钥对所述计算结果进行解密,获得解密结果,所述同态加密私钥与所述同态加密公钥对应;
解析单元,用于若所述解密结果用于指示所述明文ID存在,则对所述解密结果进行解析,获得属性信息,所述属性信息与所述明文ID对应。
可选地,所述解密结果包括所述线性方程的解向量,所述装置还包括判断单元,所述判断单元用于:
若所述解向量为0,则所述解密结果指示所述明文ID存在;
若所述解向量不为0,则所述解密结果指示所述明文ID不存在。
可选地,所述解析单元,具体用于:
对所述解密结果进行解析,获取属性值;
根据分隔符对所述属性值切分,并基于映射关系获得与所述明文ID对应的所述属性信息。
可选地,所述线性方程的获取过程,包括:
获取多个明文ID和多个明文属性,所述多个明文ID和所述多个明文属性对应;
根据所述哈希函数对所述多个明文ID进行加密,获得多个哈希编码;
对所述多个明文属性进行数值转化,获得属性值;
根据所述多个哈希编码构建向量矩阵;
基于所述向量矩阵和所述属性值获得所述线性方程。
可选地,所述多个哈希编码中各个编码包括索引码和尾数码,所述根据所述多个哈希编码构建向量矩阵,包括:
根据所述索引码对所述多个哈希编码划分,获得多个分区;
根据所述尾数码的位数对所述多个分区中各个分区进行切分,获得多个切片;
获取所述多个切片的向量矩阵,所述向量矩阵为满秩矩阵。
第三方面,本申请还提供了一种电子设备,所述电子设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行上述第一方面提供的所述基于高维矩阵运算的隐匿查询方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面提供的所述基于高维矩阵运算的隐匿查询方法。
由此可见,本申请具有如下有益效果:
本申请提供了一种基于高维矩阵运算的隐匿查询方法、装置、设备及介质,应用于客户端,客户端与服务端进行通信连接,该方法中,根据哈希函数对明文标识符ID进行加密,获得第一索引码和第一尾数码,第一索引码和第一尾数码对应;采用同态加密公钥对所述第一尾数码进行加密,获得密文尾数码;将第一索引码和密文尾数码发送至服务端,以便服务端基于第一索引码选择分区,并根据线性方程和密文尾数码计算分区的计算结果;采用同态加密私钥对计算结果进行解密,获得解密结果,同态加密私钥与同态加密公钥对应;若解密结果用于指示明文ID存在,则对解密结果进行解析,获得属性信息,属性信息与明文ID对应。如此,通过索引码获取该明文ID在服务端存储的对应分区,限定了查询范围,服务端仅需基于密文尾数码和线性方程获取该对应分区的计算结果,减少了计算量,提高计算效率,客户端对该计算结果进行解密获得与该明文ID对应的解密结果,若解密结果指示查询的明文ID在服务端存在,则进行解析以获得查询结果,即通过一次数据交互即实现了查询,进而提高了客户端和服务端的通信效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种基于高维矩阵运算的隐匿查询方法的流程示意图;
图2为本申请实施例中服务端与客户端交互的逻辑示意图;
图3为本申请实施例中服务端数据处理样例图;
图4为本申请实施例中客户端数据处理样例图;
图5为本申请实施例中数据运算样例图;
图6为本申请实施例提供的一种基于高维矩阵运算的隐匿查询装置600的结构示意图;
图7为本申请实施例提供的一种电子设备700的结构示意图。
具体实施方式
本申请实施例涉及的多个,是指大于或等于两个。需要说明的是,在本申请实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,并非对本申请的限定。另外,还需要说明的是,为便于描述,附图中仅示出了与本申请相关的部分,并非全部结构。
隐匿查询目的是保证用户向数据源方提交查询请求时,在查询信息不被感知与泄漏的前提下完成查询,服务端获取查询请求且无法获知真正的查询条件与查询结果,客户端获取查询结果且无法获知查询结果之外的其他信息。
隐匿查询主要包括基于不经意传输(Oblivious Transfer,OT)的隐匿查询、基于同态加密(Homomorphic Encryption,HE)的隐匿查询以及基于keyword的隐匿查询,然而,目前的隐匿查询过程中查询和计算效率较低,进而影响了客户端和服务端的通信效率。
其中,1、目前的不经传输实现隐匿查询过程是,服务端生成N条数据以及N个加密RSA私钥,将与N个私钥对应的N个公钥发送至客户端。客户端随机生成一个密钥Key(查询请求);在已知索引ID的条件下,用索引ID对应的公钥加密密钥Key,并将加密结果发送到服务端。服务端尝试用N个私钥解密密钥Key,并用解密的N个结果,对查询到的Value进行加密,并将N个加密结果发送到客户端。最终,客户端将索引ID数据进行解密,即获取查询结果。2、目前的同态加密实现隐匿查询的过程是,客户端生成同态加密的公钥和私钥;在已知索引ID的条件下,生成N维的[0,1]查询向量,对应的索引ID为1,其他位置都为0,采用同态加密算法,加密N维向量,并将密文向量发送到服务端。服务端进行密文运算,将计算结果返回到客户端。客户端通过私钥解密返回结果,即获取查询结果。3、目前的Keyword实现隐匿查询的过程是,采用Paillier同态加密与拉格朗日插值多项式组合方式,对明文数据集进行拉格朗日多项式插值法生成最终多项式。根据多项式运算结果,当取存在的点的时候,计算结果为0,否则不为0。查询方创建同态加密的公钥与私钥,加密多项式,生成N维密文向量,发送到服务端。服务端采用同态加密运算,将计算结果返回到查询方。查询方解密结果,查询索引明文结果为0时,即获取查询值的明文信息,否则无查询结果。
经过发明人研究发现:1、该通信过程需要两次数据交互,通信效率较低,并且该过程需要服务端向客户端提供查询关键字的索引ID,对服务端数据的隐私保护较低。2、该方法实现了隐私求交的要求,并且一次通信交互即可获取查询结果,并且服务端仅返回一条加密记录即可。但在客户端向服务端发送查询请求时,需要生成N位的加密向量,仍然有较高的通信开销,通信效率较低;另外与不经意传输方法相似,需要服务端向客户端提供查询关键字的索引ID,对服务端数据的隐私保护较低。3、该方法可以同时保护客户端和服务端数据隐私,并且服务端仅返回一条加密记录即可。但客户端发送请求时需要构建高次项,而且服务端在构建多项式时,需要高阶运算,计算复杂度高,计算性能较低。
综上所述,可知现有技术存在以下缺点:
1、通信过程存在需要两次数据交互的情况,通信效率较低。
2、通信过程虽然减少了服务端数据返回量,但客户端需要生成N维查询密文向量,通信数据偏差较大,服务端需等待客户端数据,降低了服务端的计算效率,进而影响通信效率。此外存在服务端需要进行xN高阶运算的可能,当N较大时运算复杂度高,计算复杂度高,计算性能较低,通信数据量较大。
3、依赖于查询索引,需要服务端为客户端提供查询关键字所在的索引位置,对服务端数据的隐私保护较低。
基于此,本申请实施例提供了一种基于高维矩阵运算的隐匿查询方法、装置、设备及介质,应用于客户端,客户端与服务端进行通信连接,该方法中,根据哈希函数对明文标识符ID进行加密,获得第一索引码和第一尾数码,第一索引码和第一尾数码对应;采用同态加密公钥对第一尾数码进行加密,获得密文尾数码;将第一索引码和密文尾数码发送至服务端,以便服务端基于第一索引码选择分区,并根据线性方程和密文尾数码计算分区的计算结果;采用同态加密私钥对计算结果进行解密,获得解密结果,同态加密私钥与同态加密公钥对应;若解密结果用于指示明文ID存在,则对解密结果进行解析,获得属性信息,属性信息与明文ID对应。
如此,相较于现有技术中的全量计算和传输,本申请实施例提供的方法通过索引码获取该明文ID在服务端存储的对应分区,限定了查询范围,服务端仅需基于密文尾数码和线性方程获取该对应分区的计算结果,减少了计算量,提高计算效率;客户端对该计算结果进行解密获得与该明文ID对应的解密结果,若解密结果指示查询的明文ID在服务端存在,则进行解析以获得查询结果,即通过一次数据交互即实现了数据对齐和查询,进而提高了客户端和服务端的通信效率。
为便于理解本申请实施例提供的基于高维矩阵运算的隐匿查询方法的具体实现,下面将结合附图进行说明。
需要说明的是,实现该基于高维矩阵运算的隐匿查询方法的主体可以为本申请实施例提供的基于高维矩阵运算的隐匿查询装置,也可以承载于电子设备或电子设备的功能模块中。本申请实施例中的电子设备,可以是任意的能够实现本申请实施例中的基于高维矩阵运算的隐匿查询方法的设备,例如可以是物联网(Internet of Things,IoT)设备。
请参见图1,图1为本申请实施例提供的一种基于高维矩阵运算的隐匿查询方法的流程示意图,该方法可以应用于基于高维矩阵运算的隐匿查询装置,该基于高维矩阵运算的隐匿查询装置例如可以是图6所示的基于高维矩阵运算的隐匿查询装置600,或者,该基于高维矩阵运算的隐匿查询装置也可以是集成于图7所示的电子设备700的功能模块。
本申请实施例应用于客户端,该客户端与服务端进行通信连接,例如可以包括如下步骤:
S101:根据哈希函数对明文标识符ID进行加密,获得第一索引码和第一尾数码,第一索引码和第一尾数码对应。
需要说明的是,该明文ID为客户端要查询数据记录的标识符,客户端和服务端使用相同的哈希函数,通常哈希函数对相同明文加密后获得的密文是相同的。
在一些实现方式中,哈希函数例如可以是SHA-256算法,则获得256位0或1的哈希编码,对哈希编码进行划分,获得8位的第一索引码和248位的第一尾数码。此外,客户端可以向服务端发送多个明文ID,例如多个明文ID包括第一明文ID和第二明文ID,基于哈希函数对第一明文ID加密以获得第一索引码和第一尾数码,基于哈希函数对第二明文ID加密以获得第二索引码和第二尾数码。
S102:采用同态加密公钥对所述第一尾数码进行加密,获得密文尾数码。
需要说明的是,同态加密公钥为同态加密算法的公钥,该同态加密算法例如可以是Paillier同态加密算法,Paillier同态加密算法的同态加密公钥与该同态加密私钥相对应。作为一个示例,对248位的第一尾数码采用同态加密公钥进行加密处理,由于同态加密算法对相同明文加密的结果是不同的,因此第一尾数码中0、1向量加密的结果是不同的,例如获得密文尾数码E(c0)、E(c1)……E(c247)。
S103:将第一索引码和密文尾数码发送至服务端,以便服务端基于第一索引码选择分区,并根据线性方程和密文尾数码计算分区的计算结果。
需要说明的是,服务端包括多条数据记录,每条数据记录都对应有明文ID和明文属性,那么服务端获取该线性方程的可以包括:获取多个明文ID和多个明文属性,多个明文ID和多个明文属性对应;根据哈希函数对多个明文ID进行加密,获得多个哈希编码;对多个明文属性进行数值转化,获得属性值;根据多个哈希编码构建向量矩阵;基于向量矩阵和属性值获得线性方程。
其中,多个哈希编码中各个编码包括索引码和尾数码,根据多个哈希编码构建向量矩阵可以包括:根据索引码对多个哈希编码划分,获得多个分区;根据尾数码的位数对多个分区中各个分区进行切分,获得多个切片;获取多个切片的向量矩阵,该向量矩阵为满秩矩阵。
S104:采用同态加密私钥对所述计算结果进行解密,获得解密结果,同态加密私钥与同态加密公钥对应。
需要说明的是,解密结果包括线性方程的解向量,在一些实现方式中,在S104之前,本申请实施例提供的方法还可以包括:若解向量为0,则解密结果指示明文ID在服务端中存在;若解向量不为0,则解密结果指示明文ID在服务端中不存在。
S105:若解密结果用于指示明文ID存在,则对解密结果进行解析,获得属性信息,属性信息与明文ID对应。
在一些实现方式中,本申请实施例提供的对解密结果进行解析,获得属性信息,可以包括:对解密结果进行解析,获取属性值;根据分隔符对属性值切分,并基于映射关系获得与明文ID对应的属性信息。
如此,本申请实施例提供的方法通过索引码获取该明文ID在服务端存储的对应分区,限定了查询范围,服务端仅需基于密文尾数码和线性方程获取该对应分区的计算结果,减少了计算量,提高计算效率;客户端对该计算结果进行解密获得与该明文ID对应的解密结果,若解密结果指示查询的明文ID在服务端存在,则进行解析以获得查询结果,即通过一次数据交互即实现了数据对齐和查询,进而提高了客户端和服务端的通信效率。
下面结合客户端和服务端交互的具体场景,对本申请实施例进行举例说明,参见图2,图2为本申请实施例提供的一种服务端与客户端交互的逻辑示意图,该图假设两个参与方分别为Alice与Bob,其中,Alice为数据查询方,也即客户端,客户端拥有M个用于查询的明文ID;Bob为数据提供方,也即服务端,服务端包括N条记录(Row),每条Row包括明文ID,ATTR1,…,ATTRj,,其中ATTR表示属性信息,j表示属性个数;需要说明的是,因为Bob为数据的持有者,Alice为数据的查询者,所以服务端数据量通常要远大于客户端数据量,即N>>M。
下面结合S00、S01对服务端的数据准备过程进行说明:
S00:数据提供方Bob进行数据预处理。
数据预处理包括对明文ID进行哈希加密和向量转化,作为一个示例,明文ID=1,对该明文ID=1采用SHA-256算法进行加密后,可以得到256位二进制编码串如下所示:
将该二进制编码串切分为8位索引码与248位尾数码
数据预处理还包括对明文的属性信息进行数值转化;因为每条记录包括多个属性,例如属性1的属性信息为年龄30岁,属性2的属性信息为注册日期2022-01-01,属性采用分隔符进行拼接后进行数值转化获得属性值,例如V=13219123。
S01:数据提供方Bob构建高维矩阵。
首先,按照索引码进行分区,因为索引码为8位,则有256种可能,则将N条记录划分为256个分区,每个分区存在若干记录;接着,对于每个分区的若干记录根据尾数码位数248位进行切片,需要说明的是,若切片不足248个,可以则采用伪向量补齐。每个切片可以形成向量矩阵如下述A所示,
然后,构建线性方程Ax=b,其中A为向量矩阵,b为向量,x为系数解,由于明文ID是唯一的,对应的哈希(HASH)密文是唯一的,在采用1个非线性相关的伪向量补齐矩阵,使得向量矩阵A为满秩矩阵,所以方程一定有唯一解,即每个切片的系数解x是唯一的248维向量。具体地,设定系数解x为一个248维不重复的数字向量,则可以确定唯一的向量b满足条件Ax-b=0;对于给定一个向量C=[c0,c1,…,c247],ci∈{0,1},当C·xT=bi,由于系数解是唯一的,C是唯一满足线性运算结果为bi的向量,因此可以确定满足向量运算的唯一解,对应的属性值计算公式为Ax-b+V。
需要说明的是,对于本申请实施例中S00~S01的应用场景,具体可以参见图3的服务端Bob数据处理样例图。
S1:数据查询方Alice进行数据预处理。
数据预处理包括对明文ID进行哈希加密和向量转化,需要说明的是,Alice采用与Bob相同的HASH函数进行哈希加密,获得8位索引码与248位尾数码;然后根据同态加密算法生成同态加密的公钥与私钥。
S2:数据查询方Alice进行向量加密并发送至数据提供方Bob。
具体地,对248位尾数码采用同态加密公钥进行加密处理,由于同态加密算法对相同明文加密的结果是不同的,因此尾数码0、1向量加密的结果是不同的,例如获得密文尾数码E(c0)、E(c1)……E(c247)。
需要说明的是,对于本申请实施例中S1~S2的应用场景,具体可以参见图4的客户端Alice数据处理样例图。
S3:数据提供方Bob获取Alice传输的索引码与尾数码密文向量,并进行线性运算。
具体地,根据索引码定位对应的分区,然后根据线性方程计算对该分区中每个切片的计算结果,如公式(1)和公式(2)所示,index用于表征解向量,value用于表征属性值:
index=E(c0)*x0+E(c1)*x1+…+E(c247)*x247-bi 公式(1)
value=index+Vi 公式(2)
需要说明的是,对于本申请实施例中S3的应用场景,具体可以参见图5的数据运算样例图。此外,为了增强可读性和理解性,图3、图4和图5中的索引码00、索引码01……索引码ff表示索引码采取16进制。
S4:数据提供方Bob将计算结果发送到数据查询方Alice。
需要说明的是,因为通过索引码分区处理,数据提供方Bob只需传输索引码对应分区下的计算结果,减少了计算量和传输量,提高了通信效率。在一些实现方式中,数据提供方Bob将多个计算结果重新洗牌后再发送到数据查询方Alice。
S5:数据查询方Alice进行结果解密。
具体地,数据查询方Alice获取数据提供方Bob发送的计算结果,根据同态加密私钥对计算结果进行解密,当index解密结果为0,表示查询明文ID在服务端存在,该明文ID对应的查询结果为value的解密内容,当index的解密结果不为0,表示查询明文ID在服务端不存在,对应的value值是无效的。
S6:数据查询方Alice解析查询结果。
具体地,解析查询的value值,然后通过属性值到字符串的映射方法,获取属性信息,再通过特定的分隔符切分数据,即可得到要获取的属性信息,例如获取的为年龄30。
如此,通过本申请实施例提供的方法,具备以下所述有益效果:
①针对计算量和计算效率而言,构建索引码分区从而限定查询范围,服务端仅需基于密文尾数码和线性方程获取该对应分区的计算结果,减少了计算量;矩阵采用[0,1]向量编码,相较于高阶运算,计算效率高。
②针对通信效率而言,客户端对该计算结果进行解密获得与该明文ID对应的解密结果,若解密结果指示查询的明文ID在服务端存在,则进行解析以获得查询结果,即通过一次数据交互即实现了数据对齐和查询,进而提高了客户端和服务端的通信效率。并且,采用固定维度的矩阵确保通信过程中客户端加密向量远小于服务端数量,并且通过索引码分区查询的方法,均衡通信过程的数据量,提高通信效率。
③针对隐私性而而言,1、通过高维矩阵线性运算获取的计算结果,查询方无法根据计算结果还原系数向量x,无法通过解密后的结果反推出数据提供方的信息,只能获取到对应ID的属性信息。2、数据查询方传输的数据经过同态加密后,在没有私钥的条件下是无法解密的,可以选择高强度的同态加密算法,保证查询方数据隐私。3、无需服务端和客户端预先约定索引ID,可以同时保护服务端和客户端的数据隐私。
参见图6,本申请实施例还提供了一种基于高维矩阵运算的隐匿查询装置600,应用于客户端,所述客户端与服务端进行通信连接,所述装置600包括:
第一加密单元601,用于根据哈希函数对明文标识符ID进行加密,获得第一索引码和第一尾数码,所述第一索引码和所述第一尾数码对应;
第二加密单元602,用于采用同态加密公钥对所述第一尾数码进行加密,获得密文尾数码;
发送单元603,用于将所述第一索引码和所述密文尾数码发送至服务端,以便所述服务端基于所述第一索引码选择分区,并根据线性方程和所述密文尾数码计算所述分区的计算结果;
解密单元604,用于采用同态加密私钥对所述计算结果进行解密,获得解密结果,所述同态加密私钥与所述同态加密公钥对应;
解析单元605,用于若所述解密结果用于指示所述明文ID存在,则对所述解密结果进行解析,获得属性信息,所述属性信息与所述明文ID对应。
可选地,所述解密结果包括所述线性方程的解向量,所述装置600还包括判断单元,所述判断单元用于:
若所述解向量为0,则所述解密结果指示所述明文ID存在;
若所述解向量不为0,则所述解密结果指示所述明文ID不存在。
可选地,所述解析单元605,具体用于:
对所述解密结果进行解析,获取属性值;
根据分隔符对所述属性值切分,并基于映射关系获得与所述明文ID对应的所述属性信息。
可选地,所述线性方程的获取过程,包括:
获取多个明文ID和多个明文属性,所述多个明文ID和所述多个明文属性对应;
根据所述哈希函数对所述多个明文ID进行加密,获得多个哈希编码;
对所述多个明文属性进行数值转化,获得属性值;
根据所述多个哈希编码构建向量矩阵;
基于所述向量矩阵和所述属性值获得所述线性方程。
可选地,所述多个哈希编码中各个编码包括索引码和尾数码,所述根据所述多个哈希编码构建向量矩阵,包括:
根据所述索引码对所述多个哈希编码划分,获得多个分区;
根据所述尾数码的位数对所述多个分区中各个分区进行切分,获得多个切片;
获取所述多个切片的向量矩阵,所述向量矩阵为满秩矩阵。
需要说明的是,该装置600的具体实现方式以及达到的技术效果,均可以参见图1所示的方法中的相关描述
此外,本申请实施例还提供了一种电子设备700,如图7所示,所述电子设备700包括处理器701以及存储器702:
所述存储器702用于存储计算机程序;
所述处理器701用于根据所述计算机程序执行图1提供的基于高维矩阵运算的隐匿查询方法。
此外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行本申请实施例提供的基于高维矩阵运算的隐匿查询方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目标。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种基于高维矩阵运算的隐匿查询方法,其特征在于,应用于客户端,所述客户端与服务端进行通信连接,所述方法包括:
根据哈希函数对明文标识符ID进行加密,获得第一索引码和第一尾数码,所述第一索引码和所述第一尾数码对应;
采用同态加密公钥对所述第一尾数码进行加密,获得密文尾数码;
将所述第一索引码和所述密文尾数码发送至服务端,以便所述服务端基于所述第一索引码选择分区,并根据线性方程和所述密文尾数码计算所述分区的计算结果;
采用同态加密私钥对所述计算结果进行解密,获得解密结果,所述同态加密私钥与所述同态加密公钥对应;
若所述解密结果用于指示所述明文ID存在,则对所述解密结果进行解析,获得属性信息,所述属性信息与所述明文ID对应。
2.根据权利要求1所述的方法,其特征在于,所述解密结果包括所述线性方程的解向量,在所述若所述解密结果用于指示所述明文ID存在,则对所述解密结果进行解析,获得属性信息之前,还包括:
若所述解向量为0,则所述解密结果指示所述明文ID存在;
若所述解向量不为0,则所述解密结果指示所述明文ID不存在。
3.根据权利要求1所述的方法,其特征在于,所述对所述解密结果进行解析,获得属性信息,包括:
对所述解密结果进行解析,获取属性值;
根据分隔符对所述属性值切分,并基于映射关系获得与所述明文ID对应的所述属性信息。
4.根据权利要求1所述的方法,其特征在于,所述线性方程的获取过程,包括:
获取多个明文ID和多个明文属性,所述多个明文ID和所述多个明文属性对应;
根据所述哈希函数对所述多个明文ID进行加密,获得多个哈希编码;
对所述多个明文属性进行数值转化,获得属性值;
根据所述多个哈希编码构建向量矩阵;
基于所述向量矩阵和所述属性值获得所述线性方程。
5.根据权利要求4所述的方法,其特征在于,所述多个哈希编码中各个编码包括索引码和尾数码,所述根据所述多个哈希编码构建向量矩阵,包括:
根据所述索引码对所述多个哈希编码划分,获得多个分区;
根据所述尾数码的位数对所述多个分区中各个分区进行切分,获得多个切片;
获取所述多个切片的向量矩阵,所述向量矩阵为满秩矩阵。
6.一种基于高维矩阵运算的隐匿查询装置,其特征在于,应用于客户端,所述客户端与服务端进行通信连接,所述装置包括:
第一加密单元,用于根据哈希函数对明文标识符ID进行加密,获得第一索引码和第一尾数码,所述第一索引码和所述第一尾数码对应;
第二加密单元,用于采用同态加密公钥对所述第一尾数码进行加密,获得密文尾数码;
发送单元,用于将所述第一索引码和所述密文尾数码发送至服务端,以便所述服务端基于所述第一索引码选择分区,并根据线性方程和所述密文尾数码计算所述分区的计算结果;
解密单元,用于采用同态加密私钥对所述计算结果进行解密,获得解密结果,所述同态加密私钥与所述同态加密公钥对应;
解析单元,用于若所述解密结果用于指示所述明文ID存在,则对所述解密结果进行解析,获得属性信息,所述属性信息与所述明文ID对应。
7.根据权利要求6所述的装置,其特征在于,所述解密结果包括所述线性方程的解向量,所述装置还包括判断单元,所述判断单元用于:
若所述解向量为0,则所述解密结果指示所述明文ID存在;
若所述解向量不为0,则所述解密结果指示所述明文ID不存在。
8.根据权利要求6所述的装置,其特征在于,所述解析单元,具体用于:
对所述解密结果进行解析,获取属性值;
根据分隔符对所述属性值切分,并基于映射关系获得与所述明文ID对应的所述属性信息。
9.一种电子设备,其特征在于,所述电子设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1-5任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010726.7A CN117834132A (zh) | 2024-01-03 | 2024-01-03 | 基于高维矩阵运算的隐匿查询方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010726.7A CN117834132A (zh) | 2024-01-03 | 2024-01-03 | 基于高维矩阵运算的隐匿查询方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117834132A true CN117834132A (zh) | 2024-04-05 |
Family
ID=90512924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410010726.7A Pending CN117834132A (zh) | 2024-01-03 | 2024-01-03 | 基于高维矩阵运算的隐匿查询方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117834132A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118133324A (zh) * | 2024-05-07 | 2024-06-04 | 北京隐算科技有限公司 | 一种全同态密文检索方法、系统、电子设备及存储介质 |
-
2024
- 2024-01-03 CN CN202410010726.7A patent/CN117834132A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118133324A (zh) * | 2024-05-07 | 2024-06-04 | 北京隐算科技有限公司 | 一种全同态密文检索方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3058678B1 (en) | System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption | |
US9977918B2 (en) | Method and system for verifiable searchable symmetric encryption | |
Cui et al. | Efficient and expressive keyword search over encrypted data in cloud | |
CN109450935B (zh) | 云存储中可验证的语义安全的多关键词搜索方法 | |
CN110337649B (zh) | 用于搜索模式未察觉的动态对称可搜索加密的方法和系统 | |
Chase et al. | Substring-searchable symmetric encryption | |
US8904171B2 (en) | Secure search and retrieval | |
JP6180177B2 (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
KR19990082665A (ko) | 공통키 통신방법 | |
US20170091475A1 (en) | Method and System for Range Search on Encrypted Data | |
CN111026788A (zh) | 一种混合云中基于同态加密的多关键词密文排序检索方法 | |
CN117834132A (zh) | 基于高维矩阵运算的隐匿查询方法、装置、设备及介质 | |
CN114443718A (zh) | 一种数据查询方法及系统 | |
Wang et al. | An efficient and privacy-preserving range query over encrypted cloud data | |
Ali et al. | Searchable encryption with conjunctive field free keyword search scheme | |
CN116821056A (zh) | 一种基于可信第三方的隐匿查询方法、系统、装置及存储介质 | |
US20230006813A1 (en) | Encrypted information retrieval | |
US11451518B2 (en) | Communication device, server device, concealed communication system, methods for the same, and program | |
JP7440662B2 (ja) | マルチキー情報検索 | |
CN117574435B (zh) | 基于同态加密的多关键词匿踪查询方法、装置及系统 | |
Zhu et al. | HCV: Practical Multi‐Keyword Conjunctive Query with Little Result Pattern Leakage | |
Poon et al. | A combined solution for conjunctive keyword search, phrase search and Auditing for encrypted cloud storage | |
CN116303551B (zh) | 隐匿查询方法及设备 | |
Peng et al. | Query‐Biased Preview over Outsourced and Encrypted Data | |
Nilsen | Searchable Symmetric Encryption and its applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |