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

匿踪查询方法和存储介质与流程

2022-11-30 14:50:15 来源:中国专利 TAG:


1.本发明涉及网络信息技术领域,尤其涉及一种匿踪查询方法和存储介质。


背景技术:

2.匿踪查询是指客户端可以向服务端查询某个关键词所对应的信息,但又不会暴露自己所要查询的关键词。
3.在传统匿踪查询方案中,客户端向服务端发送待查询的关键词后,服务端基于待查询的关键词在持有的数据库中查找此关键词所对应的信息,并将查询到的信息反馈给客户端。然而在进行查询时,若客户端所使用的关键词不是精确的关键词,而是出现了缺失部分字的关键词,那么客户端将无法查询到所需的信息。


技术实现要素:

4.本发明实施例提供一种匿踪查询方法和存储介质,用以实现模糊关键词的匿踪查询。
5.第一方面,本发明实施例提供一种匿踪查询方法,应用于客户端,所述客户端与多个服务端通信连接,该方法包括:获取待查询的模糊关键词,所述模糊关键词中包括未知字符;通过多个服务端进行匿踪查询,以确定所述模糊关键词所对应的匹配关键词集,所述匹配关键词集中包括与所述模糊关键词相对应的至少一个匹配关键词,所述匹配关键词中包括与未知字符相对应的匹配字符;基于所述匹配关键词,确定第一秘密函数;基于所述第一秘密函数,确定与多个服务端各自对应的第一秘密子函数,并将所述第一秘密子函数分别发送至各自对应的服务端,以使得所述多个服务端分别基于所述第一秘密子函数对目标数据库中的各个数据进行加密处理,得到加密后的第一数据,所述目标数据库中包括预设关键词以及与预设关键词相对应的查询内容;接收所述多个服务端各自发送的第一数据;基于所述第一数据和所述第一秘密函数,确定与模糊关键词相对应的目标查询内容。
6.第二方面,本发明实施例提供一种匿踪查询装置,位于客户端,该装置包括:获取模块,用于获取待查询的模糊关键词,所述模糊关键词中包括未知字符;匿踪查询模块,用于通过与多个服务端进行匿踪查询,以确定所述模糊关键词所对应的匹配关键词集,所述匹配关键词集中包括与所述模糊关键词相对应的至少一个匹配关键词,所述匹配关键词中包括与未知字符相对应的匹配字符;第一确定模块,用于基于所述匹配关键词,确定第一秘密函数;发送模块,用于基于所述第一秘密函数,确定与至少两个服务端各自对应的第一秘密子函数,并将所述第一秘密子函数分别发送至各自对应的服务端,以使得所述多个服
务端分别基于所述第一秘密子函数对目标数据库中的各个数据进行加密处理,得到加密后的第一数据,所述目标数据库中包括预设关键词以及与预设关键词相对应的查询内容;接收模块,用于接收所述多个服务端各自发送的第一数据;第二确定模块,用于基于所述第一数据和所述第一秘密函数,确定与模糊关键词相对应的目标查询内容。
7.第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的匿踪查询方法。
8.第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的匿踪查询方法。
9.第五方面,本发明实施例提供一种匿踪查询方法,应用于服务端,所述方法包括:获取目标数据库和辅助数据库,所述目标数据库中包括预设关键词以及与预设关键词相对应的查询内容,所述辅助数据库中包括模糊关键词以及与模糊关键词相对应的匹配关键词集;接收客户端发送的匿踪查询请求;基于所述匿踪查询请求,对所述辅助数据库中的各个数据进行匿踪查询处理,以使得所述客户端基于匿踪查询确定待查询的模糊关键词所对应的匹配关键词集;接收所述客户端发送的第一秘密子函数;基于所述第一秘密子函数对所述目标数据库中的各个数据进行加密处理,获得加密后的第一数据,并将所述第一数据发送至所述客户端,以使所述客户端基于所述第一数据以及第一秘密函数,确定与模糊关键词相对应的目标查询内容。
10.第六方面,本发明实施例提供一种匿踪查询装置,位于服务端,所述装置包括:获取模块,用于获取目标数据库和辅助数据库,所述目标数据库中包括预设关键词以及与预设关键词相对应的查询内容,所述辅助数据库中包括模糊关键词以及与模糊关键词相对应的匹配关键词集;第一接收模块,用于接收客户端发送的匿踪查询请求;匿踪查询模块,用于基于所述匿踪查询请求,对所述辅助数据库中的各个数据进行匿踪查询处理,以使得所述客户端基于匿踪查询确定待查询的模糊关键词所对应的匹配关键词集;第二接收模块,用于接收所述客户端发送的第一秘密子函数;加密模块,用于基于所述第一秘密子函数对所述目标数据库中的各个数据进行加密处理,获得加密后的第一数据,并将所述第一数据发送至所述客户端,以使所述客户端基于所述第一数据以及第一秘密函数,确定与模糊关键词相对应的目标查询内容。
11.第七方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的匿踪查询方法。
12.第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的匿踪查询方法。
13.本发明实施例提供的匿踪查询方案可以适用于客户端和服务端,对于客户端来说,首先获取待查询的模糊关键词,其中模糊关键词中包括未知字符。通过多个服务端进行匿踪查询,以确定模糊关键词所对应的匹配关键词集,匹配关键词集中包括与模糊关键词相对应的至少一个匹配关键词,匹配关键词中包括与未知字符相对应的匹配字符。接着基于匹配关键词,确定第一秘密函数,然后基于第一秘密函数,确定与多个服务端各自对应的第一秘密子函数,并将第一秘密子函数分别发送至各自对应的服务端,以使得多个服务端分别基于第一秘密子函数对目标数据库中的各个数据进行加密处理,得到加密后的第一数据,目标数据库中包括预设关键词以及与预设关键词相对应的查询内容。接收多个服务端各自发送的第一数据,基于第一数据和第一秘密函数,确定与模糊关键词相对应的目标查询内容。
14.在上述方案中,通过与多个服务端进行匿踪查询,使得服务端无法分辨具体的查询信息,实现了混淆待查询的模糊关键词的目的,同时还可以匹配出模糊关键词中未知字符所对应的匹配字符,实现了对模糊关键词的精准匹配。另外,将匹配关键词集隐藏在秘密函数中,通过函数秘密分享的方式对目标数据库中的各个数据进行加密和解密,不仅实现了混淆匹配关键词集的目的,使得服务端无法获知客户端查询的具体内容,同时客户端利用秘密函数进行解密,只能获得匹配关键词所对应的目标查询信息,不会暴露数据库中与客户端待查询模糊关键词无关的数据,从而实现模糊关键词的匿踪查询。
附图说明
15.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明实施例提供的一种匿踪查询方法的流程图;图2为本发明一示例性实施例的一种匿踪查询方法的应用场景示意图;图3为本发明实施例提供的确定模糊关键词所对应的匹配关键词集的流程示意图;图4为本发明实施例提供的基于第二数据和第二秘密函数,确定模糊关键词所对应的匹配关键词集的流程示意图;图5为本发明实施例提供的基于第一数据和第一秘密函数,确定与模糊关键词相对应的目标查询信息的流程示意图;图6为本发明一示例性实施例的一种匿踪查询方法的流程示意图;图7为本发明实施例提供的一种匿踪查询装置的结构示意图;图8为与图7所示实施例提供的匿踪查询装置对应的电子设备的结构示意图;图9为本发明实施例提供的另一种匿踪查询装置的结构示意图;图10为与图9所示实施例提供的匿踪查询装置对应的电子设备的结构示意图。
具体实施方式
17.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”。
19.还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
20.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
21.匿踪查询又称隐私信息检索(private information retrieval,简称pir)是安全多方计算中非常实用的一门技术与应用,可以用来保护用户的查询隐私,进而也可以保护用户的查询结果。其目标是保证用户向数据源方提交查询请求时,在查询信息不被感知与泄漏的前提下完成查询,即对于数据源方来说,只知道有查询到来,但是不知道真正的查询条件,也就不知道对方查询了什么具体内容。
22.目前,传统的匿踪查询技术主要是通过客户端与服务端共同生成关键词对应的哈希值,然后进行哈希值匹配的方式进行查询。然而,通过该方法服务端可以通过生成所有关键词对应的哈希值并进行查询的方式恢复出用户所查询关键词的明文信息,从而可能导致关键词信息的泄露。另外,由于每个关键词都对应有一个哈希值,那么当查询的关键词中包含未知符时,此时计算出的哈希值将无法在服务端找到其对应的关键词,也就无法查询到具体的内容。基于此,本发明实施例提供了解决方案,客户端与服务端进行了两次匿踪查询,第一次将隐藏有待查询的模糊关键词的信息作为查询条件与多个服务端进行匿踪查询,以确定待查询的模糊关键词中未知字符所对应的匹配字符,从而确定模糊关键词所对应的匹配关键词集。第二次将隐藏有匹配关键词集的信息作为查询条件与多个服务端进行匿踪查询,以获得目标查询内容,从而实现了模糊关键词的匿踪查询。另外,在进行匿踪查询时,通过使用函数秘密分享的方式,对数据库中的各个数据进行加密和解密,使得服务端无法获知客户端具体的查询信息,同时客户端也无法获知数据库中与待查询的模糊关键词无关的数据,提高了双方的隐私安全。
23.下面通过各个实施例对本方案的匿踪查询方法进行详细介绍。
24.本发明实施例提供的匿踪查询方法可以由一电子设备来执行,该电子设备可以是诸如pc机、笔记本电脑、智能手机等终端设备。下面分别对客户端执行的匿踪查询过程进行
示例性说明。
25.图1为本发明实施例提供的一种匿踪查询方法的流程图。图2为本发明一示例性实施例的一种匿踪查询方法的应用场景示意图;参考附图1、附图2所示,本实施例提供了一种匿踪查询方法,该方法的执行主体可以为客户端设备,可以理解的是,该客户端设备可以实现为软件、或者软件和硬件的组合,具体的,如图1所示,该匿踪查询方法可以包括如下步骤:步骤101、获取待查询的模糊关键词,模糊关键词中包括未知字符。
26.步骤102、通过多个服务端进行匿踪查询,以确定模糊关键词所对应的匹配关键词集,匹配关键词集中包括与模糊关键词相对应的至少一个匹配关键词,匹配关键词中包括与未知字符相对应的匹配字符。
27.步骤103、基于匹配关键词,确定第一秘密函数。
28.步骤104、基于第一秘密函数,确定与多个服务端各自对应的第一秘密子函数,并将第一秘密子函数分别发送至各自对应的服务端,以使得多个服务端分别基于第一秘密子函数对目标数据库中的各个数据进行加密处理,得到加密后的第一数据,目标数据库中包括预设关键词以及与预设关键词相对应的查询内容。
29.步骤105、接收多个服务端各自发送的第一数据。
30.步骤106、基于第一数据和第一秘密函数,确定与模糊关键词相对应的目标查询内容。
31.本发明实施例中提供的匿踪查询方法可以应用在隐私计算或者需要保护用户查询隐私的场景中,例如:服务端拥有用户信息集合{(xi,pi)|i=1,2

k},其中xi为姓名,pi为其他信息。用户想要查询“alice”对应的信息,但此用户无法提供“alice”的正确拼写,只记得首末各两个字母,希望服务器能够将对应的用户信息pi返回。同时,用户不希望泄露查询的关键词给服务端。
32.在本发明实施例中,客户端与多个服务端进行通信连接,其中服务端的个数至少为两个,并且每个服务端拥有同样的目标数据库,目标数据库中包括多个数据,且每个数据可以以键对的形式进行存储,例如数据库为,其中,为关键词,为关键词所对应的查询内容,并且关键词中不包括未知字符,为一个精确关键词。由于待查询的关键词为模糊关键词,即模糊关键词中包括未知字符,那么客户端想要查询模糊关键词所对应的查询内容时,无法在目标数据库中查找到该模糊关键词,也就无法查询到查询内容。因此,在本发明实施例中,在客户端进行关键词查询之前,可以先确定目标数据库中每个关键词所对应的模糊关键词集。
33.其中,目标数据库中每个关键词所对应的模糊关键词集的具体确定方式可以为:利用通配符技术和编辑距离的相似性,构建模糊关键词集合,这样就不再需要依次列举每个关键词对应的各种可能的模糊关键词。例如:对于关键词alice,则有模糊词集合{*alice,*lice,a*lice,a*ice,

alic*e,alic*,alice*},其中*为通配符,可以表示任意字母。在确定目标数据库中每个关键词所对应的模糊关键词集后,可以基于模糊关键词集合中的每个模糊关键词与目标数据库中的关键词建立一一映射关系进行存储。例如,按照(*alice,alice)(*lice,alice)(a*lice,alice)(a*ice,alice)(alic*e,alice)(alic*,alice)(alice*,alice)的形式一一存储在服务端。
34.另外,对于一个模糊关键词可能出现在目标数据库中的多个关键词所对应的模糊关键词集中,也就是说一个模糊关键词可能与目标数据库中的多个关键词都存在映射关系。例如,模糊关键词alic*将同时出现在alice和alicc的模糊词集合中。若遇到这种情况,可以将多个关键词进行合并,即合并为(alic*,alice|alicc)后再进行存储。
35.由于目标数据库中可能存在大量的关键词,并且每个关键词可能对应有多个模糊关键词,其对应也会存储有大量的映射关系,若这些映射关系随意的存储在服务端的各个位置上,那么当有查询需求时,查询起来将十分复杂且以出错。因此可以在服务端建立一个辅助数据库,辅助数据库专门用来存储模糊关键词与模糊关键词所对应的匹配关键词集的映射关系。
36.通过上述过程就可以为目标数据库中的每个关键词都确定了其可能对应的模糊关键词,并将其对应的映射关系存储在服务端中的辅助数据库中,那么当用户待查询的关键词为模糊关键词时,可以先为待查询的模糊关键词在辅助数据库中匹配出其对应的关键词,这样再基于匹配出的关键词进行具体信息的查询。
37.具体的匿踪查询过程可以为:首先客户端获取待查询的模糊关键词,模糊关键词中包括未知字符。其中,一个模糊关键词中可以包括一个未知字符或者多个未知字符,可以根据实际情况进行设定。在获取到待查询的模糊关键词后,通过与多个服务端进行匿踪查询,以确定模糊关键词所对应的匹配关键词集。其中匹配关键词集中包括与模糊关键词相对应的至少一个匹配关键词,匹配关键词中包括与未知字符相对应的匹配字符,也就说匹配关键词为精确关键词。由于一个模糊关键词可能对应有多个目标数据库中的关键词,那么在以隐藏有模糊关键词的信息作为查询条件时,可能会匹配出一个匹配关键词或者多个匹配关键词。另外,在通过与多个服务端进行匿踪查询后,客户端对服务端处理后的数据进行解密时,得到的可能是一个空集,也就是说,待查询的模糊关键词未在辅助数据库中查找到其对应的匹配关键词,此时用户可以重新检查待查询的模糊关键词是否书写正确。若书写正确,则说明无法查询到待查询的目标内容,此次查询结束;若书写不正确,则重新输入待查询的模糊关键词,再次执行匿踪查询。
38.在确定模糊关键词所对应的匹配关键词集时,采用匿踪查询的方式进行查询来确定模糊关键词所对应的匹配关键词集,这样既可以使得客户端获取待查询的模糊关键词所对应的匹配关键词集,也可以使得服务端无法获知客户端获取的是那个映射关系。其中具体的匿踪查询方式不做限定,例如可以基于秘密函数的匿踪查询、基于同态加密和多项式的匿踪查询。
39.其中,通过与多个服务端进行匿踪查询,以确定模糊关键词所对应的匹配关键词集的具体实现方式可以包括:向多个服务端分别发送匿踪查询请求,匿踪查询请求中隐藏有待查询的模糊关键词信息,多个服务端基于匿踪查询请求,对服务端辅助数据库中的各个数据进行处理,并将处理后的数据发送至客户端,使得客户端可以确定出待查询模糊关键词所对应的匹配关键词集。
40.确定出待查询的模糊关键词所对应的匹配关键词集后,也就完成了第一次匿踪查询。基于模糊关键词完成第一次匿踪查询后,再基于匹配关键词集进行第二次匿踪查询,以确定匹配关键词集所对应的查询内容。在进行第二次匿踪查询时,若获得的匹配关键词集中包括多个关键词时,客户端可以根据实际需求应用其中某一个匹配关键词来进行第二次
匿踪查询,或者是应用关键词集中的多个匹配关键词来进行第二匿踪查询。需要注意的是:若确定基于多个匹配关键词都进行第二次匿踪查询时,那么需要分别基于每个匹配关键词都进行一次第二次匿踪查询操作。也就是说,每个匹配关键词都需要执行一遍上述步骤103-106。
41.具体的,可以基于匹配关键词,确定第一秘密函数。并基于第一秘密函数,确定与多个服务端各自对应的第一秘密子函数,并将第一秘密子函数分别发送至各自对应的服务端,以使得多个服务端分别基于第一秘密子函数对目标数据库中的各个数据进行加密处理,得到加密后的第一数据。其中,目标数据库中包括预设关键词以及与预设关键词相对应的查询内容。
42.在匿踪查询的过程中需要保护客户端隐私,以确保客户端查询数据不被暴露。那么在查询的过程中,客户端不能直接将待查询的匹配关键词集直接发送至多个服务端,以避免服务端知道客户端所要查询的内容,因此可以将待查询的匹配关键词集进行隐藏处理后,再发送至多个服务端。具体的可以将待查询的匹配关键词集隐藏在第一秘密函数中,然后将第一秘密函数分为多个第一秘密子函数,并分别发送至对应的服务端。其中,第一秘密函数的具体函数类型可以为点函数,分布点函数等,本发明实施例中不对生成的第一秘密函数所对应的函数类型做限定,可以根据实际设计需求选择所需的秘密函数类型。
43.在确定出第一秘密函数类型后,可以采用函数秘密分享机制(function secret sharing,简称fss),根据匹配关键词集,确定第一秘密函数。具体的,假设匹配关键词集中包括一个匹配关键词,匹配关键词为ta,基于函数秘密分享机制,获取第一秘密函数,即第一秘密函数具体可以为f(x=ta)=1,f(x=其他值且x≠ta)=0。若匹配关键词集中包括两个匹配关键词,匹配关键词分别为tb、tc,那么获取到的第一秘密函数具体可以为:f(x=tb)=1,f(x=tc)=1,f(x=其他值且x≠tb,x≠tc)=0。
44.在基于匹配关键词集,确定第一秘密函数时,可以先将匹配关键词集进行编码处理,使得匹配关键词集中的各个匹配关键词都转换为整数后,再基于编码后的匹配关键词集进行第一秘密函数的确定。可选地,对匹配关键词进行编码处理的一种实现方式可以为;将匹配关键词中各对应位的ascii码值乘以相应的权重,再将其各对应位上的乘积值进行相加。
45.另外,为了便于利用第一秘密函数对加密后的数据进行解密,在本发明实施例提供的方法中还可以包括秘密函数各个预设变量所对应的函数值的确定过程,这样不再利用复杂的函数式,而可以直接利用函数值进行解密,使得整个操作过程更简化。具体的确定过程可以为:识别第一秘密函数的预设函数变量是否为匹配关键词,若预设函数变量为匹配关键词,则预设函数变量所对应的秘密函数值为1;若预设函数变量不为匹配关键词,则预设函数变量所对应的秘密函数值为0。通过这种方法可以确定出的第一秘密函数在定义域内各个预设变量所对应的函数值,利用各个预设变量所对应函数值,可以将其他关键词所对应的查询内容筛选掉,只留下匹配关键词集所对应的查询内容,实现了客户端只能获取到目标查询内容,同时也不泄露数据库中其他数据,保护了双方隐私安全。
46.在确定出第一秘密函数后,基于第一秘密函数,确定与多个服务端各自对应的第一秘密子函数。由于采用函数秘密分享方法来实现对数据库中的多个数据进行加密,并且在进行函数秘密分享时,通常有一个接收端和两个或者两个以上的发送端,因此,客户端与
至少两个服务端通信连接,那么在确定第一秘密子函数时,需要根据服务端的个数确定出相应个数的第一秘密子函数。其中,每个服务端都对应有一个第一秘密子函数,也就是说第一秘密子函数的个数与服务端的个数相同,确定出与各个服务端所对应的第一秘密子函数后,将第一秘密子函数分别发送给各自对应的服务端,使得各个服务端持有部分第一秘密函数,并且多个服务端合作可以重构出完整的第一秘密函数。由于每个服务端只是持有部分第一秘密子函数,那么就无法推算出客户端所对应的秘密函数,也就无法推算出客户端所要查询的内容,使得匿踪查询的安全性得到提高。
47.在一可选实施例中,在进行函数秘密分享时,基于第一秘密函数,确定与多个服务端各自对应的第一秘密子函数可以具体包括:客户端将隐藏有目标信息标识的第一秘密函数分为可加的多个与服务端所对应的第一秘密子函数,其中多个第一秘密子函数通过累加可以重构出第一秘密函数。并且在同一预设变量下,第一秘密函数的函数值与多个第一秘密子函数各自所对应的函数值累加处理后的结果相同。
48.服务端接收到各自对应的第一秘密子函数后,可以基于第一秘密子函数分别对目标数据库中的各个数据进行加密处理,得到加密后的第一数据。其中,目标数据库中包括预设关键词以及与预设关键词相对应的查询内容,那么也就是对目标数据库中各个预设关键词以及与各个预设关键词相对应的查询内容进行加密。各个服务端进行加密后分别将加密后的第一数据发送至客户端。
49.客户端接收多个服务端各自发送的第一数据,并基于第一数据和第一秘密函数,确定与模糊关键词相对应的目标查询内容。其中,接收到的多个加密后的第一数据分别是由各个服务端通过各自对应的第一秘密子函数对目标数据库中的各个数据进行加密后得到的,并且各个服务端持有同样地目标数据库,也就是说,多个加密后的第一数据是由不同的第一秘密子函数分别对相同的多个数据进行加密得到的。由于多个第一秘密子函数可以重构出第一秘密函数,那么可以通过对多个加密后的第一数据进行处理,以得到第一秘密函数对多个数据进行加密的结果,这样再根据第一秘密函数,对加密后的第一数据进行解密处理,以获得模糊关键词所对应的目标查询内容。
50.在这个过程中,通过将待查询的匹配关键词集隐藏在第一秘密函数中,并且客户端将隐藏匹配关键词集的第一秘密函数分为多个第一秘密子函数发送给相应的多个服务端,多个服务端基于第一秘密子函数对目标数据库中的多个数据进行加密,利用多个服务端加密后的第一数据可以合作重构出第一秘密函数对目标数据库中多个数据进行加密的结果,然后利用第一秘密函数对加密后的第一数据进行解密,使得客户端只能获得目标查询内容,且服务端无法获知客户端查询了哪些信息,实现了匿踪查询。在整个匿踪查询的过程中通过函数秘密分享的方式对目标数据库中的多个数据进行加密和解密,不仅实现了客户端与服务端之间的匿踪查询,而且实现了基于简单的计算就可以完成数据的加密和解密,提高了计算效率,从而使得匿踪查询效率得到提高,同时相比于公钥算法对目标数据库中的多个数据进行加解密来说,不再需要生成多个公钥,还可以简化数据的加密和解密过程,从而提高了匿踪查询效率。
51.本发明实施例提供的匿踪查询方法,首先通过与多个服务端进行匿踪查询,使得服务端无法分辨具体的查询信息,实现了混淆待查询的模糊关键词的目的,而且同时还可以匹配出模糊关键词中未知字符所对应的匹配字符,实现了对模糊关键词的精准匹配。另
外,将匹配关键词集隐藏在秘密函数中,通过函数秘密分享的方式对目标数据库中的各个数据进行加密和解密,不仅实现了混淆匹配关键词集的目的,使得服务端无法获知客户端查询的具体内容,同时客户端利用秘密函数进行解密,只能获得匹配关键词所对应的目标查询信息,不会暴露数据库中与客户端待查询模糊关键词无关的数据,从而实现模糊关键词的匿踪查询。并且在这个过程中同时与多个服务端进行通信连接以实现匿踪查询,这样服务端很难获知客户端所要查询的信息,提高了匿踪查询的安全性。
52.图3为本发明实施例提供的确定模糊关键词所对应的匹配关键词集的流程示意图;在上述实施例的基础上,参考附图3所示,本实施例提供了一种通过多个服务端进行匿踪查询,以确定模糊关键词所对应的匹配关键词集的实现方式。具体的,可以包括:步骤301、基于模糊关键词,确定第二秘密函数。
53.步骤302、基于第二秘密函数,确定与多个服务端各自对应的第二秘密子函数,并将第二秘密子函数分别发送至各自对应的服务端,以使得多个服务端分别基于第二秘密子函数对辅助数据库中的各个数据进行加密处理,得到加密后的第二数据,辅助数据库中包括模糊关键词以及与模糊关键词相对应的匹配关键词集。
54.步骤303、接收多个服务端各自发送的第二数据。
55.步骤304、基于第二数据和第二秘密函数,确定模糊关键词所对应的匹配关键词集。
56.在获取到待查询的模糊关键词之后,基于模糊关键词,确定第二秘密函数。在匿踪查询的过程中需要保护客户端的隐私,客户端不能直接将模糊关键词发送至服务端,以避免服务端基于待查询的模糊关键词知道客户端所要查询的内容,因此可以对待查询的模糊关键词进行处理后再发送至各个服务端。具体的,可以将模糊关键词隐藏在第二秘密函数中。其中,第二秘密函数的具体函数类型可以为点函数,分布点函数等,本发明实施例中不对生成的第二秘密函数所对应的函数类型做限定,可以根据实际设计需求选择所需的第二秘密函数类型。
57.在确定出第二秘密函数类型后,可以采用函数秘密分享机制(fss算法),根据模糊关键词,确定第二秘密函数。具体的,假设模糊关键词为ta1,基于函数秘密分享机制,获取第二秘密函数,即第二秘密函数具体可以为f(x=ta1)=1,f(x=其他值且x≠ta1)=0。
58.在基于模糊关键词,确定第二秘密函数时,可以先将模糊关键词进行编码处理,使得模糊关键词都转换为整数后,再基于编码后的模糊关键词进行第二秘密函数的确定。可选地,对模糊关键词进行编码处理的一种实现方式可以为;将模糊关键词中各对应位的ascii码值乘以相应的权重,再将其各对应位上的乘积值进行相加。例如,模糊关键词为al*ce,进行编码,得到编码后模糊关键词。
59.另外,为了便于利用第二秘密函数对加密后的数据进行解密,在本发明实施例提供的方法中还可以包括第二秘密函数中各个预设变量所对应的函数值的确定过程,这样不再利用复杂的函数式,而可以直接利用函数值进行解密,使得整个操作过程更简化。具体的确定过程可以为:识别第二秘密函数的预设函数变量是否为待查询的模糊关键词,若预设函数变量为待查询的模糊关键词,则预设函数变量所对应的秘密函数值为1;若预设函数变量不为待查询的模糊关键词,则预设函数变量所对应的秘密函数值为0。通过这种方法可以确定出第二秘密函数在定义域内各个预设变量所对应的函数值,利用各个预设变量所对应
函数值,可以将其他模糊关键词所对应的匹配关键词集筛选掉,只留下待查询的模糊关键词所对应的匹配关键词集,实现了客户端只能获取到待查询的模糊关键词所对应的匹配关键词集,同时也不泄露辅助数据库中其他数据,保护了双方隐私安全。
60.在确定出第二秘密函数后,基于第二秘密函数,确定与多个服务端各自对应的第二秘密子函数。由于采用函数秘密分享方法来实现对辅助数据库中的多个数据进行加密,并且在进行函数秘密分享时,通常有一个接收端和两个或者两个以上的发送端,因此,客户端与至少两个服务端通信连接,那么在确定第二秘密子函数时,需要根据服务端的个数确定出相应个数的第二秘密子函数。其中,每个服务端都对应有一个第二秘密子函数,也就是说第二秘密子函数的个数与服务端的个数相同,确定出与各个服务端所对应的第二秘密子函数后,将第二秘密子函数分别发送给各自对应的服务端,使得各个服务端持有部分第二秘密子函数,并且多个服务端合作可以重构出完整的第二秘密函数。由于每个服务端只是持有部分第二秘密子函数,那么就无法推算出客户端所对应的第二秘密函数,也就无法推算出客户端所要查询的内容,使得匿踪查询的安全性得到提高。
61.在一可选实施例中,在进行函数秘密分享时,基于第二秘密函数,确定与多个服务端各自对应的第二秘密子函数可以具体包括:客户端将隐藏有模糊关键词的第二秘密函数分为可加的多个与服务端所对应的第二秘密子函数,其中多个第二秘密子函数通过累加可以重构出第二秘密函数。并且在同一预设变量下,第二秘密函数的函数值与多个第二秘密子函数各自所对应的函数值累加处理后的结果相同。
62.服务端接收到各自对应的第二秘密子函数后,可以基于第二秘密子函数分别对辅助数据库中的各个数据进行加密处理,得到加密后的第二数据。其中,辅助数据库中包括模糊关键词以及与模糊关键词相对应的匹配关键词集合,那么也就是对辅助数据库中各个模糊关键词以及与各个模糊关键词相对应的匹配关键词集进行加密。各个服务端进行加密后分别将加密后的第二数据发送至客户端。
63.客户端接收多个服务端各自发送的第二数据,并基于第二数据和第二秘密函数,确定与模糊关键词相对应的匹配关键词集。其中,接收到的多个加密后的第二数据分别是由各个服务端通过各自对应的第二秘密子函数对辅助数据库中的各个数据进行加密后得到的,并且各个服务端持有同样的辅助数据库,也就是说,多个加密后的第二数据是由不同的第二秘密子函数分别对相同的多个数据进行加密得到的。由于多个第二秘密子函数可以重构出第二秘密函数,那么可以通过对多个加密后的第二数据进行处理,以得到第二秘密函数对辅助数据库中的多个数据进行加密的结果,这样再根据第二秘密函数,对加密后的第二数据进行解密处理,以获得模糊关键词所对应的匹配关键词集。
64.本发明实施例中,通过将待查询的模糊关键词隐藏在第二秘密函数中,并且客户端将隐藏模糊关键词的第二秘密函数分为多个第二秘密子函数发送给相应的多个服务端,多个服务端基于第二秘密子函数对辅助数据库中的多个数据进行加密,利用多个服务端加密后的第二数据可以合作重构出第二秘密函数对辅助数据库中多个数据进行加密的结果,然后利用第二秘密函数对加密后的第二数据进行解密,使得客户端只能获得待查询的模糊关键词所对应的匹配关键词集,且服务端无法获知客户端查询了哪些信息,实现了匿踪查询。在整个匿踪查询的过程中通过函数秘密分享的方式对辅助数据库中的多个数据进行加密和解密,不仅实现了客户端与服务端之间的匿踪查询,而且实现了基于简单的计算就可
以完成数据的加密和解密,提高了计算效率,从而使得匿踪查询效率得到提高,同时相比于公钥算法对辅助数据库中的多个数据进行加解密来说,不再需要生成多个公钥,还可以简化数据的加密和解密过程,从而提高了匿踪查询效率。
65.在实际应用中,用户通常只是忘记了待查询的关键词中的部分信息,那么在获取到待查询的模糊关键词所对应的匹配关键词集,可以根据匹配关键词集中的匹配关键词,确定出所要查询的是哪个匹配关键词,然后删除匹配关键词集中的剩余匹配关键词,只基于确定出的匹配关键词进行接下来的查询操作,这样可以节省大量的查询时间。若用户根据匹配关键词集中的各个匹配关键词还是无法确定要查询的是哪个匹配关键词,那么就基于匹配关键词集中的各个匹配关键词分别进行一次第二次匿踪查询操作,以确定各个匹配关键词所对应的查询内容。另外,在实际应用中还经常会出现用户需要获取匹配关键词集中各个匹配关键词所对应的查询内容,那么也可以直接基于确定出的匹配关键词集中的各个匹配关键词分别进行一次第二次匿踪查询操作。
66.图4为本发明实施例提供的基于第二数据和第二秘密函数,确定模糊关键词所对应的匹配关键词集的流程示意图;在上述实施例的基础上,参考附图5所示,本实施例提供了一种基于第二数据和第二秘密函数,确定模糊关键词所对应的匹配关键词集的实现方式。具体的,可以包括:步骤401、对所有的第二数据进行累加处理,获得第一累加结果。
67.步骤402、基于第二秘密函数,确定辅助数据库中的各个模糊关键词所对应的秘密函数值。
68.步骤403、根据各个模糊关键词所对应的秘密函数值,对第一累加结果进行处理,获到匹配关键词集。
69.在接收到多个服务端分别发送的第二数据后,对所有的第二数据进行累加处理,获得第一累加结果。然后基于第二秘密函数,确定辅助数据库中的各个模糊关键词所对应的秘密函数值。在确定各个模糊关键词所对应的函数值时,可以将多个模糊关键词分别作为第二秘密函数的函数变量取值范围内的几个点,然后确定第二秘密函数中各个点所对应的函数值,从而确定出辅助数据库中的各个模糊关键词所对应的秘密函数值。
70.本发明实施例所提供的匿踪查询方法中,在确定出第二秘密函数后,该方法还可以包括第二秘密函数中的各个预设变量所对应的函数值的确定,基于第二秘密函数,确定各个预设变量所对应的函数值。具体的可以包括:识别所述第二秘密函数的预设函数变量是否为待查询的模糊关键词,若预设函数变量为待查询的模糊关键词,则预设函数变量所对应的秘密函数值为1;若预设函数变量不为待查询的模糊关键词,则预设函数变量所对应的秘密函数值为0。
71.由上述第二秘密函数中各个预设变量所对应的函数值的确定方法,可以确定出各个模糊关键词所对应的函数值,即待查询的模糊关键词所对应的函数值为1,其余各个模糊关键词所对应的函数值为0。对接收到的所有的加密后的第二数据进行累加处理,获得第一累加结果,根据辅助数据库中多个模糊关键词各自对应的秘密函数值,对第一累加结果进行处理,获到匹配关键词集。由于每个服务端持有同样地辅助数据库,并且每个服务端都是基于各自对应的第二秘密子函数对辅助数据库中的各个数据进行加密,那么对接收到的所有第二数据进行累加处理,得到第二秘密函数对辅助数据库中各个数据进行加密的多个加
密信息的累加结果。再基于待查询的模糊关键词所对应的函数值为1,其余各个模糊关键词所对应的函数值为0,对第二累加结果进行处理,以剔除掉其它模糊关键词、以及模糊关键词所对应的查询内容,只得到待查询的模糊关键词所对应的匹配关键词集。
72.具体的,在实际应用场景中,假设此应用场景下对应有一个客户端和两个访问端,其两个服务端分别用s1、s2表示。并且两个服务端对应有同样的辅助数据库,且辅助数据库中包括5个数据信息,分别为(*alice,alice)(*lice,alice)(a*lice,alice)(a*ice,alice)(alic*e,alice)。假设辅助数据库中的模糊关键词编码后分别为x
11
、x
12
、x
13
、x
14
、x
15
;辅助数据库中的匹配关键词编码后分别为x
21
、x
22
、x
23
、x
24
、x
25
。客户端待查询的模糊关键词为*alice,则第二秘密函数为:f(x=x
11
)=1;f(x=x
i1
,i≠1)=0。服务端s1对应的第二秘密子函数为f1(x),发送端s2对应的第二秘密子函数为f2(x),并且f(x)=f1(x) f2(x)。服务端s1对应的加密后的第二数据为r1=f1(x
11
)x
21
f1(x
12
)x
22
f1(x
13
)x
23
f1(x
14
)x
24
f1(x
15
)x
25
,服务端s2对应的加密后的第二数据为r2=f2(x
11
)x
21
f2(x
12
)x
22
f2(x
13
)x
23
f2(x
14
)x
24
f2(x
15
)x
25
。确定辅助数据库中各个模糊关键词所对应的函数值分别为:f(x
11
)=1、f(x
12
)=0、f(x
13
)=0、f(x
14
)=0、f(x
15
)=0。接着,对接收到的服务端s1的加密后的第二数据r1和服务端s2的加密后的第二数据r2进行累加处理,以得到累加结果r=f(x
11
)x
21
f(x
12
)x
22
f(x
13
)x
23
f(x
14
)x
24
f(x
15
)x
25
。具体:r=r1 r2=[f1(x
11
) f2(x
11
)]x
21
[f1(x
12
) f2(x
12
)]x
22
[f1(x
13
) f2(x
13
)]x
23
[f1(x
14
) f2(x
14
)]x
24
[f1(x
15
) f2(x
15
)]x
25
=f(x
11
)x
21
f(x
12
)x
22
f(x
13
)x
23
f(x
14
)x
24
f(x
15
)x
25
。接着利用各个模糊关键词所对应的秘密函数值,对第一累加结果进行处理,获得匹配关键词集x
21
。其根据各个模糊关键词所对应的秘密函数值,对第一累加结果进行处理的具体实现过程可以为:r=f(x
11
)x
21
f(x
12
)x
22
f(x
13
)x
23
f(x
14
)x
24
f(x
15
)x
25
=1*x
21
0*x
22
0*x
23
0*x
24
0*x
25
=x
21

