基于数据隐私保护的公共数据集确定方法、装置及系统与流程

文档序号:22436433发布日期:2020-10-02 10:28阅读:113来源:国知局
基于数据隐私保护的公共数据集确定方法、装置及系统与流程

本说明书实施例通常涉及人工智能领域,尤其涉及基于数据隐私保护的公共数据集确定方法、装置及系统。



背景技术:

随着人工智能技术的发展,例如机器学习模型的业务模型已经逐渐应用于各种业务应用场景,比如,风险评估、语音识别、自然语言处理等。为了得到更好的业务服务效果,在进行业务处理时,需要使用多个数据拥有方的本地业务数据来联合处理。在一些情况下,需要确定出数据拥有方之间的公共数据集,并且使用所确定出的公共数据集来进行后续业务处理。例如,在两个业务方进行联合营销的情况下,两个业务方需要确定出共同的客户数据,然后使用所确定的共同客户数据来进行联合营销。然而,除了公共数据集之外,各个数据拥有方的剩余业务数据属于各个数据拥有方的隐私数据,不能泄露给其它数据拥有方。如何在确保各个数据拥有方的隐私数据安全的情况下确定公共数据集成为亟待解决的问题。



技术实现要素:

鉴于上述,本说明书实施例提供用于确定第一和第二数据拥有方的公共数据集的方法、装置及系统。利用该方法、装置及系统,在两个数据拥有方处分别使用各自的密钥对各自的数据集进行加密,并且在两个数据拥有方之间共享经过加密后的数据集。在第二数据拥有方处,使用所具有的密钥对从第一数据拥有方接收的加密数据集进行二次加密,并对二次加密结果进行乱序处理,然后将乱序处理结果返回给第一数据拥有方。第一数据拥有方使用所具有的密钥对乱序处理结果解密,确定出解密结果和从第二数据拥有方接收的加密数据集之间的交集信息并返回给第二数据拥有方。第二数据拥有方利用该交集信息确定出公共数据集的明文数据。按照上述公共数据集确定方案,在两个数据拥有方之间交互的都是经过加密处理后的密文信息,由此可以防止各个数据拥有方所具有的隐私数据外泄。

根据本说明书实施例的一个方面,提供一种用于确定第一和第二数据拥有方的公共数据集的方法,第一数据拥有方具有第一数据集和第一密钥,第二数据拥有方具有第二数据集和第二密钥,所述方法包括:在第一和第二数据拥有方处,分别使用第一密钥和第二密钥对第一数据集和第二数据集加密得到第一加密数据序列和第二加密数据序列;第一数据拥有方将第一加密数据序列发送给第二数据拥有方,以及第二数据拥有方将第二加密结果发送给第一数据拥有方,第二加密结果包括第二加密数据序列或第二加密数据序列的变型;在第二数据拥有方处,使用第二密钥对第一加密数据序列加密,乱序所得到的加密结果,并将乱序后的加密结果发送给第一数据拥有方;在第一数据拥有方处,使用第一密钥对所述乱序后的加密结果解密得到第三加密数据序列,根据第三加密数据序列和第二加密结果确定第三加密数据序列和第二加密数据序列的交集信息,并将所述交集信息发送给第二数据拥有方;以及在第二数据拥有方处,根据所述交集信息确定第一和第二数据拥有方的公共数据集的明文数据。

可选地,在上述方面的一个示例中,第一数据集是小集合数据集,以及第二数据集是大集合数据集。

可选地,在上述方面的一个示例中,第二加密数据序列的变型包括:第二加密数据序列中的各个密文数据元素的第一哈希值集合或者利用第二加密数据序列中的各个密文数据元素构建的第一布隆过滤器。

可选地,在上述方面的一个示例中,所述交集信息包括:第三加密数据序列和第二加密数据序列的交集密文信息;第三加密数据序列和第二加密数据序列的交集元素的第二哈希值集合,所述交集元素通过使用第三加密数据序列的元素哈希值来在第一哈希值集合中查询出;或者利用第三加密数据序列和第二加密数据序列的交集元素构建的第二布隆过滤器,所述交集元素利用第一布隆过滤器从第三加密数据序列中匹配出。

