数据碰撞方法、装置、存储介质及电子设备与流程

文档序号:21886177发布日期:2020-08-18 17:18阅读:477来源:国知局
数据碰撞方法、装置、存储介质及电子设备与流程

本公开涉及计算机技术领域,具体涉及一种数据碰撞方法、数据碰撞装置、计算机可读存储介质及电子设备。



背景技术:

隐私数据一般是指在每个企业中相对敏感的需要进行保护的数据,例如商业秘密、知识产权、关键业务信息、业务合作伙伴信息以及用户资料等。在与其他企业进行某项业务合作时,利用这部分数据可以产生很大的业务价值,但出于隐私数据保护的目的,这部分数据往往不能明文传输给对方,当某些业务需要双方隐私数据进行数据碰撞时,这部分业务功能无法实现。目前对于用户资料、设备号等隐私数据的处理方法通常有以下两种:

一种方法是通过生成一个内部的id去进行传输交换,这个内部id可以通过某种方式映射成为隐私数据。但是这个内部id的转换关系只被某一方持有,而对于另一方来说,这个内部id无法转换隐私数据,因此也无法获取到这部分隐私数据,自然也就无法完成数据碰撞。

另一种方法是通过常用的加密函数如rc4、rc2、des和aes等算法将数据进行加密后用密文传输,过程可能涉及到密钥交换。采用常见加密函数加密的方法,双方可以通过选用相同的加密方法得到密文进行数据碰撞,但是由于采用相同的加密函数,因此任意一方都可以通过建立密文与明文的映射关系来反推出对方所传输的信息,这就造成了隐私数据泄露的问题。

由此可见,目前的隐私数据交换传输存在以下问题:信息交换的双方无法在不知道对方隐私数据的前提下,完成隐私数据碰撞。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本公开的目的在于提供一种数据碰撞方法、数据碰撞装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服由于相关技术的限制而导致的无法在保护隐私数据不被泄露的同时进行数据碰撞的技术问题。

根据本公开的一个方面,提供一种数据碰撞方法,其特殊之处在于,包括:

利用第一密钥对第一原始数据按照预设的可交换加密算法进行加密得到第一加密数据;

获取第二加密数据;其中,所述第二加密数据是利用第二密钥对第二原始数据按照所述可交换加密算法进行加密得到的;

利用所述第一密钥对所述第二加密数据按照所述可交换加密算法进行加密得到第三加密数据;

获取第四加密数据;其中,所述第四加密数据是利用所述第二密钥对所述第一加密数据按照所述可交换加密算法进行加密得到的;

获取所述第三加密数据和所述第四加密数据的加密数据交集,并基于所述加密数据交集确定所述第一原始数据和所述第二原始数据的原始数据交集。

在本公开的一种示例性实施方式中,所述基于所述加密数据交集确定所述第一原始数据和所述第二原始数据的原始数据交集,包括:

获取所述第四加密数据与所述第一原始数据的映射关系;

根据所述映射关系以及所述加密数据交集确定所述第一原始数据和所述第二原始数据的原始数据交集。

在本公开的一种示例性实施方式中,所述获取所述第四加密数据与所述第一原始数据的映射关系,包括:

确定所述第一原始数据中各个数据项的序列位置信息;

根据所述序列位置信息建立所述第四加密数据与所述第一原始数据的映射关系。

在本公开的一种示例性实施方式中,所述可交换加密算法为:

y=xemodp;其中,x为原始数据,e为密钥,p为预设素数,y为加密数据。

在本公开的一种示例性实施方式中,所述预设素数的数量级为21024

在本公开的一种示例性实施方式中,所述方法还包括:

利用预设的大数据并行处理框架读取待加密数据;其中,所述待加密数据包括所述第一原始数据和所述第二加密数据;

将所述待加密数据转化为大整数类数据,并将所述大整数类数据进行拆分以得到多个数据分片;

通过调用所述可交换加密算法分别对所述多个数据分片进行加密得到相应的加密数据。

在本公开的一种示例性实施方式中,所述获取第二加密数据,包括:

从持有所述第二原始数据和所述第二密钥的数据碰撞方获取第二加密数据。

在本公开的一种示例性实施方式中,所述获取第四加密数据,包括:

向所述数据碰撞方发送所述第一加密数据;

