掌桥专利:专业的专利平台
掌桥专利
首页

数据求交的方法、装置和系统

文献发布时间:2024-04-18 19:54:45


数据求交的方法、装置和系统

技术领域

本发明涉及计算机技术领域,尤其涉及一种数据求交的方法、装置和系统。

背景技术

在联邦学习的实际应用场景中,PSI(隐私集合求交,或者称为数据求交)技术一直是业内极度关注的。对于数据求交技术,现有技术中主要存在以下方法:(1)安全性受限的体系适用的方法有基于朴素哈希的方法;(2)基于公私钥体系的代表方法有使用RSA、不经意传输等;(3)基于电路的体系有通过姚氏电路使用的SCS、GMW等协议的方法;(4)基于OT协议体系的方法有使用哈希表、布隆过滤等。现有的数据求交方法在计算和通讯复杂度上存在差异,且适用的领域也不同。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

第一、现有的数据求交方法,在安全性上存在一定缺陷,容易被暴力破解。比如,在公私钥体系使用RSA、不经意传输等方法虽然能满足大多数业务的实际运用场景,但容易被暴力破解,安全性存在一定缺陷;第二、现有技术往往在关键字求交结束后再进行特征及标签的关联工作,不仅带来了很大的关联操作工作量,也会使双方样本数据的安全系数降低。

发明内容

有鉴于此,本发明实施例提供了一种数据求交的方法、装置和系统,不仅能够提高数据求交的安全性,而且无需在关键字求交结束后再进行特征关联工作,提高了联邦学习的工作效率。

为实现上述目的,根据本发明的第一个方面,提供了一种数据求交的方法。

本发明提供的数据求交的方法,应用于联邦学习中的发起方,包括:对第一样本数据进行加盐哈希处理,以得到发起方的盐哈希值;根据所述发起方的盐哈希值生成票据,并将所述票据发送至配合方;接收所述配合方根据所述票据发送的求交运算结果;其中,所述求交运算结果是根据所述票据中的盐哈希值与配合方的盐哈希值进行求交运算得到的,所述配合方的盐哈希值是根据第二样本数据进行加盐哈希处理得到的;对所述求交运算结果进行解密,以得到第一样本数据与第二样本数据的交集;其中,所述第一样本数据和第二样本数据均包括样本求交关键字和关联特征。

可选的,所述对第一样本数据进行加盐哈希处理,以得到发起方的盐哈希值包括:根据第一盐值对第一样本数据进行加盐哈希处理以得到第一盐哈希值;根据第二盐值对第一盐哈希值进行加盐哈希处理以得到第二盐哈希值,并将所述第二盐哈希值作为所述发起方的盐哈希值。

可选的,所述根据第一盐值对第一样本数据进行加盐哈希处理以得到第一盐哈希值包括:将第一样本数据中的样本求交关键字的哈希值、第一样本数据中的关联特征与第一盐值之和作为两个入参,调用第一哈希函数进行加盐哈希处理,以得到第一盐哈希值;和/或,所述根据第二盐值对第一盐哈希值进行加盐哈希处理以得到第二盐哈希值包括:将第一盐哈希值、第一样本数据中的样本求交关键字、第一样本数据中的样本标签以及第二盐值这四者之和作为一个入参,调用第二哈希函数进行加盐哈希处理,以得到第二盐哈希值。

可选地,所述第一哈希函数为慢哈希函数,所述第二哈希函数为SHA512函数。

可选的,在所述对第一样本数据进行加盐哈希处理之前,所述方法还包括:接收所述配合方发送的基于第一共享密钥对称加密后的第一盐值和第二盐值;其中,所述第一共享密钥是配合方基于密钥协商算法生成的;基于第一共享密钥对所述对称加密后的第一盐值和第二盐值进行解密,以得到第一盐值和第二盐值。

可选的,所述根据所述发起方的盐哈希值生成票据包括:确定第一样本数据中的样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥这四个参数的和;将发起方的盐哈希值作为加密密钥,对所述四个参数的和进行对称加密,以得到所述票据。

可选的,在将所述票据发送至配合方之前,所述方法还包括:基于密钥协商算法生成第二共享密钥;将所述第二共享密钥作为加密密钥,对所述票据进行对称加密。

为实现上述目的,根据本发明的第二个方面,提供了一种数据求交的方法。

本发明提供的数据求交的方法,应用于联邦学习中的配合方,包括:对第二样本数据进行加盐哈希处理,以得到配合方的盐哈希值;在接收到发起方发送的票据后,根据所述票据得到发起方的盐哈希值;对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,并将求交运算结果发送至所述发起方;对所述求交运算结果进行解密,以得到第一样本数据与第二样本数据的交集;其中,所述第一样本数据和第二样本数据均包括样本求交关键字和关联特征。

可选的,所述对第二样本数据进行加盐哈希处理,以得到配合方的盐哈希值包括:根据第一盐值对第二样本数据进行加盐哈希处理以得到第三盐哈希值;根据第二盐值对第三盐哈希值进行加盐哈希处理以得到第四盐哈希值,并将所述第四盐哈希值作为所述配合方的盐哈希值。

可选的,所述根据第一盐值对第二样本数据进行加盐哈希处理以得到第三盐哈希值包括:将第二样本数据中的样本求交关键字的哈希值、第二样本数据中的关联特征与第一盐值之和作为两个入参,调用第一哈希函数进行加盐哈希处理,以得到第三盐哈希值;和/或,所述根据第二盐值对第三盐哈希值进行加盐哈希处理以得到第四盐哈希值包括:将第三盐哈希值、第二样本数据中的样本求交关键字以及第二盐值这三者之和作为一个入参,调用第二哈希函数进行加盐哈希处理,以得到第四盐哈希值。

可选地,所述第一哈希函数为慢哈希函数,所述第二哈希函数为SHA512函数。

可选的,所述方法还包括:在所述对第二样本数据进行加盐哈希处理之前,生成所述第一盐值和所述第二盐值;以及,将基于第一共享密钥加密后的第一盐值和第二盐值发送至所述发起方,以使所述发起方基于所述第一盐值和第二盐值对第一样本数据进行加盐哈希处理;其中,所述第一共享密钥是配合方基于密钥协商算法生成的。

可选的,所述票据是所述发起方将发起方的盐哈希值作为加密密钥,对第一样本数据中的样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥这四个参数的和进行对称加密得到的;所述根据所述票据得到发起方的盐哈希值包括:根据预先存储的发起方的盐哈希值对票据进行解密,以得到第一盐哈希值;根据所述第一盐哈希值计算出发起方的盐哈希值;以及,所述方法还包括:在对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算之前,确认预先存储的发起方的盐哈希值与计算出的发起方的盐哈希值一致。