可选地,在上述方面的一个示例中,在第二数据拥有方处,根据所述交集信息确定第一和第二数据拥有方的公共数据集的明文数据包括:使用第二密钥对所述交集密文信息进行解密得到第一和第二数据拥有方的公共数据集的明文数据;从第二数据集中找出所对应的第二加密数据序列的密文数据元素在所述交集密文信息中的数据元素,得到第一和第二数据拥有方的公共数据集的明文数据;从第二数据集中找出所对应的第二加密数据序列的密文数据元素的哈希值在所述第二哈希值集合中的数据元素,得到第一和第二数据拥有方的公共数据集的明文数据;或者从第二数据集中找出所对应的第二加密数据序列的密文数据元素与所述第二布隆过滤器匹配的数据元素,得到第一和第二数据拥有方的公共数据集的明文数据。

可选地,在上述方面的一个示例中,第一和第二数据拥有方处的加密过程使用可交替的确定性加密算法实现。

可选地,在上述方面的一个示例中,所述可交替的确定性加密算法包括dh算法或rsa算法。

可选地,在上述方面的一个示例中,第一和第二数据拥有方处的处理过程并行执行。

可选地,在上述方面的一个示例中,所述方法还可以包括:在第一和第二数据拥有方处分别生成第一密钥和第二密钥。

根据本说明书的实施例的另一方面,提供一种用于确定第一和第二数据拥有方的公共数据集的方法,第一数据拥有方具有第一数据集和第一密钥,第二数据拥有方具有第二数据集和第二密钥,所述方法应用于第一数据拥有方,所述方法包括:使用第一密钥对第一数据集加密得到第一加密数据序列;将第一加密数据序列发送给第二数据拥有方,以及从第二数据拥有方接收第二加密结果,第二加密结果包括第二加密数据序列或第二加密数据序列的变型,第二加密数据序列由第二数据拥有方使用第二密钥对第二数据集加密得到;从第二数据拥有方接收乱序后的加密结果,所述乱序后的加密结果通过在第二数据拥有方处对使用第二密钥加密后的第一加密数据序列进行乱序处理得到;使用第一密钥对所述乱序后的加密结果解密得到第三加密数据序列;以及根据第三加密数据序列和第二加密结果确定第三加密数据序列和第二加密数据序列的交集信息,并将所述交集信息发送给第二数据拥有方,所述交集信息被第二数据拥有方使用来确定第一和第二数据拥有方的公共数据集的明文数据。

根据本说明书的实施例的另一方面,提供一种用于确定第一和第二数据拥有方的公共数据集的方法,第一数据拥有方具有第一数据集和第一密钥,第二数据拥有方具有第二数据集和第二密钥,所述方法应用于第二数据拥有方,所述方法包括:使用第二密钥对第二数据集加密得到第二加密数据序列,并将第二加密结果发送给第一数据拥有方,第二加密结果包括第二加密数据序列或第二加密数据序列的变型;从第一数据拥有方接收第一加密数据序列,第一加密数据序列经由第一数据拥有方使用第一密钥对第一数据集加密得到;使用第二密钥对第一加密数据序列加密,乱序所得到的加密结果,并将乱序后的加密结果发送给第一数据拥有方;从第一数据拥有方接收第三加密数据序列和第二加密数据序列的交集信息,所述交集信息由第一数据拥有方根据第三加密数据序列和第二加密结果确定出,第三加密数据序列通过第一数据拥有方使用第一密钥对所述乱序后的加密结果解密得到;以及根据所述交集信息确定第一和第二数据拥有方的公共数据集的明文数据。

根据本说明书的实施例的另一方面,提供一种用于确定第一和第二数据拥有方的公共数据集的装置,第一数据拥有方具有第一数据集和第一密钥,第二数据拥有方具有第二数据集和第二密钥,所述装置应用于第一数据拥有方,所述装置包括:数据加密单元,使用第一密钥对第一数据集加密得到第一加密数据序列;加密数据共享单元,将第一加密数据序列发送给第二数据拥有方,以及从第二数据拥有方接收第二加密结果,第二加密结果包括第二加密数据序列或第二加密数据序列的变型,第二加密数据序列由第二数据拥有方使用第二密钥对第二数据集加密得到;乱序结果获取单元,从第二数据拥有方接收乱序后的加密结果,所述乱序后的加密结果通过在第二数据拥有方处对使用第二密钥加密后的第一加密数据序列进行乱序处理得到;数据解密单元,使用第一密钥对所述乱序后的加密结果解密得到第三加密数据序列;交集信息确定单元,根据第三加密数据序列和第二加密结果确定第三加密数据序列和第二加密数据序列的交集信息;以及交集信息发送单元,将所述交集信息发送给第二数据拥有方,所述交集信息被第二数据拥有方使用来确定第一和第二数据拥有方的公共数据集的明文数据。