接收由所述数据碰撞方返回的根据所述第一加密数据加密得到的第四加密数据。

在本公开的一种示例性实施方式中,所述方法还包括:

向所述数据碰撞方发送所述第三加密数据,以供所述数据碰撞方进行数据碰撞。

根据本公开的第二方面,提供一种数据碰撞装置,其特殊之处在于,包括:

第一加密模块,被配置为利用第一密钥对第一原始数据按照预设的可交换加密算法进行加密得到第一加密数据;

第一获取模块,被配置为获取第二加密数据;其中,所述第二加密数据是利用第二密钥对第二原始数据按照所述可交换加密算法进行加密得到的;

第二加密模块,被配置为利用所述第一密钥对所述第二加密数据按照所述可交换加密算法进行加密得到第三加密数据;

第二获取模块,被配置为获取第四加密数据;其中,所述第四加密数据是利用所述第二密钥对所述第一加密数据按照所述可交换加密算法进行加密得到的;

交集确定模块,被配置为获取所述第三加密数据和所述第四加密数据的加密数据交集,并基于所述加密数据交集确定所述第一原始数据和所述第二原始数据的原始数据交集。

根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特殊之处在于,所述计算机程序被处理器执行时实现以上任一所述的数据碰撞方法。

根据本公开的第四方面,提供一种电子设备,其特殊之处在于,包括处理器和存储器;其中,存储器用于存储所述处理器的可执行指令,所述处理器被配置为经由执行所述可执行指令来执行以上任一所述的数据碰撞方法。

在本公开实施例所提供的数据碰撞方法中,利用可交换加密算法分别对两个数据持有方各自持有并相互保密的第一原始数据和第二原始数据进行二次加密,并根据加密结果完成第一原始数据和第二原始数据的碰撞。整个数据碰撞过程自始至终完全没有涉及第一原始数据和第二原始数据的传送或转存,因此保证了数据的私密性和安全性,在不泄露各自隐私数据的同时解决了数据碰撞的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性示出本公开一种示例性实施方式中数据碰撞方法的步骤流程图。

图2示意性示出本公开另一示例性实施方式中数据碰撞方法的部分步骤流程图。

图3示意性示出本公开另一示例性实施方式中数据碰撞方法的部分步骤流程图。

图4示出本公开示例性实施方式中数据碰撞方法在一应用场景下的流程示意图。

图5示出本公开示例性实施方式中数据碰撞方法在一应用场景下的并行处理原理示意图。

图6示意性示出本公开一种示例性实施方式中数据碰撞装置的组成框图。

图7示意性示出本公开另一示例性实施方式中数据碰撞装置的部分组成框图。

图8示意性示出本公开另一示例性实施方式中数据碰撞装置的组成框图。

图9示意性示出本公开示例性实施方式中一种程序产品的示意图。

图10示意性示出本公开示例性实施方式中一种电子设备的模块示意图。

具体实施方式

现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本公开的示例性实施方式中首先提供一种数据碰撞方法,该方法主要可以将第一原始数据持有方和第二原始数据持有方作为数据碰撞双方主体,通过数据碰撞获取第一原始数据和第二原始数据的数据交集,尤其是可以在不泄露隐私数据的情况下获知数据碰撞结果。

参考图1所示的方法流程,以第一原始数据持有方作为执行主体的数据碰撞方法主要可以包括以下步骤:

步骤s110.利用第一密钥对第一原始数据按照预设的可交换加密算法进行加密得到第一加密数据。

本步骤首先针对需要进行数据碰撞的第一原始数据进行加密以得到第一加密数据,加密的方法可以是利用第一密钥按照预设的可交换加密算法进行加密。可交换加密算法是指当使用不同密钥在不同加密顺序下进行多次加密时可以获得相同加密结果的一类特殊加密算法,例如rsa加密算法、pohlig-hellman加密算法等。具体而言,对于可交换加密算法e,当使用两个不同密钥k1和k2对原始数据x进行二次加密时,加密结果与加密顺序无关,即:ek1(ek2(x))=ek2(ek1(x))。

步骤s120.获取第二加密数据;其中,第二加密数据是利用第二密钥对第二原始数据按照可交换加密算法进行加密得到的。