可选的,在所述将求交运算结果发送至所述发起方之前,所述方法还包括:基于随机密钥对求交运算结果进行对称加密,以得到中间加密结果;再基于第一共享密钥对所述中间加密结果进行对称加密,以得到加密后的求交运算结果。

为实现上述目的,根据本发明实施例第三方面,提供了一种数据求交的装置。

本发明的数据求交的装置设置于联邦学习中的发起方,所述装置包括:加盐哈希处理模块,用于对第一样本数据进行加盐哈希处理,以得到发起方的盐哈希值;票据生成模块,用于根据所述发起方的盐哈希值生成票据,并将所述票据发送至配合方;接收模块,用于接收所述配合方根据所述票据发送的求交运算结果;其中,所述求交运算结果是根据所述票据中的盐哈希值与配合方的盐哈希值进行求交运算得到的,所述配合方的盐哈希值是根据第二样本数据进行加盐哈希处理得到的;求交结果解密模块,用于对所述求交运算结果进行解密,以得到第一样本数据与第二样本数据的交集;其中,所述第一样本数据和第二样本数据均包括样本求交关键字和关联特征。

为实现上述目的,根据本发明实施例的第四个方面,提供了一种数据求交的装置。

本发明的数据求交的装置设置于联邦学习中的配合方,所述装置包括:加盐哈希处理模块,用于对第二样本数据进行加盐哈希处理,以得到配合方的盐哈希值;票据处理模块,用于在接收到发起方发送的票据后,根据所述票据得到发起方的盐哈希值;求交运算模块,用于对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,并将求交运算结果发送至所述发起方;求交结果解密模块,用于对所述求交运算结果进行解密,以得到第一样本数据与第二样本数据的交集;其中,所述第一样本数据和第二样本数据均包括样本求交关键字和关联特征。

为实现上述目的,根据本发明实施例的第五个方面,提供了一种数据求交的系统。

本发明提供的数据求交的系统,包括:联邦学习中的发起方和配合方;所述发起方和所述配合方分别用于根据约定好的加盐哈希算法对各自的样本数据进行加盐哈希处理,以得到各自的盐哈希值;所述发起方,还用于根据发起方的盐哈希值生成票据,并将所述票据发送至配合方;所述配合方,还用于根据所述票据得到发起方的盐哈希值,对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,并将求交运算结果发送至所述发起方;所述发起方和所述配合方还分别用于对所述求交运算结果进行解密,以得到所述发起方和所述配合方的样本数据的交集;其中,所述发起方和所述配合方的样本数据均包括样本求交关键字和关联特征。

为实现上述目的,根据本发明实施例的第六个方面,提供了一种数据求交的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明的数据求交的方法。

为实现上述目的,根据本发明实施例的第七个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明的数据求交的方法。

上述发明中的一个实施例具有如下优点或有益效果:通过发起方和配合方分别对各自的样本数据进行加盐哈希处理生成各自的盐哈希值,发起方以票据形式对发起方的盐哈希值进行加密传输至配合方,配合方根据票据得到发起方的盐哈希值,并对发起方的盐哈希值与配合方的盐哈希值进行求交运算,在接收到配合方发送的求交运算结果之后,发起方再对所述求交运算结果进行解密这些步骤,能够提高联邦学习中数据求交的安全性,大大降低了暴力破解的可能,而且,通过将双方的求交关键字和关联特征均在求交过程中保留,从而无需在关键字求交结束后再进行特征关联工作,提高了联邦学习的工作效率能够提高。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

图1是根据本发明第一实施例的一种数据求交的方法的主要流程示意图;

图2是根据本发明第二实施例的一种数据求交的方法的流程示意图;

图3是根据本发明第三实施例的数据求交的装置的主要模块示意图;

图4是根据本发明第四实施例的数据求交的装置的主要模块示意图;

图5是根据本发明第五实施例的一种数据求交的系统的主要模块示意图。

图6是是本发明实施例可以应用于其中的示例性系统架构图。

图7是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

需要说明的是,在不影响本发明实施的情况下,本发明中的各个实施例以及实施例中的技术特征可以相互组合。

在详细介绍本发明的各个实施例之前,首先对本发明实施例涉及的部分技术术语进行说明。

联邦学习:联邦学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。

MD5(MD5 Message-Digest Algorithm):一种被广泛使用的密码散列函数,可以产生出一个128位的散列值,用于确保信息传输完整一致。

ECDH协商秘钥:ECDH的EC是"elliptic curves"的意思,DH是"Diffie-Hellman"的意思。双方可以产生共享秘钥sharedkey,进行加密数据传输。