可选地,在上述方面的一个示例中,第二加密数据序列的变型包括:第二加密数据序列中的各个密文数据元素的第一哈希值集合或者利用第二加密数据序列中的各个密文数据元素构建的第一布隆过滤器。

可选地,在上述方面的一个示例中,所述交集信息确定单元:将第三加密数据序列和第二加密数据序列的交集密文信息确定为所述交集信息;使用第三加密数据序列的元素哈希值来在第一哈希值集合中查询出第三加密数据序列和第二加密数据序列的交集元素,并将所述交集元素的第二哈希值集合确定为所述交集信息;或者利用第一布隆过滤器从第三加密数据序列中匹配出第三加密数据序列和第二加密数据序列的交集元素,并将利用所匹配出的交集元素构建第二布隆过滤器确定为所述交集信息。

可选地,在上述方面的一个示例中,所述装置还可以包括:密钥生成单元,生成所述第一密钥。

根据本说明书的实施例的另一方面,提供一种用于确定第一和第二数据拥有方的公共数据集的装置,第一数据拥有方具有第一数据集和第一密钥,第二数据拥有方具有第二数据集和第二密钥,所述装置应用于第二数据拥有方,所述装置包括:第一数据加密单元,使用第二密钥对第二数据集加密得到第二加密数据序列;加密数据共享单元,将第二加密结果发送给第一数据拥有方,第二加密结果包括第二加密数据序列或第二加密数据序列的变型,以及从第一数据拥有方接收第一加密数据序列,第一加密数据序列经由第一数据拥有方使用第一密钥对第一数据集加密得到;第二数据加密单元,使用第二密钥对第一加密数据序列加密;乱序处理单元,对加密后的第一加密数据进行乱序处理得到乱序后的加密结果;乱序结果发送单元,将乱序后的加密结果发送给第一数据拥有方;交集信息获取单元,从第一数据拥有方接收第三加密数据序列和第二加密数据序列的交集信息,所述交集信息由第一数据拥有方根据第三加密数据序列和第二加密结果确定,第三加密数据序列通过第一数据拥有方使用第一密钥对所述乱序后的加密结果解密得到;以及明文数据确定单元,根据所述交集信息确定第一和第二数据拥有方的公共数据集的明文数据。

可选地,在上述方面的一个示例中,所述明文数据确定单元:使用第二密钥对第三加密数据序列和第二加密数据序列的交集密文信息进行解密,得到第一和第二数据拥有方的公共数据集的明文数据;从第二数据集中找出所对应的第二加密数据序列的密文数据元素在所述交集密文信息中的数据元素,得到第一和第二数据拥有方的公共数据集的明文数据;从第二数据集中找出所对应的第二加密数据序列的密文数据元素的哈希值在第三加密数据序列和第二加密数据序列的交集元素的第二哈希值集合中的数据元素,得到第一和第二数据拥有方的公共数据集的明文数据,第二哈希值集合通过使用第三加密数据序列的元素哈希值来在第一哈希值集合中查询出,第一哈希值集合是第二加密数据序列中的各个密文数据元素的哈希值构成的哈希值集合;或者从第二数据集中找出所对应的第二加密数据序列的密文数据元素与第二布隆过滤器匹配的数据元素,得到第一和第二数据拥有方的公共数据集的明文数据,所述第二布隆过滤器利用第三加密数据序列和第二加密数据序列的交集元素构建,所述交集元素通过使用利用第二加密数据序列的各个密文数据元素构建的第一布隆过滤器来从第三加密数据序列中匹配出。

根据本说明书的实施例的另一方面,提供一种用于确定第一和第二数据拥有方的公共数据集的系统,包括:第一数据拥有方,第一数据拥有方具有第一数据集和第一密钥,并且包括如上所述的装置;以及第二数据拥有方,第二数据拥有方具有第二数据集和第二密钥,并且包括如上所述的装置。