与第一原始数据和第一加密数据相对应的,本步骤可以获取通过对第二原始数据进行加密得到的第二加密数据。其中,加密第二原始数据所使用的加密算法是与加密第一原始数据相同的可交换加密算法,但是加密第二原始数据使用的是不同于第一密钥的第二密钥。作为请求对第一原始数据以及第二原始数据进行数据碰撞的一个碰撞请求方,该数据碰撞方法的执行主体仅能持有第一原始数据和第一密钥,而无法获知对应于第二加密数据的第二原始数据,同时也无法获知用于加密第二原始数据的第二密钥,由此即可保证第二原始数据相对于该执行主体的隐私数据安全性。

步骤s130.利用第一密钥对第二加密数据按照可交换加密算法进行加密得到第三加密数据。

在由步骤s120获取到第二加密数据后,本步骤将利用第一密钥对第二加密数据进行再次加密,以得到第三加密数据。对第二加密数据进行再次加密时仍然采用与加密第一原始数据以及加密第二原始数据相同的可交换加密算法。

步骤s140.获取第四加密数据;其中,第四加密数据是利用第二密钥对第一加密数据按照可交换加密算法进行加密得到的。

本步骤将获取通过对第一加密数据进行再次加密得到的第四加密数据,加密第一加密数据的加密算法是与上述几个步骤中所使用的相同的可交换加密算法,但是所使用的密钥是第二密钥。举例而言,本步骤可以将由步骤s110得到的第一加密数据发送至第二密钥的持有方,然后再接收由第二密钥的持有方返回的对第一加密数据加密得到的第四加密数据。

步骤s150.获取第三加密数据和第四加密数据的加密数据交集,并基于加密数据交集确定第一原始数据和第二原始数据的原始数据交集。

针对步骤s130得到的第三加密数据以及步骤s140得到的第四加密数据,本步骤将对二者进行比较以得到相同的部分,这部分相同的数据即为加密数据交集。然后再基于该加密数据交集确定第一原始数据和第二原始数据的原始数据交集,第一原始数据的持有方在没有获知第二原始数据的情况下便完成了第一原始数据与第二原始数据的数据碰撞。相应的,第二原始数据持有方也可以采用同样的方式,在没有获知第一原始数据的情况下得到数据碰撞结果。

在本示例性实施方式提供的数据碰撞方法中,利用可交换加密算法分别对两个数据持有方各自持有并相互保密的第一原始数据和第二原始数据进行二次加密,并根据加密结果完成第一原始数据和第二原始数据的碰撞。整个数据碰撞过程自始至终完全没有涉及第一原始数据和第二原始数据的传送或转存,因此保证了数据的私密性和安全性,在不泄露各自隐私数据的同时解决了数据碰撞的问题。

如图2所示的方法流程,在以上示例性实施方式的基础上,步骤s150中的基于加密数据交集确定第一原始数据和第二原始数据的原始数据交集,可以进一步包括以下步骤:

步骤s210.获取第四加密数据与第一原始数据的映射关系。

第四加密数据是使用预设的可交换加密算法对第一原始数据进行二次加密得到的,其中第一次加密是使用第一密钥进行加密的,而第二次加密是使用第二密钥进行加密的。基于该加密关系可以得到第四加密数据与第一原始数据的映射关系。举例而言,本步骤中可以首先确定第一原始数据中各个数据项的序列位置信息,该序列位置信息将在两次加密过程中均保持不变,然后根据该序列位置信息可以建立第四加密数据与第一原始数据的映射关系。

步骤s220.根据映射关系以及加密数据交集确定第一原始数据和第二原始数据的原始数据交集。

基于步骤s210中建立的映射关系,可以使第一原始数据中的各个数据项与第四加密数据中的各个数据项形成一一对应的关系。针对第三加密数据和第四加密数据的加密数据交集中的每一个数据项,都可以基于映射关系找到第一原始数据中与之相对应的数据项,从而可以确定第一原始数据与第二原始数据的原始数据交集。

以基于第一原始数据中各个数据项的序列位置信息建立映射关系为例,为了避免泄露原始数据交集中数据项在第一原始数据内的位置信息,还可以在对第一原始数据进行加密之前,按照一预设的位置映射算法对第一原始数据中的各个数据项进行位置重排,其中该位置映射算法应当是保密的。在获得原始数据交集后,可以再利用与该位置映射算法相对应的反向位置映射算法恢复各个数据项的原始位置。通过位置重排的方式,一方面可以保证基于序列位置信息的映射关系的有效性,另一方面可以维持私密数据的保密性和安全性。

