一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种秘密查询方法和系统与流程

2022-11-14 02:15:16 来源:中国专利 TAG:


1.本说明书涉及信息安全技术领域,特别涉及一种秘密查询方法和系统。


背景技术:

2.数据在当今世界,起着越来越重要的作用,在很多应用场景下数据已成为一种资源需要对其进行保护。在数据查询的相关业务场景中,有数据查询需求的查询方会基于数据标识向持有数据或具有数据获取能力的数据提供方查询获取某些数据。在一些情况下,为了保护查询方和数据提供方的数据安全,在数据查询过程中,需要令数据提供方无法获知查询方的真实查询目标如真实待查询数据的数据标识(例如数据id),以及还需要令查询方无法获知数据提供方的除待查询数据外的其它数据即不向查询方泄露与查询无关的数据。
3.因此,本说明书提供了一种秘密查询方法和系统,可实现在数据查询过程中保护查询方和数据提供方的数据安全。


技术实现要素:

4.本说明书实施例的一个方面提供一种秘密查询方法,应用于第一方,所述方法包括:基于第一加密方法对目标数据标识加密确定第一密文;获取第二密文,所述第二密文由其他方基于第二加密方法对所述第一密文加密得到;所述第一加密方法和所述第二加密方法满足交换律;基于第一解密方法对所述第二密文解密确定目标密钥,所述第一解密方法与所述第一加密方法对应;将多个查询标识发送至第二方,所述多个查询标识包括所述目标数据标识和一个或多个其它数据标识;从第二方获取多个结果密文,所述多个结果密文基于对与所述多个查询标识对应的多个查询结果加密获得;基于所述目标密钥和所述多个结果密文确定对应于所述目标数据标识的查询结果。
5.本说明书实施例的另一个方面提供一种秘密查询系统,部署于第一方,所述系统包括:第一密文确定模块,用于基于第一加密方法对目标数据标识加密确定第一密文;第一方第二密文获取模块,用于获取第二密文,所述第二密文由其他方基于第二加密方法对所述第一密文加密得到;所述第一加密方法和所述第二加密方法满足交换律;目标密钥获取模块,用于基于第一解密方法对所述第二密文解密确定目标密钥,所述第一解密方法与所述第一加密方法对应;查询标识发送模块,用于将多个查询标识发送至第二方,所述多个查询标识包括所述目标数据标识和一个或多个其它数据标识;结果密文接收模块,用于从第二方获取多个结果密文,所述多个结果密文基于对与所述多个查询标识对应的多个查询结果加密获得;查询结果确定模块,用于基于所述目标密钥和所述多个结果密文确定对应于所述目标数据标识的查询结果。
6.本说明书实施例的另一个方面提供一种秘密查询装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现本说明书实施例提供的一种秘密查询方法。
7.本说明书实施例的另一个方面提供另一种秘密查询方法,应用于第二方,所述方法包括获取第一密文,所述第一密文由其他方基于第一加密方法对所述多个查询标识中的目标数据标识加密得到;获取第二密文,所述第二密文基于第二加密方法对所述第一密文加密得到,所述第一加密方法和所述第二加密方法满足交换律;接收来自第一方的多个查询标识;基于所述多个查询标识获取对应的多个查询结果;基于对所述多个查询结果加密得到对应的多个结果密文,其中包括:对每个所述查询标识,基于对应的对称加密密钥对于对应的查询结果加密得到对应的所述结果密文,所述对应的对称加密密钥基于所述第二加密方法对所述查询标识进行加密得到;将所述多个结果密文发送至第一方,以便第一方对所述第二密文解密得到目标密钥,以及基于所述目标密钥和所述多个结果密文确定对应于目标数据标识的查询结果。
8.本说明书实施例的另一个方面提供另一种秘密查询系统,部署于第二方,所述系统包括:第一密文获取模块,用于获取第一密文,所述第一密文由其他方基于第一加密方法对所述多个查询标识中的目标数据标识加密得到;第二方第二密文获取模块,用于获取第二密文,所述第二密文基于第二加密方法对所述第一密文加密得到,所述第一加密方法和所述第二加密方法满足交换律;查询标识接收模块,用于接收来自第一方的多个查询标识;查询结果获取模块,用于基于所述多个查询标识获取对应的多个查询结果;结果密文获取模块,用于基于对所述多个查询结果加密得到对应的多个结果密文,其中包括:对每个所述查询标识,基于对应的对称加密密钥对于对应的查询结果加密得到对应的所述结果密文,所述对应的对称加密密钥基于所述第二加密方法对所述查询标识进行加密得到;结果密文发送模块,用于将所述多个结果密文发送至第一方,以便第一方对所述第二密文解密得到目标密钥,以及基于所述目标密钥和所述多个结果密文确定对应于目标数据标识的查询结果。
9.本说明书实施例的另一个方面提供一种秘密查询装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现本说明书实施例提供的另一种秘密查询方法。
附图说明
10.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
11.图1-1是根据本说明书的一些实施例所示的秘密查询系统的示例性应用场景图;
12.图1-2是根据本说明书的另一些实施例所示的秘密查询系统的示例性应用场景图;
13.图2是根据本说明书的一些实施例所示的秘密查询方法的示例性交互流程图;
14.图3是根据本说明书的一些实施例所示的获取多个结果密文的示例性流程图;
15.图4是根据本说明书的另一些实施例所示的秘密查询方法的示例性交互流程图;
16.图5是根据本说明书的一些实施例所示的秘密查询系统的示例性模块图;
17.图6是根据本说明书的另一些实施例所示的秘密查询系统的示例性模块图。
具体实施方式
18.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
19.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
20.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
21.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
22.在数据查询的相关业务场景中,有数据查询需求的查询方会向持有数据或具有数据获取能力的数据提供方查询获取某些数据。查询的数据可以是各种类型的数据,例如数据值、文本、图像等。
23.在一些实施例中,查询方可以向数据提供方发起数据查询请求,并将待查询数据的查询标识发送至数据提供方。数据提供方接收到查询请求和待查询数据的查询标识后,可基于查询标识在数据库中查询对应的数据以得到查询结果,以及数据提供方可以将查询结果返回给查询方,由此实现数据查询。
24.在一些情况下,在数据查询过程中,查询方和数据提供方都希望保护自己的数据安全,需要令数据提供方无法获知查询方的查询目标如待查询数据的查询标识(例如数据id),即不向数据提供方泄露查询意图,以及需要令查询方无法获知数据提供方的除待查询数据外的其它数据,即不向查询方泄露与查询无关的数据。基于此,本说明书一些实施例提供了一种秘密查询方法以实现在实现数据查询的同时保证查询方和数据提供方的数据安全。
25.需要说明的是,在本说明书一些实施例中使用了“第一方”、“第二方”、“其他方”来区分数据查询方法中涉及的不同的参与方如查询方、数据提供方或其他第三方,不过“第一方”、“第二方”、“其他方”仅用于区分参与方而不对参与方产生限制。以下通过对附图的解释详细阐述本说明书实施例所披露的技术方案。
26.图1-1和图1-2是根据本说明书的一些实施例所示的秘密查询系统的示例性应用场景图。
27.在一些应用场景中,第一方可以具有数据查询需求,第二方可以持有数据或具备获取数据的能力。秘密查询中的参与方例如第一方、第二方或其他参与方所实现的功能可以由参与方的处理设备实现。
28.处理设备可以包含一个或多个子处理设备(例如,单核处理设备或多核多芯处理设备)。在一些实施例中,处理设备可以包括各类型的处理器、系统、平台等或以上任意组合。
29.如图1-1所示,第一方可以确定待查询数据的查询标识并向第二方发起数据查询请求。查询标识可以包括用于指示数据的数据标识,每个数据都可有对应的数据标识,基于数据标识可以从数据库或其他数据存储中查找到对应的数据。数据标识可是任意可行的数据形式,例如数据id。
30.第二方接收到第一方的数据查询请求后,可以返回查询结果至第一方进而实现数据查询。在此过程中,需要令第二方不知道第一方的真实查询意图,以及令第一方只能获知待查询数据而不能获知第二方的其它数据。
31.在一些实施例中,如图1-2所示,第一方可以向第二方发送多个查询标识例如id_0、id_1、id_2、