[0073]
本发明实施例中,通过基于第二秘密函数,确定辅助数据库中多个模糊关键词各自对应的函数值,对所有的加密后的第二数据进行累加处理,获得第一累加结果,根据多个模糊关键词各自对应的函数值,对第一累加结果进行处理,获得待查询的模糊关键词所对应的匹配关键词集,实现了客户端只能获得待查询的模糊关键词所对应的匹配关键词集的同时保护了其他模糊关键词所对应的匹配关键词集不被泄露。
[0074]
图5为本发明实施例提供的基于第一数据和第一秘密函数,确定与模糊关键词相对应的目标查询信息的流程示意图;在上述实施例的基础上,参考附图5所示,本实施例提供了一种基于第一数据和第一秘密函数,确定与模糊关键词相对应的目标查询信息的实现方式。具体的,可以包括:步骤501、对所有的第一数据进行累加处理,获得第二累加结果。
[0075]
步骤502、基于第一秘密函数,确定目标数据库中的各个预设关键词所对应的秘密函数值。
[0076]
步骤503、根据各个预设关键词所对应的秘密函数值,对第二累加结果进行处理,获到目标查询内容。
[0077]
在接收到多个服务端分别发送的第一数据后,对所有的第一数据进行累加处理,获得第二累加结果。然后基于第一秘密函数,确定目标数据库中的各个预设关键词所对应的秘密函数值。在确定各个预设关键词所对应的函数值时,可以将多个预设关键词分别作为第一秘密函数的函数变量取值范围内的几个点,然后确定第一秘密函数中各个点所对应
的函数值,从而确定出目标数据库中的各个预设关键词所对应的秘密函数值。
[0078]
本发明实施例所提供的匿踪查询方法中,在确定出第一秘密函数后,该方法还可以第一秘密函数中的各个预设变量所对应的函数值的确定,基于第一秘密函数,确定各个预设变量所对应的函数值。具体的可以包括:识别第一秘密函数的预设函数变量是否为匹配关键词,若预设函数变量为匹配关键词,则预设函数变量所对应的秘密函数值为1;若预设函数变量不为匹配关键词,则预设函数变量所对应的秘密函数值为0。
[0079]
由上述第一秘密函数中各个预设变量所对应的函数值的确定方法,可以确定出各个预设关键词所对应的函数值,即待查询的匹配关键词集中各个匹配关键词所对应的函数值为1,其余各个预设关键词所对应的函数值为0。对接收到的所有的加密后的第一数据进行累加处理,获得第二累加结果,根据目标数据库中多个预设关键词各自对应的秘密函数值,对第二累加结果进行处理,获到目标查询内容。由于每个服务端持有同样地目标数据库,并且每个服务端都是基于各自对应的第一秘密子函数对目标数据库中的各个数据进行加密,那么对接收到的所有第一数据进行累加处理,得到第一秘密函数对目标数据库中各个数据进行加密的多个加密信息的累加结果。再基于匹配关键词集中各个匹配关键词所对应的函数值为1,其余各个预设关键词所对应的函数值为0,对第二累加结果进行处理,以剔除掉其它预设关键词、以及预设关键词所对应的查询内容,只得到待查询的模糊关键词所对应的目标查询内容。
[0080]
具体的,在实际应用场景中,假设此应用场景下对应有一个客户端和两个访问端,其两个服务端分别用s1、s2表示。并且两个服务端对应有同样的目标数据库,且目标数据库中包括5个数据信息,分别为(赵一,赵一所对应的信息)(赵二,赵二所对应的信息)(赵三,赵三所对应的信息)(赵四,赵四所对应的信息)(赵五,赵五所对应的信息)。假设目标数据库中的预设关键词编码后分别为y
11
、y
12
、y
13
、y
14
、y
15
;目标数据库中的查询内容编码后分别为y
21
、y
22
、y
23
、y
24
、y
25
。客户端匹配关键词集中包括一个匹配关键词y
11
,则第一秘密函数为:f(x=y
11
)=1;f(x=y
i1
,i≠1)=0。服务端s1对应的第一秘密子函数为f1(x),服务端s2对应的第一秘密子函数为f2(x),并且f(x)=f1(x) f2(x)。服务端s1对应的加密后的第一数据为r1=f1(y
11
)y
21
f1(y
12
)y
22
f1(y
13
)y
23
f1(y
14
)y
24
f1(y
15
)y
25
,发送端s2对应的加密后的第一数据为r2=f2(y
11
)y
21
f2(y
12
)y
22
f2(y
13
)y
23
f2(y
14
)y
24
f2(y
15
)y
25
。确定目标数据库中各个预设关键词所对应的函数值分别为:f(y
11
)=1、f(y
12
)=0、f(y
13
)=0、f(y
14
)=0、f(y
15
)=0。接着,对接收到的服务端s1的加密后的第一数据r1和服务端s2的加密后的第一数据r2进行累加处理,以得到累加结果r=f(y
11
)y
21
f(y
12
)y
22
f(y
13
)y
23
f(y
14
)y
24
f(y
15
)y
25
。具体的处理过程为:r=r1 r2=[f1(y
11
) f2(y
11
)]y
21
[f1(y
12
) f2(y
12
)]y
22
[f1(y
13
) f2(y
13
)]y
23
[f1(y
14
) f2(y
14
)]y
24
[f1(y
15
) f2(y
15
)]y
25
=f(y
11
)y
21
f(y
12
)y
22
f(y
13
)y
23
f(y
14
)y
24
f(y
15
)y
25
。接着利用各个预设关键词所对应的秘密函数值,对第二累加结果进行处理,获得目标查询内容y
21
。其根据各个预设关键词所对应的秘密函数值,对第二累加结果进行处理的具体实现过程可以为:r=f(y
11
)y
21
f(y
12
)y
22
f(y
13
)y
23
f(y
14
)y
24
f(y
15
)y
25
=1*y
21
0*y
22
0*y
23
0*y
24
0*y
25
=y
21
。然后再将得到的目标查询内容进行解码,以获得解码后的目标查询内容即赵一所对应的信息。
[0081]
本发明实施例中,通过基于第一秘密函数,确定目标数据库中多个预设关键词各自对应的函数值,对所有的加密后的第一数据进行累加处理,获得第二累加结果,根据多个
预设关键词各自对应的函数值,对第二累加结果进行处理,获得待查询的模糊关键词所对应的目标查询内容,实现了客户端只能获得待查询的模糊关键词所对应的目标查询内容的同时保护了其他预设关键词所对应的查询内容不被泄露。
[0082]
在本发明中客户端通信连接有至少两个服务端,并且每个发送端持有同样的辅助数据,且与客户端进行的交互操作基本一致,那么在接下来的实施例中以任意一服务端与客户端进行匿踪查询的实现方式进行说明。
[0083]
图6为本发明一示例性实施例的一种匿踪查询方法的流程示意图;参考附图6所示,本实施例提供了一种匿踪查询方法,该方法的执行主体可以为服务端设备,可以理解的是,该终端设备可以实现为软件、或者软件和硬件的组合。具体的,该匿踪查询方法可以包括:步骤601、获取目标数据库和辅助数据库,目标数据库中包括预设关键词以及与预设关键词相对应的查询内容,辅助数据库中包括模糊关键词以及与模糊关键词相对应的匹配关键词集。
[0084]
步骤602、接收客户端发送的匿踪查询请求。
[0085]
步骤603、基于匿踪查询请求,对辅助数据库中的各个数据进行匿踪查询处理,以使得客户端基于匿踪查询确定待查询的模糊关键词所对应的匹配关键词集。
[0086]
步骤604、接收客户端发送的第一秘密子函数。
[0087]
步骤605、基于第一秘密子函数对目标数据库中的各个数据进行加密处理,获得加密后的第一数据,并将第一数据发送至客户端,以使客户端基于第一数据以及第一秘密函数,确定与模糊关键词相对应的目标查询内容。
[0088]
服务端在与客户端进行匿踪查询之前,首先获取目标数据库和辅助数据库。其中,目标数据库中包括预设关键词以及与预设关键词相对应的查询内容,目标数据库中的数据可以以键值对的形式进行存储。辅助数据库中包括模糊关键词以及与模糊关键词相对应的匹配关键词集,辅助数据库中的数据可以以键值对的形式进行存储。
[0089]
在一可选实施例中,获取辅助数据库的具体实现方式可以为:获取目标数据库中所有的预设关键词,确定预设关键词各自对应的模糊关键词集,基于模糊关键词集和预设关键词,获得辅助数据库。在确定目标数据库中每个预设关键词所对应的模糊关键词集后,可以基于模糊关键词集合中的每个模糊关键词与其对应的目标数据库中的预设关键词建立一一映射关系存储在辅助数据库中。也就是说,以模糊关键词集中的元素作为关键词,目标数据库中的预设关键词作为载荷,构造辅助数据库。这样当客户端的待查询关键词为模糊关键词,可以基于辅助数据库确定待查询的模糊关键词所对应的匹配关键词集。
[0090]
接收客户端发送的匿踪查询请求,匿踪查询请求中携带有隐藏待查询的模糊关键词的信息,基于匿踪查询请求,对辅助数据库中的各个数据进行匿踪查询处理,以使得客户端基于匿踪查询确定待查询的模糊关键词所对应的匹配关键词集。
[0091]
在一可选实施例中,基于匿踪查询请求,对辅助数据库中的各个数据进行匿踪查询处理的具体实现方式可以包括:基于匿踪查询请求中的第二秘密子函数对辅助数据库中的各个数据进行加密处理,获得加密后的第二数据,将第二数据发送至客户端,以使客户端基于第二数据以及第二秘密函数,确定待查询的模糊关键词所对应的匹配关键词集。其中,客户端向服务端发送的匿踪查询请求,并且将隐藏有待查询的模糊关键词的第二秘密子函
数携带在匿踪查询请求,这样当服务端接收到匿踪查询请求后,可以基于匿踪查询请求中的第二秘密子函数对辅助数据库中的各个数据进行加密处理,使得客户端可以获得待查询的模糊关键词所对应的匹配关键词集,同时还保护了客户端待查询的模糊关键词不被服务端所获知。
[0092]
在一可选实施例中,基于第二秘密子函数,对辅助数据库中的各个数据进行加密处理,获得加密后的第二数据的具体实现方式可以包括:基于第二秘密子函数,确定辅助数据库中各个模糊关键词所对应的函数值,分别获取辅助数据库中各个模糊关键词所对应的匹配关键词与各个模糊关键词所对应的函数值的乘积,对乘积进行累加处理,得到多个乘积的累加结果,并将累加结果确定为加密后的第二数据。其中,基于第二秘密子函数,确定辅助数据库中各个模糊关键词各自对应的秘密函数值时,可以将多个模糊关键词看作第二秘密子函数的函数变量取值范围内的几个点,然后确定第二秘密子函数中各个点所对应的函数值,从而确定出辅助数据库中各个模糊关键词各自对应的秘密函数值。将各个模糊关键词所对应的匹配关键词集与各个模糊关键词所对应的函数值进行乘积处理,得到多个乘积,这样客户端在解密时可以利用各个模糊关键词所对应的函数值剔除掉其它模糊关键词所对应的匹配关键词集,只留下待查询的模糊关键词所对应的匹配关键词集,从而通过简单的运算就可以实现了匿踪查询,并且可以大大提高了匿踪查询的效率。
[0093]
具体的,假设在一应用场景下对应有一个客户端和两个服务端,其两个服务端分别用s1、s2表示。并且两个服务端对应有同样的辅助数据库,且辅助数据库中包括5个数据信息,分别为(*alice,alice)(*lice,alice)(a*lice,alice)(a*ice,alice)(alic*e,alice)。假设辅助数据库中的模糊关键词编码后分别为x
11
、x
12
、x
13
、x
14
、x
15
;辅助数据库中的匹配关键词编码后分别为x
21
、x
22
、x
23
、x
24
、x
25
。由于两个服务端的操作基本一致,这里只以服务端s1进行举例说明。服务端s1对应的第二秘密子函数为f1(x)。服务端s1基于第二秘密子函数,确定辅助数据库中多个模糊关键词所对应的函数值分别为f1(x
11
)、f1(x
12
)、f1(x
13
)、f1(x
14
)、f1(x
15
),获取辅助数据库中各个模糊关键词所对应的匹配关键词集与各个模糊关键词所对应的函数值的乘积,其分别为:f1(x
11
)x
21
、f1(x
12
)x
22
、f1(x
13
)x
23
、f1(x
14
)x
24
、f1(x
15
)x
25
。在确定出多个乘积后,并对多个乘积进行累加,以得到多个乘积的累加结果,即累加结果为:f1(x
11
)x
21
f1(x
12
)x
22
f1(x
13
)x
23
f1(x
14
)x
24
f1(x
15
)x
25
,并将累加结果确定为加密后的第二数据r1,即r1=f1(x
11
)x
21
f1(x
12
)x
22
f1(x
13
)x
23
f1(x
14
)x
24
f1(x
15
)x
25
,将加密后的第二数据发送至客户端。
[0094]
将第二数据发送至客户端后,客户端基于第二秘密函数对第二数据进行解密,以获得待查询的模糊关键词所对应的匹配关键词集,然后基于匹配关键词集,确定第一秘密函数,并基于第一秘密函数,确定多个服务端各自对应的第一秘密子函数,并将第一秘密子函数分别发送至各自对应的服务端。
[0095]
服务端接收到客户端发送的第一秘密子函数后,基于第一秘密子函数对目标数据库中的各个数据进行加密处理,获得加密后的第一数据。并将第一数据发送至客户端,以使客户端基于第一数据以及第一秘密函数,确定与模糊关键词相对应的目标查询内容。由于第一秘密子函数中包括隐藏有匹配关键词集的信息,那么服务端基于第一秘密子函数对目标数据库中的各个数据加密,可以使得客户端只获取到待查询的目标查询内容,并且服务端无法获知客户端获取了哪些查询内容,从而实现了匿踪查询。
[0096]
在一可选实施例中,基于第一秘密子函数,对目标数据库中的各个数据进行加密处理,获得加密后的第一数据的具体实现方式可以包括:基于第一秘密子函数,确定目标数据库中各个预设关键词所对应的函数值,分别获取各个预设关键词所对应的函数值与各个预设关键词所对应的查询内容的乘积,对乘积进行累加处理,得到多个乘积的累加结果,并将累加结果确定为加密后的第一数据。其中,基于第一秘密子函数,确定目标数据库中各个预设关键词各自对应的秘密函数值时,可以将多个预设关键词看作第一秘密子函数的函数变量取值范围内的几个点,然后确定第一秘密子函数中各个点所对应的函数值,从而确定出目标数据库中各个预设关键词各自对应的秘密函数值。将各个预设关键词所对应的查询内容与各个预设关键词所对应的函数值进行乘积处理,得到多个乘积,这样客户端在解密时可以利用各个预设关键词所对应的函数值剔除掉其它预设关键词所对应的查询内容,只留下待查询的模糊关键词所对应的目标查询内容,从而通过简单的运算就可以实现了匿踪查询,并且可以大大提高了匿踪查询的效率。
[0097]
具体的,假设在一应用场景下对应有一个客户端和两个服务端,其两个服务端分别用s1、s2表示。并且两个服务端对应有同样的目标数据库,且目标数据库中包括5个数据信息,分别为(赵一,赵一所对应的信息)(赵二,赵二所对应的信息)(赵三,赵三所对应的信息)(赵四,赵四所对应的信息)(赵五,赵五所对应的信息)。假设目标数据库中的预设关键词编码后分别为y
11
、y
12
、y
13
、y
14
、y
15
;目标数据库中的查询内容编码后分别为y
21
、y
22
、y
23
、y
24
、y
25
。这里只以服务端s1进行举例说明。服务端s1对应的第一秘密子函数为f1(x)。服务端s1基于第一秘密子函数,确定目标数据库中多个预设关键词所对应的函数值分别为f1(y
11
)、f1(y
12
)、f1(y
13
)、f1(y
14
)、f1(y
15
),获取目标数据库中各个预设关键词所对应的查询内容与各个预设关键词所对应的函数值的乘积,其分别为:f1(y
11
)y
21
、f1(y
12
)y
22
、f1(y
13
)y
23
、f1(y
14
)y
24
、f1(y
15
)y
25
。在确定出多个乘积后,并对多个乘积进行累加,以得到多个乘积的累加结果,即累加结果为:f1(y
11
)y
21
f1(y
12
)y
22
f1(y
13
)y
23
f1(y
14
)y
24
f1(y
15
)y
25
,并将累加结果确定为加密后的第一数据r1,即r1=f1(y
11
)y
21
f1(y
12
)y
22
f1(y
13
)y
23
f1(y
14
)y
24
f1(y
15
)y
25
,将加密后的第一数据发送至客户端。
[0098]
在本发明实施例中,通过接收客户端发送的匿踪查询请求,基于匿踪查询请求,对辅助数据库中的各个数据进行匿踪查询处理,以使得客户端基于匿踪查询确定待查询的模糊关键词所对应的匹配关键词集。然后接收客户端发送的第一秘密子函数,基于第一秘密子函数对目标数据库中的各个数据进行加密处理,获得加密后的第一数据,并将第一数据发送至所述客户端,以使客户端基于第一数据以及第一秘密函数,确定与模糊关键词相对应的目标查询内容,实现了模糊关键词的匿踪查询。
[0099]
本发明实施例提供的方案的一些步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
[0100]
然而,在实际应用中,用户经常会忘记待查询关键词中的某些信息或者在查询的过程中无法确定具体的关键词信息,此时使用传统的匿踪查询方法将无法查询到目标查询内容。很多应用场景都需要这种模糊关键词的查询方法。具体应用时,在匿踪查询过程中包括一个客户端设备和多个服务端设备,这里以两个服务端进行距离说明,其具体的匿踪查询方法可以包括以下步骤:在进行匿踪查询之前,两个服务端s1、s2可以提前分别获取到同样的目标数据库
和辅助数据库。
[0101]
具体的,服务端s1、s2拥有相同的目标数据库。其中为预设关键词,为预设关键词所对应的查询内容。对于目标数据库中任意一个预设关键词,服务端s1、s2按照通配符技术,利用编辑距离的相似性确定预设关键词所对应的模糊关键词集。例如,对关键词alice,则有模糊关键词集{*alice,*lice,a*lice,a*ice,

alic*e,alic*,alice*}。以模糊关键词集中的元素作为关键词,db中的关键词作为载荷,构造辅助数据库。其中为模糊关键词,为模糊关键词所对应的匹配关键词。中可能出现重复的关键词,例如,alic*会同时出现在alice和alicc的模糊词集合中。这种情况下,需要对相应项进行归并。相关数据项可合并为(alic*,alice|alicc)。