在本公开的一种示例性实施方式中,以上各个步骤所使用的可交换加密算法可以是具有交换性的单向函数,例如可以是y=xemodp;其中,x为原始数据,e为密钥,p为预设素数,y为加密数据。当预设素数p的数量级为21024时,可以保证该算法具有较高的安全性。这类基于指数取模运算的加密算法满足可交换性的要求而且具有正向加密速度快、反向解密困难的优点。

如图3所示的方法流程,在本公开的另一示例性实施方式中,应用于第一原始数据持有方的数据碰撞方法还可以进一步包括以下步骤:

步骤s310.利用预设的大数据并行处理框架读取待加密数据;其中,待加密数据包括第一原始数据和第二加密数据。

需要进行数据碰撞的原始数据通常具有较大的数据量,而且在多次加密过程中也涉及较大的计算量,因此本步骤可以利用预设的大数据并行处理框架(例如可以选用spark计算引擎)并行读取待加密数据,并在后续加密计算中进行并行数据处理。待加密数据即为需要进行加密处理的第一原始数据或者第二加密数据。

步骤s320.将待加密数据转化为大整数类数据,并将大整数类数据进行拆分以得到多个数据分片。

针对读取到的待加密数据,本步骤将对其进行格式转化以得到大整数类数据,例如java中的biginteger类。而且本步骤还可以将大整数类数据进行拆分以得到多个数据分片。

步骤s330.通过调用可交换加密算法分别对多个数据分片进行加密得到相应的加密数据。

通过调用以上实施例中所述的可交换加密算法,本步骤可以利用大数据并行处理框架分别对步骤s320中拆分得到的多个数据分片分别进行加密以得到相应的加密数据。

在本示例性实施方式中,通过对待加密数据进行格式转化和拆分可以适应大数据并行处理,提高加密运算速度。

以上各示例性实施方式提供的数据碰撞方法应用于持有第一原始数据的第一原始数据持有方,与第一原始数据持有方进行数据碰撞的是持有第二原始数据的第二原始数据持有方,第二原始数据持有方可以是与第一原始数据持有方进行数据通信的提供数据服务的服务器,也可以是与第一原始数据持有方进行数据碰撞的任意数据碰撞方。

在以上示例性实施方式的基础上,步骤s120中的获取第二加密数据,可以进一步包括:从持有第二原始数据和第二密钥的数据碰撞方获取第二加密数据。

在此基础上,步骤s140中的获取第四加密数据,可以进一步包括:向数据碰撞方发送第一加密数据;接收由数据碰撞方返回的根据第一加密数据加密得到的第四加密数据。然后还可以向数据碰撞方发送第三加密数据,以供数据碰撞方进行数据碰撞。如此一来,数据碰撞方在没有获取第一原始数据的情况下也可以得到数据碰撞结果。

需要说明的是,虽然以上示例性实施方式以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或者必须执行全部的步骤才能实现期望的结果。附加地或者备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

下面结合一具体应用场景对以上示例性实施方式中提供的数据碰撞方法做出详细说明。

假设甲方和乙方各自持有一批隐私数据,二者采用交换加密的方式进行数据碰撞,交换加密的过程如图4所示。其中甲方持有隐私数据a和加密函数f(x),乙方持有隐私数据b和加密函数f(y)。

1、甲方将数据a通过函数f(x)加密得到f(a),乙方将数据b通过函数g(x)加密得到g(b)。

2、甲方将f(a)传送给乙方,乙方将g(b)传送给甲方。

3、甲方将从乙方处得到的g(b)通过f(x)函数加密得到f(g(b))。

4、乙方将从甲方处得到的f(a)通过g(x)函数加密得到g(f(a))。

5、甲乙双方互相交换二次加密后的结果f(g(b))、g(f(a))。

6、甲方将上一步交换得来的g(f(a)),和之前计算得到的f(g(b))进行比较,找出交集,完成碰撞。

7、乙方将上一步交换得来的f(g(b)),和之前计算得到的g(f(a))进行比较,找出交集,完成碰撞。

f(x)和g(x)是一组符合特定要求的交换函数,这组函数的表达式相似,只有参数不一样。

为了保证二次加密交换之后数据碰撞结果准确,函数需要符合以下要求:

(1)不同的函数:f(x)≠g(x)。显然二者相同可以满足剩余条件,但是交换加密将形同虚设。

(2)可交换性:f(g(x))=g(f(x))。交换加密的基本要求。

(3)低碰撞:f(g(x))=g(f(y))在x≠y时的成立概率很低。当碰撞率过高时数据私密性难以保证。

(4)函数对非唯一:对于同一个f(x),存在g1(x)、g2(x)、…、gn(x)等多个函数满足以上各个条件,并且满足gi(x)≠gj(x),i≠j。对g(x)亦然。其中n越大,交换加密的安全程度越高。如果n=1,则确定f(x)时即确定了g(x),存在数据安全问题。

(5)无法根据映射关系破解:知道<x,f(x)>的映射关系,不能反推出f(x)的具体函数,对g(x)亦然。

基于以上各条件要求,本公开可以选用的一组函数为:

其中,e1和e2均小于p-1,p和(p-1)/2均为素数。

具体到以上各条件要求:

(1)不同的函数:f(x)≠g(x)对任意e1≠e2总是成立。

(2)可交换性:

(3)低碰撞性:由于f(x)的值域在{0,(p-1)/2}上是均匀分布的,碰撞概率是2/(p-1),当p是21024数量级时,碰撞概率极低。

(4)函数对非唯一:对同一个f(x),e1保持不变,e2的取值可以是{1,2,3,…,e1-1,e1+1,e1+2,…,p-2}。共有p-3种取值。当p是21024数量级时,遍历e2超出了当前计算机的计算能力,因此是安全的。

(5)无法根据映射关系破解:由于f(x)以及g(x)均是离散对数,知道某些<x,f(x)>的映射关系,不能反推出f(x)的具体函数。

在整个交换加密的过程中,甲乙双方分别持有的f(x)和g(x)的表达式是一致的,双方各自持有自己的e1和e2参数,大素数p为双方共同持有的参数。如流程图所示第一轮加密交换后双方得到f(a)和g(b),由于双方持有的加密函数参数不同,因此这一步双方无法完成碰撞,对于双方来说,数据也是保密的。随后甲、乙双方各自对交换得来的加密后的数据进行二次加密,并且将二轮加密后的数据再次进行交换,由于加密函数可交换的特性,经过二次加密后的数据是不可逆的,双方无法通过这个结果推断出原始的数据,但是由于交换加密函数的可交换性,二次加密后数据的碰撞结果与初始数据碰撞结果是一致的。这就达到了在不泄露原始数据的前提下,完成数据碰撞的目的。

通过以上描述可以发现交换加密具有以下特点:

(1)安全:由于持有的参数对对方保密,因此对方不可破解。

(2)对等:双方的行为是完全对等的。区别只是函数的部分参数不同。

(3)可验证:交换加密中,f(g(x))可以通过双方的解密求得x。因此可以验证真实的交集内容,以保证数据真实可信。

(4)可水平扩展:计算是完全并行的,可以通过增加机器数应对数据量增加的问题。

在生产环境场景下,涉及传输的数据量往往很大,因此要选取合适的技术和框架进行整个流程的工程化实现。spark是流行的大数据并行处理框架,其内存式计算可以提供良好的并行数据处理性能。本公开采用spark框架,并行读取每次数据,随后利用java的大数类实现大数的取模相乘,在保证位数足够大的安全性同时,提高加密速度。每一批次数据的具体流程如图5所示。将原始数据转化成为大整数类(biginteger),然后调用spark引擎并行读取数据,随后对每一个数据分片调用指数取模方法(modpow)实现加密交换函数指数取模的过程。对于交换加密的两次加密流程,除了数据来源一个是隐私数据,一个是对方加密一次后的数据,其他的流程都保持一致。

在本公开的示例性实施方式中,还提供一种数据碰撞装置。如图6所示,以第一原始数据持有方作为执行主体的数据碰撞装置600主要可以包括:第一加密模块610、第一获取模块620、第二加密模块630、第二获取模块640和交集确定模块650。