根据本说明书的实施例的另一方面,提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的在第一或第二数据拥有方侧执行的方法。

根据本说明书的实施例的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的在第一或第二数据拥有方侧执行的方法。

附图说明

通过参照下面的附图,可以实现对于本说明书内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。

图1示出了根据本说明书的实施例的公共数据集确定系统的示例示意图。

图2示出了根据本说明书的实施例的用于确定第一和第二数据拥有方的公共数据集的方法的示例流程图。

图3示出了根据本说明书的实施例的在第一数据拥有方侧的公共数据集确定装置的方框图。

图4示出了根据本说明书的实施例的在第二数据拥有方侧的公共数据集确定装置的方框图。

图5示出了根据本说明书的实施例的用于实现第一数据拥有方侧的公共数据集确定过程的电子设备的示意图。

图6示出了根据本说明书的实施例的用于实现第二数据拥有方侧的公共数据集确定过程的电子设备的示意图。

具体实施方式

现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。

如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。

在本说明书中,术语“业务服务提供方”和“数据拥有方”可以互换使用。术语“第一数据拥有方”和“第一数据拥有方设备”可以互换使用。术语“第二数据拥有方”和“第二数据拥有方设备”可以互换使用。

在一些经由两个业务服务提供方联合提供业务服务的应用场景下,需要两个业务服务提供方确定出各自所具有的业务数据集之间的公共数据集,并且使用所确定出的公共数据集来进行后续业务处理。例如,在两个业务方进行联合营销的情况下,两个业务方需要确定出共同的客户数据,然后使用所确定的共同客户数据来进行联合营销。然而,除了公共数据集之外,各个数据拥有方的剩余业务数据属于各个数据拥有方的隐私数据,不能泄露给其它数据拥有方。

鉴于上述,本说明书的实施例提出了基于数据隐私保护的公共数据集确定方法、装置及系统。利用该方法、装置及系统,在两个数据拥有方处分别使用各自的密钥对各自的数据集进行加密,并且在两个数据拥有方之间共享经过加密后的数据集。在第二数据拥有方处,使用所具有的密钥对从第一数据拥有方接收的加密数据集进行二次加密,并对二次加密结果进行乱序处理,然后将乱序处理结果返回给第一数据拥有方。第一数据拥有方使用所具有的密钥对乱序处理结果解密,确定出解密结果和从第二数据拥有方接收的加密数据集之间的交集信息并返回给第二数据拥有方。第二数据拥有方利用该交集信息确定出公共数据集的明文数据。按照上述公共数据集确定方案,在两个数据拥有方之间交互的都是经过加密处理后的密文信息,由此可以防止各个数据拥有方所具有的隐私数据外泄。

下面参照附图描述根据本说明书的实施例的基于数据隐私保护的公共数据集确定方法、装置和系统。

图1示出了根据本说明书的实施例的公共数据集确定系统100的示例示意图。如图1所示,公共数据集确定系统100包括第一数据拥有方110和第二数据拥有方120。第一数据拥有方110具有第一数据集,以及第二数据拥有方120具有第二数据集。第一数据集可以是由第一数据拥有方110在本地收集的本地数据,以及第二数据集可以是由第二数据拥有方120在本地收集的本地数据。

在本说明书中,第一数据拥有方110和第二数据拥有方120可以是参与业务处理的业务参与方,或者是为业务参与方提供数据的数据拥有方。例如,第一数据拥有方110和第二数据拥有方120例如可以是不同金融机构或医疗机构的私有数据存储服务器或智能终端设备。

在本说明书中,第一数据拥有方110以及第二数据拥有方120可以是任何合适的具有计算能力的计算设备。所述计算设备包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(pda)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。

第一数据拥有方110具有公共数据集确定装置111,第二数据拥有方具有公共数据集确定装置121。第一数据拥有方110中的公共数据集确定装置111与第二数据拥有方120中的公共数据集确定装置121可以通过例如包括但不局限于互联网或局域网等的网络130相互通信,由此公共数据集确定装置111与公共数据集确定装置121协同来确定第一数据集和第二数据集的公共数据集。在本说明书的其它实施例中,第一数据拥有方110中的公共数据集确定装置111与第二数据拥有方120中的公共数据集确定装置121也可以直接可通信地连接来相互通信。