。其中,多个查询标识中包括第一方的真实待查询数据的数据标识如id_0(第一方真实需查询数据的数据标识称为目标数据标识),还包括一个或多个其它数据标识(除目标数据标识外的数据标识称为其它数据标识)如id_1、id_2、

,其它数据标识可以起到混淆第一方的查询意图的作用,使得第二方无法获知第一方的真实查询意图。
32.在一些实施例中,第二方接收到多个查询标识后可以获得多个查询标识对应的多个查询结果例如各类型的数据。第二方可以通过各种可行的方法得到数据标识对应的查询结果,例如在本地或其他地方的数据库中基于数据标识查找得到对应的数据。
33.在一些实施例中,第二方可以通过密码学的加密算法对获得的各查询结果进行加密,以得到与多个查询结果如value_0、value_1、value_2...对应的多个结果密文如cv_0、cv_1、cv_2...并发送给第一方,以及实现:令第一方可以基于其获得的密钥和多个结果密文得到目标数据标识对应的查询结果(称为目标查询结果)如数据值“12032”,而同时第一方不能获知其他数据标识对应的查询结果(称为其他查询结果),由此不必泄露数据提供方的其它明文数据。
34.图2是根据本说明书的一些实施例所示的秘密查询方法的示例性交互流程图。
35.在一些实施例中,图示的交互流程可以由参与数据查询的各方的处理设备协同执行,为了方便说明,本说明书流程200中的步骤(例如步骤202、204、206、208、210、212)主要以第一方执行为例进行的描述。例如,交互流程中由第一方执行的部分(如流程200中的步骤)可以以程序或指令的形式存储在第一方的存储设备(如处理设备的自带存储单元或外接存储设备)中,交互流程中由第二方等其他方执行的部分可以以程序或指令的形式存储在第二方等其他方的存储设备中。所述程序或指令在被执行时,可以实现秘密查询过程。在一些实施例中,流程200可以由秘密查询系统500实现。需要说明的是,在流程200中涉及的其他方可以是除第一方之外的其他参与方,例如第二方或其他第三方。
36.步骤202,基于第一加密方法对目标数据标识加密确定第一密文。
37.在一些实施例中,步骤202可以由第一密文确定模块510执行。
38.第一方对目标数据标识进行加密的加密方法称为第一加密方法,加密得到的密文称为第一密文。
39.步骤204,获取第二密文。
40.在一些实施例中,步骤204可以由第一方第二密文获取模块520执行。
41.第一方可以将第一密文发送至其他方。
42.其他方可对第一密文进行加密,其他方对第一密文进行加密的加密方法称为第二加密方法,加密得到的密文称为第二密文。第一加密方法和第二加密方法满足交换律。
43.加密方法满足交换律是指,如果b(a(msg))=a(b(msg))(其中msg表示原数据,b(x)和a(x)分别表示通过加密方法b和a对数据x进行加密),则可称加密方法a和b满足交换律。加密方法a和b可以是使用不同加密密钥的相同加密算法,也可以是满足交换律的不同加密算法。
44.本说明书涉及的满足交换律的加密算法可以采用现有的或未来出现的各种可满足交换律的加密算法,例如rsa、ecc等加密算法。
45.作为示例:第一加密方法可以是基于密钥pk_a通过加密算法e对目标数据标识id_0进行加密得到第一密文c0,即e(id_0,pk_a)=c0;第二加密方法可以是基于密钥pk_b通过加密算法e对第一密文c0进行加密得到第二密文c1,即e(c0,pk_b)=c1,也即e(e(id_0,pk_a),pk_b)=c1,第一次加密方法和第二次加密方法满足:e(e(id_0,pk_a),pk_b)=e(e(id_0,pk_b),pk_a)。
46.第一加密方法的加密密钥、第二加密方法的加密密钥可基于各种可行的方法生成。
47.第一方可以获取其他方生成的第二密文。
48.步骤206,基于第一解密方法对所述第二密文解密确定目标密钥。
49.在一些实施例中,步骤206可以由目标密钥获取模块530执行。
50.在本说明书实施例中,第一加密方法对应的解密方法称为第一解密方法。
51.在一些实施例中,第一方可以基于第一解密方法对获取的第二密文进行解密,得到的解密结果称为第一解密结果。
52.作为示例,基于第一加密方法e(id_0,pk_a)对应的第一解密方法对第二密文进行解密为:基于解密密钥d1通过解密算法d对第二密文进行解密,即d(c1,d1),也即d(e(e(id_0,pk_a),pk_b),d1)。加密算法对应的解密密钥可在生成加密密钥时对应生成。
53.基于第一加密方法和第二加密方法满足交换律,可知d(e(e(id_0,pk_a),pk_b),d1)=d(e(e(id_0,pk_b),pk_a),d1)=e(id_0,pk_b)。由此,第一解密结果可为e(id_0,pk_b),即基于第二加密方法对目标数据标识加密得到的结果。
54.第一方可以将第一解密结果作为目标密钥(可用cid_0表示)以用于后续的结果密文解密。
55.需要说明的是,前述步骤202、204、206和后文的步骤208、210之间并无先后顺序限制,例如步骤202、204和206可在步骤208、210之前或之后或同时执行。
56.步骤208,将多个查询标识发送至第二方,所述多个查询标识包括所述目标数据标识和一个或多个其它数据标识。
57.在一些实施例中,步骤208可以由查询标识发送模块540执行。
58.第一方可以通过各种可行的方法(例如随机指定或由用户指定)确定一个或多个其它数据标识,例如id_1、id_2、


