本申请涉及金融科技(fintech)的机器学习技术领域,尤其涉及一种样本匹配方法、设备及可读存储介质。
背景技术:
随着金融科技,尤其是互联网科技金融的不断发展,越来越多的技术(如分布式、区块链blockchain、人工智能等)应用在金融领域,但金融业也对技术提出了更高的要求,如对金融业对应待办事项的分发也有更高的要求。
随着计算机软件和人工智能的不断发展,联邦学习的应用也越来越广泛,在进行联邦学习之前,通常需要对进行联邦学习的各参与方的样本进行样本匹配,目前,基于rsa加密技术的隐私保护样本匹配方法可以在不泄露非交集(隐私部分)样本的同时,得到参与双方的交集(共同部分)样本,进而在保证了数据的安全性的同时,又成功进行了样本匹配,然而,基于上述方法的样本匹配过程中的计算量较大,且各参与方的数据源的样本量往往非常大,导致整个样本匹配过程计算开销大,计算时间长,进而导致样本匹配效率较低,所以,现有技术中存在样本匹配效率低的技术问题。
技术实现要素:
本申请的主要目的在于提供一种样本匹配方法、设备和可读存储介质,旨在解决现有技术中样本匹配效率低的技术问题。
为实现上述目的,本申请提供一种样本匹配方法,所述样本匹配方法应用于第一设备,所述样本匹配方法包括:
向与所述第一设备关联的第二设备发起交集任务,以接收所述第二设备发送的所述交集任务对应的公钥;
基于所述公钥,获取所述第一设备对应的第一中间结果;
判断是否使用预设缓存模式,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程;
若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。可选地,所述第一设备包括第一本地缓存数据,
所述基于所述预设缓存模式获取第二中间结果的步骤包括:
将所述第一本地缓存数据对应的第一版本信息发送至所述第二设备,以验证所述第一版本信息与所述第二设备的第二版本信息是否一致,并判断是否接收到所述第二设备发送的一致性确定信息;
若未接收到所述第二设备发送的一致性确定信息,则等待接收所述第二设备发送的第二中间结果;
若接收到所述第二设备发送的一致性确定信息,则基于所述第一本地缓存数据获取所述第二中间结果。
可选地,所述基于所述第一本地缓存数据获取所述第二中间结果的步骤包括:
判断所述第一本地缓存数据是否为最新版本数据;
若所述第一本地缓存数据为所述最新版本数据,则将所述第一本地缓存数据作为所述第二中间结果;
若所述第一本地缓存数据不为所述最新版本数据,则等待接收所述第二设备发送的所述第二中间结果
可选地,所述基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程的步骤包括:
对所述第二中间结果和所述第一中间结果进行交集处理,获得交集处理结果;
通过预设映射关系获取所述交集处理结果对应的样本匹配结果,并将所述交集处理结果发送至所述第二设备。
可选地,所述第一设备包括第一样本id(identitydocument,身份标识),所述基于所述公钥,获取所述第一设备对应的第一中间结果的步骤包括:
基于所述公钥、预设哈希函数和预设随机数,对所述第一样本id进行加密处理,获得第一加密处理结果;
将所述第一加密处理结果发送至所述第二设备,以获取所述第二设备基于所述第一加密处理结果反馈的第二加密处理结果;
基于所述预设随机数和所述预设哈希函数,对所述第二加密处理结果进行去随机数处理和哈希处理,获得所述第一中间结果。
为实现上述目的,本申请还提供一种样本匹配方法,其特征在于,所述样本匹配方法应用于第二设备,所述样本匹配方法包括:
接收与所述第二设备关联的第一设备发送的交集任务,并判断是否使用预设缓存模式;
若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥;
基于所述预设缓存模式,获取第二中间结果,并将所述第二中间结果发送至所述第一设备;
若不使用所述预设缓存模式,则生成所述交集任务对应的新密钥对,并将所述新密钥对中的公钥发送至所述第一设备;
基于所述新密钥对计算所述第二中间结果,并将所述第二中间结果发送至所述第一设备。
可选地,所述基于所述预设缓存模式,获取第二中间结果的步骤包括:
获取第二本地缓存数据,并接收所述第一设备发送的第一版本信息;
判断所述第一版本信息与所述第二本地缓存数据的第二版本信息是否一致,若所述第一版本信息与所述第二版本信息一致,则向所述第一设备发送一致性确定信息,以获取所述第二中间结果;
若所述第一版本信息与所述第二版本信息不一致,则判断所述第二本地缓存数据是否为可用版本数据,若所述第二本地缓存数据不为所述可用版本数据,则基于所述新密钥对生成所述第二中间结果;
若所述第二本地缓存数据为所述可用版本数据,则将所述第二本地缓存数据作为所述第二中间结果。
可选地,所述新密钥对包括私钥,所述第二设备包括第二样本id,
所述基于所述新密钥对生成所述第二中间结果的步骤包括:
基于预设哈希函数,对所述第二样本id进行哈希处理,获得第一哈希值;
基于所述私钥,对所述第一哈希值进行加密处理,获得加密哈希值;
基于所述预设哈希函数,对所述加密哈希值进行所述哈希处理,获得所述第二中间结果。
可选地,所述当前版本密钥对包括私钥和公钥,
所述若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥的步骤之后包括:
接收所述第一设备基于所述公钥发送的第一加密处理结果;
基于所述私钥,对所述第一加密处理结果进行加密处理,获得第二加密处理结果,并将所述第二加密处理结果发送至所述第一设备。
本申请还提供一种样本匹配装置,所述样本匹配装置应用于第一设备,所述样本匹配装置包括:
第一接收模块,用于所述向与所述第一设备关联的第二设备发起交集任务,以接收所述第二设备发送的所述交集任务对应的公钥;
第一获取模块,用于所述基于所述公钥,获取所述第一设备对应的第一中间结果;
第一执行模块,用于所述判断是否使用预设缓存模式,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程;
第二执行模块,用于所述若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。
可选地,所述第一执行模块包括:
第一判断单元,用于所述将所述第一本地缓存数据对应的第一版本信息发送至所述第二设备,以验证所述第一版本信息与所述第二设备的第二版本信息是否一致,并判断是否接收到所述第二设备发送的一致性确定信息;
第一等待接收单元,用于所述若未接收到所述第二设备发送的一致性确定信息,则等待接收所述第二设备发送的第二中间结果;
第一获取单元,用于所述若接收到所述第二设备发送的一致性确定信息,则基于所述第一本地缓存数据获取所述第二中间结果。
可选地,所述获取单元包括:
判断子单元,用于所述判断所述第一本地缓存数据是否为最新版本数据;
获取子单元,用于所述若所述第一本地缓存数据为所述最新版本数据,则将所述第一本地缓存数据作为所述第二中间结果;
等待接收子单元,用于所述若所述第一本地缓存数据不为所述最新版本数据,则等待接收所述第二设备发送的所述第二中间结果。
可选地,所述第二执行模块包括:
交集单元,用于所述对所述第二中间结果和所述第一中间结果进行交集处理,获得交集处理结果;
第二获取单元,用于所述通过预设映射关系获取所述交集处理结果对应的样本匹配结果,并将所述交集处理结果发送至所述第二设备。
可选地,所述获取模块包括:
加密处理单元,用于所述基于所述公钥、预设哈希函数和预设随机数,对所述第一样本id进行加密处理,获得第一加密处理结果;
发送单元,用于所述将所述第一加密处理结果发送至所述第二设备,以获取所述第二设备基于所述第一加密处理结果反馈的第二加密处理结果;
哈希单元,用于所述基于所述预设随机数和所述预设哈希函数,对所述第二加密处理结果进行去随机数处理和哈希处理,获得所述第一中间结果。
为实现上述目的,本申请还提供一种样本匹配装置,其特征在于,所述样本匹配装置应用于第二设备,所述样本匹配装置包括:
第二接收模块,用于所述接收与所述第二设备关联的第一设备发送的交集任务,并判断是否使用预设缓存模式;
第二获取模块,用于所述若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥;
第三执行模块,用于所述基于所述预设缓存模式,获取第二中间结果,并将所述第二中间结果发送至所述第一设备;
第四执行模块,用于所述若不使用所述预设缓存模式,则生成所述交集任务对应的新密钥对,并将所述新密钥对中的公钥发送至所述第一设备;
计算模块,用于所述基于所述新密钥对计算所述第二中间结果,并将所述第二中间结果发送至所述第一设备。
可选地,所述第三获取模块包括:
提取单元,用于所述获取第二本地缓存数据,并接收所述第一设备发送的第一版本信息;
第二判断单元,用于所述判断所述第一版本信息与所述第二本地缓存数据的第二版本信息是否一致,若所述第一版本信息与所述第二版本信息一致,则向所述第一设备发送一致性确定信息,以获取所述第二中间结果;
第三判断单元,用于所述若所述第一版本信息与所述第二版本信息不一致,则判断所述第二本地缓存数据是否为可用版本数据,若所述第二本地缓存数据不为所述可用版本数据,则基于所述新密钥对生成所述第二中间结果;
读取单元,用于所述若所述第二本地缓存数据为所述可用版本数据,则将所述第二本地缓存数据作为所述第二中间结果。
可选地,所述第四执行模块包括:
第一哈希处理单元,用于所述基于预设哈希函数,对所述第二样本id进行哈希处理,获得第一哈希值;
加密单元,用于所述基于所述私钥,对所述第一哈希值进行加密处理,获得加密哈希值;
第二哈希处理单元,用于所述基于所述预设哈希函数,对所述加密哈希值进行所述哈希处理,获得所述第二中间结果。
可选地,所述样本匹配装置还包括:
第三接收模块,用于所述接收所述第一设备基于所述公钥发送的第一加密处理结果;
加密计算模块,用于所述基于所述私钥,对所述第一加密处理结果进行加密处理,获得第二加密处理结果,并将所述第二加密处理结果发送至所述第一设备。
为实现上述目的,本申请还提供一种样本匹配系统,其特征在于,所述样本匹配系统包括所述第一设备和所述第二设备,且所述第一设备与所述第二设备通信连接,所述样本匹配系统可实现如上述的样本匹配方法的步骤。
本申请还提供一种样本匹配设备,所述样本匹配设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述样本匹配方法的程序,所述样本匹配方法的程序被处理器执行时可实现如上述的样本匹配方法的步骤。
本申请还提供一种可读存储介质,所述可读存储介质上存储有实现样本匹配方法的程序,所述样本匹配方法的程序被处理器执行时实现如上述的样本匹配方法的步骤。
本申请通过向与所述第一设备关联的第二设备发起交集任务,以接收所述第二设备发送的所述交集任务对应的公钥,进而基于所述公钥,获取所述第一设备对应的第一中间结果,进而判断是否使用预设缓存模式,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程,若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。也即,本申请首先向与所述第一设备关联的第二设备进行交集任务的发起,以进行所述第二设备发送的所述交集任务对应的公钥的接收,进而基于所述公钥,进行所述第一设备对应的第一中间结果的获取,进而进行是否使用预设缓存模式的判断,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程,若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。也即,本申请提供了一种加速进行所述样本匹配的方法,也即,除了通过计算获取第二中间结果的方法之外,本申请可通过使用预设缓存模式,在第一设备的本地数据库中提取所述第二中间结果,进而基于所述第一中间结果和所述第二中间结果可执行预设样本匹配过程,也即,在获取所述第二中间结果时,通过使用预设缓存模式,可直接提取本地的缓存数据作为所述第二中间结果,进而无需通过计算获取所述第二中间结果,进而减少了样本匹配过程中的计算过程,避免了在进行样本匹配时进行长时间且大开销的样本匹配计算,达到了降低在进行样本匹配时系统计算资源的消耗的目的,进一步地,提高了样本匹配效率,所以,本申请解决了现有技术中样本匹配效率低的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请样本匹配方法第一实施例的流程示意图;
图2为本申请样本匹配方法第二实施例的流程示意图;
图3为本申请样本匹配方法中在进行样本匹配时第一设备和第二设备进行交互的示意图;
图4为本申请样本匹配方法中第二实施例结合本申请第一实施例的关于所述第二中间结果的加速获取的流程示意图;
图5为本申请实施例方案涉及的硬件运行环境的设备结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供一种样本匹配方法,所述样本匹配方法应用于第一设备,在本申请样本匹配方法的第一实施例中,参照图1,所述样本匹配方法包括:
步骤s10,向与所述第一设备关联的第二设备发起交集任务,以接收所述第二设备发送的所述交集任务对应的公钥;
在本实施例中,需要说明的是,所述交集任务指的是基于加密算法的样本匹配任务,其中,所述加密算法包括非对称加密算法、对称加密算法,所述非对称加密算法包括rsa加密算法等,所述交集任务由第一设备向第二设备发起,其中,所述交集任务发起的方式包括通过发送邮件的方式发起、通过发送约定好的字符发起等,所述公钥为第二设备为基于所述交集任务生成的新密钥或者直接获取的第二设备的当前版本密钥,其中,所述当前版本密钥存储于第二设备的本地数据库中,所述第一设备与所述第二设备相关联,且所述第一设备与所述第二设备之间可进行通信连接。
向与所述第一设备关联的第二设备发起交集任务,以接收所述第二设备发送的所述交集任务对应的公钥,具体地,向与所述第一设备关联的第二设备发起交集任务,进而通过所述第二设备获取所述交集任务对应的公钥,其中,所述第二设备可基于所述交集任务生成的新密钥或者直接获取第二设备的当前版本密钥,也即,获取所述交集任务对应的公钥,进而接收所述第二设备发送的公钥。
步骤s20,基于所述公钥,获取所述第一设备对应的第一中间结果;
在本实施例中,需要说明的是,基于所述公钥,获取所述第一设备对应的第一中间结果,具体地,基于所述公钥和预设哈希函数,以预设加密方式对所述第一设备的第一样本id进行加密处理,获得所述第一中间结果,其中,所述预设加密方式与所述样本匹配相关联。
其中,所述第一设备包括第一样本id,
所述基于所述公钥,获取所述第一设备对应的第一中间结果的步骤包括:
步骤s21,基于所述公钥、预设哈希函数和预设随机数,对所述第一样本id进行加密处理,获得第一加密处理结果;
在本实施例中,基于所述公钥、预设哈希函数和预设随机数,对所述第一样本id进行加密处理,获得第一加密处理结果,具体地,确定需要进行加密处理的第一样本id,并通过预设哈希函数对各所述第一样本id进行哈希处理,获得各所述第一样本id对应的样本id哈希值,进而获取预设随机数,并基于所述公钥对所述预设随机数进行加密处理,获得随机数加密结果,计算所述随机数加密结果和所述样本id哈希值的乘积,获得所述第一加密处理结果,例如,将所述预设哈希函数为h,所述随机数记为r,所述第一样本id记为u,其中,一随机数对应一第一样本id,则所述第一加密处理结果为yb=r^e%n*h(u),其中e为公钥,r^e表示通过公钥对应随机数r进行加密,所述h(u)为关于第一样本id的预设哈希函数,%n表示取模n,其中,n与需要进行加密的第一样本id的数量相关,若n=3,则yb=r^e%n*h(u)={r1^e*h(u1),r2^e*h(u2),r3^e*h(u3)}。
步骤s22,将所述第一加密处理结果发送至所述第二设备,以获取所述第二设备基于所述第一加密处理结果反馈的第二加密处理结果;
在本实施例中,将所述第一加密处理结果发送至所述第二设备,以获取所述第二设备基于所述第一加密处理结果反馈的第二加密处理结果,具体地,将所述第一加密处理结果发送至所述第二设备,以基于所述第二设备中的公钥对应的私钥通过所述第二设备对所述第一加密处理结果进行加密处理,获得所述第二加密处理结果,例如,假设所述私钥记为d,所述第一加密处理结果yb=r^e*h(u),则基于rsa加密算法的公私钥加密原则,所述第二加密处理结果zb=((r^e)*h(u))^d=r*h(u)^d。
步骤s23,基于所述预设随机数和所述预设哈希函数,对所述第二加密处理结果进行去随机数处理和哈希处理,获得所述第一中间结果。
在本实施例中,基于所述预设随机数和所述预设哈希函数,对所述第二加密处理结果进行去随机数处理和哈希处理,获得所述第一中间结果,具体地,基于所述预设随机数,计算所述第二加密处理结果与所述预设随机数的商,获得去随机数处理结果,进一步地,基于所述预设哈希函数,对所述去随机数处理结果进行哈希处理,获得所述第一中间处理结果,例如,假设,所述第二加密处理结果zb=r*h(u)^d,所述预设随机数为r,所述预设哈希函数为h,所以,所述去随机数处理结果为h(u)^d,所述第一中间结果db=h(h(u)^d)。
步骤s30,判断是否使用预设缓存模式,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程;
在本实施例中,需要说明的是,所述预设缓存模式为一种通过读取本地缓存数据以获取第二中间结果的方式,进而可节省大量以获取所述第二中间结果为最终目的的计算过程,所述第二中间结果和所述第一中间结果为执行所述预设样本匹配流程的重要参数。
判断是否使用预设缓存模式,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程,具体地,基于用户输入的指令,判断是否使用预设缓存模式,其中,所述指令包括键盘输入指令和鼠标输入指令,例如,假设可设定键盘输入指令为一串字符串,当字符串为0000时,则判定使用预设缓存模式,当字符串为1111时,则判定不使用预设缓存模式,进而若使用所述预设缓存模式,则基于所述预设缓存模式读取第一设备本地的缓存数据以获取第二中间结果,或者接收第二设备发送的第二中间结果,进而基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程,且在执行所述预设样本匹配流程之前,所述第一设备和所述第二设备均会将所述第二中间结果、所述第二中间结果对应的版本信息和所述第二中间结果对应的密钥对存储于各自的本地数据库中,其中,所述密钥对包括公钥和私钥,所述版本信息可用所述版本号表示。
其中,在步骤s30中,所述第一设备包括第一本地缓存数据,
所述基于所述预设缓存模式获取第二中间结果的步骤包括:
步骤s31,将所述第一本地缓存数据对应的第一版本信息发送至所述第二设备,以验证所述第一版本信息与所述第二设备的第二版本信息是否一致,并判断是否接收到所述第二设备发送的一致性确定信息;
在本实施例中,需要说明的是,所述第一版本信息可用版本号、字符串、文字等进行表示。
将所述第一本地缓存数据对应的第一版本信息发送至所述第二设备,以验证所述第一版本信息与所述第二设备的第二版本信息是否一致,并判断是否接收到所述第二设备发送的一致性确定信息,具体地,将所述第一本地缓存数据对应的第一版本号发送至所述第二设备,以通过所述第二设备将所述第一版本号与所述第二设备的第二版本号进行比对,以验证所述第一版本号与所述第二版本号是否一致,并判断是否接收到所述第二设备发送的一致性确定信息,若接收到所述一致性信息,则表明所述第一版本号与所述第二版本号一致,若未接收到所述一致性信息,则表明所述第一版本号与所述第二版本号不一致。
步骤s32,若未接收到所述第二设备发送的一致性确定信息,则等待接收所述第二设备发送的第二中间结果;
在本实施例中,若未接收到所述第二设备发送的一致性确定信息,则等待接收所述第二设备发送的第二中间结果,具体地,若未接收到所述第二设备发送的一致性确定信息,则表明所述第一版本号与所述第二版本号不一致,进而表明所述第一本地缓存数据不能作为所述第二中间结果,则等待接收所述第二设备发送的第二中间结果。
步骤s33,若接收到所述第二设备发送的一致性确定信息,基于所述第一本地缓存数据获取所述第二中间结果。
在本实施例中,若接收到所述第二设备发送的一致性确定信息,基于所述第一本地缓存数据获取所述第二中间结果,具体地,若接收到所述第二设备发送的一致性确定信息,则表明所述第一版本号与所述第二版本号一致,进而可基于所述第一本地缓存数据,获取所述第二中间结果。
其中,所述所述基于所述第一本地缓存数据获取所述第二中间结果的步骤包括:
步骤s33,判断所述第一本地缓存数据是否为最新版本数据;
在本实施例中,需要说明的是,最新版本数据为进行上一次样本匹配时第一设备本地的数据,且当所述第一设备中本次样本匹配时的样本id与上一次样本匹配时的样本id一致时,则所述第一本地缓存数据为最新版本数据,当所述第一设备中本次样本匹配时的样本id与上一次样本匹配时的样本id不一致时,则所述第一本地缓存数据不为最新版本数据。
步骤s34,若所述第一本地缓存数据为所述最新版本数据,则将所述第一本地缓存数据作为所述第二中间结果;
在本实施例中,需要说明的是,若所述第一本地缓存数据为所述最新版本数据,则可直接将所述第一本地缓存数据作为所述第二中间结果,以节省所述第二中间结果的计算流程,进而降低系统计算资源的消耗。
步骤s35,若所述第一本地缓存数据不为所述最新版本数据,则等待接收所述第二设备发送的所述第二中间结果。
在本实施例中,若所述第一本地缓存数据不为所述最新版本数据,则等待接收所述第二设备发送的所述第二中间结果,具体地,若所述第一本地缓存数据不为所述最新版本数据,则表明所述第一本地缓存数据不能作为所述第二中间结果,进而可等待接收所述第二设备发送的所述第二中间结果。
步骤s40,若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。
在本实施例中,需要说明的是,所述第二设备可通过计算获取所述第二中间结果或者通过所述第二设备的缓存模式直接从其本地数据库中提取所述第二中间结果,所述预设样本匹配流程是事先设置好的样本匹配流程,其中,所述样本匹配流程包括数据传输过程、数据处理过程等。
若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程,具体地,若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果对应的加密信息,其中,所述加密信息为所述第二设备基于所述密钥对中的私钥对应所述第二中间结果进行加密的结果,进而基于所述公钥对所述加密信息进行解密,获得所述第二中间结果,进而基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。
其中,在步骤s40中,所述基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程的步骤包括:
步骤s41,接收所述第二设备发送的第二中间结果,并对所述第二中间结果和所述第一中间结果进行交集处理,获得交集处理结果;
在本实施例中,需要说明的是,所述第一处理结果包括一个或者多个第一哈希值,所述第二处理结果包括一个或者多个第二哈希值。
对所述第二中间结果和所述第一中间结果进行交集处理,获得交集处理结果,具体地,对所述第二中间结果和所述第一中间结果进行交集处理,以各将所述第一哈希值和各所述第二哈希值进行逐一对比,获得相同哈希值,也即,获得交集处理结果,例如,假设所述第一中间结果db={h(h(u1)^d),h(h(u2)^d),h(h(u3)^d)},所述第二中间结果za={h(h(u1)^d),h(h(u2)^d),h(h(u4)^d)},则所述交集处理结果为{h(h(u1)^d),h(h(u2)^d)}。
步骤s42,通过预设映射关系获取所述交集处理结果对应的样本匹配结果,并将所述交集处理结果发送至所述第二设备。
在本实施例中,需要说明的是,所述预设映射关系指的是所述所述交集处理结果中的每一元素与样本id之间的映射关系,其中,所述样本id包括第一样本id和第二样本id,所述样本匹配结果包括所述第一设备和所述第二设备之间的共同样本id。
通过预设映射关系获取所述交集处理结果对应的样本匹配结果,并将所述交集处理结果发送至所述第二设备,具体地,通过预设映射关系获取所述交集处理结果中的每一元素对应的样本id,获得共同样本id,也即,获得所述样本匹配结果,并将所述交集处理结果发送至所述第二设备。
本实施例通过向与所述第一设备关联的第二设备发起交集任务,以接收所述第二设备发送的所述交集任务对应的公钥,进而基于所述公钥,获取所述第一设备对应的第一中间结果,进而判断是否使用预设缓存模式,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程,若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。也即,本实施例首先向与所述第一设备关联的第二设备进行交集任务的发起,以进行所述第二设备发送的所述交集任务对应的公钥的接收,进而基于所述公钥,进行所述第一设备对应的第一中间结果的获取,进而进行是否使用预设缓存模式的判断,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程,若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。也即,本实施例提供了一种加速进行所述样本匹配的方法,也即,除了通过计算获取第二中间结果的方法之外,本实施例可通过使用预设缓存模式,在第一设备的本地数据库中提取所述第二中间结果,进而基于所述第一中间结果和所述第二中间结果可执行预设样本匹配过程,也即,在获取所述第二中间结果时,通过使用预设缓存模式,可直接提取本地的缓存数据作为所述第二中间结果,进而无需通过计算获取所述第二中间结果,进而减少了样本匹配过程中的计算过程,避免了在进行样本匹配时进行长时间且大开销的样本匹配计算,达到了降低在进行样本匹配时系统计算资源的消耗的目的,进一步地,提高了样本匹配效率,所以,本实施例解决了现有技术中样本匹配效率低的技术问题。
进一步地,参照图2,基于本申请中第一实施例,在样本匹配方法的另一实施例中,所述样本匹配方法应用于第二设备,所述样本匹配方法包括:
步骤a10,接收与所述第二设备关联的第一设备发送的交集任务,并判断是否使用预设缓存模式;
在本实施例中,需要说明的是,所述第一设备与所述第二设备向关联,且可进行通信连接。
接收与所述第二设备关联的第一设备发送的交集任务,并判断是否使用预设缓存模式,具体地,在接收与所述第二设备关联的第一设备发送的交集任务之后,基于用户输入的指令,判断是否使用预设缓存模式,其中,所述指令包括键盘输入指令和鼠标输入指令,例如,假设所述指令为鼠标勾选命令,且所述样本匹配对应的用户界面上包括勾选框,当用户使用鼠标勾选所述勾选框时,则判定使用所述预设缓存模式,当用户未使用鼠标勾选所述勾选框时,则判定不使用所述预设缓存模式。
步骤a20,若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥;
在本实施例中,若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥,具体地,若使用所述预设缓存模式,则从第二设备的本地数据库中提取当前版本密钥对,并将所述当前版本密钥对中的公钥发送至所述第一设备,进而所述第一设备可将基于所述公钥对所述第一设备中的第一样本id进行加密处理以获取第一中间结果。
其中,所述当前版本密钥对包括私钥和公钥,
所述若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥的步骤之后包括:
步骤b10,接收所述第一设备基于所述公钥发送的第一加密处理结果;
在本实施例中,接收所述第一设备基于所述公钥发送的第一加密处理结果,具体地,将所述公钥发送至所述第一设备,以通过所述第一设备对所述第一样本id进行加密处理,获得所述第一加密处理结果,进而接收所述第一设备发送的所述公钥对应的第一加密处理结果,其中,所述第一设备将基于所述公钥、预设随机数和预设哈希函数对于所述第一样本id进行加密处理,获得所述第一加密处理结果。
步骤b20,基于所述私钥,对所述第一加密处理结果进行加密处理,获得第二加密处理结果,并将所述第二加密处理结果发送至所述第一设备。
在本实施例中,需要说明的是,所述第一设备将对所述第二加密处理结果进行去随机数处理和基于预设哈希函数的哈希处理。
步骤a30,基于所述预设缓存模式,获取第二中间结果,并将所述第二中间结果发送至所述第一设备;
在本实施例中,基于所述预设缓存模式,获取第二中间结果,并将所述第二中间结果发送至所述第一设备,具体地,基于所述预设缓存模式,通过直接从第二设备的本地数据库中提取第二本地缓存数据作为所述第二中间结果,或者基于生成的新密钥对对所述第二设备的第二样本id进行加密获取所述第二中间结果。
其中,在步骤a30中,所述基于所述预设缓存模式,获取第二中间结果的步骤包括:
步骤a31,获取第二本地缓存数据,并接收所述第一设备发送的第一版本信息;
在本实施例中,获取第二本地缓存数据,并接收所述第一设备发送的第一版本信息,具体地,从第二设备的本地数据库中提取所述第二本地缓存数据,并接收所述第一设备发送的第一版本信息,其中,所述第一版本信息包括版本号。
步骤a32,判断所述第一版本信息与所述第二本地缓存数据的第二版本信息是否一致,若所述第一版本信息与所述第二版本信息一致,则向所述第一设备发送一致性确定信息,以获取所述第二中间结果;
在本实施例中,需要说明的是,所述第一版本信息包括第一版本号,所述第二版本信息包括第二版本号。
判断所述第一版本信息与所述第二本地缓存数据的第二版本信息是否一致,若所述第一版本信息与所述第二版本信息一致,则向所述第一设备发送一致性确定信息,以获取所述第二中间结果,具体地,判断所述第一版本号和所述第二本地缓存数据对应的第二版本号是否一致,若一致,则向第一设备发送一致性确定信息,以通过所述第一设备在第一设备的本地数据库读取第一本地缓存数据作为所述第二中间结果。
步骤a33,若所述第一版本信息与所述第二版本信息不一致,则判断所述第二本地缓存数据是否为可用版本数据,若所述第二本地缓存数据不为所述可用版本数据,则基于所述新密钥对生成所述第二中间结果;
在本实施例中,需要说明的是,所述可用版本数据指的是所述第二设备中的第二样本id未进行更新或者变化的第二本地版本数据,所述新密钥对包括公钥和私钥,且若所述第二中间结果使用新密钥对进行加密时,则所述第一中间结果将相应的使用新密钥对应进行加密处理。
若所述第一版本信息与所述第二版本信息不一致,则判断所述第二本地缓存数据是否为可用版本数据,若所述第二本地缓存数据不为所述可用版本数据,则基于所述新密钥对生成所述第二中间结果,具体地,若所述第一版本号与所述第二版本号不一致,则判断所述第二本地缓存数据是否为可用版本数据,若所述第二本地缓存数据不为所述可用版本数据,则基于所述私钥和预设哈希函数,对所述第二设备的第二样本id进行加密处理,获得所述第二中间结果,例如,假设所述预设哈希函数为h,所述第二样本id为x1,所述私钥为d,则所述第二中间结果za=h(h(x1)^d)。
步骤a34,若所述第二本地缓存数据为所述可用版本数据,则将所述第二本地缓存数据作为所述第二中间结果。
在本实施例中,若所述第二本地缓存数据为所述可用版本数据,则将所述第二本地缓存数据作为所述第二中间结果,具体地,若所述第二本地缓存数据为所述可用版本数据,则在第二设备的本地数据库中读取所述第二本地缓存数据作为所述第二中间结果。
步骤a40,若不使用所述预设缓存模式,则生成所述交集任务对应的新密钥对,并将所述新密钥对中的公钥发送至所述第一设备;
在本实施例中,需要说明的是,所述第二设备中包括用于生成所述新密钥对的密钥生成模块,所述新密钥对包括私钥和公钥。
若不使用所述预设缓存模式,则生成所述交集任务对应的新密钥对,并将所述新密钥对中的公钥发送至所述第一设备,具体地,若不使用所述预设缓存模式,则通过密钥生成模块生成所述交集任务对应的新密钥对,并将所述新密钥对中的公钥发送至所述第一设备,进一步地,所述第一设备可将所述公钥作为自己的公钥对所述第一设备的第一样本id进行加密处理,获得第一中间结果。
步骤a50,基于所述新密钥对计算所述第二中间结果,并将所述第二中间结果发送至所述第一设备。
在本实施例中,基于所述新密钥对计算所述第二中间结果,并将所述第二中间结果发送至所述第一设备,具体地,基于所述新密钥中的私钥和预设哈希函数,对所述第二设备中的第二样本id进行加密处理,获得所述第二中间结果,并将所述第二中间结果发送至所述第一设备以协助所述第一设备执行预设样本匹配流程,如图3所示为在进行样本匹配时第一设备和第二设备进行交互的示意图,其中,“partyb”为所述第一设备,“partya”为所述第二设备,xb为第一样本id的集合,xa为第二样本id的集合,h(x)为预设哈希函数,“publickey”为公钥,d为私钥,yb为所述第一加密处理结果,zb为第二加密处理结果,db为所述第一中间结果,za为所述第二中间结果,ri为所述预设随机数,i为所述交集处理结果,{u1,u2,u3}为所述样本匹配结果,“rsa:n,e,d”为rsa加密算法对应的密钥对,其中,所述密钥对包括当前版本密钥对和新密钥对,如图4所示为本申请第二实施例结合本申请第一实施例的关于第二中间结果的加速获取流程示意图,其中,za为所述第二中间结果,所述rsa交集后续流程为除图4的步骤之外的其他rsa样本匹配流程,“partyb”为所述第一设备,“partya”为所述第二设备,所述rsa交集任务为所述交集任务。
其中,在步骤a50中,所述新密钥对包括私钥,所述第二设备包括第二样本id,
所述基于所述新密钥对生成所述第二中间结果的步骤包括:
步骤a51,基于预设哈希函数,对所述第二样本id进行哈希处理,获得第一哈希值;
在本实施例中,基于预设哈希函数,对所述第二样本id进行哈希处理,获得第一哈希值,具体地,将所述第二样本id作为输入值输入所述预设哈希函数,输出所述第一哈希值。
步骤a52,基于所述私钥,对所述第一哈希值进行加密处理,获得加密哈希值;
步骤a53,基于所述预设哈希函数,对所述加密哈希值进行所述哈希处理,获得所述第二中间结果。
在本实施例中,基于所述预设哈希函数,对所述加密哈希值进行所述哈希处理,获得所述第二中间结果,具体地,将所述加密哈希值作为输入值输入所述预设哈希函数,输出所述第二中间结果。
本实施例通过接收与所述第二设备关联的第一设备发送的交集任务,并判断是否使用预设缓存模式,若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥,进而基于所述预设缓存模式,获取第二中间结果,并将所述第二中间结果发送至所述第一设备,若不使用所述预设缓存模式,则生成所述交集任务对应的新密钥对,并将所述新密钥对中的公钥发送至所述第一设备,进而基于所述新密钥对计算所述第二中间结果,并将所述第二中间结果发送至所述第一设备。也即,本实施例提供了一种加速进行所述样本匹配的方法,也即,通过接收与所述第二设备关联的第一设备发送的交集任务,并判断是否使用预设缓存模式,若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥,进而基于所述预设缓存模式,获取第二中间结果,并将所述第二中间结果发送至所述第一设备,也即,所述第二设备可在不用进行大量计算的情况下,获得所述第二中间结果,进一步地,若不使用所述预设缓存模式,则生成所述交集任务对应的新密钥对,并将所述新密钥对中的公钥发送至所述第一设备,进而基于所述新密钥对计算所述第二中间结果,并将所述第二中间结果发送至所述第一设备,也即,在不使用缓存模式时,也可通过计算获取所述第二中间结果。也即,本实施例除了提供一种通过计算获取所述第二中间结果的方法外,还提供了一种可不用通过计算即可获取所述第二中间结果的方法,进而减少了在进行样本匹配过程中的计算过程,降低了在进行样本匹配时系统计算资源的消耗,进而避免了在进行样本匹配时进行长时间且大开销的样本匹配计算,进一步地,提高了样本匹配效率,所以,本实施例解决了现有技术中样本匹配效率低的技术问题。
参照图5,图5是本申请实施例方案涉及的硬件运行环境的设备结构示意图。
如图5所示,该样本匹配设备可以包括:处理器1001,例如cpu,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
可选地,该样本匹配设备还可以包括矩形用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。矩形用户接口可以包括显示屏(display)、输入子模块比如键盘(keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
本领域技术人员可以理解,图5中示出的样本匹配设备结构并不构成对样本匹配设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,作为一种计算机存储可读存储介质的存储器1005中可以包括操作系统、网络通信模块以及样本匹配程序。操作系统是管理和控制样本匹配设备硬件和软件资源的程序,支持样本匹配程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与样本匹配系统中其它硬件和软件之间通信。
在图5所示的样本匹配设备中,处理器1001用于执行存储器1005中存储的样本匹配程序,实现上述任一项所述的样本匹配方法的步骤。
本申请样本匹配设备具体实施方式与上述样本匹配方法各实施例基本相同,在此不再赘述。
本申请实施例还提供一种样本匹配装置,所述样本匹配装置应用于第一设备,所述样本匹配装置包括:
第一接收模块,用于所述向与所述第一设备关联的第二设备发起交集任务,以接收所述第二设备发送的所述交集任务对应的公钥;
第一获取模块,用于所述基于所述公钥,获取所述第一设备对应的第一中间结果;
第一执行模块,用于所述判断是否使用预设缓存模式,若使用所述预设缓存模式,则基于所述预设缓存模式获取第二中间结果,以基于所述第一中间结果和所述第二中间结果,执行预设样本匹配流程;
第二执行模块,用于所述若不使用所述预设缓存模式,则接收所述第二设备发送的第二中间结果,并基于所述第一中间结果和所述第二中间结果,执行所述预设样本匹配流程。
可选地,所述第一执行模块包括:
第一判断单元,用于所述将所述第一本地缓存数据对应的第一版本信息发送至所述第二设备,以验证所述第一版本信息与所述第二设备的第二版本信息是否一致,并判断是否接收到所述第二设备发送的一致性确定信息;
第一等待接收单元,用于所述若未接收到所述第二设备发送的一致性确定信息,则等待接收所述第二设备发送的第二中间结果;
第一获取单元,用于所述若接收到所述第二设备发送的一致性确定信息,则基于所述第一本地缓存数据获取所述第二中间结果。
可选地,所述获取单元包括:
判断子单元,用于所述判断所述第一本地缓存数据是否为最新版本数据;
获取子单元,用于所述若所述第一本地缓存数据为所述最新版本数据,则将所述第一本地缓存数据作为所述第二中间结果;
等待接收子单元,用于所述若所述第一本地缓存数据不为所述最新版本数据,则等待接收所述第二设备发送的所述第二中间结果。
可选地,所述第二执行模块包括:
交集单元,用于所述对所述第二中间结果和所述第一中间结果进行交集处理,获得交集处理结果;
第二获取单元,用于所述通过预设映射关系获取所述交集处理结果对应的样本匹配结果,并将所述交集处理结果发送至所述第二设备。
可选地,所述获取模块包括:
加密处理单元,用于所述基于所述公钥、预设哈希函数和预设随机数,对所述第一样本id进行加密处理,获得第一加密处理结果;
发送单元,用于所述将所述第一加密处理结果发送至所述第二设备,以获取所述第二设备基于所述第一加密处理结果反馈的第二加密处理结果;
哈希单元,用于所述基于所述预设随机数和所述预设哈希函数,对所述第二加密处理结果进行去随机数处理和哈希处理,获得所述第一中间结果。
本申请样本匹配装置的具体实施方式与上述样本匹配方法各实施例基本相同,在此不再赘述。
为实现上述目的,本申请实施例还提供一种样本匹配方法,其特征在于,所述样本匹配方法应用于第二设备,所述样本匹配方法包括:
第二接收模块,用于所述接收与所述第二设备关联的第一设备发送的交集任务,并判断是否使用预设缓存模式;
第二获取模块,用于所述若使用所述预设缓存模式,则获取当前版本密钥对并向所述第一设备发送所述当前版本密钥对中的公钥;
第三执行模块,用于所述基于所述预设缓存模式,获取第二中间结果,并将所述第二中间结果发送至所述第一设备;
第四执行模块,用于所述若不使用所述预设缓存模式,则生成所述交集任务对应的新密钥对,并将所述新密钥对中的公钥发送至所述第一设备;
计算模块,用于所述基于所述新密钥对计算所述第二中间结果,并将所述第二中间结果发送至所述第一设备。
可选地,所述第三获取模块包括:
提取单元,用于所述获取第二本地缓存数据,并接收所述第一设备发送的第一版本信息;
第二判断单元,用于所述判断所述第一版本信息与所述第二本地缓存数据的第二版本信息是否一致,若所述第一版本信息与所述第二版本信息一致,则向所述第一设备发送一致性确定信息,以获取所述第二中间结果;
第三判断单元,用于所述若所述第一版本信息与所述第二版本信息不一致,则判断所述第二本地缓存数据是否为可用版本数据,若所述第二本地缓存数据不为所述可用版本数据,则基于所述新密钥对生成所述第二中间结果;
读取单元,用于所述若所述第二本地缓存数据为所述可用版本数据,则将所述第二本地缓存数据作为所述第二中间结果。
可选地,所述第四执行模块包括:
第一哈希处理单元,用于所述基于预设哈希函数,对所述第二样本id进行哈希处理,获得第一哈希值;
加密单元,用于所述基于所述私钥,对所述第一哈希值进行加密处理,获得加密哈希值;
第二哈希处理单元,用于所述基于所述预设哈希函数,对所述加密哈希值进行所述哈希处理,获得所述第二中间结果。
可选地,所述样本匹配装置还包括:
第三接收模块,用于所述接收所述第一设备基于所述公钥发送的第一加密处理结果;
加密计算模块,用于所述基于所述私钥,对所述第一加密处理结果进行加密处理,获得第二加密处理结果,并将所述第二加密处理结果发送至所述第一设备。
本申请样本匹配装置的具体实施方式与上述样本匹配方法各实施例基本相同,在此不再赘述。
本申请实施例还提供一种样本匹配系统,其特征在于,所述样本匹配系统包括所述第一设备和所述第二设备,且所述第一设备与所述第二设备通信连接,所述样本匹配系统可实现如上述的样本匹配方法的步骤。
本申请样本匹配系统的具体实施方式与上述样本匹配方法各实施例基本相同,在此不再赘述。
本申请实施例提供了一种可读存储介质,所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的样本匹配方法的步骤。
本申请可读存储介质具体实施方式与上述样本匹配方法各实施例基本相同,在此不再赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。