图2示出了根据本说明书的实施例的用于确定第一和第二数据拥有方的公共数据集的方法200的示例流程图。

如图2所示,在210,在第一数据拥有方110处生成第一密钥k1,以及在第二数据拥有方120处生成第二密钥k2。

在220,在第一数据拥有方110处使用第一密钥k1对第一数据集进行加密得到第一加密数据序列,,其中,i等于1到n。在第二数据拥有方120处使用第一密钥k2对第二数据集进行加密得到第二加密数据序列,其中,j等于1到m。

在230,第一数据拥有方110将第一加密数据序列x1发送给第二数据拥有方120,以及第二数据拥有方120将第二加密结果发送给第一数据拥有方110。这里,第二加密结果可以是第二加密数据序列y1或者是第二加密数据序列y1的变型。换言之,第二数据拥有方120可以将第二加密数据序列y1发送给第一数据拥有方110,或者也可以将第二加密数据序列y1的变型发送给第一数据拥有方110。

在本说明书中,在一个示例中,第二加密数据序列y1的变型可以包括第二加密数据序列y1中的各个密文数据元素的第一哈希值集合,第一哈希值集合由根据各个密文数据元素计算出的哈希值组成。在另一示例中,第二加密数据序列y1的变型可以包括利用第二加密数据序列y1中的各个密文数据元素构建的第一布隆过滤器。

在240,在第二数据拥有方120处,使用第二密钥k2对第一加密数据序列x1加密,得到加密序列,并对所得到的加密序列x2进行乱序处理,由此得到乱序后的加密序列x2’(即,乱序后的加密结果),经过乱序后的加密序列x2’中的各个数据元素的排序与第一加密数据序列x1中的各个数据元素的排序不同。

在250,第二数据拥有方120将加密序列x2’发送给第一数据拥有方110。

在260,在第一数据拥有方110处,使用第一密钥k1对加密序列x2’解密得到第三加密数据序列x3,所得到的第三加密数据序列x3中的各个数据元素的排序与第一加密数据序列x1中的各个数据元素的排序不同。

在270,在第一数据拥有方110处,根据第三加密数据序列x3和第二加密结果,确定第三加密数据序列和第二加密数据序列的交集信息。

可选地,在一个示例中,在第二加密结果是第二加密数据序列y1的情况下,所述交集信息可以是第三加密数据序列x3和第二加密数据序列y1的交集密文信息。例如,针对第三加密数据序列x3中的各个密文数据元素,在第二加密数据序列y1中查询是否存在相同的元素。如果存在,则认为该密文数据元素属于公共数据集。按照上述方式,得到第三加密数据序列x3和第二加密数据序列y1的交集密文信息,作为交集信息。

在另一示例中,在第二加密结果是第二加密数据序列y1中的各个密文数据元素的第一哈希值集合的情况下,所述交集信息可以是第三加密数据序列和第二加密数据序列的交集元素的第二哈希值集合。具体地,针对第三加密数据序列x3中的各个密文数据元素,计算其元素哈希值,随后利用所计算出的元素哈希值来在第一哈希值集合中查询是否存在相同的哈希值。如果存在,则认为该密文数据元素属于公共数据集,并将该密文数据元素所对应的元素哈希值归入第二哈希值集合中。按照上述方式,得到第三加密数据序列x3和第二加密数据序列y1的交集元素的第二哈希值集合,作为交集信息。

在另一示例中,在第二加密结果是利用第二加密数据序列y1的各个密文数据元素构建的第一布隆过滤器的情况下,所述交集信息是利用第三加密数据序列x3和第二加密数据序列y1的交集元素构建的第二布隆过滤器,所述交集元素利用第一布隆过滤器来从第三加密数据序列x3中匹配出。

在280,第一数据拥有方110将所确定出的交集信息发送给第二数据拥有方120。

在290,在第二数据拥有方120处,根据所接收的交集信息确定第一数据拥有方110的第一数据集与第二数据拥有方120的第二数据集之间的公共数据集的明文数据。

可选地,在一个示例中,在交集信息是第三加密数据序列x3和第二加密数据序列y1的交集密文信息的情况下,在第二数据拥有方120处,使用第二密钥对所述交集密文信息进行解密得到第一数据拥有方110和第二数据拥有方120的公共数据集的明文数据。或者,在另一示例中,在第二数据拥有方120处,从第二数据集y中找出所对应的第二加密数据序列y1的密文数据元素处于交集密文信息中的数据元素,由此得到第一数据拥有方110和第二数据拥有方120的公共数据集的明文数据。