59.第一方可以将多个查询标识发送至第二方。所发送的多个查询标识包括目标数据标识(例如id_0)以及一个或多个其他数据标识(例如id_1、id_2、

)。
60.由于第二方接收到多个查询标识且不知道哪一个是第一方真实需查询的目标数据标识,由此可对第二方隐匿第一方的真实查询意图。
61.步骤210,从第二方获取多个结果密文。
62.在一些实施例中,步骤210可以由结果密文接收模块550执行。
63.第二方接收到第一方发送的多个查询标识后,可以基于查询标识进行数据查找,得到该多个查询标识对应的多个查询结果。
64.作为示例,第二方获取的对应于id_0、id_1、id_2的多个查询结果依次为:value_0:“12032”、value_1:“13547”、value_2:“14356”。
65.第二方可以基于对各查询结果进行加密,得到各查询结果对应的结果密文。
66.在一些实施例中,第二方对查询结果进行加密可以包括:对查询结果直接进行加密得到对应的结果密文。
67.在一些实施例中,第二方对查询结果进行加密也可以包括:对查询结果及查询结果的相关信息一起进行加密得到对应的结果密文。
68.在一些实施例中,查询结果的相关信息可以用于:反映查询结果和数据标识的对应关系和/或校验查询结果的正确性(例如是否完整、是否正确等)。
69.在一些实施例中,查询结果的相关信息可以包括以下中的一种或多种:反映查询结果和数据标识的对应关系的信息(例如查询结果对应的数据标识、与数据标识和查询结果都相对应的标识如编号、次序等)、可校验查询结果的正确性的信息(例如查询结果的md5码等校验码)。
70.在一些实施例中,第二方基于对多个查询结果进行加密得到的多个结果密文可以使得:第一方可以基于其获取的目标密钥和多个结果密文得到目标查询结果,即对应于目标数据标识的查询结果,并且第一方无法获得其他查询结果或无法得到正确的其他查询结果。
71.关于第二方基于对多个查询结果加密得到多个结果密文的更多具体内容可以参见图3及其相关说明。
72.第一方可以获得第二方得到的多个结果密文。
73.步骤212,基于所述目标密钥和所述多个结果密文确定对应于所述目标数据标识的查询结果。
74.在一些实施例中,步骤212可以由查询结果确定模块560执行。
75.在一些实施例中,第一方可以从第二方获取各查询标识与各结果密文的对应关系。例如,第一方可以从第二方获取结果密文对应的查询标识(例如获取包括查询标识与对应结果密文的键值对)、与查询标识和结果密文都相对应的标识(例如编号等)、与多个查询标识的顺序相对应的多个结果密文的顺序(可在获取多个结果密文时对应确定)或其他反映查询标识与结果密文对应关系的信息。
76.在一些实施例中,第一方可以在获得的多个结果密文中确定需要进行解密的结果密文,该结果密文称为目标结果密文。在一些实施例中,具体地,第一方可以基于获取的各查询标识与各结果密文的对应关系,确定与目标数据标识对应的结果密文,也即目标结果密文。
77.作为示例,第一方可以从第二方获取包括查询标识与对应结果密文的多个键值
对:“id_0=cv_0(****)”、“id_1=cv_1(****)”、“id_2=cv_2(****)”,基于该多个键值对,第一方可以知道目标数据标识id_0对应的结果密文即目标结果密文为cv_0(****)。
78.在一些实施例中,第一方可以基于获取的目标密钥cid_0对目标结果密文解密,并可以解密成功从而得到目标查询结果,例如d
ec
(cv_0,cid_0)=value_0,d
ec
表示解密算法。
79.在一些实施例中,第一方可以基于目标密钥,对从第二方获取的多个结果密文进行解密,例如d
ec
(cv_k,cid_0),d
ec
表示解密算法,cv_k为各个查询标识对应的结果密文,k取值为0、1、2、

