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

一种数据匹配方法、装置、系统、设备及介质与流程

2022-12-07 01:19:36 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种数据匹配方法、装置、系统、设备及介质。


背景技术:

2.当前隐私计算技术主要应用于安全求交和联邦学习。所谓安全求交是指识别双方数据的交集,比如,即识别机构a和机构b的共有用户,其中安全求交也为纵向联邦学习的第一个步骤,也就是说,先对手机号、身份证号、营业执照号等关键信息进行安全求交,然后再进行下一步联合建模等步骤。
3.相关技术中,为了识别双方数据的交集或者实现双方数据的匹配,常见的安全求交算法包括基于rsa加密算法的安全求交算法等。但是目前的安全求交算法只有当双方数据完全相同时,也就是说,当双方数据的数据类型以及数据包含的字符的数量完全相同时,才能匹配成功。但是实际业务中,往往存在很多数据不完全相同时待匹配的使用场景,因此现有技术中的安全求交算法极大限制了其使用场景,影响匹配的业务范围。


技术实现要素:

4.本技术提供了一种数据匹配方法、装置、系统、设备及介质,用以解决现有技术中的安全求交算法只能在双方数据完全相同时进行安全求交,使用场景有限,影响数据匹配的业务范围的问题。
5.第一方面,本技术提供了一种数据匹配方法,应用于第一设备,所述方法包括:
6.将待匹配的第一数据输入到预先训练完成的向量转化模型中,获得所述第一数据对应的第一向量;
7.采用自身生成的第一目标公钥对所述第一向量进行半同态加密生成第一加密向量,将所述第一目标公钥以及所述第一加密向量发送给第二设备;
8.获取所述第二设备发送的基于所述第一加密向量和第二加密向量计算的第一加密距离,所述第二加密向量为采用所述第一目标公钥对第二向量进行半同态加密后得到的;所述第二向量为将第二数据输入到所述第二设备中的预先训练完成的向量转化模型中获得的;
9.基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;
10.基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
11.第二方面,本技术提供了一种数据匹配方法,应用于第二设备,所述方法包括:
12.将待匹配的第二数据输入到预先训练完成的向量转化模型中,获得所述第二数据对应的第二向量;
13.接收第一设备发送的第一目标公钥以及第一加密向量,采用所述第一目标公钥对
所述第二向量进行半同态加密生成第二加密向量;其中,所述第一加密向量为采用所述第一目标公钥对第一向量进行半同态加密后得到的,所述第一向量为将第一数据输入到所述第一设备中的预先训练完成的向量转化模型中获得的;
14.基于所述第一加密向量和第二加密向量计算第一加密距离,将所述第一加密距离发送给所述第一设备,以使所述第一设备基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;并使所述第一设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
15.第三方面,本技术提供了一种数据匹配装置,应用于第一设备,所述装置包括:
16.第一获取模块,用于将待匹配的第一数据输入到预先训练完成的向量转化模型中,获得所述第一数据对应的第一向量;
17.第一处理模块,用于采用自身生成的第一目标公钥对所述第一向量进行半同态加密生成第一加密向量,将所述第一目标公钥以及所述第一加密向量发送给第二设备;
18.所述第一获取模块,还用于获取所述第二设备发送的基于所述第一加密向量和第二加密向量计算的第一加密距离,所述第二加密向量为采用所述第一目标公钥对第二向量进行半同态加密后得到的;所述第二向量为将第二数据输入到所述第二设备中的预先训练完成的向量转化模型中获得的;
19.第一确定模块,用于基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
20.第四方面,本技术提供了一种数据匹配装置,应用于第二设备,所述装置包括:
21.第二获取模块,用于将待匹配的第二数据输入到预先训练完成的向量转化模型中,获得所述第二数据对应的第二向量;
22.第二处理模块,用于接收第一设备发送的第一目标公钥以及第一加密向量,采用所述第一目标公钥对所述第二向量进行半同态加密生成第二加密向量;其中,所述第一加密向量为采用所述第一目标公钥对第一向量进行半同态加密后得到的,所述第一向量为将第一数据输入到所述第一设备中的预先训练完成的向量转化模型中获得的;
23.第二确定模块,用于基于所述第一加密向量和第二加密向量计算第一加密距离,将所述第一加密距离发送给所述第一设备,以使所述第一设备基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;并使所述第一设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
24.第五方面,本技术提供了一种数据匹配系统,所述系统包括:
25.第一设备,用于将待匹配的第一数据输入到预先训练完成的向量转化模型中,获得所述第一数据对应的第一向量;采用自身生成的第一目标公钥对所述第一向量进行半同态加密生成第一加密向量,将所述第一目标公钥以及所述第一加密向量发送给第二设备;
26.所述第二设备,用于将待匹配的第二数据输入到预先训练完成的向量转化模型中,获得所述第二数据对应的第二向量;并接收所述第一设备发送的第一目标公钥以及第一加密向量,采用所述第一目标公钥对所述第二向量进行半同态加密生成第二加密向量;基于所述第一加密向量和第二加密向量计算第一加密距离,将所述第一加密距离发送给所
述第一设备;
27.所述第一设备,还用于基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
28.第六方面,本技术提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于执行存储器中存储的计算机程序时实现上述任一所述数据匹配方法的步骤。
29.第七方面,本技术提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述数据匹配方法的步骤。
30.由于在本技术实施例中,可以分别将待匹配的第一数据和第二数据输入到预先训练完成的向量转化模型中,获得该第一数据对应的第一向量以及第二数据对应的第二向量,并获取基于该第一向量加密后的第一加密向量,以及该第二向量加密后的第二加密向量,基于第一加密向量和第二加密向量计算第一加密距离,并基于第一加密距离以及第一目标私钥,确定第一向量和第二向量的目标距离,基于该目标距离以及预设的第一距离阈值确定第一数据和第二数据是否匹配,即可以在第一数据和第二数据不完全相同时,也能实现第一数据和第二数据的模糊匹配,拓宽了使用场景,且在进行模糊匹配过程中引入了第一目标公钥和第一目标私钥分别进行半同态加密和解密,实现了安全求交,保证了匹配过程的安全性,且整个匹配的过程中,第一数据以及第二数据均未以原始数据的形式离开过对应的第一设备以及第二设备,保证了第一数据和第二数据的安全性,实现了原始数据不出库也能实现模糊匹配,进一步保证了匹配过程的安全性。
附图说明
31.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
32.图1为本技术实施例提供的一种数据匹配过程示意图;
33.图2为本技术实施例提供的第二种数据匹配过程示意图;
34.图3为本技术实施例提供的第三种数据匹配过程示意图;
35.图4为本技术一些实施例提供的一种数据匹配装置结构示意图;
36.图5为本技术一些实施例提供的另一种数据匹配装置结构示意图;
37.图6为本技术一些实施例提供的一种数据匹配系统结构示意图;
38.图7为本技术一些实施例提供的一种电子设备结构示意图。
具体实施方式
39.为了保证双方数据不完全相同时也可以进行匹配,拓宽数据匹配的业务范围,本技术实施例提供了一种数据匹配方法、装置、系统、设备及介质。
40.为使本技术的目的和实施方式更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申
请一部分实施例,而不是全部的实施例。
41.需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
42.本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
43.术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
44.术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
45.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
46.实施例1:
47.图1为本技术实施例提供的第一种数据匹配过程示意图,该过程包括以下步骤:
48.s101:将待匹配的第一数据输入到预先训练完成的向量转化模型中,获得所述第一数据对应的第一向量。
49.本技术实施例提供的数据匹配方法应用于电子设备(为方便描述,称为第一设备),第一设备可以是智能终端、pc或者服务器等设备。
50.为了保证双方数据不完全相同时也能实现模糊匹配,在本技术实施例中,第一设备中部署了预先训练完成的向量转化模型,该预先训练完成的向量转化模型用于获得待匹配的数据对应的向量,且针对不同的数据,该预先训练完成的向量转化模型输出的向量的维度可以相同。
51.在一种可能的实施方式中,为了获得待匹配的第一数据(为方便描述,将第一设备中保存的待匹配的数据称为第一数据)对应的第一向量(为方便描述,将第一数据对应的向量称为第一向量),可以将该第一数据输入到预先训练完成的向量转化模型中,该预先训练完成的向量转化模型可以输出该第一数据对应的第一向量,可选的,该第一向量中的每个分量可以为数字,即可以通过该预先训练完成的向量转化模型将第一数据进行了量化。示例性的,以第一数据为“上海市浦东新区晴天小卖部”为例,可以将该第一数据“上海市浦东新区晴天小卖部”输入到预先训练完成的词向量模型中,输出的该第一数据“上海市浦东新区晴天小卖部”对应的第一向量可以为(1.0,2.0,1.5,2.0,3.5)。
52.s102:采用自身生成的第一目标公钥对所述第一向量进行半同态加密生成第一加密向量,将所述第一目标公钥以及所述第一加密向量发送给第二设备。
53.在一种可能的实施方式中,为了提高安全性,第一设备可以生成第一目标公私钥对,其中,该第一目标公私钥对中包含第一目标公钥和第一目标私钥(为方便描述,将第一
设备生成的公钥称为第一目标公钥,将第一设备生成的私钥称为第一目标私钥)。可选的,第一目标公私钥对可以为半同态加密公私钥对,即第一目标公钥可以为半同态加密公钥,第一目标私钥可以为半同态加密私钥。第一设备可以根据自身生成的第一目标公钥对第一向量进行半同态加密生成第一加密向量。其中,该第一目标公私钥对可以为对称公私钥对,也可以为非对称公私钥对,可以根据需求设置目标公私钥对。其中,生成第一目标公私钥对的过程为现有技术,在此不做赘述。
54.在一种可能的实施方式中,由于待与第一数据进行匹配的第二数据为第二设备获取的,为了便于后续能够确定第一数据对应的第一向量和第二数据对应的第二向量之间的目标距离,第一设备可以将第一目标公钥以及第一加密向量发送给第二设备,第二设备可以根据该第一目标公钥,对第二数据对应的第二向量进行半同态加密生成第二加密向量。
55.s103:获取所述第二设备发送的基于所述第一加密向量和第二加密向量计算的第一加密距离,所述第二加密向量为采用所述第一目标公钥对第二向量进行半同态加密后得到的;所述第二向量为将第二数据输入到所述第二设备中的预先训练完成的向量转化模型中获得的;基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离。
56.在一种可能的实施方式中,为了实现第一数据和第二数据的模糊匹配,第二设备中也部署了预先训练完成的向量转化模型,用于获得待匹配的第二数据(为方便描述,将第二设备中待匹配的数据称为第二数据)对应的第二向量(为方便描述,将第二数据对应的向量称为第二向量)。可选的,可以将第二数据输入到预先训练完成的向量转化模型中,该预先训练完成的向量转化模型可以输出该第二数据对应的第二向量,第二设备可以基于接收到的第一设备发送的第一目标公钥对该第二向量进行半同态加密,获得第二加密向量。
57.为了确定第一向量和第二向量之间的距离,在一种可能的实施方式中,第二设备可以针对第一加密向量中的每个第一加密分量、第二向量中的每个第二分量以及第二加密向量中的每个第二加密分量,通过半同态加密算法,确定该第一加密分量的第一加密平方分量、加密后的该第一加密分量与相应的第二分量的乘积,以及相应的第二加密分量的第二加密平方分量;基于该第一加密平方分量、该乘积以及该第二加密平方分量,确定该第一加密分量对应的加密后的子距离;并可以基于每个第一加密分量对应的加密后的子距离,确定第一加密向量和第二加密向量的第一加密距离。为方便理解,下面以公式形式对本技术实施例提供的确定第一加密向量和第二加密向量的第一加密距离的过程进行解释说明。
58.示例性的,假设第一数据u1对应的第一向量为(x1,x2,x3……
,xm),第二数据u5对应的第二向量为(y1,y,y3……
,ym)。
59.第一设备生成第一目标公私钥对a(pka1,ska1),其中,该pka1为第一目标公钥,ska1为第一目标私钥,基于该第一目标公钥对第一向量进行半同态加密生成第一加密向量,示例性的,针对第一向量中的每个第一分量,可以基于第一目标公钥对第一向量中的每个第一分量分别进行半同态加密,生成第一加密向量。例如第一向量(x1,x2,x3……
,xm)对应的第一加密向量为(e
pka1
(x1),e
pka1
(x2),e
pka1
(x3)
……
,e
pka1
(xm))。第一加密向量中包含m个第一加密分量e
pka1
(xi),其中,i为不大于m的任一正整数。第一设备可以将该第一加密向量以及该第一目标公钥发送给第二设备。
60.第二设备接收到第一设备发送的第一目标公钥以及第一加密向量后,可以基于该
第一目标公钥对第二向量进行半同态加密,获得第二加密向量。示例性的,针对第二向量中的每个第二分量,可以基于第一目标公钥对第二向量中的每个第二分量分别进行半同态加密,生成第二加密向量。例如第二向量(y1,y2,y3……
,ym)对应的第二加密向量为(e
pka1
(y1),e
pka1
(y2),e
pka1
(y3)
……
,e
pka1
(ym)),第二向量中包含m个第二分量yi,第二加密向量中包含m个第二加密分量e
pka1
(yi),其中,i为不大于m的任一正整数。
61.在一种可能的实施方式中,针对第一加密向量中的每个第一加密分量e
pka1
(xi),第二设备可以确定该第一加密分量的第一加密平方分量:e
pka1
(x
i2
)。另外,针对第一加密向量中的每个第一加密分量e
pka1
(xi),第二设备还可以通过半同态加密算法,确定加密后的该第一加密分量与相应的第二加密分量的乘积,另外,第二设备还可以确定相应的第二加密分量的第二加密平方分量:e
pka1
(y
i2
)。
62.在一种可能的实施方式中,通过半同态加密算法,确定加密后的第一加密分量与相应的第二加密分量的乘积的过程可以如下:
63.通过半同态加密算法,确定加密后的指数幂,其中,该指数幂的底数可以为该第一加密分量,该指数幂的指数可以为相应的第二分量。例如,指数幂可以为该指数幂可以用于确定基于半同态加密算法加密后的该第一加密分量与相应的第二分量的乘积。其中,针对如何基于该指数幂确定第一加密分量与相应的第二分量的乘积(e
pka1
(xiyi))在后续进行详细介绍,在此先不赘述。
64.在一种可能的实施方式中,针对每个第一加密分量,可以基于该第一加密分量对应的第一加密平方分量e
pka1
(x
i2
)、加密后的该第一加密分量与相应的第二加密分量的乘积e
pka1
(xi)
yi
以及第二加密平方分量e
pka1
(y
i2
),确定该第一加密分量对应的加密后的子距离:e
pka1
(x
i2
)-2e
pka1
(xi)
yi
e
pka1
(y
i2
)。可选的,可以将每个第一加密分量对应的加密后的子距离的和值,确定为第一加密向量和第二加密向量的第一加密距离:
65.在一种可能的实施方式中,第二设备获得第一加密距离之后,可以将该第一加密距离发送给第一设备。第一设备接收到该第一加密距离之后,可以根据第一设备生成的第一目标私钥对中的第一目标私钥,对该第一加密距离进行解密,确定第一向量和第二向量的目标距离。
66.示例性的,第一设备可以根据第一目标私钥,对第一加密距离进行解密后,得到
67.为方便理解,下面针对第一设备如何基于指数幂确定加密后的第一分量与相应的第二分量的乘积(e
pka1
(xiyi))的过程进行解释说明。
68.在半同态加密算法中,可以将对e
pka1
(xi)的运算看做为对第一指数幂的运算,即其中g可以为任意底数。
69.由于g
x y
=g
x
*gy,则e
pka1
(xi yi)=e
pka1
(xi)*e
pka1
(yi)。
70.又由于xiyi等于yi个xi相加,因此,
[0071][0072]
由上述公式可以看出,通过半同态加密算法,可以基于指数幂确定加密后的第一分量与相应的第二分量的乘积(e
pka1
(xiyi)),第一设备进而可以根据第一目标私钥,对第一加密距离进行解密后,得到标私钥,对第一加密距离进行解密后,得到第一设备可以基于解密后的第一加密距离以及欧氏距离公式,计算第一向量和第二向量之间的目标距离,示例性的,第一向量和第二向量之间的目标距离其中,该xi为第一向量中的第i个分量,yi为第二向量中的第i个分量,m为第一向量或第二向量中包含的分量的数量,且该第一向量中包含的分量的数量与该第二分量中包含的分量的数量相同,即第一向量的长度与第二向量的长度相等,第一向量和第二向量的长度可以均为预设长度m,m可以为任意正整数。
[0073]
在另外一种可能的实施方式中,还可以基于余弦距离公式或者汉明距离公式等确定第一向量与第二向量之间的距离,在此不再赘述。
[0074]
另外,本技术实施例还提供了另一种确定第一加密距离的方式,在一种可能的实施方式中,第一加密距离还可以采用以下过程获得:
[0075]
针对第一加密向量中的每个第一加密分量e
pka1
(xi)、第二向量中的每个第二分量yi以及第二加密向量中的每个第二加密分量e
pka1
(yi),第二设备可以通过半同态加密算法,确定加密后的该第一加密分量与相应的第二分量的乘积以及相应的第二加密分量的第二加密平方分量e
pka1
(y
i2
);第二设备可以基于该乘积以及该第二加密平方分量e
pka1
(y
i2
),确定该第一加密分量对应的加密后的子距离:
[0076]
其中,通过半同态加密算法,确定第一加密分量与相应的第二分量的乘积的过程与上述实施例相同,例如可以通过半同态加密算法,确定加密后的指数幂,其中,该指数幂的底数为该第一加密分量,该指数幂的指数为相应的第二分量;该指数幂用于确定基于半同态加密算法加密后的该第一加密分量与相应的第二分量的乘积,在此不再赘述。
[0077]
第二设备可以将该加密后的子距离b发送给第一设备,第一设备针对第一加密向量中的每个第一加密分量e
pka1
(xi),可以确定该第一加密分量的第一加密平方分量e
pka1
(x
i2
),并可以基于该第一加密平方分量e
pka1
(x
i2
)以及加密后的子距离对该第一加密分量对应的加密后的子距离进行更新,可选的,可以将加密后的子距离更新为:
[0078][0079]
第一设备可以基于每个第一加密分量对应的更新后的子距离,确定第一加密向量和第二加密向量的更新后的第一加密距离。可选的,可以将每个第一加密分量对应的更新
后的子距离的和值,确定为第一加密向量和第二加密向量的更新后的第一加密距离:与上述实施例类似,确定了更新后的第一加密距离之后,第一设备可以根据第一设备生成的第一目标私钥对中的第一目标私钥,对该更新后的第一加密距离进行解密,以确定第一向量和第二向量的目标距离。
[0080]
示例性的,第一设备可以根据第一目标私钥,对更新后的第一加密距离进行解密后,得到可以基于解密后的第一加密距离以及欧氏距离公式,计算第一向量和第二向量之间的目标距离,示例性的,第一向量和第二向量之间的目标距离在此不再赘述。
[0081]
s104:基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0082]
在一种可能的实施方式中,为了确定第一数据与第二数据是否匹配,确定了第一向量与第二向量之间的目标距离后,可以将该目标距离与预设的第一距离阈值进行比较,根据比较结果,确定该第一数据与该第二数据是否匹配。示例性的,可以判断第一向量与第二向量之间的目标距离是否小于预设的第一距离阈值,如果第一向量与第二向量之间的目标距离小于预设的第一距离阈值,则可以认为第一数据与第二数据匹配。而如果第一向量与第二向量之间的目标距离不小于预设的第一距离阈值,则可以确定第一数据与第二数据不匹配。可选的,预设的第一距离阈值可以为1,还可以为1.5等,本技术对第一距离阈值不作具体限定,可以根据需求灵活设置。其中,第一向量与第二向量之间的目标距离越小,第一向量与第二向量越匹配。
[0083]
为了确定第二数据与第一数据是否完全匹配,在一种可能的实施方式中,还可以判断第一向量与第二向量之间的目标距离是否等于预设的第二距离阈值,若该目标距离等于预设的第二距离阈值,则可以认为第一数据与第二数据相同,也就是说,该第一数据与该第二数据完全匹配。可选的,该第二距离阈值可以小于第一距离阈值,且第二距离阈值可以为0。
[0084]
由于在本技术实施例中,可以分别将待匹配的第一数据和第二数据输入到预先训练完成的向量转化模型中,获得该第一数据对应的第一向量以及第二数据对应的第二向量,并获取基于该第一向量加密后的第一加密向量,以及该第二向量加密后的第二加密向量,基于第一加密向量和第二加密向量计算第一加密距离,并基于第一加密距离以及第一目标私钥,确定第一向量和第二向量的目标距离,基于该目标距离以及预设的第一距离阈值确定第一数据和第二数据是否匹配,即可以在第一数据和第二数据不完全相同时,也能实现第一数据和第二数据的模糊匹配,拓宽了使用场景,且在进行模糊匹配过程中引入了第一目标公钥和第一目标私钥分别进行半同态加密和解密,实现了安全求交,保证了匹配过程的安全性,且整个匹配的过程中,第一数据以及第二数据均未以原始数据的形式离开过对应的第一设备以及第二设备,保证了第一数据和第二数据的安全性,实现了原始数据不出库也能实现模糊匹配,进一步保证了匹配过程的安全性。
[0085]
实施例2:
[0086]
为了确定第一数据对应的第一向量,在上述实施例的基础上,在本技术实施例中,
所述将待匹配的第一数据输入到预先训练完成的向量转化模型中,获得所述第一数据对应的第一向量包括:
[0087]
确定所述第一数据对应的第一目标数据类型;
[0088]
根据所述第一目标数据类型以及预先保存的数据类型和预先训练完成的向量转化模型的对应关系,确定所述第一数据对应的预先训练完成的第一目标向量转化模型;
[0089]
将所述第一数据输入到所述预先训练完成的第一目标向量转化模型中,获得所述第一数据对应的所述第一向量。
[0090]
在本技术实施例中,由于待匹配的第一数据可以为文本数据,比如,该第一数据可以为姓名、性别、地址等,也可以为数字数据,比如,该第一数据可以为身份证号、银行卡号以及准考证号等,也可以为图像数据,比如,该第一数据可以为用于进行人脸识别的图像等,因此,为了针对不用数据类型的第一数据,获得对应的第一向量的预先训练完成的向量转化模型也可以不相同。
[0091]
具体的,可以在第一设备中保存有数据类型和预先训练完成的向量转化模型的对应关系,根据获取到的待匹配的第一数据对应的第一目标数据类型,采用对应的预先训练完成的向量转化模型,获取该第一数据对应的第一向量;其中,该对应的预先训练完成的向量转化模型也就是预先训练完成的第一目标向量转化模型。
[0092]
其中,本技术对第一数据对应的第一目标数据类型不作具体限定,示例性的,第一目标数据类型可以为文本类型、或数字类型、或图像类型等。另外,本技术对数据类型对应的向量转化模型也不作具体限定,可以根据需求灵活设置。
[0093]
示例性的,为了准确的确定将第一数据转换为第一向量的向量转化模型,在上述各实施例的基础上,在本技术实施例中,若所述第一目标数据类型为文本类型,则所述第一目标数据类型对应的预先训练完成的第一目标向量转化模型可以为词向量模型或句向量模型;若所述第一目标数据类型为数字类型,则所述第一目标数据类型对应的预先训练完成的第一目标向量转化模型可以为独热(one-hot)编码模型;若所述第一目标数据类型为图像类型,所述第一目标数据类型对应的预先训练完成的第一目标向量转化模型可以为图像向量模型。
[0094]
具体的,若第一数据为文本数据,即第一数据的第一目标数据类型为文本类型,则根据预先保存的数据类型和预先训练完成的向量转化模型的对应关系,可以确定该第一目标数据类型对应的预先训练完成的第一目标向量转化模型,该第一目标向量转化模型可以为词向量模型或者句向量模型,并可以基于该预先训练完成的词向量模型或者句向量模型,获取该第一数据对应的第一向量。
[0095]
在一种可能的实施方式中,若第一数据为数字数据,即第一数据的第一目标数据类型为数字类型,则根据预先保存的数据类型和预先训练完成的向量转化模型的对应关系,可以确定该第一目标数据类型对应的预先训练完成的第一目标向量转化模型,该第一目标向量转化模型可以为预先训练完成的one-hot编码模型,并可以基于该预先训练完成的one-hot编码模型,获取该第一数据对应的第一向量。
[0096]
在一种可能的实施方式中,若第一数据为图像数据,即第一数据的第一目标数据类型为图像类型,则根据预先保存的数据类型和预先训练完成的向量转化模型的对应关系,可以确定该第一目标数据类型对应的预先训练完成的第一目标向量转化模型,该第一
目标向量转化模型可以为预先训练完成的图像向量模型(图像向量嵌入模型),并可以基于该预先训练完成的图像向量模型,获取该第一数据对应的第一向量。
[0097]
为方便理解,以预先训练完成的向量转化模型输出的向量的维度为5,预先训练完成的向量转化模型为词向量模型为例进行说明。若第一数据为文本数据,且该第一数据为“上海市浦东新区晴天小卖部”则将“上海市浦东新区晴天小卖部”输入到预先训练完成的词向量模型中,输出的该“上海市浦东新区晴天小卖部”对应的第一向量可以为(1.0,2.0,1.5,2.0,3.5)。
[0098]
若预先训练完成的向量转化模型为one-hot编码模型,可以预先针对每个数字设置该对应的独热编码,比如,数字包含0-9,则该0-9各个数字中,0对应的独热编码为0000000001、1对应的独热编码为0000000010、2对应的独热编码为0000000100、3对应的独热编码为0000001000、4对应的独热编码为0000010000、5对应的独热编码为0000100000、6对应的独热编码为0001000000、7对应的独热编码为0010000000、8对应的独热编码为0100000000、9对应的独热编码为1000000000。将数字数据输入到one-hot编码模型中,该one-hot编码模型输出的第一向量中每个第一分量为该第一数据中对应的每个数字的独热编码。
[0099]
示例性的,若第一数据为数字数据,该数字数据为“12345”,则将“12345”输入到预先训练完成的词向量模型中,输出的该“12345”对应的第一向量为(0000000010,0000000100,0000001000,0000010000,0000100000)。
[0100]
其中,在对向量转化模型进行训练时,可以预先标注每个数据和数据对应的标注向量,将每个数据和对应的标注向量输入到原始向量转化模型中,根据原始向量转化模型输出的预测向量及对应的标注向量,对该原始向量转化模型的参数进行调整,当满足收敛条件时,确定向量转化模型训练完成。
[0101]
在本技术实施例中,无论第一数据和第二数据是数字数据还是文本数据,都能实现模糊匹配,进一步扩宽了应用场景。
[0102]
实施例3:
[0103]
为了使得第二设备也能确定第一数据以及第二数据是否匹配,在上述各实施例的基础上,在本技术实施例中,所述确定所述第一向量和所述第二向量的目标距离之后,所述方法还包括:
[0104]
将所述目标距离发送给所述第二设备,使所述第二设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0105]
在一种可能的实施方式中,为了使得第二设备也能确定第一数据与第二数据是否匹配,第一设备可以将确定的第一向量和第二向量的目标距离发送给第二设备,第二设备在接收到第一设备发送的第一向量和第二向量的目标距离后,可以基于该目标距离以及预设的第一距离阈值,确定第一数据与第二数据是否匹配。其中第二设备确定第一数据和第二数据是否匹配的过程与上述实施例中第一设备确定第一数据和第二数据是否匹配的过程可以相同,在此不再赘述。
[0106]
在一种可能的实施方式中,第一设备确定了第一数据与第二数据是否匹配,得到第一数据与第二数据是否匹配的匹配结果之后,可以将该匹配结果发送给第二设备。可选的,第二设备可以将第一设备确定的匹配结果与自身确定的匹配结果进行比对,以进一步
提高准确性。另外,在一种可能的实施方式中,第二设备也可以不进行确定第一数据与第二数据是否匹配,得到匹配结果的过程,直接利用第一设备确定的匹配结果,从而可以节省能耗。
[0107]
为方便理解,下面通过一个具体实施例对本技术提供的数据匹配过程进行解释说明:
[0108]
第一设备可以将待匹配的第一数据输入到部署在第一设备中的预先训练完成的向量转化模型中,获得该第一数据对应的第一向量。同样的,第二设备可以将待匹配的第二数据输入到部署在第二设备中的预先训练完成的向量转化模型中,获得该第二数据对应的第二向量。假设第一数据u1对应的第一向量为(x1,x2,x3……
,xm),第二数据u5对应的第二向量为(y1,y,y3……
,ym)。
[0109]
第一设备生成第一目标公私钥对a(pka1,ska1),其中,该pka1为第一目标公钥,ska1为第一目标私钥,基于该第一目标公钥对第一向量进行半同态加密生成第一加密向量,第一向量(x1,x2,x3……
,xm)对应的第一加密向量为(e
pka1
(x1),e
pka1
(x2),e
pka1
(x3)
……
,e
pka1
(xm)),并将该第一加密向量以及该第一目标公钥发送给第二设备。
[0110]
第二设备接收到第一设备发送的第一目标公钥以及第一加密向量后,基于该第一目标公钥对第二向量进行半同态加密,获得第二加密向量。具体的,该第二向量(y1,y,y3……
,ym)对应的第二加密向量为(e
pka1
(y1),e
pka1
(y2),e
pka1
(y3)
……
,e
pka1
(ym)),第二设备基于该第二加密向量以及接收到的第一加密向量,确定第一加密距离并将该第一加密距离并发送给第一设备。
[0111]
第一设备接收到该第一加密距离后,根据自身生成的第一目标公钥对应的第一目标私钥对该第一加密距离进行解密,以确定第一向量和第二向量的目标距离第一设备可以基于该目标距离及预设的第一距离阈值,确定第一数据与第二数据是否匹配,并且第一设备可以将该第一向量和第二向量的目标距离发送给第二设备,第二设备可以根据第二向量与第一向量的目标距离及预设的第一距离阈值,确定第一数据与第二数据是否匹配。
[0112]
实施例4:
[0113]
为了使得第二设备也能确定第一向量和第二向量的目标距离,在上述各实施例的基础上,所述方法还包括:
[0114]
接收所述第二设备发送的第三加密向量以及所述第二设备生成的第二目标公钥;其中,所述第三加密向量为所述第二设备采用所述第二目标公钥对所述第二向量进行半同态加密后得到的;
[0115]
基于所述第二目标公钥对所述第一向量进行半同态加密生成第四加密向量;
[0116]
基于所述第三加密向量以及所述第四加密向量计算得到第二加密距离,并将所述第二加密距离发送给所述第二设备,以使所述第二设备基于所述第二加密距离以及与所述第二目标公钥对应的第二目标私钥,确定所述第一向量和第二向量的目标距离,并使所述第二设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0117]
在一种可能的实施方式中,为了使得第二设备也能确定第一向量和第二向量的目
标距离,而无需依赖第一设备将其确定的目标距离发送给第二设备,进一步提高安全性,第二设备可以生成第二目标公私钥对,其中,该第二目标公私钥对中包含第二目标公钥和第二目标私钥(为方便描述,将第二设备生成的公钥称为第二目标公钥,将第二设备生成的私钥称为第二目标私钥)。可选的,第二目标公私钥对可以为半同态加密公私钥对,即第二目标公钥可以为半同态加密公钥,第二目标私钥可以为半同态加密私钥。第二设备可以根据自身生成的第二目标公钥对第二向量进行半同态加密生成第三加密向量。其中,该第二目标公私钥对可以为对称公私钥对,也可以为非对称公私钥对,可以根据需求设置目标公私钥对。其中,生成第二目标公私钥对的过程为现有技术,在此不做赘述。
[0118]
第二设备可以将第三加密向量以及第二设备生成的第二目标公钥发送给第一设备。第一设备接收到第二设备发送的第三加密向量以及第二目标公钥后,可以基于第二目标公钥对第一向量进行半同态加密生成第四加密向量。
[0119]
第一设备也可以基于第三加密向量和第四加密向量计算得到第二加密距离,其中,计算第二加密距离与计算第一加密距离的过程类似。例如:
[0120]
在一种可能的实施方式中,第一设备可以针对第三加密向量中的每个第三加密分量、第四向量中的每个第四分量以及第四加密向量中的每个第四加密分量,通过半同态加密算法,确定该第四加密分量的第四加密平方分量、加密后的该第四分量与相应的第三加密分量的乘积,以及相应的第三加密分量的第三加密平方分量;基于该第四加密平方分量、该乘积以及该第三加密平方分量,确定该第四加密分量对应的加密后的子距离;并可以基于每个第四加密分量对应的加密后的子距离,确定第三加密向量和第四加密向量的第二加密距离。为方便理解,下面以公式形式对本技术实施例提供的确定第二加密距离的过程进行解释说明。
[0121]
示例性的,假设第一数据u1对应的第一向量为(x1,x2,x3……
,xm),第二数据u2对应的第二向量为(y1,y,y3……
,ym)。
[0122]
第二设备生成第二目标公私钥对b(pka2,ska2),其中,该pka2为第二目标公钥,ska2为第二目标私钥,基于该第二目标公钥对第二向量进行半同态加密生成第三加密向量,例如第二向量(y1,y,y3……
,ym)对应的第三加密向量为(e
pka2
(y1),e
pka2
(y2),e
pka2
(y3)
……
,e
pka2
(ym)),第三加密向量中包含m个第三加密分量e
pka2
(xi),其中,i为不大于m的任一正整数。第二设备可以将该第三加密向量以及该第二目标公钥发送给第一设备。
[0123]
第一设备接收到第二设备发送的第二目标公钥以及第三加密向量后,可以基于该第二目标公钥对第一向量进行半同态加密,获得第四加密向量。例如第一向量(x1,x2,x3……
,xm),对应的第四加密向量为(e
pka2
(x1),e
pka2
(x2),e
pka2
(x3)
……
,e
pka2
(xm)),第四加密向量中包含m个第四加密分量e
pka2
(xi),其中,i为不大于m的任一正整数。
[0124]
在一种可能的实施方式中,针对第四加密向量中的每个第四加密分量e
pka2
(xi),第一设备可以确定该第四加密分量的第四加密平方分量:e
pka2
(x
i2
)。另外,针对第四加密向量中的每个第四加密分量e
pka2
(xi),第一设备还可以确定加密后的第四分量与相应的第三加密分量的乘积,以及相应的第三加密分量的第三加密平方分量:e
pka2
(y
i2
)。
[0125]
其中,可以采用上述实施例中提供的通过半同态加密算法,确定第一加密分量与相应的第二分量的乘积的方式,来确定第四分量与相应的第三加密分量的乘积。例如,可以先通过半同态加密算法,确定加密后的指数幂其中,该指数幂的底数可以为
该第三加密分量,该指数幂的指数为相应的第四分量xi;该指数幂用于确定基于半同态加密算法加密后的第四分量与相应的第三加密分量的乘积,在此不再赘述。
[0126]
在一种可能的实施方式中,针对每个第四加密分量,可以基于该第四加密分量对应的第四加密平方分量e
pka2
(x
i2
)、该第四分量与相应的第三加密分量的乘积以及第三加密平方分量e
pka2
(y
i2
),确定该第四加密分量对应的加密后的子距离:可选的,可以将每个第四加密分量对应的加密后的子距离的和值,确定为第三加密向量与第四加密向量的第二加密距离:
[0127]
在一种可能的实施方式中,第一设备获得第二加密距离之后,可以将该第二加密距离发送给第二设备。第二设备接收到该第二加密距离之后,可以根据第二设备自身生成的第二目标私钥对中的第二目标私钥,对该第二加密距离进行解密,以确定第一向量和第二向量的目标距离。
[0128]
示例性的,第二设备可以根据第二目标私钥,对第二加密距离进行解密后,得到可以基于解密后的第二加密距离以及欧氏距离公式,计算第一向量和第二向量之间的目标距离,示例性的,第一向量和第二向量之间的目标距离其中,该xi为第一向量中的第i个分量,yi为第二向量中的第i个分量,m为第一向量或第二向量中包含的分量的数量,且该第一向量中包含的分量的数量与该第二分量中包含的分量的数量相同,即第一向量的长度与第二向量的长度相等,第一向量和第二向量的长度可以均为预设长度m,m可以为任意正整数。
[0129]
另外,本技术实施例还提供了另一种确定第二加密距离的方式,在一种可能的实施方式中,第二加密距离还可以采用以下过程获得:
[0130]
针对第四加密向量中的每个第四加密分量e
pka2
(xi)以及第三加密向量中的每个第三加密分量e
pka2
(yi),第一设备可以确定该第四分量与相应的第三加密分量的乘积以及相应的第四加密分量的第四加密平方分量e
pka2
(x
i2
);第一设备可以基于该乘积以及该第四加密平方分量e
pka2
(x
i2
),确定该第四加密分量对应的加密后的子距离:后的子距离:
[0131]
第一设备可以将该加密后的子距离a发送给第二设备,第二设备针对第三加密向量中的每个第三加密分量e
pka2
(yi),可以确定该第三加密分量的第三加密平方分量e
pka2
(y
i2
),并可以基于该第三加密平方分量e
pka2
(y
i2
)以及加密后的子距离对该第四加密分量对应的加密后的子距离进行更新,可选的,可以将加密后的子距离更新为:
[0132][0133]
第二设备可以基于每个第四加密分量对应的更新后的子距离,确定第三加密向量和第四加密向量的更新后的第二加密距离。可选的,可以将每个第四加密分量对应的更新
后的子距离的和值,确定为第三加密向量和第四加密向量的更新后的第二加密距离:
[0134]
与上述实施例类似,确定了更新后的第二加密距离之后,第二设备可以基于第二目标私钥,对该更新后的第二加密距离进行解密,以确定第一向量和第二向量的目标距离。示例性的,第二设备可以根据第二目标私钥,对第二加密距离进行解密后,得到可以基于解密后的第二加密距离以及欧氏距离公式,计算第一向量和第二向量之间的目标距离,示例性的,第一向量和第二向量之间的目标距离其中,该xi为第一向量中的第i个分量,yi为第二向量中的第i个分量,m为第一向量或第二向量中包含的分量的数量,且该第一向量中包含的分量的数量与该第二分量中包含的分量的数量相同,即第一向量的长度与第二向量的长度相等,第一向量和第二向量的长度可以均为预设长度m,m可以为任意正整数。
[0135]
由于第一数据对应的第一向量的长度与第二数据对应的第二向量的长度相等,因此,即使第一数据与第二数据不相同,也能实现模糊匹配,拓宽了使用场景。
[0136]
第二设备确定了第一向量和第二向量的目标距离之后,也可以基于该目标距离以及预设的第一距离阈值,确定第一数据和第二数据是否匹配,其中第二设备确定第一数据和第二数据是否匹配的过程与上述实施例中第一设备确定第一数据和第二数据是否匹配的过程可以相同,在此不再赘述。
[0137]
为方便理解,下面通过一个具体实施例对本技术提供的数据匹配过程进行说明。图2为本技术实施例提供的第二种数据匹配过程示意图,如图2所示,该过程包括以下操作:
[0138]
第一设备分别将待匹配的每个第一数据输入到部署在第一设备中的预先训练完成的向量转化模型中,针对每个第一数据,获得该第一数据对应的第一向量。同样的,第二设备分别将待匹配的每个第二数据输入到部署在第二设备中的预先训练完成的向量转化模型中,针对每个第二数据,获得该第二数据对应的第二向量。如图2所述,分别有4个第一数据,分别为u1、u2、u3、u4,且u1对应的第一向量为(x11,x12,x13
……
,x1m),u2对应的第一向量为(x21,x22,x23
……
,x2m),u3对应的第一向量为(x31,x32,x33
……
,x3m),u4对应的第一向量为(x41,x42,x43
……
,x4m)。另外,分别有4个第二数据,分别为u5、u6、u7、u8,且u5对应的第二向量为(y11,y12,y13
……
,y1m),u6对应的第二向量为(y21,y22,y23
……
,y2m),u7对应的第二向量为(y31,y32,y33
……
,y3m),u8对应的第二向量为(y41,y42,y43
……
,y4m)。
[0139]
第一设备生成第一目标公私钥对a(pka,ska),其中,该pka为第一目标公钥,ska为第一目标私钥,该第一目标公私钥对为半同态加密目标公私钥对。针对每个第一向量,基于该第一目标公钥对对该第一向量进行半同态加密,生成相应的第一加密向量。例如,第一向量(x11,x12,x13
……
,x1m)对应的第一加密向量为(e
pka
(x11),e
pka
(x12),e
pka
(x13)
……
,e
pka
(x1m))。第一向量(x21,x22,x23
……
,x2m)对应的第一加密向量为(e
pka
(x21),e
pka
(x22),e
pka
(x23)
……
,e
pka
(x2m))。第一向量(x31,x32,x33
……
,x3m)对应的第一加密向量为(e
pka
(x31),e
pka
(x32),e
pka
(x33)
……
,e
pka
(x3m))。第一向量(x41,x42,x43
……
,x4m)对应的第一加密向量为(e
pka
(x41),e
pka
(x42),e
pka
(x43)
……
,e
pka
(x4m))。
[0140]
第一设备将第一目标公钥以及每个第一加密向量均发送给第二设备,第二设备在
接收到该第一目标公钥以及每个第一加密向量后,针对每个第二向量,基于第一目标公钥对该第二向量进行半同态加密生成第二加密向量。第二向量(y11,y12,y13
……
,y1m)对应的第二加密向量为(e
pka
(y11),e
pka
(y12),e
pka
(y13)
……
,e
pka
(y1m))。第二向量(y21,y22,y23
……
,y2m)对应的第二加密向量为(e
pka
(y21),e
pka
(y22),e
pka
(y23)
……
,e
pka
(y2m))。第二向量(y31,y32,y33
……
,y3m)对应的第二加密向量为(e
pka
(y31),e
pka
(y32),e
pka
(y33)
……
,e
pka
(y3m))。第二向量(y41,y42,y43
……
,y4m)对应的第二加密向量为(e
pka
(y41),e
pka
(y42),e
pka
(y43)
……
,e
pka
(y4m))。
[0141]
由于针对每个第一数据,需要确定该第一数据与每个第二数据是否匹配,例如,针对第一数据u1,需要确定第一数据u1与第二数据u5是否匹配、第一数据u1与第二数据u6是否匹配、第一数据u1与第二数据u7是否匹配、第一数据u1与第二数据u8是否匹配,因此,针对每个第一向量,均可以确定该第一向量与每个第二向量的目标距离,针对每个第一加密向量,也均可以基于该第一加密向量与每个第二加密向量,分别计算相应的第一加密距离。其中,基于任一第一加密向量与任一第二加密向量,计算第一加密距离的过程均与上述实施例中计算第一加密距离的过程相同,例如,针对任一第一加密向量与任一第二加密向量,第二设备可以将基于该第一加密向量和该第二加密向量计算的加密后的子距离b,发送给第一设备。第一设备可以将加密后的子距离更新为并采用第一目标私钥,对更新后的第一加密距离进行解密,以进而得到相应的第一向量与第二向量的目标距离,在此不再赘述。
[0142]
针对每个第一向量,分别确定了该第一向量与每个第二向量的目标距离之后,第一设备还可以将确定的目标距离发送给第二设备,第一设备和第二设备均可以分别基于该目标距离以及预设的第一距离阈值,确定该第一向量对应的第一数据分别与每个第二向量对应的第二数据是否匹配,即可以分别确定各个第一数据与各个第二数据是否匹配。
[0143]
为方便理解,下面再通过一个具体实施例对本技术提供的数据匹配过程进行说明。假设保存在第一设备中的第一数据有3个,分别为“上海市浦东新区晴天小卖部”、“上海市天天餐饮店”、“高科路杨国福麻辣烫”。保存在第二设备中的第二数据也有3个,分别为“上海市晴天小卖部”、“上海市天天餐饮店”、“麦当劳”。
[0144]
其中第一数据中,“上海市浦东新区晴天小卖部”对应的第一向量为《1.0,2.0,1.5,2.0,3.5》,记为a1。“上海市天天餐饮店”对应的第一向量为《3.0,4.0,2.5,2.5,1.5》,记为a2。“高科路杨国福麻辣烫”对应的第一向量为《4.5,5.5,7.5,1.5,0.5》,记为a3。
[0145]
第二数据中,“上海市晴天小卖部”对应的第二向量为《1.0,2.0,1.5,1.0,3.5》,记为b1。“上海市天天餐饮店”对应的第二向量为《3.0,4.0,2.5,2.5,1.5》,记为b2。“麦当劳”对应的第二向量为《3.5,6.5,2.5,7.5,2.5》,记为b3。
[0146]
第一设备生成第一目标公私钥对a(pka,ska),其中,该pka为第一目标公钥,ska为第一目标私钥,该第一目标公私钥对为半同态加密目标公私钥对。针对每个第一向量,第一设备可以基于该第一目标公钥对对该第一向量进行半同态加密,生成相应的第一加密向量。
[0147]
第一设备将第一目标公钥以及每个第一加密向量均发送给第二设备,第二设备在接收到该第一目标公钥以及每个第一加密向量后,针对每个第二向量,基于第一目标公钥
对该第二向量进行半同态加密生成第二加密向量。
[0148]
由于针对每个第一数据,需要确定该第一数据与每个第二数据是否匹配,因此,针对每个第一向量,均可以确定该第一向量与每个第二向量的目标距离,针对每个第一加密向量,也均可以基于该第一加密向量与每个第二加密向量,分别计算相应的第一加密距离。其中,基于任一第一加密向量与任一第二加密向量,计算第一加密距离的过程均与上述实施例中计算第一加密距离的过程相同,在此不再赘述。
[0149]
如表1所示,表1为本技术一些实施例提供的一种目标距离的示意表。
[0150]
表1
[0151]
d(x,y)b1b2b3a113.647.66a23.905.7a38.355.618.18
[0152]
假设d(x,y)表征目标距离,其中x表征的第一向量,y表征的第二向量。a1与b1对应的目标距离为1,a1与b2对应的目标距离为3.64,a1与b3对应的目标距离为7.66,a2与b1对应的目标距离为3.9,a2与b2对应的目标距离为0,a2与b3对应的目标距离为5.7,a3与b1对应的目标距离为8.35,a3与b2对应的目标距离为5.16,a3与b3对应的目标距离为8.18。
[0153]
假设第一距离阈值为2,则本次模糊匹配结果为第一数据中的“上海市浦东新区晴天小卖部”与第二数据中的“上海市晴天小卖部”匹配,第一数据中的“上海市天天餐饮店”与第二数据中的“上海市天天餐饮店”匹配,由此也可以看出,本技术中的数据匹配方法可以使得两个数据在不完全相同时,也能实现数据的模糊匹配,拓宽了使用场景。
[0154]
为方便理解,下面再通过一个具体实施例对本技术提供的数据匹配过程进行说明。假设保存在第一设备中的第一数据有3个,分别为3个手机号码“13345678909”、“13245678911”、“13334536787”。保存在第二设备中的第二数据也有3个,分别为3个手机号码“13334536787”、“13345678908”、“15439402290”。
[0155]
第一设备和第二设备分别可以利用独热(one-hot)编码模型(数据转化模型)第一数据和第二数据中的手机号码进行向量化,生成相应的第一向量和第二向量,可选的,第一向量和第二向量的向量维度可以为10*11维,其中10代表0-9共10个数字,11代表手机号长度为11个数字。示例性的,参阅表2,表2为手机号码“13345678909”对应的向量示意表。
[0156]
表2
[0157]
手机号码中的其中一个数字数字对应的向量(独热编码)100000000103000000100030000001000400000100005000010000060001000000700100000008010000000091000000000
0000000000191000000000
[0158]
参阅表2,在一种可能的实施方式中,0对应的独热编码为0000000001、1对应的独热编码为0000000010、2对应的独热编码为0000000100、3对应的独热编码为0000001000、4对应的独热编码为0000010000、5对应的独热编码为0000100000、6对应的独热编码为0001000000、7对应的独热编码为0010000000、8对应的独热编码为0100000000、9对应的独热编码为1000000000。则手机号码“13345678909”对应的第一向量(或第二向量)可以为(0000000010,0000001000,0000001000,0000010000,0000100000,0001000000,0010000000,0100000000,1000000000,0000000001,1000000000)。确定其他手机号码对应的向量的过程与该过程类似,在此不再赘述。
[0159]
为方便描述,将第一数据中“13345678909”对应的第一向量记为a4、“13245678911”对应的第一向量记为a5、“13334536787”对应的第一向量记为a6。将第二数据中“13334536787”对应的第二向量记为b4、“13345678908”对应的第二向量记为b5、“15439402290”对应的第二向量记为b6。
[0160]
第一设备生成第一目标公私钥对a(pka,ska),其中,该pka为第一目标公钥,ska为第一目标私钥,该第一目标公私钥对为半同态加密目标公私钥对。针对每个第一向量,第一设备可以基于该第一目标公钥对对该第一向量进行半同态加密,生成相应的第一加密向量。
[0161]
第一设备将第一目标公钥以及每个第一加密向量均发送给第二设备,第二设备在接收到该第一目标公钥以及每个第一加密向量后,针对每个第二向量,基于第一目标公钥对该第二向量进行半同态加密生成第二加密向量。
[0162]
由于针对每个第一数据,需要确定该第一数据与每个第二数据是否匹配,因此,针对每个第一向量,均可以确定该第一向量与每个第二向量的目标距离,针对每个第一加密向量,也均可以基于该第一加密向量与每个第二加密向量,分别计算相应的第一加密距离。其中,基于任一第一加密向量与任一第二加密向量,计算第一加密距离的过程均与上述实施例中计算第一加密距离的过程相同,在此不再赘述。
[0163]
如表3所示,表3为本技术一些实施例提供的一种目标距离的示意表。
[0164]
表3
[0165]
d(x,y)b4b5b6a42.8213.16a531.733a602.823
[0166]
假设d(x,y)表征目标距离,其中x表征的第一向量,y表征的第二向量。a4与b4对应的目标距离为2.82,a4与b5对应的目标距离为1,a4与b6对应的目标距离为3.16,a5与b4对应的目标距离为3,a5与b5对应的目标距离为1.73,a5与b6对应的目标距离为3,a6与b4对应的目标距离为0,a6与b5对应的目标距离为2.83,a6与b6对应的目标距离为3。
[0167]
假设第一距离阈值为2,则本次模糊匹配结果为第一数据中的“13345678909”与第二数据中的“13345678909”匹配,第一数据中的“13334536787”与第二数据中的“13334536787”匹配,由此也可以看出,本技术中的数据匹配方法不仅能实现数据的模糊匹
配,还可以实现数据的精准匹配,拓宽了使用场景。
[0168]
实施例5:
[0169]
基于相同的技术构思,本技术提供了一种数据匹配方法,应用于第二设备,图3为本技术实施例提供的第三种数据匹配过程示意图,如图3所示,该方法包括:
[0170]
s301:将待匹配的第二数据输入到预先训练完成的向量转化模型中,获得所述第二数据对应的第二向量。
[0171]
本技术实施例提供的数据匹配方法应用于第二设备,该第二设备可以是智能终端、pc或者服务器等设备,且该第二设备与本技术中的第一设备为不同的设备。
[0172]
s302:接收第一设备发送的第一目标公钥以及第一加密向量,采用所述第一目标公钥对所述第二向量进行半同态加密生成第二加密向量;其中,所述第一加密向量为采用所述第一目标公钥对第一向量进行半同态加密后得到的,所述第一向量为将第一数据输入到所述第一设备中的预先训练完成的向量转化模型中获得的。
[0173]
s303:基于所述第一加密向量和第二加密向量计算第一加密距离,将所述第一加密距离发送给所述第一设备,以使所述第一设备基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;并使所述第一设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0174]
在一种可能的实施方式中,所述将待匹配的第二数据输入到预先训练完成的向量转化模型中,获得所述第二数据对应的第二向量包括:
[0175]
确定所述第二数据对应的第二目标数据类型;
[0176]
根据所述第二目标数据类型以及预先保存的数据类型和预先训练完成的向量转化模型的对应关系,确定所述第二数据对应的预先训练完成的第二目标向量转化模型;
[0177]
将所述第二数据输入到所述预先训练完成的第二目标向量转化模型中,获得所述第二数据对应的所述第二向量。
[0178]
在一种可能的实施方式中,所述第二目标数据类型为文本类型、数字类型、图像类型中的至少一种。
[0179]
在一种可能的实施方式中,若所述第二目标数据类型为文本类型,所述第二目标数据类型对应的预先训练完成的第二目标向量转化模型为词向量模型或句向量模型;若所述第二目标数据类型为数字类型,所述第二目标数据类型对应的预先训练完成的第二目标向量转化模型为独热编码模型;若所述第一目标数据类型为图像类型,所述第一目标数据类型对应的预先训练完成的第一目标向量转化模型为图像向量模型。
[0180]
在一种可能的实施方式中,所述方法还包括:
[0181]
采用自身生成的第二目标公钥对所述第二向量进行半同态加密生成第三加密向量,将所述第二目标公钥和所述第三加密向量发送给所述第一设备;
[0182]
接收所述第一设备发送的基于所述第三加密向量以及第四加密向量计算得到的第二加密距离,所述第四加密向量为采用所述第二目标公钥对第一向量进行半同态加密后得到的;所述第一向量为将第一数据输入到所述第一设备中的预先训练完成的向量转化模型中获得的;
[0183]
基于所述第二加密距离以及与所述第二目标公钥对应的第二目标私钥,确定所述
第一向量和第二向量的目标距离,并使所述第二设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0184]
在一种可能的实施方式中,所述将所述第一加密距离发送给所述第一设备之后,所述方法还包括:
[0185]
接收所述第一设备发送的目标距离,基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0186]
在一种可能的实施方式中,所述方法还包括:
[0187]
接收所述第一设备发送的所述第一数据以及所述第二数据是否匹配的匹配结果。
[0188]
在一种可能的实施方式中,所述采用所述第一目标公钥对所述第二向量进行半同态加密生成第二加密向量包括:
[0189]
针对所述第二向量中的每个第二分量,基于所述第一目标公钥对所述第二向量中的每个第二分量分别进行半同态加密,生成所述第二加密向量。
[0190]
实施例6:
[0191]
基于相同的技术构思,本技术提供了一种数据匹配装置,应用于第一设备。图4为本技术一些实施例提供的一种数据匹配装置结构示意图,如图4所示,所述装置包括:
[0192]
第一获取模块41,用于将待匹配的第一数据输入到预先训练完成的向量转化模型中,获得所述第一数据对应的第一向量;
[0193]
第一处理模块42,用于采用自身生成的第一目标公钥对所述第一向量进行半同态加密生成第一加密向量,将所述第一目标公钥以及所述第一加密向量发送给第二设备;
[0194]
所述第一获取模块41,还用于获取所述第二设备发送的基于所述第一加密向量和第二加密向量计算的第一加密距离,所述第二加密向量为采用所述第一目标公钥对第二向量进行半同态加密后得到的;所述第二向量为将第二数据输入到所述第二设备中的预先训练完成的向量转化模型中获得的;
[0195]
第一确定模块43,用于基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0196]
在一种可能的实施方式中,所述第一获取模块41,具体用于确定所述第一数据对应的第一目标数据类型;
[0197]
根据所述第一目标数据类型以及预先保存的数据类型和预先训练完成的向量转化模型的对应关系,确定所述第一数据对应的预先训练完成的第一目标向量转化模型;
[0198]
将所述第一数据输入到所述预先训练完成的第一目标向量转化模型中,获得所述第一数据对应的所述第一向量。
[0199]
在一种可能的实施方式中,所述第一目标数据类型为文本类型、数字类型、图像类型中的至少一种。
[0200]
在一种可能的实施方式中,若所述第一目标数据类型为文本类型,所述第一目标数据类型对应的预先训练完成的第一目标向量转化模型为词向量模型或句向量模型;若所述第一目标数据类型为数字类型,所述第一目标数据类型对应的预先训练完成的第一目标向量转化模型为独热编码模型;若所述第一目标数据类型为图像类型,所述第一目标数据类型对应的预先训练完成的第一目标向量转化模型为图像向量模型。
[0201]
在一种可能的实施方式中,所述装置还包括:
[0202]
接收模块,用于接收所述第二设备发送的第三加密向量以及所述第二设备生成的第二目标公钥;其中,所述第三加密向量为所述第二设备采用所述第二目标公钥对所述第二向量进行半同态加密后得到的;
[0203]
所述第一处理模块,还用于基于所述第二目标公钥对所述第一向量进行半同态加密生成第四加密向量;
[0204]
发送模块,用于基于所述第三加密向量以及所述第四加密向量计算得到第二加密距离,并将所述第二加密距离发送给所述第二设备,以使所述第二设备基于所述第二加密距离以及与所述第二目标公钥对应的第二目标私钥,确定所述第一向量和第二向量的目标距离,并使所述第二设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0205]
在一种可能的实施方式中,所述第一发送模块,还用于将所述目标距离发送给所述第二设备,使所述第二设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0206]
在一种可能的实施方式中,所述第一发送模块,还用于将确定的所述第一数据以及所述第二数据是否匹配的匹配结果发送给所述第二设备。
[0207]
在一种可能的实施方式中,所述第一处理模块,具体用于针对所述第一向量中的每个第一分量,基于所述第一目标公钥对所述第一向量中的每个第一分量分别进行半同态加密,生成所述第一加密向量。
[0208]
在一种可能的实施方式中,所述第一向量和所述第二向量的长度均为预设长度。
[0209]
在一种可能的实施方式中,所述第一加密距离是采用以下过程获得的:
[0210]
针对所述第一加密向量中的每个第一加密分量以及所述第二加密向量中的每个第二加密分量,通过半同态加密算法,确定该第一加密分量与相应的第二加密分量的乘积,以及相应的第二加密分量的第二加密平方分量;基于该乘积以及该第二加密平方分量,确定该第一加密分量对应的加密后的子距离;
[0211]
基于每个第一加密分量对应的加密后的子距离,确定所述第一加密向量和第二加密向量的第一加密距离。
[0212]
在一种可能的实施方式中,所述第一确定模块43,具体用于针对所述第一加密向量中的每个第一加密分量,确定该第一加密分量的第一加密平方分量;基于该第一加密平方分量以及该第一加密分量对应的所述加密后的子距离,对该第一加密分量对应的所述加密后的子距离进行更新;
[0213]
基于每个第一加密分量对应的更新后的子距离,确定所述第一加密向量和第二加密向量的更新后的第一加密距离;
[0214]
采用与所述第一目标公钥对应的第一目标私钥,对所述更新后的第一加密距离进行解密,得到所述第一向量和第二向量的目标距离。
[0215]
在一种可能的实施方式中,所述第一加密距离是采用以下过程获得的:
[0216]
针对所述第一加密向量中的每个第一加密分量以及所述第二加密向量中的每个第二加密分量,通过半同态加密算法,确定该第一加密分量的第一加密平方分量、该第一加密分量与相应的第二加密分量的乘积,以及相应的第二加密分量的第二加密平方分量;基
于该第一加密平方分量、该乘积以及该第二加密平方分量,确定该第一加密分量对应的加密后的子距离;
[0217]
基于每个第一加密分量对应的加密后的子距离,确定所述第一加密向量和第二加密向量的第一加密距离。
[0218]
在一种可能的实施方式中,所述第一确定模块43,具体用于确定该第一加密分量个指数幂的乘积,其中,所述指数幂的指数为相应的第二加密分量;
[0219]
基于该第一加密分量个指数幂的乘积,确定该第一加密分量个相应的第二加密分量的和;
[0220]
基于该第一加密分量个相应的第二加密分量的和,确定该第一加密分量与相应的第二加密分量的乘积。
[0221]
在一种可能的实施方式中,所述第一确定模块43,具体用于判断所述目标距离是否小于预设的第一距离阈值;
[0222]
若是,则确定所述第一数据与所述第二数据匹配;
[0223]
否则,确定所述第一数据与所述第二数据不匹配。
[0224]
在一种可能的实施方式中,所述第一确定模块43,还用于判断所述目标距离是否等于预设的第二距离阈值,若是,则确定所述第一数据与所述第二数据相同。
[0225]
实施例7:
[0226]
基于相同的技术构思,本技术提供了另一种数据匹配装置,应用于第二设备。图5为本技术一些实施例提供的另一种数据匹配装置结构示意图,如图5所示,所述装置包括:
[0227]
第二获取模块51,用于将待匹配的第二数据输入到预先训练完成的向量转化模型中,获得所述第二数据对应的第二向量;
[0228]
第二处理模块52,用于接收第一设备发送的第一目标公钥以及第一加密向量,采用所述第一目标公钥对所述第二向量进行半同态加密生成第二加密向量;其中,所述第一加密向量为采用所述第一目标公钥对第一向量进行半同态加密后得到的,所述第一向量为将第一数据输入到所述第一设备中的预先训练完成的向量转化模型中获得的;
[0229]
第二确定模块53,用于基于所述第一加密向量和第二加密向量计算第一加密距离,将所述第一加密距离发送给所述第一设备,以使所述第一设备基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;并使所述第一设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0230]
在一种可能的实施方式中,所述第二获取模块51,具体用于确定所述第二数据对应的第二目标数据类型;
[0231]
根据所述第二目标数据类型以及预先保存的数据类型和预先训练完成的向量转化模型的对应关系,确定所述第二数据对应的预先训练完成的第二目标向量转化模型;
[0232]
将所述第二数据输入到所述预先训练完成的第二目标向量转化模型中,获得所述第二数据对应的所述第二向量。
[0233]
在一种可能的实施方式中,所述第二目标数据类型为文本类型、数字类型、图像类型中的至少一种。
[0234]
在一种可能的实施方式中,若所述第二目标数据类型为文本类型,所述第二目标
数据类型对应的预先训练完成的第二目标向量转化模型为词向量模型或句向量模型;若所述第二目标数据类型为数字类型,所述第二目标数据类型对应的预先训练完成的第二目标向量转化模型为独热编码模型;若所述第一目标数据类型为图像类型,所述第一目标数据类型对应的预先训练完成的第一目标向量转化模型为图像向量模型。
[0235]
在一种可能的实施方式中,所述第二处理模块52,还用于采用自身生成的第二目标公钥对所述第二向量进行半同态加密生成第三加密向量,将所述第二目标公钥和所述第三加密向量发送给所述第一设备;接收所述第一设备发送的基于所述第三加密向量以及第四加密向量计算得到的第二加密距离,所述第四加密向量为采用所述第二目标公钥对第一向量进行半同态加密后得到的;所述第一向量为将第一数据输入到所述第一设备中的预先训练完成的向量转化模型中获得的;基于所述第二加密距离以及与所述第二目标公钥对应的第二目标私钥,确定所述第一向量和第二向量的目标距离,并使所述第二设备基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0236]
在一种可能的实施方式中,所述第二确定模块53,还用于接收所述第一设备发送的目标距离,基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0237]
在一种可能的实施方式中,所述第二确定模块53,还用于接收所述第一设备发送的所述第一数据以及所述第二数据是否匹配的匹配结果。
[0238]
在一种可能的实施方式中,所述第二获取模块51,还用于针对所述第二向量中的每个第二分量,基于所述第一目标公钥对所述第二向量中的每个第二分量分别进行半同态加密,生成所述第二加密向量。
[0239]
实施例8:
[0240]
基于相同的技术构思,本技术提供了一种数据匹配系统,图6为本技术一些实施例提供的一种数据匹配系统结构示意图,如图6所示,所述系统包括:
[0241]
第一设备61,用于将待匹配的第一数据输入到预先训练完成的向量转化模型中,获得所述第一数据对应的第一向量;采用自身生成的第一目标公钥对所述第一向量进行半同态加密生成第一加密向量,将所述第一目标公钥以及所述第一加密向量发送给第二设备62;
[0242]
所述第二设备62,用于将待匹配的第二数据输入到预先训练完成的向量转化模型中,获得所述第二数据对应的第二向量;并接收所述第一设备发送的第一目标公钥以及第一加密向量,采用所述第一目标公钥对所述第二向量进行半同态加密生成第二加密向量;基于所述第一加密向量和第二加密向量计算第一加密距离,将所述第一加密距离发送给所述第一设备61;
[0243]
所述第一设备61,还用于基于所述第一加密距离以及与所述第一目标公钥对应的第一目标私钥,确定所述第一向量和第二向量的目标距离;基于所述目标距离以及预设的第一距离阈值,确定所述第一数据以及所述第二数据是否匹配。
[0244]
基于相同的技术构思,本技术还提供了一种电子设备,图7为本技术一些实施例提供的一种电子设备结构示意图,如图7所示,包括:处理器71、通信接口72、存储器73和通信总线74,其中,处理器71,通信接口72,存储73通过通信总线74完成相互间的通信;
[0245]
所述存储器73中存储有计算机程序,当所述程序被所述处理器71执行时,使得所
述处理器71执行上述任一实施例的数据匹配方法的步骤。
[0246]
由于上述电子设备解决问题的原理与数据匹配方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
[0247]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0248]
通信接口72用于上述电子设备与其他设备之间的通信。
[0249]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0250]
上述处理器可以是通用处理器,包括中央处理器、网络处理器(network processor,np)等;还可以是数字指令处理器(digital signal processing,dsp)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
[0251]
基于相同的技术构思,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现上述任一实施例的数据匹配方法的步骤。由于上述计算机可读存储介质解决问题的原理与数据匹配方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
[0252]
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(mo)等、光学存储器如cd、dvd、bd、hvd等、以及半导体存储器如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd)等。
[0253]
基于相同的技术构思,在上述各实施例的基础上,本技术提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如上述任一所述数据匹配方法的步骤。
[0254]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0255]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0256]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0257]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0258]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献