在另一示例中,在交集信息是第三加密数据序列x3和第二加密数据序列y1的交集元素的第二哈希值集合的情况下,在第二数据拥有方120处,计算第二加密数据序列y1的各个密文数据元素的哈希值,并且从第二数据集y中找出所对应的第二加密数据序列y1的密文数据元素的哈希值处于第二哈希值集合中的数据元素,由此得到第一数据拥有方110和第二数据拥有方120的公共数据集的明文数据。

在另一示例中,在交集信息是利用第三加密数据序列x3和第二加密数据序列y1的交集元素构建的第二布隆过滤器的情况下,在第二数据拥有方120处,使用第二布隆过滤器来从第二数据集y中找出所对应的第二加密数据序列y1的密文数据元素与第二布隆过滤器匹配的数据元素,由此得到第一数据拥有方110和第二数据拥有方120的公共数据集的明文数据。

利用上述公共数据集确定方法,由于在两个数据拥有方之间交互的都是经过加密处理后的密文信息,从而可以防止各个数据拥有方所具有的隐私数据外泄。

此外,可选地,在上述方面的一个示例中,第一和第二数据拥有方处的加密过程使用可交替的确定性加密算法实现。术语“确定性加密”可以是指同一明文每次加密所得到的密文都一样。术语“可交替加密”可以是指在使用两个不同的密钥k1和k2进行两重加密时,密钥的使用顺序不同不会改变加密结果。换言之,针对明文数据x,先使用密钥k1加密然后使用密钥k2再次加密所得到的密文,与先使用密钥k2加密然后使用密钥k1再次加密得到的密文相同。此外,解密时的解密顺序可以跟加密顺序相同或不同。所述可交替的确定性加密算法的示例可以包括但不限于dh(diffie-hellman)算法或rsa算法。

此外,可选地,在一个示例中,第一数据集是小集合数据集(即,数据集元素极少的数据集),以及第二数据集是大集合数据集(即,数据集元素极多的数据集)。按照这种方式确定公共数据集,明文数据的恢复处理在具有大集合数据集的数据拥有方处实现,从而使得公共数据集的明文仅仅公开给大集合数据方,而对小集合数据方保密。

此外,可选地,在一个示例中,第一数据拥有方110和第二数据拥有方120处的处理过程可以并行执行,从而可以缩短公共数据集确定时间,由此提升公共数据集确定效率。

此外,可选地,在一个示例中,第一数据拥有方110可以预先具有第一密钥k1,和/或第二数据拥有方120可以预先具有第二密钥k2,由此无需在公共数据集确定过程中实时生成第一密钥k1和/或第二密钥k2。

图3示出了根据本说明书的实施例的在第一数据拥有方侧的公共数据集确定装置300的方框图。如图3所示,公共数据集确定装置300包括数据加密单元310、加密数据共享单元320、乱序结果获取单元330、数据解密单元340、交集信息确定单元350和交集信息发送单元360。

数据加密单元310被配置为使用第一密钥对第一数据集加密得到第一加密数据序列。数据加密单元310的操作可以参考上面参照图2描述的220的操作。

加密数据共享单元320被配置为将第一加密数据序列发送给第二数据拥有方,以及从第二数据拥有方接收第二加密结果,第二加密结果包括第二加密数据序列或第二加密数据序列的变型,第二加密数据序列由第二数据拥有方使用第二密钥对第二数据集加密得到。加密数据共享单元320的操作可以参考上面参照图2描述的230的操作。

乱序结果获取单元330被配置为从第二数据拥有方接收乱序后的加密结果,所述乱序后的加密结果通过在第二数据拥有方处对使用第二密钥加密后的第一加密数据序列进行乱序处理得到。乱序结果获取单元330的操作可以参考上面参照图2描述的250的操作。

数据解密单元340被配置为使用第一密钥对所述乱序后的加密结果解密得到第三加密数据序列。数据解密单元340的操作可以参考上面参照图2描述的260的操作。