,用于指示不同的查询标识。
80.在一些实施例中,第一方可以基于对多个结果密文解密的数据结果确定目标查询结果。
81.在一些实施例中,第一方能够基于目标密钥对多个结果密文中的某个结果密文解密成功,并得到成功解密的数据结果,以及第一方对多个结果密文中的其他结果密文会解密失败。第一方能够解密成功的结果密文即是目标结果密文,以及第一方可以基于成功解密得到的数据结果得到目标查询结果,例如d
ec
(cv_0,cid_0)=value_0,value_0为目标查询结果。
82.在一些实施例中,第一方可以基于对多个结果密文解密得到对应的多个数据结果,其中包括解密成功的数据结果(也即正确的数据结果)和解密未成功的其他数据结果(例如错误的数据结果)。第一方可以通过对得到的数据结果进行校验,从而在多个数据结果中确定解密成功的数据结果,并可基于该数据结果得到目标查询结果。
83.如前所述,在一些实施例中,第二方可对查询结果及查询结果的相关信息一起进行加密得到对应的结果密文,查询结果的相关信息可以用于反映查询结果和数据标识的对应关系和/或校验查询结果的正确性(例如是否完整、是否正确等)。基于此,在一些实施例中,第一方若对结果密文解密成功,解密得到的数据结果可以包括对应的查询结果和查询结果的相关信息。在一些实施例中,第一方若在某个数据结果中获取到查询结果的相关信息例如md5校验码,可以基于该查询结果的相关信息对数据结果中的查询结果进行校验。
84.在一些实施例中,第一方若在某个数据结果中获取到查询结果的相关信息,以及基于该查询结果的相关信息对数据结果中的查询结果进行校验,得到某个数据结果的校验结果为查询结果正确,或者除此之外还校验得到该查询结果为目标查询结果,则该数据结果为解密成功的数据结果,以及第一方可将该数据结果中的查询结果作为目标查询结果。
85.通过上述一些实施例,使得第一方能够基于对第二密文解密获得目标密钥,并用目标密钥解密从第二方获取的结果密文以得到目标查询结果,同时第一方不能对其它结果密文解密得到其他查询结果或无法得到正确的其他查询结果。由此,实现了可以对第二方隐匿第一方如查询方的真实查询意图,以及可以保证不对第一方泄露第二方如数据提供方的其他明文数据,有效的保证了参与数据查询的各参与方的数据安全。
86.图3是根据本说明书的一些实施例所示的获取多个结果密文的示例性流程图。
87.在一些实施例中,每个查询标识有对应的加密密钥,查询标识对应的加密密钥可以基于对该查询标识进行加密得到。
88.在一些实施例中,对查询标识加密的方法可与第二加密方法相同。例如,e(id_k,pk_b)=cid_k,cid_k即作为数据标识id_k对应的加密密钥。
89.各查询标识对应的加密密钥可以由第一方之外的其他方(例如第二方或其他第三
方)生成。
90.在一些实施例中,对于每个查询标识,第二方可基于该查询标识对应的加密密钥对该查询标识对应的查询结果进行对称加密,得到对应的结果密文。例如,可以表示为e
nc
(value_k,cid_k)=cv_k,e
nc
表示对称加密算法,cid_k表示数据标识id_k对应的加密密钥,value_k表示数据标识id_k对应的数据,cv_k表示value_k对应的结果密文。
91.对称加密指加密使用的加密密钥(称为对称加密密钥)和对加密结果进行对应解密使用的解密密钥相同。
92.图4是根据本说明书的另一些实施例所示的秘密查询方法的示例性交互流程图。
93.在一些实施例中,图示的交互流程可以由参与数据查询的各方的处理设备协同执行,为了方便说明,本说明书流程400中的步骤(例如步骤402、404、406、408、410、412)主要以第二方执行为例进行的描述。在一些实施例中,流程400可以由秘密查询系统600实现。需要说明的是,在流程400中涉及的其他方可以是除第二方之外的其他参与方,例如第一方或其他第三方。
94.步骤402,获取第一密文。
95.在一些实施例中,步骤402可以由第一密文获取模块610执行。
96.在一些实施例中,其他方可以基于第一加密方法对目标数据标识加密确定第一密文,以及第二方可以从其他方获取第一密文。
97.关于第一密文的更多具体内容可以参见图2及其相关描述。
98.步骤404,获取第二密文。
99.在一些实施例中,步骤404可以由第二方第二密文获取模块620执行。
100.在一些实施例中,第二方可以对第一密文加密得到第二密文。
101.在一些实施例中,其他第三方可以对第一密文加密得到第二密文,以及第二方可以从其他方获取第二密文。
102.在一些实施例中,第一方可以获取第二方或其他第三方的第二密文。
103.第一方可以基于与第一加密方法对应的第一解密方法对获取的第二密文解密得到目标密钥。
104.关于第二密文、第一方得到目标密钥的更多具体内容可以参见图2及其相关描述。
105.步骤406,接收来自第一方的多个查询标识。
106.在一些实施例中,步骤406可以由查询标识接收模块630执行。
107.第一方可以发送多个查询标识至第二方。多个查询标识包括目标数据标识(例如id_0)以及多个其他数据标识(例如id_1、id_2、

)。
108.关于多个查询标识的更多具体内容可以参见图2及其相关描述。
109.步骤408,基于所述多个查询标识获取对应的多个查询结果。
110.在一些实施例中,步骤408可以由查询结果获取模块640执行。
111.第二方接收到第一方发送的多个查询标识后,可以基于查询标识进行数据查找,得到该多个查询标识对应的多个查询结果。
112.关于多个查询结果的更多具体内容可以参见图2及其相关描述。
113.步骤410,基于对所述多个查询结果加密得到对应的多个结果密文。
114.在一些实施例中,步骤410可以由结果密文获取模块650执行。
115.在一些实施例中,对每个所述查询标识,第二方可以基于对应的对称加密密钥对于对应的查询结果加密得到对应的结果密文。
116.在一些实施例中,对每个所述查询标识,对应的对称加密密钥可基于对该查询标识加密得到。
117.关于对多个查询结果加密得到对应的多个结果密文的更多具体内容可以参见图2、图3及其相关描述。
118.步骤412,将所述多个结果密文发送至第一方。
119.在一些实施例中,步骤412可以由结果密文发送模块660执行。
120.第一方可以基于目标密钥和多个结果密文确定目标查询结果,即对应于目标数据标识的查询结果。同时,第一方无法得到其他查询结果或无法得到正确的其他查询结果。
121.关于第二方将多个结果密文发送至第一方、第一方基于目标密钥和多个结果密文确定目标查询结果的更多具体内容可以参见图2及其相关描述。
122.应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,对本说明书有关流程步骤的改变,如添加预处理步骤、存储步骤、增加其它第三方系统与第一方或第二方进行交互步骤(例如采用与第一方的处理设备交互的第三方系统a实现第一方执行的:基于对目标数据标识加密得到第一密文、基于对第二密文解密确定目标密钥、基于目标密钥和多个结果密文得到目标查询结果等加密、解密步骤;又例如采用与第二方的处理设备交互的第三方系统b实现第二方执行的:基于对第一密文进行加密得到第二密文、基于对查询标识加密得到查询标识对应的加密密钥、基于对所述多个查询结果加密得到对应的多个结果密文等加密步骤)等。
123.图5是根据本说明书一些实施例所示的秘密查询系统的示例性模块图。
124.秘密查询系统500可以部署于第一方。如图5所示,系统500可以包括第一密文确定模块510、第一方第二密文获取模块520、目标密钥获取模块530、查询标识发送模块540、结果密文接收模块550和查询结果确定模块560。
125.在一些实施例中,第一密文确定模块510可以用于基于第一加密方法对目标数据标识加密确定第一密文。
126.在一些实施例中,第一方第二密文获取模块520可以用于获取第二密文,所述第二密文由其他方基于第二加密方法对所述第一密文加密得到。所述第一加密方法和所述第二加密方法满足交换律。
127.在一些实施例中,目标密钥获取模块530可以用于基于第一解密方法对所述第二密文解密确定目标密钥,所述第一解密方法与所述第一加密方法对应。
128.在一些实施例中,查询标识发送模块540可以用于将多个查询标识发送至第二方,所述多个查询标识包括所述目标数据标识和一个或多个其它数据标识。
129.在一些实施例中,结果密文接收模块550可以用于从第二方获取多个结果密文,所述多个结果密文基于对与所述多个查询标识对应的多个查询结果加密获得。
130.在一些实施例中,查询结果确定模块560可以用于基于所述目标密钥和所述多个结果密文确定对应于所述目标数据标识的查询结果。
131.关于以上所示的系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图2和图3及其相关说明。
132.图6是根据本说明书的另一些实施例所示的秘密查询系统的示例性模块图。
133.秘密查询系统600可以部署于第二方。如图6所示,系统600可以包括第一密文获取模块610、第二方第二密文获取模块620、查询标识接收模块630、查询结果获取模块640、结果密文获取模块650、结果密文发送模块660。
134.在一些实施例中,第一密文获取模块610可以用于获取第一密文,所述第一密文由其他方基于第一加密方法对所述多个查询标识中的目标数据标识加密得到。
135.在一些实施例中,第二方第二密文获取模块620可以用于获取第二密文,所述第二密文基于第二加密方法对所述第一密文加密得到,所述第一加密方法和所述第二加密方法满足交换律。
136.在一些实施例中,查询标识接收模块630可以用于接收来自第一方的多个查询标识。
137.在一些实施例中,查询结果获取模块640可以用于基于所述多个查询标识获取对应的多个查询结果。
138.在一些实施例中,结果密文获取模块650可以用于基于对所述多个查询结果加密得到对应的多个结果密文,其中包括:对每个所述查询标识,基于对应的对称加密密钥对于对应的查询结果加密得到对应的所述结果密文,所述对应的对称加密密钥基于所述第二加密方法对所述查询标识进行加密得到。
139.在一些实施例中,结果密文发送模块660可以用于将所述多个结果密文发送至第一方,以便第一方对所述第二密文解密得到目标密钥,以及基于所述目标密钥和所述多个结果密文确定对应于目标数据标识的查询结果。
140.关于以上所示的系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图4及其相关说明。
141.应当理解,图5和图6所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
142.需要注意的是,以上对于秘密查询系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,结果密文获取模块650和结果密文发送模块660可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。
例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
143.本说明书实施例还提供一种秘密查询装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现秘密查询方法,所述方法包括:基于第一加密方法对目标数据标识加密确定第一密文;获取第二密文,所述第二密文由其他方基于第二加密方法对所述第一密文加密得到;所述第一加密方法和所述第二加密方法满足交换律;基于第一解密方法对所述第二密文解密确定目标密钥,所述第一解密方法与所述第一加密方法对应;将多个查询标识发送至第二方,所述多个查询标识包括所述目标数据标识和一个或多个其它数据标识;从第二方获取多个结果密文,所述多个结果密文基于对与所述多个查询标识对应的多个查询结果加密获得;基于所述目标密钥和所述多个结果密文确定对应于所述目标数据标识的查询结果。
144.本说明书实施例还提供另一种秘密查询装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现秘密查询方法,所述方法包括:获取第一密文,所述第一密文由其他方基于第一加密方法对所述多个查询标识中的目标数据标识加密得到;获取第二密文,所述第二密文基于第二加密方法对所述第一密文加密得到,所述第一加密方法和所述第二加密方法满足交换律;接收来自第一方的多个查询标识;基于所述多个查询标识获取对应的多个查询结果;基于对所述多个查询结果加密得到对应的多个结果密文,其中包括:对每个所述查询标识,基于对应的对称加密密钥对于对应的查询结果加密得到对应的所述结果密文,所述对应的对称加密密钥基于所述第二加密方法对所述查询标识进行加密得到;将所述多个结果密文发送至第一方,以便第一方对所述第二密文解密得到目标密钥,以及基于所述目标密钥和所述多个结果密文确定对应于目标数据标识的查询结果。
145.本说明书实施例可能带来的有益效果包括但不限于:通过第一方向第二方发送多个查询标识,以及第一方、第二方通过使用满足交换律的第一加密方法、第二加密方法加密目标数据标识得到第二密文,以及第二方基于对多个查询标识对应的多个查询结果加密得到多个结果密文,使得第一方可以基于获取的第二密文得到目标密钥,并基于目标密钥和获取的多个结果密文得到目标查询结果,实现了在数据查询过程中可以对第二方隐匿第一方如查询方的真实查询意图,以及可以保证不对第一方泄露第二方如数据提供方的其他明文数据,有效的保证了参与数据查询的各参与方的数据安全。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
146.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
147.同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一
个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
148.此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
149.计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。
150.本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c 、c#、vb.net、python等,常规程序化编程语言如c语言、visual basic、fortran 2003、perl、cobol 2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。
151.此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
152.同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
153.一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点
可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
154.针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
155.最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献