AES:一般指高级加密标准。密码学中的高级加密标准(Advanced EncryptionStandard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。

Salt和SaltHash:在生成明文数据的时候,可以通过加盐,然后再散列,最后比较散列值从而得到明文数据;数据一般不会直接以明文加盐的形式进行传输或者存储,需要进行哈希。

SHA512:SHA-512是一种哈希算法,它对给定的数据执行哈希函数。SHA512比md5更加安全,更难破解。

Bcrypt:Bcrypt就是一款加密工具,可以比较方便地实现数据的加密工作。也可以简单理解为它内部自己实现了随机加盐处理。它的口令必须是8至56个字符,并将在内部被转化为448位的密钥。

Randkey:随机秘钥发生器,随机产生秘钥。

Ticket:Ticket机制是用作双方进行信息交互的代理票据。一般情况下常用于加密算法中:类似于买电影票→验票→进厂看电影的环节。

不经意传输(oblivious transfer):一种密码学协议,在这个协议中,消息发送这从一些待发送的消息中发送一条给接收者,但事后对发送了哪一条消息仍然不知道,这个协议也叫茫然传输协议。

RSA:RSA是公开密钥密码体制,它使用不同的加密密钥和解密密钥。在这个体制中,加密秘钥是公开信息,解密密钥是保密信息,加密算法和解密算法也是公开的,但却不能根据加密秘钥计算得出解密密钥。

第一实施例

参见图1,示出的是本发明第一实施例提供的一种数据求交的方法的主要流程。本发明实施例是从发起方和配合方两侧描述数据求交的方法,该方法包括如下步骤:

S101:发起方根据约定好的加盐哈希算法对发起方的第一样本数据进行加盐哈希处理,以得到发起方的盐哈希值。

其中,发起方的样本数据包括样本求交关键字以及关联特征。样本求交关键字可理解为样本数据的标识字段,例如,样本求交关键字可以为用户手机号或者用户账号等,用于标识一个用户的样本数据。若样本求交关键字为用户手机号,则在进行数据求交运算时针对用户手机号进行求交运算;若样本求交关键字为用户账号,则在进行数据求交运算时针对用户账号进行求交运算。关联特征则表示对应用户的一些特征,比如用户的性别、年龄、消费能力等特征。可选的,发起方的样本数据还可以包括样本标签,通过人工或机器对样本数据标注的标签,例如,金融场景下样本标签可以为“是否贷款”的标签,标签取值可以取“是”或“否”;电商场景下样本标签可以为是否已购买某一商品,标签取值可以取“是”或否。

其中,所述约定好的加盐哈希算法可以由发起方和配合方事先协商一致,并通过安全信道进行共享。示例性地,所述约定好的加盐哈希算法可包括一种或多种加盐哈希算法,比如慢哈希函数bcrypt函数、SHA512算法等等。

在一个可选示例中,发起方根据约定好的加盐哈希算法对发起方的样本数据进行加盐哈希处理,以得到发起方的盐哈希值包括:发起方根据第一盐值对第一样本数据进行加盐哈希处理以得到第一盐哈希值;发起方根据第二盐值对第一盐哈希值进行加盐哈希处理以得到第二盐哈希值,并将第二盐哈希值作为最终处理得到的发起方的盐哈希值。

在上述可选示例中,可选地,发起方根据第一盐值对第一样本数据进行加盐哈希处理以得到第一盐哈希值具体包括:发起方将第一样本数据中的样本求交关键字的哈希值、第一样本数据中的关联特征与第一盐值之和作为两个入参,调用第一哈希函数进行加盐哈希处理,以得到第一盐哈希值。示例性地,第一哈希函数采用慢哈希函数bcrypt函数,采用bcrypt函数进行加盐哈希处理以生成第一盐哈希值可表示为:

SaltHash1A=bcrypt(SHA512(uidA),salt1+特征A,cost)

其中,SaltHash1A表示第一盐哈希值;SHA512(uidA)表示通过将发起方样本求交关键字作为SHA512函数的入参,得到发起方样本求交关键字的哈希值;salt1+特征A表示第一盐值与第一样本数据(即发起方的样本数据)中的关联特征之和;cost表示bcrypt函数的时间参数。具体实施时,本领域技术人员可根据需求合理设置cost参数的取值,比如将cost参数设为10。

在本发明实施例中,通过采用SHA512函数处理得到发起方样本求交关键字的哈希值,相比采用md5函数处理得到发起方样本求交关键字的哈希值,具有更高的安全系数,更高的破解难度;通过采用bcrypt函数进行加盐哈希处理以生成第一盐哈希值,能够通过增加攻击者进行破解时的时间复杂度,有效提高数据求交过程在联邦学习环境中抗暴力破解的能力,从而能够很好地应对纵向联邦学习中双方跨域跨网的数据信息被暴力破解的问题;通过基于两个盐进行加盐哈希处理以生成第一盐哈希值和第二盐哈希值,能够进一步提高数据求交过程中发起方的数据安全性。

在上述可选示例中,可选地,发起方根据第二盐值对第一盐哈希值进行加盐哈希处理以得到第二盐哈希值具体包括:发起方将第一盐哈希值、第一样本数据中的样本求交关键字、第一样本数据中的样本标签以及第二盐值这四者之和作为一个入参,调用第二哈希函数进行加盐哈希处理,以得到第二盐哈希值。示例性地,第二哈希函数采用SHA512函数,采用SHA512函数进行加盐哈希处理以生成第二盐哈希值可表示为:

SaltHash2A=SHA512(SaltHash1A+uidA+label+salt2)

其中,SaltHash2A表示第二盐哈希值;SaltHash1A+uidA+label+salt2表示第一盐哈希值、第一样本数据中的样本求交关键字、第一样本数据中的样本标签以及第二盐值这四者之和;SHA512()表示SHA512函数。

需要指出的是,本发明中所述约定好的加盐哈希算法并不局限于以上所述的算法。在不影响本发明实施的情况下,本领域技术人员还可采用其他能生成盐哈希值的具体算法。

S102:配合方根据约定好的加盐哈希算法对配合方的第二样本数据进行加盐哈希处理,以得到配合方的盐哈希值。

示例性地,配合方的样本数据包括样本求交关键字以及关联特征。样本求交关键字可理解为样本数据的标识字段,例如,样本求交关键字可以为用户手机号或者用户账号等,用于标识一个用户的样本数据。若样本求交关键字为用户手机号,则在进行数据求交运算时针对用户手机号进行求交运算;若样本求交关键字为用户账号,则在进行数据求交运算时针对用户账号进行求交运算。关联特征则表示对应用户的一些特征,比如用户的性别、年龄、消费能力等特征。

其中,所述约定好的加盐哈希算法可以由发起方和配合方事先协商一致,并通过安全信道进行共享。示例性地,所述约定好的加盐哈希算法可包括一种或多种加盐哈希算法,比如慢哈希函数bcrypt函数、SHA512算法等等。

在一个可选示例中,步骤S102具体包括:配合方根据第一盐值对第二样本数据进行加盐哈希处理以得到第三盐哈希值;根据第二盐值对第三盐哈希值进行加盐哈希处理以得到第四盐哈希值,并将所述第四盐哈希值作为最终处理得到的配合方的盐哈希值。

在上述可选示例中,可选地,配合方根据第一盐值对第二样本数据进行加盐哈希处理以得到第三盐哈希值包括:配合方将第二样本数据中的样本求交关键字的哈希值、第二样本数据中的关联特征与第一盐值之和作为两个入参,调用第一哈希函数进行加盐哈希处理,以得到第三盐哈希值。示例性地,第一哈希函数采用慢哈希函数bcrypt函数,采用bcrypt函数进行加盐哈希处理以生成第三盐哈希值可表示为:

SaltHash1B=bcrypt(SHA512(uidB),salt1+特征B,cost)

其中,SaltHash1B表示第三盐哈希值;SHA512(uidB)表示通过将配合方的样本求交关键字作为SHA512函数的入参,得到配合方样本求交关键字的哈希值;salt1+特征B表示第一盐值与第二样本数据(即配合方的样本数据)中的关联特征之和;cost表示bcrypt函数的时间参数。具体实施时,本领域技术人员可根据需求合理设置cost参数的取值,比如将cost参数设为10。

在上述可选示例中,可选地,配合方根据第二盐值对第三盐哈希值进行加盐哈希处理以得到第四盐哈希值包括:配合方将第三盐哈希值、第二样本数据中的样本求交关键字以及第二盐值这三者之和作为一个入参,调用第二哈希函数进行加盐哈希处理,以得到第四盐哈希值。示例性地,第二哈希函数采用SHA512函数,采用SHA512函数进行加盐哈希处理以生成第四盐哈希值可表示为:

SaltHash2B=SHA512(SaltHash1B+uidB+salt2)

其中,SaltHash2B表示第四盐哈希值;SaltHash1B+uidB+salt2表示第三盐哈希值、第二样本数据中的样本求交关键字、以及第二盐值这三者之和;SHA512()表示SHA512函数。

在本发明实施例中,通过采用SHA512函数处理得到配合方样本求交关键字的哈希值,相比采用md5函数处理得到配合方样本求交关键字的哈希值,具有更高的安全系数,更高的破解难度;通过采用bcrypt函数进行加盐哈希处理以生成第三盐哈希值,能够通过增加攻击者进行破解时的时间复杂度,有效提高数据求交过程在联邦学习环境中抗暴力破解的能力,从而能够很好地应对纵向联邦学习中双方跨域跨网的数据信息被暴力破解的问题;通过基于两个盐进行加盐哈希处理以生成第三盐哈希值和第四盐哈希值,能够进一步提高数据求交过程中配合方的数据安全性。

需要指出的是,本发明中所述约定好的加盐哈希算法并不局限于以上所述的算法。在不影响本发明实施的情况下,本领域技术人员还可采用其他能生成盐哈希值的具体算法。

S103:发起方根据发起方的盐哈希值生成票据,并将所述票据发送至配合方。

在一个可选的实施方式中,发起方可以先确定出第一样本数据中的样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥这四个参数的和;然后将发起方的盐哈希值作为加密密钥,对所述四个参数的和进行对称加密,以得到所述票据。

在一个可选示例中,发起方共生成了两个盐哈希值,即第一盐哈希值和第二盐哈希值,并将第二盐哈希值作为最终生成的发起方的盐哈希值。在该可选示例中,发起方以第二盐哈希值作为加密所用的密钥,以发起方样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥的和作为明文,使用对称加密算法对该明文进行加密,所输出的密文即为票据。示例性地,所述对称加密算法可以为但不限于AES算法,所述随机密钥可以由生成随机密钥的函数和用户输入的种子生成。可选地,在发起方生成票据后,将票据加密传输至配合方,以此增加票据传输的机密性。

需要指出的是,本发明中所述票据生成的方法并不局限于以上方法。在不影响本发明实施的情况下,本领域技术人员还可采用其他能生成票据的方法。

S104:配合方根据所述票据得到发起方的盐哈希值,对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,并将求交运算结果发送至所述发起方。

在步骤S104中,在配合方接收到票据后,根据该票据得到发起方的盐哈希值。在一个可选示例中,所述票据是发起方将第二盐哈希值作为加密密钥,对第一样本数据中的样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥这四个参数的和进行对称加密得到的。在该可选示例中,配合方根据票据得到发起方的盐哈希值的过程可以包括:配合方根据预先存储的第二盐哈希值(即发起方最终计算得到的发起方的盐哈希值),对票据进行解密,以得到第一盐哈希值,然后配合方根据第一盐哈希值计算出第二盐哈希值,并将其作为最终计算得到的发起方的盐哈希值。进一步,在上述可选示例中,在配合方计算出第二盐哈希值后,配合方将预先存储的第二盐哈希值与计算出的第二盐哈希值进行比对,并在比对结果表明两者一致的情况下再执行:对计算出的发起方的盐哈希值与配合方的盐哈希值(即配合方的盐哈希值)进行求交运算的操作。

在上述可选示例中,配合方根据预先存储的第二盐哈希值对票据进行解密以得到第一盐哈希值的过程可以包括:配合方用发起方传输过来的作为密钥的第二盐哈希值对票据进行解密,得到所述第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥之和。对于所述和,示例性地,配合方可以通过双方事先协商定下的数据字典对所述和进行拆分,得到第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥。之后,配合方将所述第一盐哈希值、所述发起方样本求交关键字以及事先确定的第二盐值这三者之和作为一个入参,调用SHA512函数进行加盐哈希处理,得到校验用第二盐哈希值。对比发起方传输过来的第二盐哈希值和校验用第二盐哈希值,若二者相同,则继续执行后续的求交运算,以及将求交运算结果发送至发起方的步骤,反之则结束整个过程,并向发起方发送认证失败的通知。

进一步,为了增加求交运算结果传输过程的机密性,配合方可以将求交运算得出的交集部分先通过随机密钥和对称加密算法(示例性地,对称加密算法可以为AES算法)进行加密,将所得第一密文再通过第二共享密钥和对称加密算法(示例性地,对称加密算法可以为AES算法)进行第二次加密,将所得第二密文发送至发起方。

S105:发起方对所述求交运算结果进行解密,以得到所述发起方和所述配合方的样本数据的交集;其中,所述发起方和所述配合方的样本数据均包括样本求交关键字和关联特征。

在步骤S105中,对于所得到的求交运算结果,由于其为两个哈希值的交集部分,具有哈希摘要的性质,因此,可以通过发起方和配合方事先约定好的数据字典对所述交集部分进行解密,以得到所述发起方和所述配合方的样本数据的交集。其中,所述发起方和所述配合方的样本数据均包括样本求交关键字和关联特征。

进一步,当发起方接收到加密后的求交运算结果时,发起方先对加密后的求交运算结果进行解密,以得到所述求交运算结果,然后再对求交运算结果进行解密。

S106:配合方对所述求交运算结果进行解密,以得到所述发起方和所述配合方的样本数据的交集;其中,所述发起方和所述配合方的样本数据均包括样本求交关键字和关联特征。

在步骤S106中,由于所述交集部分为两个哈希值的交集部分,具有哈希摘要的性质,因此,所述配合方可以通过发起方和配合方事先约定好的数据字典对所述交集部分进行解密,得到所述发起方和所述配合方的样本数据的交集,所述发起方和所述配合方的样本数据均包括样本求交关键字和关联特征。

在本发明实施例中,通过以上步骤能够从根本上解决不同企业间的样本数据求交问题,从而得到企业间的交集数据,有效保护各企业非交集的隐私数据,符合相关法律法规对数据的监管要求。同时,与现有技术中已存在的安全求交算法相比,本发明实施例的方法能够提高联邦学习中数据求交的安全性,大大降低暴力破解的可能,有效提升双方样本在跨域跨网等复杂异构场景下的安全系数。即使盐、盐哈希均泄漏,反推出样本数据也是不可能的事;即便攻击者拿到了Ticket(票据),也需要盐哈希值才能解密票据;即便攻击者拿到了盐哈希值与票据,但因为关联特征未知,也无法反推出样本数据;即便以上信息全被攻击者获取,但由于慢哈希函数bcrypt函数的时间控制,在最高算力情况下,100年内也无法穷举出正确的明文信息。而且,通过将双方的求交关键字和关联特征均在求交过程中保留,从而无需在关键字求交结束后再进行特征关联工作,提高了联邦学习的工作效率。

第二实施例

参见图2,示出的是本发明第二实施例提供的一种数据求交的方法的流程。本发明实施例是从发起方和配合方两侧描述数据求交的方法,该方法包括如下步骤:

S201:发起方生成公钥A和私钥a,发送公钥A给配合方。

通常来说,在联邦学习中,发起数据求交任务的一侧节点为发起方,参与数据求交的其他节点为配合方。例如,在一个示例性的联邦学习场景中,数据求交任务的发起方为某一金融企业对应的节点,配合方为某一电商企业对应的节点。在发起方发起数据求交任务后,发起方和配合方各自生成由公、私钥组成的秘钥对。

在步骤S201中,发起方可以根据密钥生成算法直接生成公钥A和私钥a。示例性地,发起方可根据如下步骤生成公钥A和私钥a:

(1).随机取两个不相等的质数p和q;

(2).取所述p和q两个数的乘积n;

(3).根据欧拉函数算出φ(n);

(4).随机取一个整数e,要求1

(5).计算对e的φ(n)模反元素d;

(6).对公钥、私钥进行封装,比如公钥为(n,e),私钥为(n,d)。

在生成公钥A和私钥a组成的秘钥对之后,发起方将公钥A发送至配合方。

S202:配合方生成公钥B和私钥b,发送公钥B给发起方。

在步骤S202中,配合方可以根据密钥生成算法直接生成公钥B和私钥b。之后,配合方将公钥B发送至发起方。

在发起方和配合方各自生成公私钥之后,可基于非对称加密的密钥协商算法协商产生共享密钥。

S203:配合方生成第一共享密钥。

示例性地,在步骤S203中,所述第一共享密钥(例如,用SharedKeyB表示)可以由私钥b和公钥A相乘得到。需要说明的是,第一共享密钥的生成并不局限于上述方法,在不影响本发明实施的情况下,本领域技术人员还可采用其他能生成第一共享密钥的具体方法。

在生成第一共享密钥后,配合方将第一共享密钥发送至发起方,以实现发起方和配合方共同享有该共享密钥。

S204:发起方生成第二共享密钥。

示例性地,在步骤S204中,第二共享密钥(例如,用SharedKeyA表示)可以由所述私钥a和公钥B相乘得到。需要说明的是,第二共享密钥的生成并不局限于上述方法,在不影响本发明实施的情况下,本领域技术人员还可采用其他能生成第二共享密钥的具体方法。

在生成第二共享密钥后,发起方将第二共享密钥发送至配合方,以实现发起方和配合方共同享有该共享密钥。

S205:配合方生成第一盐值和第二盐值,发送基于第一共享密钥对称加密后的第一盐值和第二盐值给发起方。

示例性地,在步骤S205中,配合方可以通过已有的盐值生成算法或程序生成第一盐值和第二盐值,也可以通过用户输入方式指定第一盐值和第二盐值。所述盐值的数据类型可为字符串。

进一步,为了提高盐值传输过程的机密性,配合方以第一共享密钥作为加密密钥,采用对称加密算法(例如,可以为AES算法)对第一盐值和第二盐值分别进行加密,得到第一盐值和第二盐值的密文。此外,配合方在发送第一盐值和第二盐值的同时,可将生成的公钥B一并发送至发起方。

S206:发起方基于第一共享密钥对所述对称加密后的第一盐值和第二盐值进行解密,以得到第一盐值和第二盐值。

在步骤S206中,发起方接收到对称加密后的第一盐值和第二盐值后,以第一共享密钥作为解密密钥进行解密,以分别得到所述第一盐值和第二盐值。

S207:发起方将第一样本数据中的样本求交关键字的哈希值、第一样本数据中的关联特征与第一盐值之和作为两个入参,调用慢哈希函数进行加盐哈希处理,以得到第一盐哈希值。

其中,第一样本数据也可以称为发起方的样本数据,包括样本求交关键字、以及关联特征。样本求交关键字可理解为样本数据的标识字段,例如,样本求交关键字可以为用户手机号或者用户账号等,用于标识一个用户的样本数据。若样本求交关键字为用户手机号,则在进行数据求交运算时针对用户手机号进行求交运算;若样本求交关键字为用户账号,则在进行数据求交运算时针对用户账号进行求交运算。关联特征则表示对应用户的一些特征,比如用户的性别、年龄、消费能力等特征。可选的,发起方的样本数据还可以包括样本标签,通过人工或机器对样本数据标注的标签,例如,金融场景下样本标签可以为“是否贷款”的标签,标签取值可以取“是”或“否”;电商场景下样本标签可以为是否已购买某一商品,标签取值可以取“是”或否。

在步骤S207中,将发起方的样本求交关键字作为SHA512哈希算法的入参进行哈希处理,以得到发起方样本求交关键字的哈希值。通常来说,在现有技术中,md5哈希函数常用于生成哈希值,这采用SHA512哈希函数是因为该哈希函数比md5哈希函数的安全系数更高,更难被破解。然后,将发起方样本求交关键字的哈希值、在步骤S206中得到的第一盐值与发起方的样本数据所包含的关联特征值之和作为两个入参,调用慢哈希函数bcrypt函数进行加盐哈希处理,以得到第一盐哈希值。

在步骤S207中,采用bcrypt函数进行加盐哈希处理以生成第一盐哈希值可表示为:

SaltHash1A=bcrypt(SHA512(uidA),salt1+特征A,cost)

其中,SaltHash1A表示第一盐哈希值;SHA512(uidA)表示通过将发起方样本求交关键字作为SHA512函数的入参,得到发起方样本求交关键字的哈希值;salt1+特征A表示第一盐值与第一样本数据(即发起方的样本数据)中的关联特征之和;cost表示bcrypt函数的时间参数。具体实施时,本领域技术人员可根据需求合理设置cost参数的取值,比如将cost参数设为10。

在步骤S207中采用bcrypt函数进行加盐哈希处理,能够通过增加攻击者进行破解时的时间复杂度,有效提高数据求交过程在联邦学习环境中抗暴力破解的能力。

S208:发起方将第一盐哈希值、第一样本数据中的样本求交关键字、第一样本数据中的样本标签以及第二盐值这四者之和作为一个入参,调用SHA512函数进行加盐哈希处理,以得到第二盐哈希值。

在步骤S208中,将在步骤S207中得到的第一盐哈希值、所述发起方样本求交关键字以及事先由配合方在步骤S205生成的第二盐值、样本标签这四者之和作为一个入参,调用SHA512函数进行加盐哈希处理,得到第二盐哈希值。

S209:配合方将第二样本数据中的样本求交关键字的哈希值、第二样本数据中的关联特征与第一盐值之和作为两个入参,调用慢哈希函数进行加盐哈希处理,以得到第三盐哈希值。

其中,第二样本数据也可以称为配合方的样本数据,包括样本求交关键字、以及关联特征。在步骤S209中,配合方将发起方样本求交关键字作为SHA512哈希算法的入参,调用SHA512算法进行哈希处理,以得到发起方样本求交关键字的哈希值。通常来说,在现有技术中,md5哈希函数常用于生成哈希值,这里采用SHA512哈希函数是因为该哈希函数比md5哈希函数的安全系数更高,更难被破解。

然后,将配合方样本求交关键字的哈希值、以及在步骤S205中得到的第一盐值与配合方的样本数据中的关联特征值之和作为两个入参,调用慢哈希函数bcrypt进行加盐哈希处理,得到第三盐哈希值。这里采用bcrypt函数,能够通过增加攻击者进行破解时的时间复杂度,有效提高数据求交过程在联邦学习环境中抗暴力破解的能力。

S210:配合方将第三盐哈希值、第二样本数据中的样本求交关键字以及第二盐值这三者之和作为一个入参,调用SHA512哈希函数进行加盐哈希处理,以得到第四盐哈希值。

在步骤S210中,将在步骤S209中得到的第三盐哈希值、所述配合方样本求交关键字以及事先由配合方在步骤S205生成的第二盐值这三者之和作为一个入参,调用SHA512函数进行加盐哈希处理,得到第四盐哈希值。

S211:发起方确定第一样本数据中的样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥这四个参数的和;发起方将发起方的第二盐哈希值作为加密密钥,对所述四个参数的和进行对称加密,以得到所述票据;发起方将所述第二共享密钥作为加密密钥,对所述票据进行对称加密,发送票据至配合方。

示例性地,在步骤S211中,所述加密时间参数由发起方通过相关已有程序或算法生成,也可以由用户自行输入。所述随机密钥可以由生成随机密钥的函数和用户输入的种子生成。示例性地,在生成票据时,所采用的对称加密算法可以为AES算法;在对票据进行加密传输时,所采用的对称加密算法也可以为AES算法。

S212:配合方根据所述票据得到发起方的盐哈希值,对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,并将求交运算结果发送至所述发起方。

在步骤S212中,在配合方接收到票据密文后,通过第二共享密钥和与发起方在加密票据时所使用的相同的对称加密算法进行解密,以得到票据。之后,用发起方传输过来的第二盐哈希值对票据进行解密,以得到所述第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥之和。之后,示例性地,通过双方事先协商的数据字典对所述和进行拆分,以得到第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥。

之后,将所述第一盐哈希值、所述发起方样本的求交关键字以及事先由配合方生成的第二盐值这三者之和作为一个入参,调用SHA512函数进行加盐哈希处理,得到校验用第二盐哈希值。对比所述第二盐哈希值和校验用第二盐哈希值,若二者相同,则继续执行后续求交运算处理步骤。可选地,若二者不同,可结束整个流程并向发起方发送认证失败的通知。

进一步,为了增加求交运算结果传输过程的机密性,配合方可以将求交运算得出的交集部分先通过随机密钥和对称加密算法(示例性地,对称加密算法可以为AES算法)进行加密,将所得第一密文再通过第二共享密钥和对称加密算法(示例性地,对称加密算法可以为AES算法)进行第二次加密,将所得第二密文发送至发起方。

S213:发起方对所述求交运算结果进行解密,以得到所述发起方和所述配合方的样本数据的交集。

对于步骤S213,发起方在接收到加密后的求交运算结果后,先通过第一共享密钥和随机密钥先后对加密后的求交运算结果进行解密,以得到所述求交运算结果。对于得到的求交运算结果,由于其为两个哈希值的交集部分,具有哈希摘要的性质,因此,可以通过发起方和配合方事先约定好的数据字典对所述交集部分进行解密,以得到所述发起方和所述配合方的样本数据的交集。

在一个可选示例中,所述发起方和所述配合方的样本数据均包括样本求交关键字和关联特征。表1示出了发起方的第一样本数据,表2示出了配合方的第二样本数据,表3示出了发起方和配合方的求交运算结果。在该示例中,样本求交关键字为手机号,关联特征为用户的性别和消费能力。

表1

表2

表3

在另一个可选示例中,发起方和配合方的样本数据均包括样本求交关键字、关联特征以及样本标签。表4示出了发起方的第一样本数据,表5示出了配合方的第二样本数据,表6示出了发起方和配合方的求交运算结果。可以看出,所述交集中的求交关键字交集包括所述第一样本数据和第二样本数据中共同拥有的求交关键字,共同拥有的求交关键字所对应的样本特征以及样本标签也均得到了保留。

表4

表5

表6

S214:配合方对所述求交运算结果进行解密,以得到所述发起方和所述配合方的样本数据的交集。

在步骤S214中,由于所述交集部分为两个哈希值的交集部分,具有哈希摘要的性质,因此,所述配合方可以通过发起方和配合方事先约定好的数据字典对所述交集部分进行解密,得到所述发起方和所述配合方的样本数据的交集。

在本发明实施例中,通过以上步骤能够通过多步加密、求哈希、认证等方式提高数据求交的机密性、完整性和可用性,而且无需在关键字求交结束后再进行特征关联工作,提高了联邦学习的工作效率。

第三实施例

参见图3,示出的是本发明第三实施例提供的一种数据求交的装置主要模块示意图。数据求交的装置300设置于发起方一侧,包括:加盐哈希处理模块301、票据生成模块302、接收模块303以及求交结果解密模块304。

加盐哈希处理模块301,用于对第一样本数据进行加盐哈希处理,以得到发起方的盐哈希值。

其中,第一样本数据包括样本求交关键字以及关联特征。样本求交关键字可理解为样本数据的标识字段,例如,样本求交关键字可以为用户手机号或者用户账号等,用于标识一个用户的样本数据。若样本求交关键字为用户手机号,则在进行数据求交运算时针对用户手机号进行求交运算;若样本求交关键字为用户账号,则在进行数据求交运算时针对用户账号进行求交运算。关联特征则表示对应用户的一些特征,比如用户的性别、年龄、消费能力等特征。可选的,发起方的样本数据还可以包括样本标签,通过人工或机器对样本数据标注的标签,例如,金融场景下样本标签可以为“是否贷款”的标签,标签取值可以取“是”或“否”;电商场景下样本标签可以为是否已购买某一商品,标签取值可以取“是”或“否”。

其中,所述约定好的加盐哈希算法可以由发起方和配合方事先协商一致,并通过安全信道进行共享。示例性地,所述约定好的加盐哈希算法可包括一种或多种加盐哈希算法,比如慢哈希函数bcrypt函数、SHA512算法等等。

在一个可选示例中,加盐哈希处理模块301对第一样本数据进行加盐哈希处理,以得到发起方的盐哈希值包括:加盐哈希处理模块301将发起方样本求交关键字作为SHA512哈希算法的入参调用SHA512算法进行哈希处理,以得到发起方样本求交关键字的哈希值;然后,将发起方样本求交关键字的哈希值、事先从配合方得到的第一盐值与关联特征值之和作为两个入参,调用慢哈希函数bcrypt进行加盐哈希处理,得到第一盐哈希值;之后,将第一盐哈希值、发起方样本求交关键字、样本标签以及事先从配合方得到的第二盐值这三者之和作为一个入参,调用SHA512函数进行加盐哈希处理,得到第二盐哈希值。

需要指出的是,本发明中所述约定好的加盐哈希算法并不局限于以上所述的算法。在不影响本发明实施的情况下,本领域技术人员还可采用其他能生成盐哈希值的具体算法。

票据生成模块302,用于根据所述发起方的盐哈希值生成票据,并将所述票据发送至配合方。

在一个可选示例中,发起方先生成第一盐哈希值,再基于第一盐哈希值生成第二盐哈希值。在该可选示例中,票据生成模块302以第二盐哈希值作为密钥,以发起方样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥的和作为明文,使用对称加密算法的方式对明文进行加密,以得到票据。示例性地,所述对称加密算法可以但不限于AES算法,所述随机密钥可以由生成随机密钥的函数和用户输入的种子生成。进一步,在生成所述票据后,票据生成模块302可采用事先由发起方和配合方共同协商好的第二共享密钥对票据进行对称加密,并将对称加密后的票据传输至配合方,以此增加票据传输的机密性、安全性。

需要指出的是,本发明中所述票据生成的方法并不局限于以上所述的方法。在不影响本发明实施的情况下,本领域技术人员还可采用其他能生成票据的具体方法。

在接收到配合方发送的票据后,配合方根据所述票据得到发起方的盐哈希值,并对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,以得到求交运算结果。其中,配合方的盐哈希值是配合方对第二样本数据进行加盐哈希处理得到的。

在一个可选示例中,发送方对票据进行加密传输。在该可选示例中,配合方在接收到加密后的票据后,通过第一共享密钥对加密后的票据进行对称解密,以得到票据。之后,配合方用发起方传输过来的第二盐哈希值对票据进行解密,得到所述第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥之和。对于所述和,示例性地,可以通过双方事先协商定下的数据字典对所述和进行拆分,得到第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥。之后,将所述第一盐哈希值、所述发起方样本求交关键字以及事先由配合方传送的第二盐值这三者之和作为一个入参(可选的,入参也可以加上样本标签),调用SHA512函数进行加盐哈希处理,得到校验用第二盐哈希值。对比所述第二盐哈希值和校验用第二盐哈希值,若二者相同,则继续执行后续求交运算处理步骤,以得到求交运算结果。

进一步,为了增加求交运算结果传输过程的机密性,可以通过随机密钥对求交运算结果进行加密以得到第一密文,再通过第二共享密钥对第一密文进行对称加密以得到第二密文,然后将第二密文,即最终加密后的求交运算结果发送至发起方。

接收模块303,用于接收所述配合方根据所述票据发送的求交运算结果;其中,所述求交运算结果是根据所述票据中的盐哈希值与配合方的盐哈希值进行求交运算得到的,所述配合方的盐哈希值是根据第二样本数据进行加盐哈希处理得到的

求交结果解密模块304,用于对所述求交运算结果进行解密,以得到第一样本数据与第二样本数据的交集。其中,所述第一样本数据和第二样本数据均包括样本求交关键字和关联特征。

在一个可选示例中,发起方接收到的是通过随机密钥和第二共享密钥加密后的求交运算结果。在该可选示例中,发起方通过第二共享密钥和随机密钥对加密后的求交运算结果先后进行二次解密,以得到求交运算结果。对于所得到的求交运算结果,由于其为两个哈希值的交集部分,具有哈希摘要的性质,因此,接下来可以通过发起方和配合方事先约定好的数据字典对所述交集部分进行解密,得到所述发起方和所述配合方的样本数据的交集,所述发起方和所述配合方的样本数据均包括样本求交关键字和关联特征,可选的,还可以包括样本标签。

在本发明实施例中,通过以上装置能够提高提高数据求交的安全性,而且无需在关键字求交结束后再进行特征关联工作,提高了联邦学习的工作效率。

第四实施例

参见图4,示出的是本发明第四实施例提供的一种设置于配合方的数据求交的装置的主要模块示意图。数据求交装置400包括:加盐哈希处理模块401、票据处理模块40/2、求交运算模块403、以及求交结果解密模块404。

加盐哈希处理模块401,用于对第二样本数据进行加盐哈希处理,以得到配合方的盐哈希值。

在一个可选示例中,加盐哈希处理模块401对第二样本数据进行加盐哈希处理,以得到配合方的盐哈希值包括:根据第一盐值对第二样本数据进行加盐哈希处理以得到第三盐哈希值;根据第二盐值对第三盐哈希值进行加盐哈希处理以得到第四盐哈希值,并将所述第四盐哈希值作为所述配合方的盐哈希值。

进一步,在上述可选示例中,加盐哈希处理模块401根据第一盐值对第二样本数据进行加盐哈希处理以得到第三盐哈希值包括:将第二样本数据中的样本求交关键字的哈希值、第二样本数据中的关联特征与第一盐值之和作为两个入参,调用第一哈希函数进行加盐哈希处理,以得到第三盐哈希值;以及,加盐哈希处理模块401根据第二盐值对第三盐哈希值进行加盐哈希处理以得到第四盐哈希值包括:将第三盐哈希值、第二样本数据中的样本求交关键字以及第二盐值这三者之和作为一个入参,调用第二哈希函数进行加盐哈希处理,以得到第四盐哈希值。示例性地,第一哈希数据为慢哈希函数,第二哈希函数为SHA512函数。

票据处理模块402,用于在接收到发起方发送的票据后,根据所述票据得到发起方的盐哈希值。

在一个可选示例中,发起方将加密后的票据发送至票据处理模块;并且,所述票据是所述发起方将发起方的盐哈希值作为加密密钥,对第一样本数据中的样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥这四个参数的和进行对称加密得到的。在该可选示例中,在接收到加密后的票据后,票据处理模块402先对加密后的票据进行解密以得到票据。之后,票据处理模块402用发起方传输过来的第二盐哈希值对票据进行解密,以得到第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥之和。对于所述和,示例性地,可以通过双方事先协商定下的数据字典对所述和进行拆分,得到第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥。之后,将所述第一盐哈希值、所述发起方样本求交关键字以及事先由配合方传送的第二盐值这三者之和作为一个入参(可选的,也可以加上样本标签),调用SHA512函数进行加盐哈希处理,以得到校验用第二盐哈希值。对比所述第二盐哈希值和校验用第二盐哈希值,若二者相同,则继续调用求交运算模块,若二者不同则可结束整个流程并向发起方发送认证失败的通知。

求交运算模块402,用于对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,并将求交运算结果发送至发起方。

在一个可选示例中,发起方的盐哈希值具体为第二盐哈希值,配合方的盐哈希值具体为第四盐哈希值。在该可选示例中,求交运算模块402对第二盐哈希值和所述第四盐哈希值进行求交运算,以得到二者的交集部分,即求交运算结果。之后,求交运算模块402将求交运算结果发送至发起方。

求交结果解密模块403,用于对所述求交运算结果进行解密,以得到第一样本数据与第二样本数据的交集。

考虑到所述交集部分为两个哈希值的交集部分,具有哈希摘要的性质,因此,所述配合方可以通过发起方和配合方事先约定好的数据字典对所述交集部分进行解密,得到所述发起方和所述配合方的样本数据的交集。其中,发起方和配合方的样本数据均包括样本求交关键字和关联特征,可选的,样本数据还可以包括样本标签。

在本发明实施例中,通过以上装置能够实现提高数据求交的安全性,而且无需在关键字求交结束后再进行特征关联工作,提高了联邦学习的工作效率。

第五实施例

参见图5,示出的是本发明第五实施例提供的一种数据求交系统的示意图,包括:发起方501和配合方502。

发起方501和配合方502分别用于根据约定好的加盐哈希算法对各自的样本数据进行加盐哈希处理,以得到各自的盐哈希值。

示例性地,发起方501和配合方502的样本数据均包括样本求交关键字和关联特征。可选的,所述样本数据还可以包括样本标签。

关于如何生成发起方的盐哈希值和配合方的盐哈希值,可参考图1或图2所示实施例的相关说明。

发起方501,还用于根据发起方的盐哈希值生成票据,并将所述票据发送至配合方。

在一个可选示例中,发起方501先生成第一盐哈希值,再基于第一盐哈希值生成第二盐哈希值。在该可选示例中,发起方501可以第二盐哈希值为密钥,以发起方样本求交关键字、加密时间参数、第一盐哈希值以及随机密钥的和作为明文,使用对称加密算法对该明文进行加密,所输出的密文即为票据。示例性地,所述对称加密算法可以为但不限于AES算法,所述随机密钥可以由生成随机密钥的函数和用户输入的种子生成。

配合方502,还用于根据所述票据得到发起方的盐哈希值,对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,并将求交运算结果发送至所述发起方:

在一个可选示例中,发起方501基于第一共享密钥对票据进行对称加密传输,在接收到加密后的票据后,配合方502通过第一共享密钥对加密后的票据进行解密以得到票据。之后,配合方502用发起方501传输过来的作为密钥的第二盐哈希值对票据进行解密,以得到所述第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥之和。对于所述和,示例性地,可以通过双方事先协商定下的数据字典对所述和进行拆分,得到第一盐哈希值、发起方样本求交关键字、加密时间参数以及随机密钥。之后,配合方502将所述第一盐哈希值、所述发起方样本求交关键字以及事先由配合方传送的第二盐值这三者之和作为一个入参(可选的,也可以加上样本标签),调用SHA512函数进行加盐哈希处理,得到校验用第二盐哈希值。然后,配合方对比所述第二盐哈希值和校验用第二盐哈希值,若二者相同,则继续执行后续求交运算步骤,若二者不同,则可结束整个流程并向发起方发送认证失败的通知。

进一步,为了增加求交运算结果传输过程的机密性,配合方502可以将所述求交运算结果先通过随机密钥进行对称加密以得到第一密文,再将所得第一密文通过第二共享密钥进行对称加密以得到第二密文,然后将所得第二密文发送至发起方501。

发起方501和配合方还分别用于对所述求交运算结果进行解密,以得到所述发起方和所述配合方的样本数据的交集。其中,所述发起方和所述配合方的样本数据均包括样本求交关键字和关联特征。

在本发明实施例中,通过以上系统能够实现提高数据求交的安全性,而且无需在关键字求交结束后再进行特征关联工作,提高了联邦学习的工作效率。

图6示出了可以应用本发明实施例的示例性系统架构600。如图6所示,系统架构600可以包括发起方一侧的服务器601、配合方一侧的服务器602,以及网络603(仅仅是示例)。网络603用以在发起方一侧的服务器601和配合方一侧的服务器602之间提供通信链路的介质。网络603可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

发起方一侧的服务器601通过网络603与配合方一侧的服务器602交互,以接收或发送消息等。

发起方一侧的服务器601、配合方一侧的服务器602可以是提供各种服务的服务器,例如发起方一侧的服务器为电商平台的服务器,配合方一侧的服务器为金融平台的服务器。

需要说明的是,本发明实施例所提供的数据求交的方法一般由发起方一侧的服务器601、配合方一侧的602共同执行。

应该理解,图6中网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的网络和服务器。

下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种加盐哈希处理模块、票据生成模块、求交结果解密模块。也可以描述为:一种票据处理模块、求交运算模块、求交结果解密模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如票据模块还可以被描述为“票据生成及发送模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行以下流程:对第一样本数据进行加盐哈希处理,以得到发起方的盐哈希值;根据所述发起方的盐哈希值生成票据,并将所述票据发送至配合方;接收所述配合方根据所述票据发送的求交运算结果;其中,所述求交运算结果是根据所述票据中的盐哈希值与配合方的盐哈希值进行求交运算得到的,所述配合方的盐哈希值是根据第二样本数据进行加盐哈希处理得到的;对所述求交运算结果进行解密,以得到第一样本数据与第二样本数据的交集。其中,所述第一样本数据和第二样本数据均包括样本求交关键字和关联特征。

或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行以下流程:对第二样本数据进行加盐哈希处理,以得到配合方的盐哈希值;在接收到发起方发送的票据后,根据所述票据得到发起方的盐哈希值;对所述发起方的盐哈希值与配合方的盐哈希值进行求交运算,并将求交运算结果发送至所述发起方;对所述求交运算结果进行解密,以得到第一样本数据与第二样本数据的交集。

根据本发明实施例的技术方案,提出一种数据求交的方法、装置和系统,克服了现有技术中数据求交方法在安全性上存在一定缺陷,容易被暴力破解,安全性存在一定缺陷以及关联操作工作量大,会使双方样本数据的安全系数降低等问题,取得了不仅能够提高数据求交的安全性,而且无需在关键字求交结束后再进行特征关联工作,提高联邦学习的工作效率的技术效果。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 公路交调站多源数据融合方法及装置
  • 数据处理系统、状态转移方法、数据求交方法、装置
  • 一种多方隐私求交方法、装置和用于多方隐私求交的装置
技术分类

06120116380523