交集信息确定单元350被配置为根据第三加密数据序列和第二加密结果确定第三加密数据序列和第二加密数据序列的交集信息。交集信息确定单元350的操作可以参考上面参照图2描述的270的操作。

交集信息发送单元360被配置为将交集信息发送给第二数据拥有方,所述交集信息被第二数据拥有方使用来确定第一和第二数据拥有方的公共数据集的明文数据。交集信息发送单元360的操作可以参考上面参照图2描述的280的操作。

在一个示例中,第二加密数据序列的变型包括:第二加密数据序列中的各个密文数据元素的第一哈希值集合,或者利用第二加密数据序列中的各个密文数据元素构建的第一布隆过滤器。

在另一示例中,在第二加密结果是第二加密数据序列的情况下,交集信息确定单元350将第三加密数据序列和第二加密数据序列的交集密文信息确定为交集信息。

在另一示例中,在第二加密结果是第二加密数据序列中的各个密文数据元素的第一哈希值集合的情况下,交集信息确定单元350使用第三加密数据序列的元素哈希值来在第一哈希值集合中查询出第三加密数据序列和第二加密数据序列的交集元素,并将所查询出的交集元素的第二哈希值集合确定为交集信息。

在另一示例中,在第二加密结果是利用第二加密数据序列的各个密文数据元素构建的第一布隆过滤器的情况下,交集信息确定单元350利用第一布隆过滤器从第三加密数据序列中匹配出第三加密数据序列和第二加密数据序列的交集元素,并将利用所匹配出的交集元素构建第二布隆过滤器确定为交集信息。

此外,可选地,在一个示例中,公共数据集确定装置300还可以包括密钥生成单元(未示出)。密钥生成单元被配置为生成第一密钥。

图4示出了根据本说明书的实施例的在第二数据拥有方侧的公共数据集确定装置400的方框图。如图4所示,公共数据集确定装置400包括第一数据加密单元410、加密数据共享单元420、第二数据加密单元430、乱序处理单元440、乱序结果发送单元450、交集信息获取单元460和明文数据确定单元470。

第一数据加密单元410被配置为使用第二密钥对第二数据集加密得到第二加密数据序列。第一数据加密单元410的操作可以参考上面参照图2描述的220的操作。

加密数据共享单元420被配置为将第二加密结果发送给第一数据拥有方,第二加密结果包括第二加密数据序列或第二加密数据序列的变型,以及从第一数据拥有方接收第一加密数据序列,第一加密数据序列经由第一数据拥有方使用第一密钥对第一数据集加密得到。加密数据共享单元420的操作可以参考上面参照图2描述的230的操作。

第二数据加密单元430被配置为使用第二密钥对第一加密数据序列加密。乱序处理单元440被配置为对加密后的第一加密数据进行乱序处理得到乱序后的加密结果。第二数据加密单元430和乱序处理单元440的操作可以参考上面参照图2描述的240的操作。

乱序结果发送单元450被配置为将乱序后的加密结果发送给第一数据拥有方。乱序结果发送单元450的操作可以参考上面参照图2描述的250的操作。

交集信息获取单元460被配置为从第一数据拥有方接收第三加密数据序列和第二加密数据序列的交集信息,所述交集信息由第一数据拥有方根据第三加密数据序列和第二加密结果确定,第三加密数据序列通过第一数据拥有方使用第一密钥对所述乱序后的加密结果解密得到。交集信息获取单元460的操作可以参考上面参照图2描述的280的操作。

明文数据确定单元470被配置为根据交集信息确定第一数据拥有方和第二数据拥有方的公共数据集的明文数据。明文数据确定单元470的操作可以参考上面参照图2描述的290的操作。

此外,在一个示例中,在交集信息是第三加密数据序列和第二加密数据序列的交集密文信息的情况下,明文数据确定单元470使用第二密钥对交集密文信息进行解密,由此得到第一数据拥有方和第二数据拥有方的公共数据集的明文数据。或者,在另一示例中,明文数据确定单元470从第二数据集中找出所对应的第二加密数据序列的密文数据元素处于交集密文信息中的数据元素,由此得到第一数据拥有方和第二数据拥有方的公共数据集的明文数据。

