CN117729534A - 一种查询方法、电子设备及*** - Google Patents
一种查询方法、电子设备及*** Download PDFInfo
- Publication number
- CN117729534A CN117729534A CN202310564211.7A CN202310564211A CN117729534A CN 117729534 A CN117729534 A CN 117729534A CN 202310564211 A CN202310564211 A CN 202310564211A CN 117729534 A CN117729534 A CN 117729534A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- condition
- query
- queried
- matching condition
- 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
- 238000000034 method Methods 0.000 title claims abstract description 85
- 230000004044 response Effects 0.000 claims abstract description 53
- 238000004891 communication Methods 0.000 claims description 50
- 230000006835 compression Effects 0.000 claims description 22
- 238000007906 compression Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 108
- 238000004422 calculation algorithm Methods 0.000 description 34
- 238000013461 design Methods 0.000 description 24
- 201000010099 disease Diseases 0.000 description 20
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 238000011282 treatment Methods 0.000 description 15
- 210000004027 cell Anatomy 0.000 description 13
- 230000002829 reductive effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 210000004899 c-terminal region Anatomy 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000011269 treatment regimen Methods 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 241000662429 Fenerbahce Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
一种查询方法、电子设备及***,涉及信息安全技术领域。其中,方法包括:响应于查询事件,第一设备向第二设备发送查询请求,查询请求中包括使用第一密钥加密待查询条件得到的第一密文。响应于查询请求,第二设备向第一设备发送查询响应,查询响应中包括第二密文和至少一个密文组,第二密文是使用第二密钥对第一密文加密得到的,一个密文组中包括使用第二密钥对匹配条件加密后得到的第三密文和使用匹配条件的特征信息对结果信息加密后得到的第四密文。响应于查询响应,第一设备得到待查询条件的结果信息。这样,可以简化条件‑值查询的复杂度,使得方案可以应用于手机、平板等移动终端中。
Description
技术领域
本申请实施例涉及信息安全技术领域,尤其涉及一种查询方法、电子设备及***。
背景技术
在使用手机、平板等移动终端的过程中,经常会向云、服务器或者其他设备查询某个条件对应的值。示例性的,手机向服务器查询社交应用中某个好友开通的业务功能。再示例性的,手机向服务器查询某种疾病的治疗方法。与此同时,在查询过程中,可能涉及到隐私信息的交互。例如,好友的手机号码、疾病信息等。
现有技术中,可以采用逆踪查询,又称为隐私信息检索(Private InformationRetrieval,PIR),在上述“条件-值”查询过程中保护隐私信息。
然而,发明人在实施本申请实施例的过程中发现:现有的PIR,复杂度较高,通常难以应用到手机、平板等计算能力和通信资源都很有限的移动终端中。
发明内容
本申请提供一种查询方法、电子设备及***,可以在条件-值查询场景中,降低对查询请求端的计算能力和通信资源的要求,使得手机、平板等移动终端也可以作为查询请求端。
第一方面,本申请提供一种查询方法,应用于手机、平板、笔记本电脑等第一设备中,第一设备具有向其他设备(如第二设备)进行条件-值查询的需求,以待查询条件对应的查询结果。具体的,响应于查询事件,第一设备向第二设备发送查询请求,查询请求中包括使用第一密钥加密待查询条件得到的第一密文。第一设备接收来自第二设备的查询响应,查询响应中包括第二密文和第一密文集,第二密文是使用第二密钥对第一密文加密得到的,第一密文集包括至少一个密文组,一个密文组对应一条匹配条件以及匹配条件的结果信息,一个密文组中包括使用第二密钥对匹配条件加密后得到的第三密文和使用匹配条件的特征信息对结果信息加密后得到的第四密文。第一设备得到待查询条件的结果信息,待查询条件的结果信息是至少一条匹配条件的结果信息中的一个。
由于第二设备使用匹配条件的特征信息对匹配条件对应的结果信息加密,那么,第一设备在通过比对得到与待查询条件匹配的匹配条件后,则自然可以使用待查询条件的特征信息解密出对应的结果信息,从而得到待查询条件的结果信息。这样,一方面,第一设备和第二设备仅需一个来回的通信,即可得到查询结果;另一方面,第一设备通过简单的匹配与解密运算,即可得到待查询条件的结果信息。由此可见,采用本申请方案,可以简化条件-值查询的查询过程,降低查询时延,提高查询效率。
在一种可能的设计方式中,第一设备得到待查询条件的结果信息,包括:第一设备使用待查询条件的特征信息,解密第一密文集中目标密文对应的第四密文,得到待查询条件的结果信息。应理解,在第一密文集中,第三密文和第四密文是以密文组的形式(即成对)存在的,因此每个第三密文都有对应的第四密文。其中,目标密文为第一密文集的第三密文中,与第五密文相等的密文,第五密文是使用第一密钥对第二密文解密后得到的密文。
第一设备通过将第二密文解密得到第五密文。即,第五密文是使用第二密钥对待查询条件加密后的密文。同时,第一密文集中的第三密文都是使用第二密钥对相应的匹配条件加密后得到的密文。在此基础上,第五密文与第一密文集的第三密文中的目标密文相等,则表明待查询条件与相应的匹配条件相等。从而可以确定目标密文对应的第四密文即为待查询条件的结果信息的密文,与此同时,第四密文是使用匹配条件的特征信息加密得到,因此,第一设备使用待查询条件的特征信息解密目标密文对应的第四密文,即可得到待查询条件的结果信息。
通常情况下,在一次查询过程中,待查询条件的数量是较少的,相应的,第二密文的数量也较少。例如,每次的待查询条件仅有1条,则第二密文也仅有一个。但是,匹配条件可能有多条,因此,第一密文集中的第三密文也可能有多个。由此可见,对第三密文加密的运算量往往是大于对第二密文解密的运算量的,因此,第一设备在接收到查询响应之后,采用对第二密文解密然后再确定目标密文的方式,可以减少第一设备的运算量,节省运算资源。
在一种可能的设计方式中,特征信息包括对应数据的哈希值中部分比特位(如第一比特征)的信息。例如,待查询条件的特征信息可以是待查询条件的哈希值中的一部分比特位,匹配条件的哈希特征可以是匹配条件的哈希值中一部分比特位的信息。
在一种可能的设计方式中,第一比特位是哈希值中从低至高的一个或多个比特位,也可以称为哈希后缀。
在一种可能的设计方式中,第一密文集中的第三密文是使用第二密钥对匹配条件加密、再压缩得到的压缩密文。这样,可以减少第一设备和第二设备之间的数据传输量,节省通信开销。并且,为了使第五密文和第一密文集中的第三密文具有可比性,则第五密文应该是使用第一密钥对第二密文解密、再压缩得到的压缩密文。
在一种可能的设计方式中,压缩后的密文包括压缩前的密文中部分比特位(如第二比特位)的信息;或者,压缩后的密文中包括压缩前的密文的哈希值中第二比特位的信息。
在一种可能的设计方式中,第一密文集为多个密文集中,哈希特征与待查询条件的哈希特征相同的密文集。一个密文集包括至少一个密文组,一个密文组对应一条匹配条件以及匹配条件的结果信息,至少一个密文组对应的至少一条匹配条件的哈希特征相同,一个密文集的哈希特征为至少一条匹配条件的哈希特征。
应理解,任一匹配条件如果与待查询条件相同,则其哈希值必然相同,哈希特征也自然相同。那么,通过哈希特征,可以找到与待查询条件可能相同的匹配条件。因此,第一密文集的哈希特征与待查询条件的哈希特征相同,则相当于找到了与待查询条件可能相同的匹配条件的第三密文。
也就是说,采用本设计方式,第二设备仅将可能与待查询条件相同的匹配条件的第三密文以及对应的第四密文下发至第一设备。这样,可以减少第二设备向第一设备传输的数据量,节省通信开销。
在一种可能的设计方式中,哈希特征包括对应数据的哈希值中部分特比位(如第三比特位)的信息。示例性的,第三比特位是哈希值中从高至低的一个或多个比特位(即前k2个比特位),也可以称为哈希前缀。
在实际查询过程中,采用第三比特位来查找与待查询条件可能相同的匹配条件,则待查询条件的哈希值中第三比特位的信息即为第一密文集中第三密文对应的匹配条件的哈希值中第三比特位的信息。与此同时,如果第一比特位与第三比特位相同,则第一设备可以使用待查询条件的哈希值中第三比特位的信息解密出第一密文集中所有第四密文对应的结果信息,而这样显然会导致第二设备中的信息泄露。因此,在实际实施时,第三比特位不同于第一比特位,以保证第二设备中的信息安全。例如,第一比特位为末尾k1个比特位,即哈希后缀,第三比特位为前k2个比特位,即哈希前缀。
在一种可能的设计方式中,查询请求中还包括待查询条件的哈希特征,以供第二设备确定出哈希特征相同的第一密文集。
第二方面,本申请提供一种查询方法,应用于云设备、服务器等提供查询服务的第二设备。具体的,第二设备接收来自第一设备的查询请求,查询请求中包括使用第一密钥加密待查询条件得到的第一密文。第二设备向第一设备发送查询响应,查询响应中包括第二密文和第一密文集,第二密文是使用第二密钥对第一密文加密得到的,第一密文集包括至少一个密文组,一个密文组对应一条匹配条件以及匹配条件的结果信息,一个密文组中包括使用第二密钥对匹配条件加密后得到的第三密文和使用匹配条件的特征信息对结果信息加密后得到的第四密文。其中,查询响应用于第一设备得到待查询条件的结果信息,待查询条件的结果信息是至少一条匹配条件的结果信息中的一个。具体可参见第一方面的说明,此处不再赘述。
在一种可能的设计方式中,查询请求中还包括待查询条件的哈希特征。在第二设备向第一设备发送查询响应之前,第二设备从多个密文集中查询哈希特征与待查询条件的哈希特征相等的第一密文集。其中,一个密文集包括至少一个密文组,一个密文组对应一条匹配条件以及匹配条件的结果信息,至少一个密文组对应的至少一条匹配条件的哈希特征相同,一个密文集的哈希特征为至少一条匹配条件的哈希特征。具体可参见第一方面的可能设计方式中的说明,此处不再赘述。
在一种可能的设计方式中,第三密文是使用第二密钥对匹配条件加密、再压缩后得到的。具体可参见第一方面的可能设计方式中的说明,此处不再赘述。
第三方面,本申请提供一种查询方法,应用于第一设备和第二设备。具体的,响应于查询事件,第一设备向第二设备发送查询请求,查询请求中包括使用第一密钥加密待查询条件得到的第一密文。响应于查询请求,第二设备向第一设备发送查询响应,查询响应中包括第二密文和第一密文集,第二密文是使用第二密钥对第一密文加密得到的,第一密文集包括至少一个密文组,一个密文组对应一条匹配条件以及匹配条件的结果信息,一个密文组中包括使用第二密钥对匹配条件加密后得到的第三密文和使用匹配条件的特征信息对结果信息加密后得到的第四密文。响应于查询响应,第一设备得到待查询条件的结果信息,待查询条件的结果信息是至少一条匹配条件的结果信息中的一个。具体可参见第一方面的说明,此处不再赘述。
第四方面,本申请还提供一种电子设备,所述电子设备包括存储器和一个或多个处理器。所述存储器和所述处理器耦合。所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令。其中,所述电子设备为第一设备,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如第一方面、第二方面、第三方面及其任一种可能的设计方式中,所述第一设备执行的步骤;或者,所述电子设备为第二设备,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如第一方面、第二方面、第三方面及其任一种可能的设计方式中,所述第二设备执行的步骤。
第五方面,本申请还提供一种通信***,所述通信***包括如第一方面、第二方面、第三方面及其任一种可能的设计方式中的第一设备和第二设备。
第六方面,本申请实施例提供一种芯片***,该芯片***应用于包括显示屏和存储器的电子设备;所述芯片***包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令。其中,所述电子设备为第一设备,当所述处理器执行所述计算机指令时,使得所述电子设备执行如第一方面、第二方面、第三方面及其任一种可能的设计方式中,所述第一设备执行的步骤。或者,所述电子设备为第二设备,当所述处理器执行所述计算机指令时,使得所述电子设备执行如第一方面、第二方面、第三方面及其任一种可能的设计方式中,所述第二设备执行的步骤。
第七方面,本申请提供一种计算机存储介质,该计算机存储介质包括计算机指令。其中,当所述计算机指令在第一设备上运行时,使得所述第一设备执行如第一方面、第二方面、第三方面及其任一种可能的设计方式中,所述第一设备执行的步骤。或者,当所述计算机指令在第二设备上运行时,使得所述第二设备执行如第一方面、第二方面、第三方面及其任一种可能的设计方式中,所述第二设备执行的步骤。
第八方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述电子设备,通信***,芯片***,计算机存储介质,计算机程序产品所能达到的有益效果,可参考第一方面、第二方面、第三方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1A为本申请实施例提供的一种PIR的原理图;
图1B为本申请实施例提供的一种PSI的原理图;
图2为本申请实施例提供的一种通信***的组成图;
图3为本申请实施例适用的一种场景的示意图;
图4为本申请实施例提供的查询方法的流程图之一;
图5为本申请实施例提供的一种电子设备的硬件结构图;
图6为本申请实施例提供的一种查询方法的阶段构成图;
图7为本申请实施例提供的查询方法中阶段1的流程图;
图8为本申请实施例提供的查询方法中阶段2的流程图;
图9为本申请实施例提供的查询方法中阶段3的流程图之一;
图10为本申请实施例提供的查询方法的原理图之一;
图11为本申请实施例提供的查询方法中阶段4的流程图之一;
图12为本申请实施例提供的查询方法中阶段4的流程图之二;
图13为本申请实施例提供的查询方法中阶段3的流程图之二;
图14为本申请实施例提供的查询方法中阶段4的流程图之三;
图15为本申请实施例提供的查询方法的流程图之二;
图16为本申请实施例提供的查询方法的原理图之二;
图17为本申请实施例提供的芯片***的结构图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
在说明本申请实施例之前,先对本申请涉及的技术术语做简单介绍:
1、条件-值查询。
条件-结果查询即通过向被查询端发送待查询的条件,得到条件对应的值。示例性的,将条件记为id,将条件对应的值记为payload,被查询端中可以记录如下表1所示的“条件-值”列表:
表1
条件(id) | 值(payload) |
id-1 | payload-1 |
id-2 | payload-2 |
id-3 | payload-3 |
…… |
那么,查询端向被查询端发送上表1中的任一条件,如id-2,则可以查询到条件对应的值,如payload-2。
本申请实施例提供的查询方法应用于条件-值查询的场景中。
2、匿踪查询。
匿踪查询又称为隐私信息检索(Private Information Retrieval,PIR)。PIR是一种安全多方计算(Secure Multi Party Computation,SMPC)技术。采用PIR,在上述条件-值查询过程中,可以在保证被查询端不会获取到条件以及该条件对应的值的情况下,完成查询。这样,在条件和/或条件对应的值涉及隐私时,不会泄露给被查询端。
以查询请求端是图1A所示的手机,被查询端是图1A所示的云为例,云中包括如上述表1A所示的条件-值表。采用PIR,手机向云发送查询某个条件对应的值的查询请求后,云可以向手机返回查询响应,以使手机得到该条件对应的值,但是,该过程中,云无法获取到该条件以及该条件对应的值。
本申请实施例中,采用PIR来保护条件-值查询过程中的隐私。
3、隐私集合求交(Private Set Intersection,PSI)。
PSI是一种安全多方计算(Secure Multi-Party Computation,SMPC)技术。采用PSI,可以在参与双方(如查询请求端和被查询端)***露双方持有数据的交集之外的数据的情况下,得到该交集,实现隐私保护。
以查询请求端是图1B所示的手机,被查询端是图1B所示的云为例,采用PSI,手机拥有数据集A,云拥有数据集B,手机向云发送查询请求,以查询数据集A和数据集B的交集A∩B。云可以向手机返回查询响应,以使手机得到交集A∩B。但是,该过程中,手机不会获得数据集B中除A∩B之外的数据,以及云不会获得数据集A。
本申请实施例中,在PIR的基础上,结合PSI,可以在条件-值查询的过程中,进一步保证被查询端的条件中除查询请求携带的条件之外的条件不会泄露给查询请求端。例如,查询请求携带的条件为上述数据集A,被查询端中的条件为上述数据集B。
4、PSI加密算法。
PSI加密算法是指在采用PSI的方案中,支持对数据加密的算法。示例性的,PSI加密算法包括迪菲-赫尔曼(Diffie-Hellman,DH)算法、椭圆曲线迪菲-赫尔曼(EllipticCurve Diffie-Hellman,ECDH/ECC)算法、罗纳德·李维斯特-阿迪·萨莫尔-伦纳德·阿德曼(Leonard Adleman-Ron Rivest-Adi Shamir,RSA)盲签算法、茫然传输(ObliviousTransfer,OT)算法等。在本文中,主要以DH算法和ECDH算法来说明本申请方案。
其中,DH协议和ECDH协议都是可交换的加密协议。可交换的加密算法即为加解密的顺序可以调换的算法。
示例性的,采用可交换的加密算法,使用密钥a对数据x加密,得到密文xa,使用密钥b对密文xa进一步加密,得到密文xab。采用可交换的加密算法,使用密钥b对数据y加密,得到密文yb,使用密钥a对密文yb进一步加密,得到密文yba。如果数据x和数据y相等,则上述密文xab与密文xba也相等。即,对于相同的数据,使用可交换的加密算法,则交换加密顺序,也可以得到相同的密文(简称为原理一)。在PSI中,可以使用该原理一来实现隐私保护。
进一步的,对于上述密文xab,先使用密钥a可以解密得到密文xb,如果数据x和数据y相等,则密文xb等于对数据y使用密钥b加密得到的密文,即密文yb。那么,对于数据x,使用可交换的加密算法双重加密(即先使用密钥a加密,再使用密钥b加密)后,再使用密钥a解密,可以得到使用密钥b对数据x加密得到的密文xb,如果密文xb与使用密钥b对数据y加密得到的密文yb相等,则可以确定数据x和数据y相等(简称为原理二)。在PSI中,也可以使用该原理二来实现隐私保护,以降低查询时延。
需要说明的是,下文中除有特别声明外,PSI中的加密/解密都是使用可交换的加密算法来实现的。
本申请实施例提供一种查询方法,该方法可以应用于本申请实施例提供的通信***。参见图2,通信***可以包括第一设备(如图2所示的手机210)和第二设备(如图2所示的云220)。其中,第一设备为具有查询需求的设备,第二设备为提供查询服务的设备。
第一设备和第二设备通信连接,用于传输查询过程中的数据交互。例如,用于第一设备向第二设备发送查询请求,以及用于第二设备向第一设备返回查询响应。示例性的,第一设备和第二设备之间可以使用通用串行总线(universal serial bus,USB)建立有线连接。或者,第一设备和第二设备之间可以通过全球移动通讯***(global system formobile communications,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址接入(code division multiple access,CDMA)、宽带码分多址(widebandcode division multiple access,WCDMA),时分码分多址(time-division code divisionmultiple access,TD-SCDMA),长期演进(long term evolution,LTE)、蓝牙、无线保真(wireless fidelity,Wi-Fi)、NFC、基于互联网协议的语音通话(voice over Internetprotocol,VoIP)、支持网络切片架构的通信协议建立无线连接。
上述第一设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等具有查询需求的设备。上述第二设备可以是云、服务器、个人计算机(personal computer,PC)等可以提供查询服务的设备。本申请实施例对第一设备和第二设备的具体形态不作特殊限制。
示例性的,上述第一设备可以是企业对消费者(Business to Consumer,B2C)模式、消费者对消费者(Consumer to Consumer,C2C)模式或者企业对企业(Business toBusiness,B2B)模式中的任一端,上述第二设备可以是B2C模式、C2C模式或者B2B模式中的另一端。应理解,与B端设备相比:C端设备的通信资源(如流量)是有限的,如果通信开销增大到一定程度时,用户可能难以接受。那么,如果第一设备是上述B2C模式、C2C模式或者B2B模式中的C端设备,采用本申请实施例提供的查询方法,可以更明显的降低通信开销。
下文中,以第一设备是图3所示的手机210,第二设备是图3所示的云220为例来说明。
本申请实施例提供的查询方法,可以应用于手机210向云220进行条件-值查询,并且查询过程中涉及隐私信息的场景(简称为隐私查询场景)中,以实现隐私保护。下面列举几种典型的场景。
场景1,业务功能发现场景。即:发现目标应用中的好友开通的业务功能。
其中,目标应用可以是手机210中安装的任一应用,业务功能包括目标应用支持的一种或多种功能。下文中以目标应用是社交应用A,业务功能包括视频通话功能、语音通话功能和短信收发功能和文件传输功能为例来说明。
手机210在安装并首次运行社交应用A时,可以显示图3所示的界面301。界面301中包括提示文本“是否允许发现通讯录好友”,以提示用户发现通讯录中的联系人是否在社交应用中注册有账号。以及,界面301中还包括“是”和“否”两个选项。响应于用户对界面301中“是”选项的选择操作,手机210可以向云220发送发现通讯录好友的查询请求,以查询通讯录中的各个联系人是否在社交应用A中注册有账号。在查询结束之后,手机210可以显示图3所示的界面302。界面302中包括在社交应用A中注册有账号的联系人,如汤姆、爱丽丝等。当然,界面302中还可以包括这些联系人在社交应用A中的账号(如我爱吃鱼、天天开心等)、头像等信息。
在非首次运行社交应用A的过程中,响应于发现通讯录好友的操作(如用户在社交应用A的设置中点击发现通讯录好友的按钮的操作),手机210也可以向云220发送发现通讯录好友的查询请求,并在获得查询结果后显示,此处不多赘述。
手机210发现在社交应用A中注册有账号的联系人(简称为目标联系人)后,还可以进一步发现这些目标联系人在社交应用A中开通的业务功能。手机210可以向云220发送发现业务功能的查询请求,以查询目标联系人在社交应用A中开通的业务功能。在查询结束之后,手机210可以显示图3所示的界面303。界面303中包括目标联系人在社交应用A中开通的业务功能。例如,目标联系人汤姆开通的业务功能包括视频通话功能、语音通话功能和短信发送功能,目标联系人爱丽丝开通的业务功能包括语音通话功能、短信发送功能和文件收发功能。
在上述场景1中,手机210向云220发送的业务功能的查询请求中,通常需要携带目标联系人的号码(简称联系人号码)。与此同时,云220中记录有注册用户的号码(简称为注册号码)与注册用户开通的业务功能的对应关系。这样,通过将联系人号码与云220中记录的注册号码比对,才能发现目标联系人在社交应用A中开通的业务功能。
上述场景1满足条件-值查询,其中,条件是联系人号码,值是业务功能。以及,手机210并不希望云220获取到该联系人号码以及查询到的业务功能,符合PIR的适用场景。并且,云220希望手机210只能获取到联系人号码和注册号码的交集的数据,而不希望手机210获取到联系人号码和注册号码的交集之外的数据,符合SPI的适用场景。
在场景1中,使用本申请实施例提供的查询方法,结合PIR和PSI,在发现目标联系人开通的业务功能的同时,可以避免云220获取到联系人号码以及查询到的业务功能,以及避免手机210获取到云220中除联系人号码和注册号码的交集之外的数据。并且,还能提高查询效率。
场景2,疾病检索。即,查询疾病的治疗方案。
手机210在检测到用户检索某疾病的治疗方案的操作后,可以向云220发送治疗方案的查询请求,以查询疾病的治疗方案。在查询结束之后,手机210可以显示治疗方案。
在上述场景2中,手机210向云220发送的治疗方案的查询请求中,通常需要疾病名称。与此同时,云220中记录有疾病名称以及治疗方案的对应关系。这样,通过将疾病名称的比对,才能发现疾病名称对应的治疗方案。
上述场景2满足条件-值查询,其中,条件是疾病名称,值是治疗方案。以及,手机210并不希望云220获取到该疾病名称以及查询到的治疗方案,符合PIR的适用场景。并且,云220希望手机210只能获取到查询的疾病名称的数据,而不希望手机210获取到云220中存储的其他疾病名称及其治疗方案,符合SPI的适用场景。
在场景2中,使用本申请实施例提供的查询方法,结合PIR和PSI,在发现查询的疾病的治疗方案的同时,可以避免云220获取到查询的疾病名称以及查询到的治疗方案,以及避免手机210获取到云220中除查询的疾病名称之外的数据。并且,还能提高查询效率。
针对上述隐私查询的场景,可以采用PIR来解决。然而,现有主流PIR方案中,如基于OT的PIR、基于同态加密的PIR或者基于关键字(keyword)的PIR等,方案都较复杂,难以应用到第一设备是手机、平板等计算能力和通信资源都有限的移动终端中。具体的,现有各种主流的PIR方案依赖的技术及其缺点如下表2所示:
表2
如上表2中的第三列所示,在主流的PIR方案中,手机210和云220之间的通信开销(记为O1)与云220中数据集的数量(记为n,如注册号码及业务功能条数、疾病名称和治疗方案的条数)之间的关系如下:
基于OT的PIR中的通信开销O1包括公钥分发的通信开销O1(n)和私钥解密后的密文传输的通信开销O1(n)。其中,公钥分发是指:云220向手机210分发数据集中n条数据对应的n把公钥。私钥解密后的密文传输是指:云220使用n条数据对应的n把私钥解密后,向手机210传输n个解密后的密文。
基于同态加密的PIR和基于关键字的PIR中的通信开销O1均包括同态密文传输的通信开销O1(n)。其中,同态密文传输是指:手机210向云220传输通过同态加密得到的与n条数据对应的n个密文。
很显然,表2所示主流的PIR方案中,手机210和云220之间的通信开销O1与n强相关,n越大,则通信开销01越大。然而,手机210的网络资源是很有限的,当通信开销01增大到一定程度时,用户可能难以接受。
以及,如上表2中的第四列所示,在主流的PIR方案中,手机210中的计算开销O2与n之间的关系如下:
基于OT的PIR中的计算开销O2包括公钥加密的计算开销O2(m)和对称解密的计算开销O2(n)。其中,公钥加密是指:手机210使用云220下发的n把公钥中的m把对m个待查询条件(如联系人号码、疾病名称)加密。对称解密是指:手机210对云220下发的n个解密后的密文分别解密。
基于同态加密的PIR和基于关键字的PIR中的计算开销O2均包括同态密文的计算开销O2(n)。其中,同态加密是指:手机210通过同态加密得到与n条数据对应的n个密文。
很显然,表2所示主流的PIR方案中,手机210的计算开销O2与n强相关,n越大,则计算开销02越大。然而,手机210的计算资源是很有限的,当计算开销O2增加到一定程度时,可能会严重增大查询时延,影响查询的实时性。
基于上述问题,本申请实施例提供了一种查询方法,可以应用于包括手机210和云220的通信***。该方法采用PIR和PSI结合的方式,实现条件-值查询。参见图4,本申请实施例提供的查询方法包括:
S401、响应于查询事件,手机210向云220发送查询请求,查询请求中包括待查询条件x的第一密文。第一密文是手机210使用密钥a对待查询条件加密得到后得到的。示例性的,在场景1中,查询事件可以是查询到发现目标联系人的事件;在场景2中,查询事件可以是用户在搜索引擎中输入疾病名称的事件。这样,可以确保待查询条件不会被直接暴露给云220。
S402、响应于查询请求,云220使用密钥b对第一密文加密,得到第二密文。
S403、云220向手机210发送查询响应,查询响应中包括第二密文和目标条件的第三密文以及与目标条件(也可以称为匹配条件)关联的目标值(也可以称为结果信息)的第四密文。其中,目标条件是云220中与待查询条件可能相同的条件。第三密文是云220使用密钥b对目标条件加密后得到的,第四密文是云220使用目标条件的信息(特征信息)对目标值加密后得到的。这样,云220只需向手机210下发与待查询条件可能相同的目标条件及其对应的目标值的信息,而无需下发条件-值对应关系中的所有条件及其对应的值,减少了云220向手机210下发的数据量,节省手机210的通信开销。并且,目标条件和目标值都以密文的形式下发至手机210,不会直接暴露给手机210。
S404、响应于查询响应,手机210得到第一条件对应的目标值。其中,第一条件是目标条件中与待查询条件相同的条件。由于S403中云220使用目标条件的信息对目标值加密,那么,手机210在得到第一条件后,则自然可以使用第一条件的信息解密出对应的目标值,即得到查询结果,而无需再次通过手机210和云220之间的通信来进一步得到查询结果,可以减少手机210和云220之间的通信次数,进一步节省手机210的通信开销。
另外,由于云220下发的与待查询条件可能相同的目标条件及其对应的目标值的信息,而不是条件-值对应关系中的所有条件及其对应的值,则响应于查询响应,手机210无需对条件-值对应关系中的所有条件及其对应的值进行运算。从而可以节省计算开销。
应理解,手机210只是得到了与待查询条件相同的第一条件和第一条件对应的目标值,而无法获知目标条件中的其他条件,也无法得到其他条件对应的目标值,从而可以最大程度的实现对云220下发的数据的保护。
综上所述,采用本申请实施例,在条件-值查询的过程中,实现隐私保护的同时,还可以节省手机210的通信开销。
需要在此说明的是,上述图4的方案中,以云220向手机210返回的是与待查询条件可能相同的目标条件的第三密文以及目标条件对应的目标值的第四密文来说明。实际中,云220也可以向手机210返回条件-值对应关系中所有条件的第三密文以及各个条件对应的值的第四密文。这样,可以省去云220查找目标条件以及目标值的过程。但是同样要使用条件的特征信息对条件对应的值加密,确保第一设备和第二设备仅需一个来回的通信,并且,第一设备通过简单的匹配与解密运算,即可得到查询结果。这样,也可以简化条件-值查询的过程,降低查询时延,提高查询效率。
下面将结合附图对本申请实施例的实施方式进行详细描述。图5为本申请实施例提供的一种电子设备(如第一设备、第二设备)的硬件结构图。以电子设备是手机210为例,如图5所示,电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
充电管理模块140用于接收充电器的充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
电子设备可以通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备可以通过摄像模组193,ISP,视频编解码器,GPU,显示屏194以及应用处理器AP、神经网络处理器NPU等实现摄像功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。内部存储器121可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190可以包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备的接触和分离。
需要在此说明的是,上述图5所示电子设备的硬件结构仅为示例性的。实际中,电子设备可以具有比图5更多或者更少的结构。以电子设备是云220为例,则电子设备可能主要包括处理器和存储器。
本申请实施例提供的查询方法,可以在由具有上述硬件结构的第一设备和第二设备构成的通信***中完成。下文仍以第一设备是手机210,第二设备是云220为例,并结合前文场景1来详细说明本申请实施例。
在场景1中,待查询条件是联系人号码。云220中条件-值的对应关系(如前文表1所示)中,条件是注册号码,则目标条件也是注册号码(可以将作为目标条件的注册号码称为目标号码)。值是指示注册号码开通的业务功能的信息(简称为业务功能信息),则目标值也是业务功能信息(可以将作为目标值的业务功能信息称为目标功能信息)。
本申请实施例中,对业务功能信息的形态不作具体限定。以业务功能包括视频通话功能、语音通话功能、短信发送功能和文件传输功能为例,业务功能信息可以是文字描述,如业务功能信息为“视频通话功能:开通;语音通话功能:开通;短信发送功能:开通;文件传输功能:未开通”,指示视频通话功能、语音通话功能和短信发送功能都是开通的,而文件传输功能未开通。或者,业务功能信息可以是一串有顺序的字符串,字符串的每一个字符表示相应的业务功能开通情况。例如,字符串的4个字符从前到后依次表示视频通话功能、语音通话功能、短信发送功能和文件传输功能的开通情况,并且字符“1”表示开通,字符“0”表示未开通,那么,云220中可以记录如下表3所示的注册号码-业务功能信息的对应关系表:
表3
以号码y2对应的业务能力信息“1011”为例,其表示视频通话功能、短信发送功能和文件传输功能都开通了,而语音通话功能没有开通。
参见图6,本申请实施例提供的查询方法包括如下4个阶段:
阶段1,云220数据初始化阶段。
在阶段1中,云220使用密钥b对其注册号码-业务功能信息中的多个(如n个,n≥1,n为整数)注册号码加密,得到n条密文1,n条密文1和n个注册号码一一对应。
在阶段1中,云220使用注册号码的信息对注册号码对应的业务能力信息加密,得到n条密文2,n条密文2和n条业务能力信息一一对应。其中,注册号码的信息可以是在确定注册号码后、任一可以确定的信息。这样,后续(如阶段4中)手机210在确定注册号码(如目标号码)的具体值之后,则可以使用注册号码(如目标号码)的信息解密出业务能力信息(如目标能力信息)。
在对注册号码及其业务能力信息加密后,云220才能以密文的形式下发目标号码和目标功能信息,避免隐私泄露。
在一些实施例中,云220可以离线完成阶段1,以避免查询过程中的初始化运算,降低查询时延。
阶段2,手机210请求阶段。
在阶段2中,手机210响应于查询事件,可以使用密钥a对一个或多个(如m个,m≥1,m为整数)联系人号码加密,得到密文3(即第一密文),向云220发送查询请求,查询请求中携带密文3。示例性的,在阶段2中,手机210可以完成前文S401的步骤。
阶段3,云220查询响应阶段。
在阶段3中,云220可以响应来自手机210的查询请求,向手机210返回查询响应。示例性的,在阶段3中,云220可以完成前文S402和S403的步骤。
如前文S403所示,查询响应中包括第三密文以及第四密文。第三密文为与联系人号码可能相同的目标号码的密文1。第四密文为目标号码对应的目标功能信息的密文2。那么,在阶段3中,云220需要确定出第三密文和第四密文。基于此,在阶段1中,针对任一注册号码,云220还可以建立注册号码的哈希值特征(如记为哈希值特征1)以及密文1和密文2的对应关系(如记为对应关系1)。以及,在阶段2中,针对任一联系人号码,手机210还可以建立联系人号码的哈希值特征(如记为哈希值特征2)以及密文3的对应关系(如记为对应关系2)。这样,在阶段3中,云220可以将与哈希值特征2相等的哈希值特征1对应的密文1确定为第三密文,以及将与哈希值特征2相等的哈希值特征1对应的密文2确定为第四密文。即:联系人号码和注册号码的哈希值特征相同,则联系人号码和注册号码可能相同。
阶段4,手机210比对阶段。
在阶段4中,手机210基于云220下发的查询响应进行比对,得到目标功能信息。从而得到查询结果。示例性的,在阶段4中,手机210可以完成前文S404。
下面详细说明上述阶段1-阶段4的具体实现。
结合前文表3所示注册号码和业务功能信息的对应关系,参见图7,在阶段1中,云220可以完成下述步骤,实现对注册号码、业务功能信息的加密,以及建立对应关系1。
S701、云220对n个注册号码分别计算哈希值,得到n个哈希值。
云220可以使用哈希算法(Hash Algorithm,HA)计算每个注册号码的哈希值。例如,哈希算法包括信息-摘要算法4(Message-Digest Algoorithm 4,MD4)、信息-摘要算法5(Message-Digest Algoorithm 5,MD5)、安全散列算法256(Secure Hash Algorithm 256,SHA-256)等。
示例性的,云220分别计算号码y1、号码y2、号码y3……的哈希值,可以依次得到哈希值0002E11A0C0E…51A1518,000341AA6176…C300081,000C497DE639…4BB1298……
S702、云220对n个注册号码分别使用密钥b加密,得到n个密文1。
在一种具体的实现方式中,云220可以对n个注册号码的号码值本身加密,以实现对n个注册号码加密,图7中并未示出该实现方式。示例性的,云220可以对注册号码本身加密。需要说明的是,如果采用本实现方式,则S701和S702之间没有严格的先后顺序限制,而只需在S704之前完成S701和S702即可。
在另一种具体的实现方式中,云220可以对n个注册号码对应的n个哈希值加密,以实现对n个注册号码加密,图7示出的即为这种实现方式。示例性的,云220可以对注册号码的哈希值0002E11A0C0E…51A1518,000341AA6176…C300081,000C497DE639…4BB1298分别加密,依次得到密文y1b,y2b,y3b。
S703、云220对n个注册号码对应的n个业务功能信息,分别使用业务功能信息对应的注册号码的信息加密,得到n个密文2。
即,加密密钥是注册号码的信息,被加密对象是业务功能信息。
其中,注册号码的信息可以是在已知注册号码的情况下,任一可以得到的信息。在一种具体的实现方式中,注册号码的信息可以是注册号码的号码值本身或者注册号码的号码值的倒序值。在已知注册号码的情况下,则自然可以得到其号码值本身或者倒序值。在一种具体的实现方式中,注册号码的信息可以是注册号码的哈希值的部分比特位(第一比特位)或者全部比特位的值。在已知注册号码的情况下,则自然可以求得哈希值,得到其比特位或者全部比特位的值。下文主要以注册号码的信息是注册号码的哈希值中部分比特位(如末尾k1个比特位)的值为例来说明。k1≥2,k1为整数。
以k1=16为例,号码y1对应业务功能信息“1110”,云220可以使用号码y1的哈希值中末尾16个比特位的值“1518”对“1110”加密,得到密文z1;号码y2对应业务功能信息“1011”,云220可以使用号码y2的哈希值中末尾16个比特位的值“0081”对“1011”加密,得到密文z2;号码y3对应业务功能信息“1101”,云220可以使用号码y3的哈希值中末尾16个比特位的值“1298”对“1101”加密,得到密文z3……
本申请实施例中,对业务功能信息加密的算法不作具体限定。示例性的,对业务功能信息加密的算法可以是AES加密、异或加密等。以异或加密为例,则使用“1518”的二进制表示“0001 0101 0001 1000”对“1110”加密得到的密文z1为使用“0081”的二进制表示“1000 0001”对“1011”加密得到的密文z2为/>使用“1298”的二进制表示“0001 0010 1001 1000”对“1101”加密得到的密文z3为/>
需要在此说明的是,对业务功能信息加密的算法是对称加密算法。这样,手机210才能在确定出注册号码(如目标号码)后,通过构建注册号码(如目标号码)的信息,解密得到注册号码对应的业务功能信息(如目标功能信息)。
在S703的说明中,业务功能信息是以二进制的字符串表示的。实际中,业务功能信息也可能不是以二进制字符串的形式表示的。这种情况下,为了便于加密运算,在对业务功能信息加密前,云220可以先将业务功能信息转换为二进制表示,得到二进制表示结果,然后使用AES加密、异或加密等算法对二进制表示结果加密。
S704、云220建立每个注册号码的哈希值特征1和密文1,以及注册号码对应的业务功能信息的密文2的对应关系1。
其中,注册号码的哈希值特征1可以是注册号码的哈希值中前k2个比特位、中间k2个比特位或者末尾k2个比特位(统称为第三比特位)的值。k2≥2,k2为整数。下文主要以前k2个比特位为例来说明。
以k2=16为例,号码y1、号码y2、号码y3的哈希值依次为0002E11A0C0E…51A1518,000341AA6176…C300081,000C497DE639…4BB1298,则号码y1、号码y2、号码y3的哈希值特征1依次为0002、0003、000C。
为了便于说明,可以将同一哈希值特征1对应的密文1和密文2称为一个密文集。
在一些实施例中,在S704之前,云220可以按照前k2个比特位的可能取值来表示不同的分桶。例如,k2=16,即按照前16个比特位的可能取值来表示不同分桶,则可以得到分桶0x 0000、分桶0x 0001……分桶0x ffff。其中,0x表示16进制。应理解,为了简化,下文和图中都会省略掉0x。
针对任一注册号码(如记为号码yj),经过前文S701,处理得到了号码yj的哈希值;以及经过前文S702,处理得到了号码yj的密文1。在S703中,处理得到了号码yj对应的业务功能信息的密文2。那么,在S704中,云220可以将号码yj的密文1和号码yj对应的业务功能信息的密文2划分到号码yj的哈希值特征1表示的分桶中。从而建立了号码yj的哈希值特征1和密文1,以及号码yj对应的业务功能信息的密文2的对应关系1。
仍以k2=16为例,号码y1的哈希值特征1为0002,密文1为y1b,号码y1对应的业务功能信息“1110”的密文2为z1,则可以将y1b和z1作为一组数据划分到分桶0002中;号码y2的哈希值特征1为0003,密文1为y2b,号码y2对应的业务功能信息的密文2为z2,则可以将y2b和z2作为一组数据划分到分桶0003中;号码y3的哈希值特征1为000C,密文1为y3b,号码y3对应的业务功能信息的密文2为z3,则可以将y3b和z3作为一组数据划分到分桶000C中。从而可以得到如下表4所示的对应关系1:
表4
至此,云220可以将n个注册号码的哈希值特征1、密文1以及密文3的对应关系1,方便在阶段3中确定出第三密文和第四密文。
需要说明的是,上述表4所示的对应关系1中,同一哈希值特征1表示的分桶仅对应一组密文1和密文2。例如,哈希值特征1“0002”仅对应y1b和z1。而实际中,若干注册号码的哈希值特征1可能相同,即若干注册号码的密文1以及密文2可能与同一哈希值特征1表示的分桶对应。示例性的,对应关系1如下表5所示:
表5
上表5中,哈希值特征1“0002”表示的分桶与y1b和z1、y5b和z5、y7b和z7、y8b和z8共4组密文1和密文2对应。哈希值特征1“0003”与y2b和z2、y4b和z4共2组密文1和密文2对应。哈希值特征1“000C”与y3b和z3、y6b和z6共2组密文1和密文2对应。
结合如下表6所示手机210中的联系人号码为例,参见图8,在阶段2中,手机210可以完成下述步骤,实现对注册号码的加密,建立对应关系2,以及发送查询请求。
表6
联系人号码 |
号码x1 |
号码x2 |
S801、响应于查询事件,手机210对m个联系人号码分别计算哈希值,得到m个哈希值。
示例性的,对号码x1和号码x2分别求哈希值,得到哈希值0002936ED794…8921B4B和0002E11A0C0E…51A1518。
关于S801的具体实现,可参见前文S701的相关说明,此处不再赘述。需要说明的是,为了使联系人号码的哈希值和注册号码的哈希值之间具有可比性,在S801中,手机210采用的哈希算法与前文S701中云220采用的哈希算法相同。进一步的,为了在接收到查询事件后,可以快速得到查询结果,云220和手机210都可以采用运算速度较快的哈希算法来计算哈希值,如MD5、SHA256等。
S802、手机210对m个联系人号码使用密钥a加密,得到m个密文3。
与前文S702中类似的:在一种具体的实现方式中,手机210可以对m个联系人号码本身加密,以实现对m个联系人号码加密,图8并未示出这种实现方式。示例性的,手机210可以对号码x1本身加密。需要说明的是,如果采用本实现方式,则S801和S802之间没有严格的先后顺序限制,而只需在S803之前完成S801和S802即可。在另一种具体的实现方式中,手机210也可以对m个联系人号码对应的m个哈希值加密,以实现对m个联系人号码加密,图8示出的即为这种实现方式。示例性的,手机210可以对号码x1的哈希值0002936ED794…8921B4B加密,得到密文x1a;以及,对号码x2的哈希值0002E11A0C0E…51A1518加密,得到密文x2a。
需要注意的是,为了保证云220中n个注册号码的密文1和手机210中m个联系人号码的密文3具有可比较性,如果S702中采用对注册号码本身进行加密的方式,则S802中也应采用对联系人号码本身进行加密的方式。如果S702中采用对注册号码的哈希值进行加密的方式,则S802中也应采用对联系人号码的哈希值进行加密的方式。
S803、手机210建立每个联系人号码的哈希值特征2和密文3的对应关系2。
与前文注册号码的哈希值特征1类似:联系人号码的哈希值特征2可以是联系人号码的哈希值中前k2个比特位、中间k2个比特位或者末尾k2个比特位的值。
以k2=16为例,号码x1、号码x2的哈希值依次为0002936ED794…8921B4B和0002E11A0C0E…51A1518,则号码x1、号码x2的哈希值特征2均为0002。
针对任一联系人号码(如记为号码xi),经过前文S801,处理得到了号码xi的哈希值;以及经过前文S802,处理得到了号码xi的密文3(如记为xia)。那么,在S803中,手机210可以建立号码xi的哈希值特征2和密文xia的对应关系,得到对应关系2。
仍以k2=16为例,号码x1的哈希值特征2为0002,密文3为x1a;号码x2的哈希值特征2为0002,密文3为x2a,则可以得到如下表7所示的对应关系2:
表7
S804、手机210向云220发送查询请求,查询请求中包括对应关系2。
示例性的,手机210可以通过安全加密的方式,如https方式向云220发送查询请求,以保证信息安全。
结合前文表5所示的对应关系1和表7所示的对应关系2,参见图9,在阶段3中,云220可以完成下述步骤,实现确定第三密文和第四密文,并向手机210返回包括第三密文和第四密文的查询响应。而不会将所有n个注册号码的密文1以及对应的业务功能信息的密文2都下发至手机210,从而节省通信开销。
参见图9,在阶段3中,云220可以完成下述步骤:
S901、云220使用密钥b对对应关系2中的m条密文3二次加密,得到m条密文4。
示例性的,对表7所示的对应关系2中的2条密文3二次加密,得到如下表8所示的2条密文4:
表8
密文4 |
x1ab |
x2ab |
应理解,m条密文4与m个联系人号码一一对应。
S902、云220向手机210下发查询响应,查询响应中包括:对应关系1中目标哈希值特征对应的密文1和密文2,以及m条密文4。目标哈希值特征为对应关系2中的哈希值特征2。
示例性的,哈希值特征2为表7中的“0002”,则目标哈希值特征为“0002”。在表5中,目标哈希值特征对应的密文1和密文2如下表9所示:
表9
应理解,对应关系1中目标哈希值特征对应的密文1即为:对应关系1中与哈希值特征2相同的哈希值特征1对应的密文1。也就是与联系人号码可能相同的注册号码的第三密文。以及,对应关系1中目标哈希值特征对应的密文2即为:对应关系1中与哈希值特征2相同的哈希值特征1对应的密文2。也就是与联系人号码可能相同的注册号码对应的业务能力信息的第四密文。可见,通过S902,可以实现将第三密文和第四密文下发至手机210。
其中,云220也可以通过安全加密的方式,如https方式向手机210下发对应关系1中目标哈希值特征对应的密文1和密文2,以及m条密文4,以保证信息安全。
很显然,S902中仅需下发对应关系1中目标哈希值特征的密文1和密文2,而无需下发所有n个注册号码对应的n个密文1和密文2。这样,可以减少云220向手机210下发的数据量,缩减通信开销。
至此,需要说明的是:k2的取值不同,则缩减通信开销的程度也不同。其中,k2的取值越大,缩减通信开销的程度越大。下面将详细说明k2的取值对通信开销的影响:
k2的取值越大,则分桶越精细。那么,在阶段1中,将云220中的注册号码的密文1以及对应的密文2划分到分桶中时,可以将密文分散到更多的分桶中,使得密文分桶更精细。
示例性的,云220中的注册号码及其哈希值、密文1和密文2如下表10所示:
表10
注册号码 | 哈希值 | 密文1 | 密文2 |
号码y1 | 0002E11A0C0E…51A1518 | y1b | z1 |
号码y2 | 000341AA6176…C300081 | y2b | z2 |
号码y3 | 000C497DE639…4BB1298 | y3b | z3 |
号码y4 | 0002DF235902…D6B71BD | y4b | z4 |
以上表10中的数据为例,参见图10,下面比较k2=8和k2=16时,上述表10中4条注册号码所属的分桶:
k2=8,则可以包括分桶00、01……ff,共256个分桶;而k2=16,则可以得到分桶0000、0001……ffff,共65536个分桶。很显然,与k2=8相比:k2=16时,可以划分得到更多数量的分桶,分桶更精细。
上述表10中4个哈希值的前8个比特位都是00,则在阶段1中,如果采用k2=8的分桶,上述表10中的4组密文1和密文2,即y1b和z1、y2b和z2、y3b和z3以及y4b和z4都会被划分到分桶00中。即,分桶00中包括4个密文。上述表10中4个哈希值的前16个比特位依次是0002、0003、000C以及0002,则在阶段1中,如果采用k2=16的分桶,上述表10中的4组密文1和密文2,即y1b和z1、y2b和z2、y3b和z3以及y4b和z4会依次被划分到分桶0002、分桶0003、分桶000C和分桶0002中。即,4组密文1和密文2分散划分到3个分桶中,其中分桶0002中包括2组密文1和密文2,分桶0003中包括1组密文1和密文2,分桶000C中包括1组密文1和密文2。很显然,与k2=8相比:k2=16可以使得密文分桶更精细。
相应的,在阶段3中,云220确定出的目标哈希值特征对应的密文1和密文2更少。仍然沿用图10的示例,并且手机210中的联系人号码及其哈希值和密文3如下表11所示:
表11
k2=8,则上述表11中哈希值0002936ED794…8921B4B的哈希值特征2为00,那么,在阶段3中,云220可以确定目标哈希值特征为00,从而会将分桶00中的密文1和密文2,如y1b和z1、y2b和z2、y3b和z3以及y4b和z4下发给手机210。k2=16,则上表11中哈希值0002936ED794…8921B4B的哈希值特征2为0002,那么,在阶段3中,云220可以确定目标哈希值特征为0002,从而会将分桶0002中的密文1和密文2,即y1b和z1,以及y4b和z4下发给手机210。很显然,与k2=8相比:k2=16时,云220向手机210下发的密文1和密文2会更少,从而可以更大程度的减小通信开销。
因此,为了更大程度减小通信开销,可以设置k2为更大的值。
然而,k2的取值越大,则哈希值的更多比特位将用于表示分桶,即哈希值中更多的比特位将暴露。相应的,剩余未暴露的比特位的数量则更少,则隐私保护的程度越低。
以哈希值一共有128个比特位为例,如果k2=16,那么联系人号码的哈希值的前16位将作为对应关系2中的哈希值前缀特征2发送给云220,即暴露给云220。剩余未暴露的哈希值位数则有128-16=112个比特位。如果k2=64,那么联系人号码的哈希值的前64位将作为对应关系2中的哈希值特征2发送给云220,即暴露给云220。剩余未暴露的哈希值位数则仅有128-64=64个比特位。很显然,与k2=16相比:k2=64时,未暴露的比特位更少,云220预测出联系人号码的可能性更高,隐私保护的程度更低。
综上所述,在实际实施时,可以综合对通信开销的需求和对隐私保护程度的需求,来设置合适的k2值。
在阶段4中,手机210基于云220下发的查询响应进行比对,得到目标功能信息。从而得到查询结果。下面,结合前文表8所示的密文4以及表9所示目标哈希值特征的密文1和密文2,来说明阶段4的具体实现。
在一些实施例中,手机210可以先对目标哈希值特征对应的密文1加密后,再与密文4比对,从而得到查询结果。具体的,参见图11,在阶段4中,手机210可以完成下述步骤:
S1101、手机210使用密钥a对目标哈希值特征的各个密文1二次加密,得到多个(记为r个,r≥1,r为正数)密文5。
示例性的,手机210对表9所示的4个密文1加密,得到如下表12所示4个密文1及其加密后的4个密文5:
表12
密文1 | 密文5 |
y1b | y1ba |
y5b | y5ba |
y7b | y7ba |
y8b | y8ba |
S1102、手机210将m个密文4和r个密文5比对,得到与联系人号码相同的注册号码。
应理解,密文4是由手机210对联系人号码使用密钥a加密后、再由云220使用密钥b加密得到的。而密文5是由云220对注册号码使用密钥b密文后、再由手机210使用密钥a加密得到的。那么,依据可交换的加密算法的原理一(具体可参见前文关于“PSI加密算法”的术语介绍)可知,如果联系人号码xi和注册号码yj相同,则联系人号码xi的密文4xiab与注册号码yj的密文5yjba相同。
因此,手机将m个密文4和r个密文5比对,可以查找到与m个联系人号码中的各个联系人号码相同的注册号码。示例性的,上表8中的x1ab等于上表12中的y7ba,则表明联系人号码中的号码x1等于注册号码中的号码y7;上表8中的x2ab等于上表12中的y1ba,则表明联系人号码中的号码x2等于注册号码中的号码y1。
S1103、手机210根据联系人号码解密出密文2中的业务能力信息。
由于注册号码yj对应的业务能力信息的密文2是由注册号码yj的信息加密得到的,则手机210在得到联系人号码xi与注册号码yj相同之后,可以将联系人号码xi的信息作为密钥,对注册号码yj对应的业务功能信息的密文2解密,得到注册号码yj对应的业务能力信息。
以联系人号码xi的信息是联系人号码xi的哈希值中末尾16个比特位的值为例,手机210在得到联系人号码中的号码x1等于注册号码中的号码y7之后,可以使用号码x1的哈希值中末尾16个比特位的值,如“1B4B”,解密号码y7对应的业务能力信息的密文2,如z7,得到解密号码y7对应的业务能力信息,如“1111”。手机210在得到联系人号码中的号码x2等于注册号码中的号码y1之后,可以使用号码x2的哈希值中末尾16个比特位的值,如“1518”,解密号码y1对应的业务能力信息的密文2,如z1,得到解密号码y1对应的业务能力信息,如“1110”。
在另一些实施例中,手机210可以先对m个密文4解密后,再与目标哈希值特征的密文1比对,从而得到查询结果。具体的,参见图12,在阶段4中,手机210可以完成下述步骤:
S1201、手机210使用密钥a对m个密文4解密,得到m个密文6(第五密文)。
其中,m个密文6与m个联系人号码一一对应,
示例性的,手机210对表8所示的2个密文4解密,得到如下表13所示2个密文4及其解密后的2个密文6:
表13
密文4 | 密文6 |
x1ab | x1b |
x2ab | x2b |
需要说明的是,手机210中联系人号码的数量(即m)通常是较少的。因此,对m个联系人号码对应的m个密文解密,其运算量也很少。这样,可以节省手机210的运算资源。
S1202、手机210将m个密文6和r个密文1比对,得到与联系人号码相同的注册号码。
应理解,密文6是由手机210对联系人号码使用密钥a加密后、再由云220使用密钥b加密、最后由手机210使用密钥a解密得到的。那么,依据可交换的加密算法的原理一(具体可参见前文关于“PSI加密算法”的术语介绍)可知,密文6可以视为是使用密钥b加密得到的。与此同时,密文1是由云220对注册号码使用密钥b加密得到的。那么,如果联系人号码xi和注册号码yj相同,则联系人号码xi的密文6xib与注册号码yj的密文1yjb相同。
因此,手机将m个密文6和r个密文1比对,可以查找到与m个联系人号码中的各个联系人号码相同的注册号码。示例性的,上表13中的x1b等于上表9中的y7b,则表明联系人码中的号码x1等于注册号码中的号码y7;上表13中的x2b等于上表9中的y1b,则表明联系人号码中的号码x2等于注册号码中的号码y1。
S1203、手机210根据联系人号码解密出密文2中的业务能力信息。
关于S1203的具体实现,可以参见前文S1103的说明,此处不再赘述。
采用本实施例,手机210在经过少量的解密运算后,即可进行密文比对,得到查询结果。实际中,查询请求端为C端(如手机210)时,其算力的局限性往往很大。由此可见,采用本实施例,可以明显降低因查询请求端的算力不足而导致的查询时延。下文中,将主要这种实施例来说明。
应注意,手机210可以获取到目标哈希值特征对应的密文1和密文2,而目标哈希值特征与哈希值特征2相同。那么,如果加密得到密文2的过程中用到的注册号码的信息,是与哈希值特征2相同的特征(如都是哈希值中前k2个比特位的值),则手机210在获取到密文2之后,可以依据哈希值特征2解密得到各个密文2对应的业务能力信息。但是,实际中,云220并不希望手机210获取到除联系人号码之外的号码对应的业务能力信息。例如,联系人号码中的号码x1与注册号码中的号码y7相同,以及联系人号码中的号码x2与注册号码中的号码y1相同,云220也只想要手机210解密出表9中注册号码y7对应的业务能力信息的密文2,即z7,以及注册号码y1对应的业务能力信息的密文2,即z1,而并不希望手机210解密出上表9中其他密文2,如密文z5和z8。
因此,为了云220中的信息安全,云220加密业务能力信息时用到的注册号码的信息,与哈希值特征1和2中用到的比特位是不同的。例如,加密业务能力信息时使用注册号码的哈希值中末尾k1个比特位的值,而哈希值特征1和哈希值特征2均为前k2个比特位的值。
前文阶段3-阶段4,以目标哈希值特征仅有1个(如“0002”)为例来说明,在目标哈希值特征仅有1个时,则需要将各个联系人号码的密文4均与该哈希值特征对应的密文1比对,以发现与联系人号码相同的注册号码。
而在实际中,手机210中的m个联系人号码的哈希值可能涉及多个哈希值特征2。那么,在阶段3中,目标哈希值特征也涉及多个。
示例性的,在前文表7所示对应关系2的基础上,如下表14所示,对应关系2中还包括哈希值特征0003:
表14
即,手机210中m个联系人号码的哈希值特征2涉及0002和0003,则目标哈希值特征也包括0002和0003。
这种情况下,为了减少比对的工作量,在阶段3中,手机210可以建立各个密文4和目标哈希值特征中的密文1和密文2的对应关系3。然后,在阶段4中,针对任一密文4(如xiab),手机210仅需依据对应关系3,将xiab与对应的目标哈希值特征中的密文1比对,从而减小比对的工作量,提高查询效率。
结合前文表5所示的对应关系1和表14所示的对应关系2,参见图13,在阶段3中,云220可以完成下述步骤:
S1301、云220使用密钥b对对应关系2中的m条密文3二次加密,得到m条密文4。具体可参见前文S901的说明。
示例性的,对表14所示的对应关系2中的3条密文3二次加密,得到如下表15所示的3条密文4:
表15
S1302、云220建立各个密文4和对应关系1中目标哈希值特征对应的密文1和密文2的对应关系3,目标哈希值特征为对应关系2中的哈希值特征2。
其中,对应关系3包括对应关系1中哈希值特征1a对应的密文3的密文4,和对应关系2中哈希值特征2b对应的密文1和密文2之间的对应关系。其中,哈希值特征1a和哈希值特征2b相等。
示例性的,表5所示的对应关系1和表14所示的对应关系2中,都包括哈希值特征0002和0003,即哈希值特征1a和哈希值特征2b为0002,以及哈希值特征1a和哈希值特征2b为0002。那么,手机210可以建立如下表16A所示的对应关系3:
表16A
上表16A中,x1ab和x2ab是对应关系2中哈希值特征1a“0002”对应的密文3的密文4,y1b和z1、y5b和z5、y7b和z7以及y8b和z8是对应关系1中哈希值特征2b“0002”对应的密文1和密文2。以及,x3ab是对应关系2中哈希值特征1a“0003”对应的密文3的密文4,y2b和z2以及y4b和z4是对应关系1中哈希值特征2b“0003”对应的密文1和密文2。
S1303、云220向手机210下发查询请求,查询请求中包括对应关系3。
示例性的,云220向手机210下发上表16A所示的对应关系3。
结合前文表16A所示的对应关系3,参见图14,在阶段4中,手机210可以完成下述步骤:
S1401、手机210使用密钥a对对应关系3中的m个密文4解密,得到m个密文6。具体可参见前文S1201的说明。
示例性的,手机210对表16A所示的3个密文4解密,得到如下表16B所示3个密文4及其解密后的3个密文6:
表16B
密文4 | 密文6 |
x1ab | x1b |
x2ab | x2b |
x3ab | x3b |
S1402、手机210将各个密文6与对应关系3中该密文6的密文4所对应的密文1比对,得到与联系人号码相同的注册号码。
以上表16B中的密文6“x2b”为例,则手机210仅需x2b与表16A所示的对应关系3中x2ab(即x2b的密文4)对应的密文1,如y1b、y5b、y7b和y8b比对,而无需将其x2b与表16A中的y2b和y4b比对。
以上表16B中的密文6“x3b”为例,则手机210仅需x3b与表16A所示的对应关系3中x3ab(即x3b的密文4)对应的密文1,如y2b和y4b比对,而无需将其x3b与表16A中的y1b、y5b、y7b和y8b比对。
关于S1402中未详细说明的部分,可参见前文S1202的说明,此处不再赘述。
S1403、手机210根据联系人号码解密出密文2中的业务能力信息。具体可以参见前文S1103的说明,此处不再赘述。
进一步,在阶段1中,云220还可以将密文1进行压缩。后续阶段3中,云220可以将压缩后的结果下发至手机210。应理解,与压缩前相比:压缩后的结果的数据量更小。从而可以进一步减少云220向手机210传输的数据量,缩减通信开销。
结合前文表5所示的对应关系1和表7所示的对应关系2,参见图15,在阶段1中,S704进一步包括:
S1501、云220对每个注册号码的密文1压缩,得到密文1压缩后的结果。
示例性的,云220对表5中的如下密文1:y1b、y2b、y3b、y4b、y5b、y6b、y7b和y8b分别压缩,依次得到密文1压缩后的结果y1b’、y2b’、y3b’、y4b’、y5b’、y6b’、y7b’和y8b’。
在一种具体的实现方式中,云220可以采用指纹压缩的方式实现对密文1的压缩。其中,指纹压缩是指使用密文的“指纹”来表示密文,从而实现对密文的压缩。应理解,此处的“指纹”代表可以唯一表示密文的信息,而并不是常规意义上的指纹。
示例性的,指纹压缩的具体实现可以是:云220使用密文1的一部分比特位(第二比特位)作为密文压缩后的结果。参见图16所示的压缩方式一,密文1包括DC9CA4E4602…204B3、60E9A9315AB…E4F5E、294DE95CBCD…C1D91以及A61DF617262…79A1F,云220可以取这些密文1的前32个比特位,依次得到压缩后的结果为DC9CA4E4、60E9A931、294DE95C以及A61DF617。
又示例性的,指纹压缩的具体实现可以是:云220对密文1求哈希值,然后取哈希值的部分比特位(第二比特位)作为密文压缩后的结果。参见图16所示的压缩方式二,密文1包括DC9CA4E4602…204B3、60E9A9315AB…E4F5E、294DE95CBCD…C1D91以及A61DF617262…79A1F,云220可以对这些密文1分别求哈希,依次得到哈希值51A15180…002E11A0C0E、C3000810…00341AA6176、4BB12980…00C497DE639和D6B71BD0…002DF235902。然后,云220取这些哈希值的前32个比特位,依次得到压缩后的结果51A15180、C3000810、4BB12980以及D6B71BD0。
S1502、云220建立每个注册号码的哈希值特征1和密文1压缩后的结果,以及注册号码对应的业务功能信息的密文2的对应关系1。
以表5中的如下密文1:y1b、y2b、y3b、y4b、y5b、y6b、y7b和y8b,压缩后的结果依次为y1b’、y2b’、y3b’、y4b’、y5b’、y6b’、y7b’和y8b’为例,则前文表5所示的对应关系1,可以更新为如下表17所示的对应关系1:
表17
以及,阶段3中的S902替换为S1503:
S1503、云220向手机210发送下发查询响应,查询响应中包括:对应关系1中目标哈希值特征对应的密文1压缩后的结果和密文2,以及m条密文4。目标哈希值特征为对应关系2中的哈希值特征2。
沿用表17的举例,目标哈希值特征是“0002”,则目标哈希值特征对应的密文1压缩后的结果和密文2如下表18所示:
表18
密文1压缩后的结果 | 密文2 |
y1b’ | z1 |
y5b’ | z5 |
y7b’ | z7 |
y8b’ | z8 |
本实施例中,由于云220下发的是对密文1压缩后的结果,那么,在阶段4中,手机210在解密得到m个密文6之后,即S1201之后,还包括S1504,以使数据具有可比性:
S1504、手机210对m个密文6分别压缩,得到m个密文6压缩后的结果。
应理解,S1504中采用的压缩算法与S1501中采用的压缩算法相同。
以及,阶段4中的S1202替换为S1505:
S1505、手机210将m个密文6压缩后的结果和r个密文1压缩后的结果比对,得到与联系人号码相同的注册号码。
如果联系人号码xi对应的密文6压缩后的结果(如记为xib’)与注册号码yj的密文1压缩后的结果(如记为yjb’)相同,则联系人号码xi和注册号码yj相同。
由于手机210仅将压缩后的结果比对,而并不需要还原出压缩前的密文。因此,云220或者手机210在压缩时,可以采用不可逆的压缩算法,以更大的减小数据量。
本申请实施例还提供了一种电子设备,该电子设备可以包括:存储器和一个或多个处理器。存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种芯片***,如图17所示,该芯片***1700包括至少一个处理器1701和至少一个接口电路1702。处理器1701和接口电路1702可通过线路互联。例如,接口电路1702可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1702可用于向其它装置(例如处理器1701)发送信号。示例性的,接口电路1702可读取存储器中存储的指令,并将该指令发送给处理器1701。当所述指令被处理器1701执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片***还可以包含其他分立器件,本申请实施例对此不作具体限定。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中手机执行的各个功能或者步骤。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述方法实施例中手机执行的各个功能或者步骤。
其中,本实施例提供的电子设备、通信***、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
Claims (17)
1.一种查询方法,其特征在于,所述方法包括:
响应于查询事件,第一设备向第二设备发送查询请求,所述查询请求中包括使用第一密钥加密待查询条件得到的第一密文;
所述第一设备接收来自所述第二设备的查询响应,所述查询响应中包括第二密文和第一密文集,所述第二密文是使用第二密钥对所述第一密文加密得到的,所述第一密文集包括至少一个密文组,一个密文组对应一条匹配条件以及所述匹配条件的结果信息,一个密文组中包括使用所述第二密钥对所述匹配条件加密后得到的第三密文和使用所述匹配条件的特征信息对所述结果信息加密后得到的第四密文;
所述第一设备得到所述待查询条件的结果信息,所述待查询条件的结果信息是至少一条匹配条件的结果信息中的一个。
2.根据权利要求1所述的方法,其特征在于,所述第一设备得到所述待查询条件的结果信息,包括:
所述第一设备使用所述待查询条件的特征信息,解密所述第一密文集中目标密文对应的第四密文,得到所述待查询条件的结果信息;
其中,所述目标密文为所述第一密文集的第三密文中,与第五密文相等的密文,所述第五密文是使用所述第一密钥对所述第二密文解密后得到的密文。
3.根据权利要求1或2所述的方法,其特征在于,所述特征信息包括对应数据的哈希值中第一比特征的信息。
4.根据权利要求3所述的方法,其特征在于,所述第一比特位是所述哈希值中从低至高的一个或多个比特位。
5.根据权利要求2-4中任一项所述的方法,其特征在于,所述第一密文集中的第三密文是使用所述第二密钥对所述匹配条件加密、再压缩得到的压缩密文,则所述第五密文是使用所述第一密钥对所述第二密文解密、再压缩得到的压缩密文。
6.根据权利要求5所述的方法,其特征在于,压缩后的密文包括压缩前的密文中第二比特位的信息;或者,压缩后的密文中包括压缩前的密文的哈希值中第二比特位的信息。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述第一密文集为多个密文集中,哈希特征与所述待查询条件的哈希特征相同的密文集;
一个密文集包括至少一个密文组,一个密文组对应一条匹配条件以及所述匹配条件的结果信息,所述至少一个密文组对应的至少一条匹配条件的哈希特征相同,一个密文集的哈希特征为所述至少一条匹配条件的哈希特征。
8.根据权利要求7所述的方法,其特征在于,所述哈希特征包括对应数据的哈希值中第三比特位的信息。
9.根据权利要求7或8所述的方法,其特征在于,所述查询请求中还包括所述待查询条件的哈希特征。
10.一种查询方法,其特征在于,所述方法包括:
第二设备接收来自第一设备的查询请求,所述查询请求中包括使用第一密钥加密待查询条件得到的第一密文;
所述第二设备向所述第一设备发送查询响应,所述查询响应中包括第二密文和第一密文集,所述第二密文是使用第二密钥对所述第一密文加密得到的,所述第一密文集包括至少一个密文组,一个密文组对应一条匹配条件以及所述匹配条件的结果信息,一个密文组中包括使用所述第二密钥对所述匹配条件加密后得到的第三密文和使用所述匹配条件的特征信息对所述结果信息加密后得到的第四密文;
其中,所述查询响应用于所述第一设备得到所述待查询条件的结果信息,所述待查询条件的结果信息是至少一条匹配条件的结果信息中的一个。
11.根据权利要求10所述的方法,其特征在于,所述查询请求中还包括所述待查询条件的哈希特征;
在所述第二设备向所述第一设备发送查询响应之前,所述方法还包括:
所述第二设备从多个密文集中查询哈希特征与所述待查询条件的哈希特征相等的所述第一密文集;
其中,一个密文集包括至少一个密文组,一个密文组对应一条匹配条件以及所述匹配条件的结果信息,所述至少一个密文组对应的至少一条匹配条件的哈希特征相同,一个密文集的哈希特征为所述至少一条匹配条件的哈希特征。
12.根据权利要求10或11所述的方法,其特征在于,所述第三密文是使用所述第二密钥对所述匹配条件加密、再压缩后得到的。
13.一种查询方法,其特征在于,所述方法包括:
响应于查询事件,第一设备向第二设备发送查询请求,所述查询请求中包括使用第一密钥加密待查询条件得到的第一密文;
响应于所述查询请求,所述第二设备向所述第一设备发送查询响应,所述查询响应中包括第二密文和第一密文集,所述第二密文是使用第二密钥对所述第一密文加密得到的,所述第一密文集包括至少一个密文组,一个密文组对应一条匹配条件以及所述匹配条件的结果信息,一个密文组中包括使用所述第二密钥对所述匹配条件加密后得到的第三密文和使用所述匹配条件的特征信息对所述结果信息加密后得到的第四密文;
响应于所述查询响应,所述第一设备得到所述待查询条件的结果信息,所述待查询条件的结果信息是至少一条匹配条件的结果信息中的一个。
14.一种电子设备,其特征在于,所述设备包括存储器和处理器,所述存储器和处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令;
其中,所述电子设备为第一设备,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-13中任一项所述的方法中,所述第一设备执行的步骤;
或者,所述电子设备为第二设备,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-13中任一项所述的方法中,所述第二设备执行的步骤。
15.一种通信***,其特征在于,所述通信***包括权利要求1-13中任一项所述的第一设备和第二设备。
16.一种计算机可读存储介质,其特征在于,包括计算机指令;
其中,当所述计算机指令在第一设备上运行时,使得所述第一设备执行如权利要求1-13中任一项所述的方法中,所述第一设备执行的步骤;
或者,当所述计算机指令在第二设备上运行时,使得所述第二设备执行如权利要求1-13中任一项所述的方法中,所述第二设备执行的步骤。
17.一种芯片***,其特征在于,所述芯片***应用于包括处理器和存储器的电子设备,所述芯片***包括一个或多个接口电路和一个或多个处理器,所述接口电路和所述处理器通过线路互联,所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;
其中,所述电子设备为第一设备,当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-13中任一项所述的方法中,所述第一设备执行的步骤;
或者,所述电子设备为第二设备,当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-13中任一项所述的方法中,所述第二设备执行的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310564211.7A CN117729534A (zh) | 2023-05-17 | 2023-05-17 | 一种查询方法、电子设备及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310564211.7A CN117729534A (zh) | 2023-05-17 | 2023-05-17 | 一种查询方法、电子设备及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117729534A true CN117729534A (zh) | 2024-03-19 |
Family
ID=90205821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310564211.7A Pending CN117729534A (zh) | 2023-05-17 | 2023-05-17 | 一种查询方法、电子设备及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117729534A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200403781A1 (en) * | 2019-06-18 | 2020-12-24 | International Business Machines Corporation | Compressible (F)HE with Applications to PIR |
CN113672949A (zh) * | 2021-07-27 | 2021-11-19 | 美库尔商务信息咨询(上海)有限公司 | 用于广告多方隐私保护的数据传输方法及*** |
CN114329599A (zh) * | 2021-12-30 | 2022-04-12 | 北京瑞莱智慧科技有限公司 | 一种数据查询方法、装置及存储介质 |
CN115640601A (zh) * | 2022-09-30 | 2023-01-24 | 蚂蚁区块链科技(上海)有限公司 | 一种实现隐私信息检索的方法、***、服务端和客户端 |
CN115664723A (zh) * | 2022-09-30 | 2023-01-31 | 蚂蚁区块链科技(上海)有限公司 | 一种实现隐私信息检索的方法、***、服务器和客户端 |
-
2023
- 2023-05-17 CN CN202310564211.7A patent/CN117729534A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200403781A1 (en) * | 2019-06-18 | 2020-12-24 | International Business Machines Corporation | Compressible (F)HE with Applications to PIR |
CN113672949A (zh) * | 2021-07-27 | 2021-11-19 | 美库尔商务信息咨询(上海)有限公司 | 用于广告多方隐私保护的数据传输方法及*** |
CN114329599A (zh) * | 2021-12-30 | 2022-04-12 | 北京瑞莱智慧科技有限公司 | 一种数据查询方法、装置及存储介质 |
CN115640601A (zh) * | 2022-09-30 | 2023-01-24 | 蚂蚁区块链科技(上海)有限公司 | 一种实现隐私信息检索的方法、***、服务端和客户端 |
CN115664723A (zh) * | 2022-09-30 | 2023-01-31 | 蚂蚁区块链科技(上海)有限公司 | 一种实现隐私信息检索的方法、***、服务器和客户端 |
Non-Patent Citations (1)
Title |
---|
祁堃;黄刘生;罗永龙;荆巍巍;: "一种高效的私有信息检索方案", 小型微型计算机***, no. 07, 15 July 2007 (2007-07-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106779636B (zh) | 一种基于手机耳机接口的区块链数字货币钱包 | |
US11611863B2 (en) | Method and apparatus for low energy discovery | |
WO2018000317A1 (en) | Secure data processing | |
CN110545190B (zh) | 一种签名处理的方法、相关装置以及设备 | |
CN107196926B (zh) | 一种云外包隐私集合比较方法与装置 | |
CN111130803B (zh) | 数字签名的方法、***及装置 | |
CN104378801A (zh) | 接入无线网络的方法及装置 | |
US10791124B2 (en) | Method and terminal device for encrypting message | |
CN105049213A (zh) | 文件签名方法及装置 | |
CN113259106B (zh) | 一种数据处理方法和*** | |
CN107767281B (zh) | 一种基于移动社交网络二度人脉的交友匹配隐私保护方法及*** | |
CN115051791B (zh) | 一种基于密钥协商的高效三方隐私集合求交方法及*** | |
WO2010023506A1 (en) | Methods, apparatuses, computer program products, and systems for providing secure pairing and association for wireless devices | |
CN108292347A (zh) | 一种用户属性匹配方法及终端 | |
US20240064001A1 (en) | Anonymous aggregation service for sensitive data | |
CN113556225A (zh) | 一种基于哈希及密钥交换的高效psi方法 | |
CN117729535A (zh) | 一种查询方法、电子设备及*** | |
CN117729534A (zh) | 一种查询方法、电子设备及*** | |
CN114866312B (zh) | 一种保护数据隐私的共有数据确定方法及装置 | |
CN114611152B (zh) | 查询方法和查询*** | |
CN117729533A (zh) | 一种查询方法、电子设备及*** | |
CN114765595B (zh) | 聊天消息的显示方法、发送方法、装置、电子设备及介质 | |
CN117240619B (zh) | 隐私集合求交集基数***及方法 | |
CN116595562B (zh) | 数据处理方法和电子设备 | |
CN117728965A (zh) | 一种获取信息安全程度的方法及服务器 |
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 |