其中,第一加密模块610被配置为利用第一密钥对第一原始数据按照预设的可交换加密算法进行加密得到第一加密数据。第一加密模块610可以针对需要进行数据碰撞的第一原始数据进行加密以得到第一加密数据,加密的方法可以是利用第一密钥按照预设的可交换加密算法进行加密。可交换加密算法是指当使用不同密钥在不同加密顺序下进行多次加密时可以获得相同加密结果的一类特殊加密算法,例如rsa加密算法、pohlig-hellman加密算法等。具体而言,对于可交换加密算法e,当使用两个不同密钥k1和k2对原始数据x进行二次加密时,加密结果与加密顺序无关,即:ek1(ek2(x))=ek2(ek1(x))。

第一获取模块620被配置为获取第二加密数据;其中,第二加密数据是利用第二密钥对第二原始数据按照可交换加密算法进行加密得到的。与第一原始数据和第一加密数据相对应的,第一获取模块620可以获取通过对第二原始数据进行加密得到的第二加密数据。其中,加密第二原始数据所使用的加密算法是与加密第一原始数据相同的可交换加密算法,但是加密第二原始数据使用的是不同于第一密钥的第二密钥。作为请求对第一原始数据以及第二原始数据进行数据碰撞的一个碰撞请求方,该数据碰撞装置所在的执行主体仅能持有第一原始数据和第一密钥,而无法获知对应于第二加密数据的第二原始数据,同时也无法获知用于加密第二原始数据的第二密钥,由此即可保证第二原始数据相对于该执行主体的隐私数据安全性。

第二加密模块630被配置为利用第一密钥对第二加密数据按照可交换加密算法进行加密得到第三加密数据。在由第一获取模块620获取到第二加密数据后,第二加密模块630将利用第一密钥对第二加密数据进行再次加密,以得到第三加密数据。对第二加密数据进行再次加密时仍然采用与加密第一原始数据以及加密第二原始数据相同的可交换加密算法。

第二获取模块640被配置为获取第四加密数据;其中,第四加密数据是利用第二密钥对第一加密数据按照可交换加密算法进行加密得到的。第二获取模块640将获取通过对第一加密数据进行再次加密得到的第四加密数据,加密第一加密数据的加密算法是与上述几个模块中所使用的相同的可交换加密算法,但是所使用的密钥是第二密钥。举例而言,第二获取模块640可以将由第一加密模块610得到的第一加密数据发送至第二密钥的持有方,然后再接收由第二密钥的持有方返回的对第一加密数据加密得到的第四加密数据。

交集确定模块650被配置为获取第三加密数据和第四加密数据的加密数据交集,并基于加密数据交集确定第一原始数据和第二原始数据的原始数据交集。针对第二加密模块630得到的第三加密数据以及第二获取模块640得到的第四加密数据,交集确定模块650将对二者进行比较以得到相同的部分,这部分相同的数据即为加密数据交集。然后再基于该加密数据交集确定第一原始数据和第二原始数据的原始数据交集,第一原始数据的持有方在没有获知第二原始数据的情况下便完成了第一原始数据与第二原始数据的数据碰撞。相应的,第二原始数据持有方也可以采用同样的方式,在没有获知第一原始数据的情况下得到数据碰撞结果。

在本示例性实施方式提供的数据碰撞装置中,利用可交换加密算法分别对两个数据持有方各自持有并相互保密的第一原始数据和第二原始数据进行二次加密,并根据加密结果完成第一原始数据和第二原始数据的碰撞。整个数据碰撞过程自始至终完全没有涉及第一原始数据和第二原始数据的传送或转存,因此保证了数据的私密性和安全性,在不泄露各自隐私数据的同时解决了数据碰撞的问题。

如图7所示,在以上示例性实施方式的基础上,交集确定模块650可以进一步包括:映射获取模块710和映射确定模块720。

其中,映射获取模块710被配置为获取第四加密数据与第一原始数据的映射关系。第四加密数据是使用预设的可交换加密算法对第一原始数据进行二次加密得到的,其中第一次加密是使用第一密钥进行加密的,而第二次加密是使用第二密钥进行加密的。基于该加密关系可以得到第四加密数据与第一原始数据的映射关系。举例而言,映射获取模块710可以首先确定第一原始数据中各个数据项的序列位置信息,该序列位置信息将在两次加密过程中均保持不变,然后根据该序列位置信息可以建立第四加密数据与第一原始数据的映射关系。