|’符号仅作为一种可能的分隔符号,任何能起到分隔作用且不会引起误解的符号都可以使用。另外,辅助数据库的生成方式也可以在云端生成,服务端通过云端直接获取到辅助数据库。
[0102]
步骤1、客户端获取待查询的模糊关键词,模糊关键词中包括未知字符。
[0103]
具体的,用户可以在客户端设备的界面上输入待查询的模糊关键词al*ce后,客户端设备获取到用户输入的待查询的模糊关键词al*ce。对获取到的模糊关键词进行编码处理,以得到编码后的结果。
[0104]
步骤2、客户端基于待查询的模糊关键词,确定第二秘密函数。
[0105]
步骤3、客户端基于第二秘密函数,确定与两个服务端各自对应的第二秘密子函数,并将第二秘密子函数分别发送至各自对应的服务端。
[0106]
具体的,基于function secret sharing机制,获取第二秘密函数f(x=)=1,f(x=)=0。基于第二秘密函数确定第二秘密子函数,满足。将分别发送给服务端s1,s2。
[0107]
步骤4、服务端s1接收客户端发送的第二秘密子函数,服务端s2接收客户端发送的第二秘密子函数。
[0108]
步骤5、服务端s1基于匿踪查询请求中的第二秘密子函数对辅助数据库中的各个数据进行加密处理,获得加密后的第二数据,将第二数据发送至客户端。服务端s2基于匿踪查询请求中的第二秘密子函数对辅助数据库中的各个数据进行加密处理,获得加密后的第二数据,将第二数据发送至客户端。
[0109]
具体的,针对辅助数据库中的每一条数据记录,服务端s1计算,将第二数据返回客户端。同样地,服务端s2计算,将第二数据返回客户端。另外,在对辅助数据库中每条数据记录进行加密计算前,需要将辅助数据库中的各个数据记录进行编码处理,以使得辅助数据库中的模糊关键词以及模糊关键词所对应的匹配关键词集都为整数形式。
[0110]
步骤6、客户端接收服务端s1发送的第二数据以及服务端s2发送的第二数据。
[0111]
步骤7、客户端基于第二数据、和第二秘密函数,确定模糊关键词所对应的匹配关键词集。
[0112]
具体的,客户端计算= =。再基于f(x=)=1,f(x=)=0,可以计算出所对应的匹配关键词集。然后对匹配关键词集进行解码处理,以获得al*ce匹配的db中的关键词集合,即alice,alicc。然后,客户端可以根据实际需求应用alice或者alicc,或者两者都做为匹配关键词分别进行一次第二次匿踪查询操作。
[0113]
步骤8、客户端基于匹配关键词,确定第一秘密函数。
[0114]
步骤9、客户端基于第一秘密函数,确定与两个服务端各自对应的第一秘密子函数,并将第一秘密子函数分别发送至各自对应的服务端。
[0115]
具体的,确定再次进行查询的匹配关键词为alice,匹配关键词进行编码处理,得到编码后的结果。基于function secret sharing机制,获取第一秘密函数f(x=)=1,f(x=)=0。基于第一秘密函数确定第一秘密子函数,满足。将分别发送给服务端s1,s2。
[0116]
步骤10、服务端s1接收客户端发送的第一秘密子函数,服务端s2接收客户端发送的第一秘密子函数。
[0117]
步骤11、服务端s1基于第一秘密子函数对目标数据库中的各个数据进行加密处理,获得加密后的第一数据,将第一数据发送至客户端。服务端s2基于第一秘密子函数对目标数据库中的各个数据进行加密处理,获得加密后的第一数据,将第一数据发送至客户端。
[0118]
具体的,针对目标数据库db中的每一条数据记录),服务端s1计算,将第二数据返回客户端。同样地,服务端s2计算,将第一数据返回客户端。另外,在对目标数据库中每条数据记录进行加密计算前,需要将目标数据库中的各个数据记录进行编码处理,以使得目标数据库中的预设关键词以及预设关键词所对应的查询内容都为整数形式。
[0119]
步骤12、客户端接收服务端s1发送的第一数据以及服务端s2发送的第一数据。
[0120]
步骤13、客户端基于第一数据、和第一秘密函数,确定目标查询内容。
[0121]
具体的,客户端计算= =。再基于f(x=)=1,f(x=)=0,可以计算出所对应的目标查询内容。然后对目标查询内容进行解码处理,以获得alice对应的查询内容。
[0122]
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
[0123]
以下将详细描述本发明的一个或多个实施例的不经意传输装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
[0124]
图7为本发明实施例提供的一种匿踪查询装置的结构示意图,该装置位于客户端设备,如图7所示,该装置包括:获取模块11、匿踪查询模块12、第一确定模块13、发送模块14、接收模块15、第二确定模块16。
[0125]
获取模块11,用于获取待查询的模糊关键词,所述模糊关键词中包括未知字符;匿踪查询模块12,用于通过与多个服务端进行匿踪查询,以确定所述模糊关键词所对应的匹配关键词集,所述匹配关键词集中包括与所述模糊关键词相对应的至少一个匹配关键词,所述匹配关键词中包括与未知字符相对应的匹配字符;第一确定模块13,用于基于所述匹配关键词,确定第一秘密函数;发送模块14,用于基于所述第一秘密函数,确定与至少两个服务端各自对应的第一秘密子函数,并将所述第一秘密子函数分别发送至各自对应的服务端,以使得所述多个服务端分别基于所述第一秘密子函数对目标数据库中的各个数据进行加密处理,得到加密后的第一数据,所述目标数据库中包括预设关键词以及与预设关键词相对应的查询内容;接收模块15,用于接收所述多个服务端各自发送的第一数据;第二确定模块16,用于基于所述第一数据和所述第一秘密函数,确定与模糊关键词相对应的目标查询内容。
[0126]
可选地,所述装置还可以包括第一识别模块,具体可以用于:识别所述第一秘密函数的预设函数变量是否为所述匹配关键词;若所述预设函数变量为所述匹配关键词,则所述预设函数变量所对应的秘密函数值为1;若所述预设函数变量不为所述匹配关键词,则所述预设函数变量所对应的秘密函数值为0。
[0127]
可选地,所述识别模块还可以用于:在同一预设函数变量下,所述第一秘密函数所对应的函数值与所述多个第一秘密子函数各自所对应的函数值累加处理后的结果相同。
[0128]
可选地,所述匿踪查询模块12具体可以用于:基于所述模糊关键词,确定第二秘密函数;基于所述第二秘密函数,确定与至少两个服务端各自对应的第二秘密子函数,并将所述第二秘密子函数分别发送至各自对应的服务端,以使得所述多个服务端分别基于所述第二秘密子函数对辅助数据库中的各个数据进行加密处理,得到加密后的第二数据,所述辅助数据库中包括模糊关键词以及与模糊关键词相对应的匹配关键词集合;接收所述多个服务端各自发送的第二数据;基于所述第二数据和所述第二秘密函数,确定所述模糊关键词所对应的匹配关键词集。
[0129]
可选地,所述匿踪查询模块12具体可以用于:对所有的第二数据进行累加处理,获得第一累加结果;基于所述第二秘密函数,确定所述辅助数据库中的各个模糊关键词所对应的秘密函数值;根据所述各个模糊关键词所对应的秘密函数值,对所述第一累加结果进行处理,获到匹配关键词集。
[0130]
可选地,所述装置还可以包括第二识别模块,具体可以用于:识别所述第二秘密函数的预设函数变量是否为所述待查询的模糊关键词;若所述预设函数变量为所述待查询的模糊关键词,则所述预设函数变量所对应的秘密函数值为1;若所述预设函数变量不为所述待查询的模糊关键词,则所述预设函数变量所对应的秘密函数值为0。
[0131]
可选地,所述第二识别模块,具体可以用于在同一预设函数变量下,所述第二秘密
函数所对应的函数值与所述多个第二秘密子函数各自所对应的函数值累加处理后的结果相同。
[0132]
可选地,所述第二确定模块16具体可以用于:对所有的第一数据进行累加处理,获得第二累加结果;基于所述第一秘密函数,确定所述目标数据库中的各个预设关键词所对应的秘密函数值;根据所述各个预设关键词所对应的秘密函数值,对所述第二累加结果进行处理,获到目标查询内容。
[0133]
图7所示装置可以执行前述实施例中客户端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
[0134]
在一个可能的设计中,上述图7所示匿踪查询装置的结构可实现为一电子设备,如图8所示,该电子设备可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中客户端设备执行的步骤。
[0135]
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的匿踪查询方法。
[0136]
图9为本发明实施例提供的另一种匿踪查询装置的结构示意图,该装置位于服务端设备,如图9所示,该装置包括:获取模块31、第一接收模块32、匿踪查询模块33、第二接收模块34、加密模块35。
[0137]
获取模块31,用于获取目标数据库和辅助数据库,所述目标数据库中包括预设关键词以及与预设关键词相对应的查询内容,所述辅助数据库中包括模糊关键词以及与模糊关键词相对应的匹配关键词集;第一接收模块32,用于接收客户端发送的匿踪查询请求;匿踪查询模块33,用于基于所述匿踪查询请求,对所述辅助数据库中的各个数据进行匿踪查询处理,以使得所述客户端基于匿踪查询确定待查询的模糊关键词所对应的匹配关键词集;第二接收模块34,用于接收所述客户端发送的第一秘密子函数;加密模块35,用于基于所述第一秘密子函数对所述目标数据库中的各个数据进行加密处理,获得加密后的第一数据,并将所述第一数据发送至所述客户端,以使所述客户端基于所述第一数据以及第一秘密函数,确定与模糊关键词相对应的目标查询内容。
[0138]
可选地,所述获取模块31,具体可以用于:获取目标数据库中所有的预设关键词;确定所述预设关键词各自对应的模糊关键词集;基于所述模糊关键词集和所述预设关键词,获得所述辅助数据库。
[0139]
可选地,所述匿踪查询模块33具体可以用于:基于匿踪查询请求中的第二秘密子函数对所述辅助数据库中的各个数据进行加密处理,获得加密后的第二数据;将所述第二数据发送至所述客户端,以使所述客户端基于所述第二数据以及第二秘密函数,确定待查询的模糊关键词所对应的匹配关键词集。
[0140]
所述匿踪查询模块33具体还可以用于:基于所述第二秘密子函数,确实所述辅助
数据库中各个模糊关键词所对应的函数值;分别获取所述辅助数据库中各个模糊关键词所对应的函数值与各个模糊关键词所对应的匹配关键词的乘积;对所述乘积进行累加处理,得到多个乘积的累加结果,并将所述累加结果确定为加密后的第二数据。
[0141]
可选地,所述加密模块35具体可以用于:基于所述第一秘密子函数,确定所述目标数据库中各个预设关键词所对应的函数值;分别获取所述各个预设关键词所对应的函数值与各个预设关键词所对应的查询内容的乘积;对所述乘积进行累加处理,得到多个乘积的累加结果,并将所述累加结果确定为加密后的第一数据。
[0142]
图9所示装置可以执行前述实施例中服务端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
[0143]
在一个可能的设计中,上述图9所示匿踪查询装置的结构可实现为一电子设备,如图10所示,该设备可以包括:第二处理器41、第二存储器42、第二通信接口43。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二处理器41执行时,使第二处理器41至少可以实现如前述实施例中服务端设备执行的步骤。
[0144]
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的匿踪查询方法。
[0145]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0146]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0147]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献