在另一示例中,在交集信息是第三加密数据序列和第二加密数据序列的交集元素的第二哈希值集合的情况下,明文数据确定单元470计算第二加密数据序列的各个密文数据元素的哈希值,并且从第二数据集中找出所对应的第二加密数据序列的密文数据元素的哈希值处于第二哈希值集合中的数据元素,由此得到第一数据拥有方和第二数据拥有方的公共数据集的明文数据。

在另一示例中,在交集信息是利用第三加密数据序列和第二加密数据序列的交集元素构建的第二布隆过滤器的情况下,明文数据确定单元470使用第二布隆过滤器来从第二数据集中找出所对应的第二加密数据序列的密文数据元素与第二布隆过滤器匹配的数据元素,由此得到第一数据拥有方和第二数据拥有方的公共数据集的明文数据。

此外,可选地,在另一示例中,公共数据集确定装置400还可以包括密钥生成单元(未示出)。密钥生成单元被配置为生成第二密钥。

此外,要说明的是,在图4的示例中,第一数据加密单元410和第二数据加密单元430被示出为两个独立的数据加密单元,但是在本说明书的其它实施例中,第一数据加密单元410和第二数据加密单元430可以使用同一数据加密单元实现。

此外,在图4的示例中,加密数据共享单元420和乱序结果发送单元450被示出为两个独立单元,但是在本说明书的其它实施例中,加密数据共享单元420和乱序结果发送单元450可以使用同一单元实现。

如上参照图1到图4,对根据本说明书实施例的公共数据集确定方法和公共数据集确定装置进行了描述。上面的公共数据集确定装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。

图5示出了根据本说明书的实施例的用于实现第一数据拥有方侧的公共数据集确定过程的电子设备500的示意图。如图5所示,电子设备500可以包括至少一个处理器510、存储器(例如,非易失性存储器)520、内存530和通信接口540,并且至少一个处理器510、存储器520、内存530和通信接口540经由总线560连接在一起。至少一个处理器510执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。

在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器510:使用第一密钥对第一数据集加密得到第一加密数据序列;将第一加密数据序列发送给第二数据拥有方,以及从第二数据拥有方接收第二加密结果,第二加密结果包括第二加密数据序列或第二加密数据序列的变型,第二加密数据序列由第二数据拥有方使用第二密钥对第二数据集加密得到;从第二数据拥有方接收乱序后的加密结果,所述乱序后的加密结果通过在第二数据拥有方处对使用第二密钥加密后的第一加密数据序列进行乱序处理得到;使用第一密钥对所述乱序后的加密结果解密得到第三加密数据序列;以及根据第三加密数据序列和第二加密结果确定第三加密数据序列和第二加密数据序列的交集信息,并将所确定出的交集信息发送给第二数据拥有方,所述交集信息被第二数据拥有方使用来确定第一和第二数据拥有方的公共数据集的明文数据。

应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器510进行本说明书的各个实施例中以上结合图1-4描述的各种操作和功能。

图6示出了根据本说明书的实施例的用于实现第二数据拥有方侧的公共数据集确定过程的电子设备600的示意图。如图6所示,电子设备600可以包括至少一个处理器610、存储器(例如,非易失性存储器)620、内存630和通信接口640,并且至少一个处理器610、存储器620、内存630和通信接口640经由总线660连接在一起。至少一个处理器610执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。

在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器610:使用第二密钥对第二数据集加密得到第二加密数据序列,并将第二加密结果发送给第一数据拥有方,第二加密结果包括第二加密数据序列或第二加密数据序列的变型;从第一数据拥有方接收第一加密数据序列,第一加密数据序列经由第一数据拥有方使用第一密钥对第一数据集加密得到;使用第二密钥对第一加密数据序列加密,乱序所得到的加密结果,并将乱序后的加密结果发送给第一数据拥有方;从第一数据拥有方接收第三加密数据序列和第二加密数据序列的交集信息,所述交集信息由第一数据拥有方根据第三加密数据序列和第二加密结果确定出,第三加密数据序列通过第一数据拥有方使用第一密钥对所述乱序后的加密结果解密得到;以及根据所述交集信息确定第一和第二数据拥有方的公共数据集的明文数据。

应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器610进行本说明书的各个实施例中以上结合图1-4描述的各种操作和功能。

根据一个实施例,提供了一种比如机器可读介质(例如,非暂时性机器可读介质)的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-4描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。

在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。

可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd-rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。

本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。

需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。

上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。

本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1