映射确定模块720被配置为根据映射关系以及加密数据交集确定第一原始数据和第二原始数据的原始数据交集。基于映射获取模块710建立的映射关系,可以使第一原始数据中的各个数据项与第四加密数据中的各个数据项形成一一对应的关系。针对第三加密数据和第四加密数据的加密数据交集中的每一个数据项,都可以基于映射关系找到第一原始数据中与之相对应的数据项,从而可以确定第一原始数据与第二原始数据的原始数据交集。

如图8所示,在本公开的另一示例性实施方式中,位于第一原始数据持有方的数据碰撞装置600还可以进一步包括:并行读取模块810、数据转化模块820和分片加密模块830。

其中,并行读取模块810被配置为利用预设的大数据并行处理框架读取待加密数据;其中,待加密数据包括第一原始数据和第二加密数据。需要进行数据碰撞的原始数据通常具有较大的数据量,而且在多次加密过程中也涉及较大的计算量,因此并行读取模块810可以利用预设的大数据并行处理框架(例如可以选用spark计算引擎)并行读取待加密数据,并在后续加密计算中进行并行数据处理。待加密数据即为需要进行加密处理的第一原始数据或者第二加密数据。

数据转化模块820被配置为将待加密数据转化为大整数类数据,并将大整数类数据进行拆分以得到多个数据分片。针对读取到的待加密数据,数据转化模块820将对其进行格式转化以得到大整数类数据,例如java中的biginteger类。而且数据转化模块820还可以将大整数类数据进行拆分以得到多个数据分片。

分片加密模块830被配置为通过调用可交换加密算法分别对多个数据分片进行加密得到相应的加密数据。通过调用以上实施例中所述的可交换加密算法,分片加密模块830可以利用大数据并行处理框架分别对数据转化模块820拆分得到的多个数据分片分别进行加密以得到相应的加密数据。

在本示例性实施方式中,数据碰撞装置通过对待加密数据进行格式转化和拆分可以适应大数据并行处理,提高加密运算速度。

上述数据碰撞装置的其他细节已经在对应的数据碰撞方法中进行了详细的描述,因此此处不再赘述。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

在本公开的示例性实施方式中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现本公开的上述的数据碰撞方法。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码;该程序产品可以存储在一个非易失性存储介质(可以是cd-rom、u盘或者移动硬盘等)中或网络上;当所述程序产品在一台计算设备(可以是个人计算机、服务器、终端装置或者网络设备等)上运行时,所述程序代码用于使所述计算设备执行本公开中上述各示例性实施例中的方法步骤。

参见图9所示,根据本公开的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑磁盘只读存储器(cd-rom)并包括程序代码,并可以在计算设备(例如个人计算机、服务器、终端装置或者网络设备等)上运行。然而,本公开的程序产品不限于此。在本示例性实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或者多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。

可读存储介质例如可以为但不限于电、磁、光、电磁、红外线或半导体的系统、装置或器件、或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件或者上述的任意合适的组合。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任意可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如c语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户计算设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络(包括局域网(lan)或广域网(wan)等)连接到用户计算设备;或者,可以连接到外部计算设备,例如利用因特网服务提供商来通过因特网连接。

在本公开的示例性实施方式中,还提供一种电子设备,所述电子设备包括至少一个处理器以及至少一个用于存储所述处理器的可执行指令的存储器;其中,所述处理器被配置为经由执行所述可执行指令来执行本公开中上述各示例性实施例中的方法步骤。

下面结合图10对本示例性实施方式中的电子设备1000进行描述。电子设备1000仅仅为一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

参见图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:至少一个处理单元1010、至少一个存储单元1020、连接不同系统组件(包括处理单元1010和存储单元1020)的总线1030、显示单元1040。

其中,存储单元1020存储有程序代码,所述程序代码可以被处理单元1010执行,使得处理单元1010执行本公开中上述各示例性实施例中的方法步骤。

存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元1021(ram)和/或高速缓存存储单元1022,还可以进一步包括只读存储单元1023(rom)。

存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用各种总线结构中的任意总线结构的局域总线。

电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可以与一个或者多个使得用户可以与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其他计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(i/o)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(lan)、广域网(wan)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1060可以通过总线1030与电子设备1000的其他模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

本领域技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

上述所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中,如有可能,各实施例中所讨论的特征是可互换的。在上面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组件、材料等。在其它情况下,不详细示出或描述公知结构、材料或者操作以避免模糊本公开的各方面。

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