具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为解决背景技术部分陈述的现有的用户个人信息及隐私安全得不到安全保障的问题,本申请实施例提供了一种数据处理方法及装置,以下结合附图,详细说明本申请各实施例提供的技术方案。
本申请实施例提供一种数据处理方法,参见图1所示,该方法由参与通信的多个设备中的第一设备执行,可具体包括:
步骤101:基于第一数据集合生成第一目标数据集合,第一目标数据集合中包括基于第一数据集合中的元素生成的第一密文元素。
步骤103:向第二设备发送第一目标数据集合。
步骤105:接收来自于第二设备的第二目标数据集合,第二目标数据集合中包括基于第一目标数据集合和第二数据集合生成的第二密文元素,第二数据集合与第一数据集合为第三数据集合的不同子集。
步骤107:在基于第二目标数据集合,确定第一数据集合与第二数据集合的交集的势满足预设条件的情况下,向第二设备发送目标信息,目标信息用于第二设备确定交集中的元素。
在本申请实施例中,对于相互通信的两个设备中的第一设备,可以基于私有的第一数据集合生成第一目标数据集合,该第一目标数据集合中的元素包括基于该第一数据集合中的元素生成的第一密文元素,即在第一设备与第二设备进行通信交互的过程中,先将私有的第一数据集合中的元素处理为密文元素后再发送到第二设备,以使第二设备基于该第一目标数据集合和其私有的第二数据集合生成第二密文元素,进而在接收来自第二设备的包括该第二密文元素的第二目标数据集合后,可以基于该第二目标数据集合确定从属于同一全量数据集合(即第三数据集合)的第一数据集合和第二数据集合间的交集的势,也就是说,在第一设备和第二设备互相无需获知对方私有的实际数据的情况下,即在不破解对方私有的数据的情况下,可以准确的确定各自私有的数据集合间的交集的势,如此,可以确保不同设备间的通信交互过程中数据具有较高的安全性,使得各自私有的数据得到有效的保护,避免泄露。
进一步地,第一设备会在确定二者间的交集的势满足预设条件的情况下,才向第二设备提供能够供其确定第一数据集合和第二数据集合的交集中的元素的目标信息,如此,可以在求取不同设备各自私有的数据集合间的交集时,能够更大程度的保护各设备分别私有的数据,使得任何一个参与方均无法获取到多于输出规定的数据,从而可以有效地保护用户个人信息及隐私的安全,达到提升用户体验的目的。
可选的,上述第三数据集合中的元素至少可以为第一数据集合中的元素和第二数据集合中的元素的并集;进一步地,第一数据集合中的元素和第二数据集合中的元素可以包括相同属性或类别的元素,举例来说,第一数据集合中的元素包括身高属性或类别的元素和性别属性或类别的元素,第二数据集合中的元素包括身高属性或类别的元素,则第一数据集合和第二数据集合间可能具有属于身高属性或类别的数据的交集。
其中,集合的势是用来度量集合规模大小的属性的,具体的,对于有限集合,可用集合的元素个数来进行度量,简单来说,势即指集合中的元素的个数;如此,第一数据集合和第二数据集合的交集的势,可以用该交集中的元素的个数表示,以及第一数据集合的势可以用该第一数据集合中的元素的个数表示。
可选的,在本申请实施例的数据处理方法中,还可以包括如下步骤:
若交集的势与第一数据集合的势的差值大于预设值,则确定交集的势满足预设条件。
可以理解,在第一数据集合和第二数据集合的交集的势与第一数据集合的势相差较大即大于预设值时,可以确定交集的势满足预设条件,也就是说,在第一数据集合和第二数据集合间的交集中元素的个数比第一数据集合中元素的个数小到一定程度时,才可以向第二设备发送用于确定交集中的元素的目标信息,以避免向第二设备过多的透露第一数据集合中的元素。
需要说明的是,在本申请实施例的数据处理方法中,第一数据集合的和第二数据集合的交集的势比第一数据集合的势小得越多越有利于用户个人信息及隐私的保护;举例来说,可以在交集的势为第一数据集合的势的十分之一或者其他适当的值的情况下,向第二设备发送该目标信息。如此可知,本申请实施例的数据处理方法,安全性更高,保证该隐私保护的集合交集计算方法能够在恶意参与者存在的情况下,安全的计算出集合间的交集,较之同类方案安全性更高。
可选的,上述各数据集合中的元素可以为用户的隐私数据,则通过本申请实施例的数据处理方法,能够在更大程度保证用户数据的安全性,大大降低数据泄露的机率的情况下,支持实现集合间的求交运算。
可选的,在本申请实施例的数据处理方法中,上述步骤101,可以具体执行为如下内容:
将第一数据集合中的元素分别编码为第一编码元素;
基于加密密钥对每个第一编码元素进行加密,生成第一密文元素;
根据第一密文元素和第一随机元素,生成第一目标数据集合;
其中,第一密文元素在第一目标数据集合中的位置与第一数据集合中的元素在第三数据集合中的位置相同,第一随机元素在第一目标数据集合中的位置与第三数据集合中除第一数据集合中的元素外的其他元素在第三数据集合中的位置相同,第一密文元素和第一随机元素的总数等于第三数据集合中的元素的总数。
在该实施例中,通过采用一定的编码方式将第一数据集合中的元素均编码为与该编码方式对应的第一编码元素,以在对元素进行加密处理前首先隐藏元素的本质,避免因为用于解密的密钥泄露导致第一设备私有的第一数据集合中的元素泄露,也就是说,通过先后采用编码和加密的方式起到对第一数据集合中的元素的双重保护。
另外,为了隐藏第一数据集合中实际具有的元素的数量(即隐藏第一数据集合的势),可以于将第一目标数据集合发送到第二设备前,在第一目标数据集合中加入一定数量的随机元素,以进一步避免向第二设备泄露第一设备私有的数据;而且,为了便于求交运算,可以使第一目标数据集合中最终的元素的总数与作为全量数据集合的第三数据集合中元素的总数相同,并确保经对第一数据集合中的元素编码、加密得到的第一密文元素在该第一目标数据集合中所处的位置与对应的第一数据集合中的元素在第三数据集合中所处的位置保持一致。
举例来说,第三数据集合为{160,170,172,174,175,180,185,186},而作为该第三数据集合的子集的第一数据集合可以为{160,170,175,185},则在将第一数据集合中的元素分别进行编码、加密处理为集合{a,b,c,d},由于第一数据集合中的各元素在第三数据集合中对应的位置为1、2、5、7,则在集合{a,b,c,d}中加入随机元素后得到的第一目标数据集合可以为{a,b,9,6,c,3,d,7}。
进一步地,可选的,在本申请实施例的数据处理方法中,通过1-r编码方式将第一数据集合中的元素分别编码为第一编码元素,即编码为1,其他位置的元素编码为随机数rn,进而在加密时对各个“1”进行加密。其中,在本申请实施例的数据处理方法中,第一设备可以预先构造私钥/公钥对,即解密密钥/加密密钥对,具体可以使用公钥对上述各第一编码元素进行加密,而私钥留存用于解密。
需要说明的是,采用1-r编码方式对第一数据集合中的元素编码实质即为将第一数据集合中的明文编码为1,并填充随机数rn的编码方式,当然,该随机数rn可以添加也可以不添加,既可以达到与第三数据集合中的元素的总数相同的程度,也可以在添加完随机数后总数小于第三数据集合中的元素的总数。
另外,第一设备中无需存储第三数据集合,仅需知道第一数据集合中的元素在第三数据集合中所处的位置和第三数据集合中元素的总数等必要信息即可,也就是说,可以将第三数据集合存储在与相互通信的第一设备和第二设备不同的设备中;如此,节省存储空间的同时,可以进一步保证基于同一全量数据集合的通信过程中的各设备私有的数据的安全性。
以上述例子进行说明,对第一数据集合{160,170,175,185}进行1-r编码处理为{1,1,r1,r2,1,r3,1,r4},进而对其中的“1”元素进行加密得到第一目标数据集合{a,b,r1,r2,c,r3,d,r4}。
需要说明的是,现有方案中进行多方安全计算时,通常会采用多项式的形式表示各通信参与方私有的数据集合,以及通过多项式表示各种集合运算,其中,不论是将数据集合表示为多项式的操作还是通过多项式进行集合间运算的操作,都较复杂,导致数据处理效率低,且会占用较多的计算资源。而采用本申请实施例中通过编码的方式处理通信参与方私有的数据集合中的元素,比如上述1-r编码方式,运算更加简单方便,具有计算效率高、复杂性低的优点,从而可以有效的提升数据处理的效率,同时确保数据的私密性和安全性。
可选的,在本申请实施例的数据处理方法中,上述第一目标数据集合具体可以为数组,以使其中的元素按序进行排列,从而便于元素在第一目标数据集合中的位置与第三数据集合中相应元素的位置相对应,进而便于实现该实施例中的求交运算。
可选的,在本申请实施例的数据处理方法中,上述基于加密密钥对每个第一编码元素进行加密,生成第一密文元素的步骤,可以具体执行为如下内容:
采用加密密钥和每个第一编码元素对应的第一随机数,对每个第一编码元素进行加密,生成第一密文元素,任意两个第一编码元素对应的第一随机数不同。
可以理解,由于将第一数据集合中的元素均对应编码成第一编码元素,则为了区分不同的第一编码元素,可以为每个第一编码元素配置随机数,并确保为任意两个第一编码元素配置的随机数不同,特别是在第一编码元素为同一元素的情况下。当然,本申请实施例中上述第一编码元素也可以为特定的某几个元素,能够确保实现本申请实施例的集合间的求交运算即可。
具体的,上述采用加密密钥和每个第一编码元素对应的第一随机数,对每个第一编码元素进行加密,生成第一密文元素的过程,可以为:
在一个具体实施例中,可以将第一编码元素与对应的第一随机数进行乘积运算,然后采用加密密钥对乘积结果进行加密,以得到对应的第一密文元素。
在另一个具体实施例中,可以先采用加密密钥对每个第一编码元素进行加密,在将与每个第一编码元素对应的随机数与加密结果进行乘积运算,以得到对应的第一密文元素。
可选的,在本申请实施例的数据处理方法中,上述第二目标数据集合中还包含第二随机元素,第二密文元素由第三密文元素与第一目标数据集合中的目标元素基于预设运算得到,第三密文元素基于加密密钥和第二编码元素得到,第二编码元素由第二数据集合中的元素编码得到,目标元素在第一目标数据集合中的位置与第二数据集合中的元素在第三数据集合中的位置相同。
可以理解,接收自第二设备的第二目标数据集合中除了第二密文元素,还可以包括一定数量的随机元素,以向第一设备隐藏其第二数据集合中实际具有的元素的数量(即隐藏第二数据集合的势),以进一步避免向第一设备泄露第二设备私有的数据;如此,第一设备和第二设备在通信过程中相互之间隐藏各自的数据的实质内容以及数量,保证数据安全的同时,能够准确地实现集合间的求交运算。
其中,来自第二设备的第二目标集合中的第二密文元素的生成过程可以包括:
将第二设备私有的第二数据集合中的元素分别编码为第二编码元素;基于共享自第一设备的加密密钥和该第二编码元素得到第三密文元素,具体地,第一设备可以通过广播的形式将加密密钥共享给第二设备使用;由于第一数据集合和第二数据集合为同一第三数据集合的不同子集,可以根据第二数据集合中的元素对应在第三数据集合中的位置,从第一目标数据集合中选取目标元素,也就是说,需要在第一目标数据集合中选取的目标元素在该第一目标数据集合中所处的位置需要与第二数据集合中的元素在第三数据集合中的位置一致,以便于实现第一数据集合和第二数据集合间的求交运算。
上述将第二设备私有的第二数据集合中的元素分别编码为第二编码元素的步骤,可以同样采用1-r编码方式进行编码得到第二编码元素;以及基于加密密钥和该第二编码元素得到第三密文元素的步骤,可以同样为每个第二编码元素配置对应的随机数,并确保为任意两个第二编码元素配置的随机数不同,以区分不同的第二编码元素,进而结合基于加密密钥的加密操作得到第三密文元素。
以上述例子进行说明,第三数据集合为{160,170,172,174,175,180,185,186},第二数据集合为{170,172,174,175},则第二数据集合中的元素在第三数据集合中的位置为2、3、4、5,则在第一目标数据集合为{a,b,r1,r2,c,r3,d,r4}时,基于上述位置从该第一目标数据集合中选择出的目标元素为{b,r1,r2,c};另外,通过对第二数据集合的元素进行上述编码、加密操作后得到{e,f,g,h},则进一步地,结合{b,r1,r2,c}和{e,f,g,h}进行预设运算即可得到第二密文元素,进而根据第二密文元素和第二随机元素得到第二目标数据集合。
进一步地,本申请实施例的数据处理方法,还可以包括如下步骤:
采用与加密密钥对应的解密密钥对第二目标数据集合中的元素进行解密;
将第二目标数据集合中解密结果包括第一编码元素的元素的个数,确定为交集的势。
可以理解,采用与上述加密密钥对应的解密密钥对来自第二设备的第二目标数据集合中的每个元素进行解密,并统计能够解密出用于生成第一目标数据集合中的第一密文元素的第一编码元素的元素的个数,作为交集的势。如此,同样不需要进行复杂的多项式运算,即可以准确且高效的计算出第一数据集合和第二数据集合间的交集的势。
可选的,在本申请实施例的数据处理方法中,上述目标信息包括解密结果包括第一编码元素的元素在第二目标数据集合中的位置。
可以理解,在该实施例中,若确定第一数据集合和第二数据集合的交集的势满足预设条件即允许第二设备获知求交结果时,无需将交集中具体包括的元素告知第二设备,而是可以通过向第二设备反馈对第二目标数据集合中的元素的解密结果包括第一编码元素的元素在该第二目标数据集合中的位置,以使第二设备根据该位置依次对应反推出交集中的元素在第二数据集合中的位置,进而对应获知交集中的元素;如此,整个过程中,第一设备和第二设备间不会进行任何形式的明文传输,充分保证多方参与的通信交互过程中各自私有的数据的安全性,同时不会由于对隐私数据的充分保护而影响设备间的通信。
本申请实施例还提供一种数据处理方法,参见图2所示,该方法由参与通信的多个设备中的第二设备执行,可具体包括:
步骤201:接收第一设备基于第一数据集合生成的第一目标数据集合,第一目标数据集合中包括基于第一数据集合中的元素生成的第一密文元素。
步骤203:根据第一目标数据集合和第二数据集合生成第二目标数据集合,第二目标数据集合中包括第二密文元素,第二数据集合和第一数据集合为第三数据集合的不同子集。
步骤205:将第二目标数据集合发送至第一设备。
步骤207:根据从第一设备接收到的目标信息,确定第二数据集合与第一数据集合的交集中的元素,目标信息由第一设备在基于第二目标数据集合确定交集的势满足预设条件的情况下发送。
在本申请实施例中,对于相互通信的两个设备中的第二设备,可以在接收到第一设备基于其私有的第一数据集合生成第一目标数据集合后,根据该第一目标数据集合和其私有的第二数据集合生成第二目标数据集合,并发送至第一设备,其中,该第一目标数据集合中的元素包括基于该第一数据集合中的元素生成的第一密文元素,第二目标数据集合中的元素包括第二密文元素,即在第一设备与第二设备进行通信交互的过程中,相互之间基于密文形式进行数据交互,以及第二目标数据集合用于第一设备确定从属于同一全量数据集合(即第三数据集合)的第一数据集合和第二数据集合间的交集的势,也就是说,在第一设备和第二设备互相无需获知对方私有的实际数据的情况下,即在不破解对方私有的数据的情况下,可以准确的确定各自私有的数据集合间的交集的势,如此,可以确保不同设备间的通信交互过程中数据具有较高的安全性,使得各自私有的数据得到有效的保护,避免泄露。
进一步地,可以根据第一设备在确定二者间的交集的势满足预设条件时反馈的目标信息,确定第一数据集合和第二数据集合的交集中的元素,如此,可以在求取不同设备各自私有的数据集合间的交集时,能够更大程度的保护各设备分别私有的数据,使得任何一个参与方均无法获取到多于输出规定的数据,从而可以有效地保护用户个人信息及隐私的安全,达到提升用户体验的目的。
可选的,上述第三数据集合中的元素至少可以为第一数据集合中的元素和第二数据集合中的元素的并集;进一步地,第一数据集合中的元素和第二数据集合中的元素可以包括相同属性或类别的元素,举例来说,第一数据集合中的元素包括身高属性或类别的元素和性别属性或类别的元素,第二数据集合中的元素包括身高属性或类别的元素,则第一数据集合和第二数据集合间可能具有属于身高属性或类别的数据的交集。
其中,集合的势是用来度量集合规模大小的属性的,具体的,对于有限集合,可用集合的元素个数来进行度量,简单来说,势即指集合中的元素的个数;如此,第一数据集合和第二数据集合的交集的势,可以用该交集中的元素的个数表示,以及第一数据集合的势可以用该第一数据集合中的元素的个数表示。
另外,可选的,第一设备在交集的势与第一数据集合的势的差值大于预设值的情况下,可以确定交集的势满足预设条件。也就是说,在第一数据集合和第二数据集合间的交集中元素的个数比第一数据集合中元素的个数小到一定程度时,第一设备才可以向第二设备发送确定交集中的元素的目标信息,以避免第二设备获取到第一数据集合中过多的元素。
需要说明的是,在本申请实施例的数据处理方法中,第一数据集合的和第二数据集合的交集的势比第一数据集合的势小得越多越有利于用户个人信息及隐私的保护;比如,交集的势为第一数据集合的势的十分之一或者其他适当的值,以确保进行安全性更高的数据处理,从而保证该隐私保护的集合交集计算方法能够在恶意参与者存在的情况下,安全的计算出集合间的交集,较之同类方案安全性更高。
可选的,上述各数据集合中的元素可以为用户的隐私数据,则通过本申请实施例的数据处理方法,能够在更大程度保证用户数据的安全性,大大降低数据泄露的机率的情况下,支持实现集合间的求交运算。
可选的,在本申请实施例的数据处理方法中,上述步骤203,可以具体执行为如下内容:
将第二数据集合中的元素分别编码为第二编码元素;
基于加密密钥对每个第二编码元素进行加密,生成第三密文元素;
根据第三密文元素和第一目标数据集合中的元素,生成第二密文元素;
根据第二密文元素,生成第二目标数据集合。
在该实施例中,通过采用一定的编码方式将第二数据集合中的元素均编码为与该编码方式对应的第二编码元素,以在对元素进行加密处理前首先隐藏元素的本质,也就是说,通过先后采用编码和加密的方式起到对第二数据集合中的元素的双重保护。进而根据经编码、加密处理得到的第三密文元素和接收自第一设备的第一目标数据集合中的元素得到用于生成第二目标数据集合的第二密文元素。
下面举例说明得到第三密文元素的过程,第三数据集合为{160,170,172,174,175,180,185,186},而作为该第三数据集合的子集的第二数据集合可以为{170,172,174,175},具体可以通过1-r编码方式将第二数据集合中的元素分别编码为第二编码元素,即编码为1,进而在加密时对各个“1”进行加密,得到第三密文元素{e,f,g,h},其中,加密时使用的加密密钥为第一设备共享的,比如以广播的形式共享加密密钥。
需要说明的是,采用1-r编码方式将第二数据集合中的元素即明文编码为1后,可以不添加随机数rn。
另外,现有方案中进行多方安全计算时,通常会采用多项式的形式表示各通信参与方私有的数据集合,以及通过多项式表示各种集合运算,其中,不论是将数据集合表示为多项式的操作还是通过多项式进行集合间运算的操作,都较复杂,导致数据处理效率低,且会占用较多的计算资源。而采用本申请实施例中通过编码的方式处理通信参与方私有的数据集合中的元素,比如上述1-r编码方式,运算更加简单方便,具有计算效率高、复杂性低的优点,从而可以有效的提升数据处理的效率,同时确保数据的私密性和安全性。
可选的,在本申请实施例的数据处理方法中,上述基于加密密钥对每个第二编码元素进行加密,生成第三密文元素的步骤,可以具体执行为如下内容:
采用加密密钥和每个第二编码元素对应的第二随机数,对每个第二编码元素进行加密,生成第三密文元素,任意两个第二编码元素对应的第二随机数不同。
可以理解,由于将第二数据集合中的元素均对应编码成第二编码元素,则为了区分不同的第二编码元素,可以为每个第二编码元素配置随机数,并确保为任意两个第二编码元素配置的随机数不同,特别是在第二编码元素为同一元素的情况下。当然,本申请实施例中上述第二编码元素也可以为特定的某几个元素,能够确保实现本申请实施例的集合间的求交运算即可。
具体的,上述采用加密密钥和每个二编码元素对应的第二随机数,对每个第二编码元素进行加密,生成第三密文元素的过程,可以为:
在一个具体实施例中,可以将第二编码元素与对应的第二随机数进行乘积运算,然后采用加密密钥对乘积结果进行加密,以得到对应的第三密文元素。
在另一个具体实施例中,可以先采用加密密钥对每个第二编码元素进行加密,在将与每个第二编码元素对应的随机数与加密结果进行乘积运算,以得到对应的第三密文元素。
可选的,在本申请实施例的数据处理方法中,上述第一目标数据集合还包括第一随机元素,第一密文元素在第一目标数据集合中的位置与第一数据集合中的元素在第三数据集合中的位置相同,第一随机元素在第一目标数据集合中的位置与第三数据集合中除第一数据集合中的元素外的其他元素在第三数据集合中的位置相同,且第一密文元素和第一随机元素的总数与第三数据集合中的元素的总数相等。
可以理解,接收自第一设备的第一目标数据集合中的元素除了包括第一密文元素外还可以包括随机元素,以进一步避免向第二设备泄露第一设备私有的数据;而且,为了便于求交运算,第一目标数据集合中最终的元素的总数与作为全量数据集合的第三数据集合中元素的总数相同,且第一密文元素在该第一目标数据集合中所处的位置与对应的第一数据集合中的元素在第三数据集合中所处的位置保持一致。
以上述例子进行说明,第三数据集合为{160,170,172,174,175,180,185,186},而作为该第三数据集合的子集的第一数据集合可以为{160,170,175,185},则在将第一数据集合中的元素分别进行1-r编码以及加密处理为第一目标数据集合{a,b,r1,r2,c,r3,d,r4},由于第一数据集合中的各元素在第一目标数据集合和第三数据集合中对应的位置均为1、2、5、7。
可选的,在本申请实施例的数据处理方法中,上述根据第三密文元素和第一目标数据集合中的元素,生成第二密文元素的步骤,可以具体执行为如下内容:
提取第一目标数据集合中目标位置上的目标元素,目标位置为第二数据集合中的元素在第三数据集合中的位置;
将目标元素和第三密文元素进行预设运算,以生成第二密文元素。
可以理解,由于第一数据集合和第二数据集合为同一第三数据集合的不同子集,可以根据第二数据集合中的元素对应在第三数据集合中的位置,从第一目标数据集合中选取目标元素,也就是说,需要在第一目标数据集合中选取的目标元素在该第一目标数据集合中所处的目标位置需要与第二数据集合中的元素在第三数据集合中的位置一致,以便于实现第一数据集合和第二数据集合间的求交运算;进而通过对提取出的第一目标密文元素和第三密文元素进行预设运算,比如乘积运算,得到第二目标数据集合中包括的第二密文元素。
以上述例子进行说明,第一目标数据集合{a,b,r1,r2,c,r3,d,r4},第二数据集合{170,172,174,175}中的元素在第三数据集合中所处的位置分别为2、3、4、5,则在第一目标数据集合中选择出的目标元素为{b,r1,r2,c},可见,目标元素既可以为第一目标数据集合中的密文元素也可以为随机元素,其中,目标位置即为2、3、4、5,而对第二数据集合中的元素进行编码、加密处理后得到的第三密文元素为{e,f,g,h},则将对应位置上的密文元素进行乘积运算后得到的第二密文元素为{(b·e),(r1·f),(r2·g),(c·h)}。
另外,第二设备中无需存储第三数据集合,仅需知道第二数据集合中的元素在第三数据集合中所处的位置等必要信息即可,也就是说,可以将第三数据集合存储在与相互通信的第一设备和第二设备不同的设备中;如此,节省存储空间的同时,可以进一步保证基于同一全量数据集合的通信过程中的各设备私有的数据的安全性。
进一步地,上述根据第二密文元素,生成第二目标数据集合的步骤,可以具体执行为如下内容:
基于第二密文元素和第二随机元素,生成第二目标数据集合。
可以理解,为了向第一设备隐藏第二数据集合中实际具有的元素的数量(即隐藏第二数据集合的势),以进一步避免向第一设备泄露第二设备私有的数据,第二目标数据集合中除了第二密文元素,还可以包括一定数量的随机元素;如此,第一设备和第二设备在通信过程中相互之间隐藏各自的数据的实质内容以及数量,保证数据安全的同时,能够准确地实现集合间的求交运算。
进一步地,可以将第二密文元素和第二随机元素打乱顺序,以得到该第二目标数据集合。
可选的,在本申请实施例的数据处理方法中,上述第二目标数据集合具体也可以为数组,以便于实现该实施例中的求交运算。
可选的,在本申请实施例的数据处理方法中,上述目标信息包括第一设备在解密第二目标数据集合中的元素时,解密结果包括第一编码元素的元素在第二目标数据集合中的位置,第一编码元素为对所述第一数据集合中的元素进行编码得到,第一密文元素基于加密密钥对第一编码元素进行加密得到。
可以理解,在该实施例中,若接收到第一设备发送的目标信息,且在目标信息为第一设备在解密第二目标数据集合中的元素时,解密结果包括第一编码元素的元素在第二目标数据集合中的位置时,可以根据该位置依次对应反推出交集中的元素在第二数据集合中的位置,进而对应获知交集中的元素如此,整个过程中,第一设备和第二设备间不会进行任何形式的明文传输,充分保证多方参与的通信交互过程中各自私有的数据的安全性,同时不会由于对隐私数据的充分保护而影响设备间的通信。
以上述例子进行说明,基于第二密文元素为{(b·e),(r1·f),(r2·g),(c·h)}和第二随机元素m和n得到的第二目标数据集合为{m,(r2·g),(r1·f),n,(b·e),(c·h)},则当第一设备采用与加密密钥对应的解密密钥对该第二目标数据集合中的各元素进行解密时,可以从元素(b·e)和(c·h)中解密出第一编码元素,则说明第一数据集合和第二数据集合的交集的势为2,2比第一数据集合的势5小,且可知元素(b·e)和(c·h)在第二目标数据集合中的位置为5和6(即目标信息);进一步地,第二设备在获知到该位置后,可以在第二目标数据集合中定位元素(b·e)和(c·h),进而可以从第二密文元素的集合{(b·e),(r1·f),(r2·g),(c·h)}中定位到同样的元素(b·e)和(c·h),进一步可以从第三密文元素的集合{e,f,g,h}中定位到处于第1位和第4位的e和h,则可以基于该位置和第二数据集合得知其与第一数据集合的交集中的元素为{170,175}。
下面结合图3对由多个参与方参与的安全求交的数据处理过程进行详细说明,具体以图中所示的参与方A和B间的通信为例,图中所示的参与方A可以代表第一设备,参与方B可以代表第二设备,其中四个参与方的数据组成全量数据集合即第三数据集合可以为{1,2,4,6,9,11,12,14,17,20,25},而参与方A私有的第一数据集合可以为{2,6,9,14,17},且第一数据集合中的元素在第三数据集合中所处的位置为2、4、5、8、9,以及参与方B私有的第二数据集合可以为{9,20,25},且第二数据集合中的元素在第三数据集合中所处的位置为5、10、11。
当在A和B均不获取对方的私密数据的情况下,对第一数据集合和第二数据集合进行求交运算时,由参与方A构造私钥/公钥对,并保存好私钥,广播公钥,以与其他各参与方共享该公钥,作为共同的加密密钥使用。
参与方A先将第一数据集合中的元素进行1-r编码得到集合{r1,1,r2,1,1,r3,r4,1,1,r5,r6},然后对其中的第一编码元素“1”基于加密密钥和随机数A1、A2、A3、A4、A5加密得到第一目标数据集合{r1,E1,r2,E2,E3,r3,r4,E4,E5,r5,r6},其中,E1、E2、E3、E4、E5即为第一密文元素,r1、r2、r3、r4、r5、r6即为第一随机元素,然后将该第一目标数据集合发送给参与方B。
参与方B可以将第二数据集合中的元素进行1-r编码得到集合{1,1,1},然后对其中的第二编码元素“1”基于加密密钥和随机数B1、B2、B3加密得到第三密文元素{F1,F2,F3}。当参与方B接收到第一目标数据集合{r1,E1,r2,E2,E3,r3,r4,E4,E5,r5,r6},根据第二数据集合中的元素在第三数据集合中所处的位置5、10、11(即目标位置),即可从第一目标数据集合中提取出目标元素{E5,r5,r6};进一步地,对相同位置上的第三密文元素和目标元素进行乘积运算,增加第二随机元素C1、C2,且打乱顺序后即可得到第二目标数据集合{F1·E5,C2,F3·r6,F2·r5,C1}。
参与方A使用私钥对第二目标数据集合{F1·E5,C2,F3·r6,F2·r5,C1}中的各元素进行解密,由于元素C2、C1为随机元素未采用公钥进行加密处理则无法使用私钥解密,而使用私钥对元素F3·r6、F2·r5解密得到的编码元素1分别对应于随机数B3、B2,并非对第一数据集合中的元素进行编码得到的第一编码元素,也就是说,仅在使用元素私钥对元素F1·E5解密可以得到对应于随机数A5的编码元素1(即第一编码元素);由此可知,对第二目标数据集合中的元素进行解密,解密结果包括所述第一编码元素的元素的个数为1,即第一数据集合和第二数据集合的交集的势为1,其比第一数据集合的势11小10,若预设值为8,则可以向参与方B发送元素F1·E5在第二目标数据集合中的位置1(即目标信息)。
参与方B在接收到参与方A发送的位置时,可以依次反推出第一数据集合和第二数据集合的交集中的元素在其第二数据集合中的位置为1,则该位置对应的元素5即为交集中的元素。
其中,上述数据集合可以表示为数组的形式,以便于排序。
同理,其他参与方之间的求交运算的数据处理工程同上述描述的内容。
综上可知,通过本申请实施例的数据处理方法,可以实现数据集合间的安全求交运算,即能够更大程度地分别保护参与方各方的隐私数据的安全,在无需获取对方所拥有的隐私数据的前提下,能够完成高效且准确的求交查询运算,运算结果使得参与方各方均无法获得多于规定输出的信息。具体的,可以将该方案应用于公民信息安全存储保护平台的建设,提高对公民信息的保护力度,提升用户体验的同时,可以为建设安全的互联网生态环境贡献一份力。
本申请实施例还提供一种数据处理装置,参见图4所示,该装置应用于参与通信的多个设备中的第一设备,可具体包括:
生成模块301,用于基于第一数据集合生成第一目标数据集合,第一目标数据集合中包括基于第一数据集合中的元素生成的第一密文元素;
发送模块303,用于向第二设备发送第一目标数据集合;
接收模块305,用于接收来自于第二设备的第二目标数据集合,第二目标数据集合中包括基于第一目标数据集合和第二数据集合生成的第二密文元素,第二数据集合与第一数据集合为第三数据集合的不同子集;
处理模块307,用于在基于第二目标数据集合,确定第一数据集合与第二数据集合的交集的势满足预设条件的情况下,向第二设备发送目标信息,目标信息用于第二设备确定交集中的元素。
可选的,在本申请实施例的数据处理装置中,上述生成模块301,可具体包括:
编码子模块,用于将第一数据集合中的元素分别编码为第一编码元素;
加密子模块,用于基于加密密钥对每个第一编码元素进行加密,生成第一密文元素;
生成子模块,用于根据第一密文元素和第一随机元素,生成第一目标数据集合;
其中,第一密文元素在第一目标数据集合中的位置与第一数据集合中的元素在第三数据集合中的位置相同,第一随机元素在第一目标数据集合中的位置与第三数据集合中除第一数据集合中的元素外的其他元素在第三数据集合中的位置相同,第一密文元素和第一随机元素的总数等于第三数据集合中的元素的总数。
可选的,在本申请实施例的数据处理装置中,上述加密子模块,具体用于:
采用加密密钥和每个第一编码元素对应的第一随机数,对每个第一编码元素进行加密,生成第一密文元素,任意两个第一编码元素对应的第一随机数不同。
可选的,在本申请实施例的数据处理装置中,上述第二目标数据集合中还包含第二随机元素,第二密文元素由第三密文元素与第一目标数据集合中的目标元素基于预设运算得到,第三密文元素基于加密密钥和第二编码元素得到,第二编码元素由第二数据集合中的元素编码得到,目标元素在第一目标数据集合中的位置与第二数据集合中的元素在第三数据集合中的位置相同;
其中,本申请实施例的数据处理装置,还可以包括:
解密模块,用于采用与加密密钥对应的解密密钥对第二目标数据集合中的元素进行解密;
第一确定模块,用于将第二目标数据集合中解密结果包括第一编码元素的元素的个数,确定为交集的势。
可选的,在本申请实施例的数据处理装置中,上述目标信息包括解密结果包括第一编码元素的元素在第二目标数据集合中的位置。
可选的,本申请实施例的数据处理装置,还可以包括:
第二确定模块,用于在交集的势与第一数据集合的势的差值大于预设值的情况下,确定交集的势满足预设条件。
能够理解,本申请实施例提供的数据处理装置,能够实现前述实施例中提供的数据处理方法,关于数据处理方法的相关阐释均适用于数据处理装置,此处不再赘述。
在本申请实施例中,对于相互通信的两个设备中的第一设备,可以基于私有的第一数据集合生成第一目标数据集合,该第一目标数据集合中的元素包括基于该第一数据集合中的元素生成的第一密文元素,即在第一设备与第二设备进行通信交互的过程中,先将私有的第一数据集合中的元素处理为密文元素后再发送到第二设备,以使第二设备基于该第一目标数据集合和其私有的第二数据集合生成第二密文元素,进而在接收来自第二设备的包括该第二密文元素的第二目标数据集合后,可以基于该第二目标数据集合确定从属于同一全量数据集合(即第三数据集合)的第一数据集合和第二数据集合间的交集的势,也就是说,在第一设备和第二设备互相无需获知对方私有的实际数据的情况下,即在不破解对方私有的数据的情况下,可以准确的确定各自私有的数据集合间的交集的势,如此,可以确保不同设备间的通信交互过程中数据具有较高的安全性,使得各自私有的数据得到有效的保护,避免泄露。
进一步地,第一设备会在确定二者间的交集的势满足预设条件的情况下,才向第二设备提供能够供其确定第一数据集合和第二数据集合的交集中的元素的目标信息,如此,可以在求取不同设备各自私有的数据集合间的交集时,能够更大程度的保护各设备分别私有的数据,使得任何一个参与方均无法获取到多于输出规定的数据,从而可以有效地保护用户个人信息及隐私的安全,达到提升用户体验的目的。
本申请实施例还提供一种数据处理装置,参见图5所示,该装置应用于参与通信的多个设备中的第二设备,可具体包括:
接收模块401,用于接收第一设备基于第一数据集合生成的第一目标数据集合,第一目标数据集合中包括基于第一数据集合中的元素生成的第一密文元素;
生成模块403,用于根据第一目标数据集合和第二数据集合生成第二目标数据集合,第二目标数据集合中包括第二密文元素,第二数据集合和第一数据集合为第三数据集合的不同子集;
发送模块405,用于将第二目标数据集合发送至第一设备;
处理模块407,用于根据从第一设备接收到的目标信息,确定第二数据集合与第一数据集合的交集中的元素,目标信息由第一设备在基于第二目标数据集合确定交集的势满足预设条件的情况下发送。
可选的,在本申请实施例的数据处理装置中,上述生成模块403,可具体包括:
编码子模块,用于将第二数据集合中的元素分别编码为第二编码元素;
加密子模块,用于基于加密密钥对每个第二编码元素进行加密,生成第三密文元素;
第一生成子模块,用于根据第三密文元素和第一目标数据集合中的元素,生成第二密文元素;
第二生成子模块,用于根据第二密文元素,生成第二目标数据集合。
可选的,在本申请实施例的数据处理装置中,上述第一目标数据集合还包括第一随机元素,第一密文元素在第一目标数据集合中的位置与第一数据集合中的元素在第三数据集合中的位置相同,第一随机元素在第一目标数据集合中的位置与第三数据集合中除第一数据集合中的元素外的其他元素在第三数据集合中的位置相同,且第一密文元素和第一随机元素的总数与第三数据集合中的元素的总数相等;
其中,上述第一生成子模块,可以具体用于:
提取第一目标数据集合中目标位置上的目标元素,目标位置为第二数据集合中的元素在第三数据集合中的位置;
将目标元素和第三密文元素进行预设运算,以生成第二密文元素;以及
上述第二生成子模块,可以具体用于:
基于第二密文元素和第二随机元素,生成第二目标数据集合。
可选的,在本申请实施例的数据处理装置中,上述目标信息包括第一设备在解密第二目标数据集合中的元素时,解密结果包括第一编码元素的元素在第二目标数据集合中的位置,第一密文元素基于加密密钥对第一编码元素进行加密得到。
可选的,在本申请实施例的数据处理装置中,上述加密子模块,可以具体用于:
采用加密密钥和每个第二编码元素对应的第二随机数,对每个第二编码元素进行加密,生成第三密文元素,任意两个第二编码元素对应的第二随机数不同。
能够理解,本申请实施例提供的数据处理装置,能够实现前述实施例中提供的数据处理方法,关于数据处理方法的相关阐释均适用于数据处理装置,此处不再赘述。
在本申请实施例中,对于相互通信的两个设备中的第二设备,可以在接收到第一设备基于其私有的第一数据集合生成第一目标数据集合后,根据该第一目标数据集合和其私有的第二数据集合生成第二目标数据集合,并发送至第一设备,其中,该第一目标数据集合中的元素包括基于该第一数据集合中的元素生成的第一密文元素,第二目标数据集合中的元素包括第二密文元素,即在第一设备与第二设备进行通信交互的过程中,相互之间基于密文形式进行数据交互,以及第二目标数据集合用于第一设备确定从属于同一全量数据集合(即第三数据集合)的第一数据集合和第二数据集合间的交集的势,也就是说,在第一设备和第二设备互相无需获知对方私有的实际数据的情况下,即在不破解对方私有的数据的情况下,可以准确的确定各自私有的数据集合间的交集的势,如此,可以确保不同设备间的通信交互过程中数据具有较高的安全性,使得各自私有的数据得到有效的保护,避免泄露。
进一步地,可以根据第一设备在确定二者间的交集的势满足预设条件时反馈的目标信息,确定第一数据集合和第二数据集合的交集中的元素,如此,可以在求取不同设备各自私有的数据集合间的交集时,能够更大程度的保护各设备分别私有的数据,使得任何一个参与方均无法获取到多于输出规定的数据,从而可以有效地保护用户个人信息及隐私的安全,达到提升用户体验的目的。
图6是本申请的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。
当该数据处理装置应用于第一设备时,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
基于第一数据集合生成第一目标数据集合,第一目标数据集合中包括基于第一数据集合中的元素生成的第一密文元素;
向第二设备发送第一目标数据集合;
接收来自于第二设备的第二目标数据集合,第二目标数据集合中包括基于第一目标数据集合和第二数据集合生成的第二密文元素,第二数据集合与第一数据集合为第三数据集合的不同子集;
在基于第二目标数据集合,确定第一数据集合与第二数据集合的交集的势满足预设条件的情况下,向第二设备发送目标信息,目标信息用于第二设备确定交集中的元素。
在本申请实施例中,对于相互通信的两个设备中的第一设备,可以基于私有的第一数据集合生成第一目标数据集合,该第一目标数据集合中的元素包括基于该第一数据集合中的元素生成的第一密文元素,即在第一设备与第二设备进行通信交互的过程中,先将私有的第一数据集合中的元素处理为密文元素后再发送到第二设备,以使第二设备基于该第一目标数据集合和其私有的第二数据集合生成第二密文元素,进而在接收来自第二设备的包括该第二密文元素的第二目标数据集合后,可以基于该第二目标数据集合确定从属于同一全量数据集合(即第三数据集合)的第一数据集合和第二数据集合间的交集的势,也就是说,在第一设备和第二设备互相无需获知对方私有的实际数据的情况下,即在不破解对方私有的数据的情况下,可以准确的确定各自私有的数据集合间的交集的势,如此,可以确保不同设备间的通信交互过程中数据具有较高的安全性,使得各自私有的数据得到有效的保护,避免泄露。
进一步地,第一设备会在确定二者间的交集的势满足预设条件的情况下,才向第二设备提供能够供其确定第一数据集合和第二数据集合的交集中的元素的目标信息,如此,可以在求取不同设备各自私有的数据集合间的交集时,能够更大程度的保护各设备分别私有的数据,使得任何一个参与方均无法获取到多于输出规定的数据,从而可以有效地保护用户个人信息及隐私的安全,达到提升用户体验的目的。
当该数据处理装置应用于第二设备时,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收第一设备基于第一数据集合生成的第一目标数据集合,第一目标数据集合中包括基于第一数据集合中的元素生成的第一密文元素;
根据第一目标数据集合和第二数据集合生成第二目标数据集合,第二目标数据集合中包括第二密文元素,第二数据集合和第一数据集合为第三数据集合的不同子集;
将第二目标数据集合发送至第一设备;
根据从第一设备接收到的目标信息,确定第二数据集合与第一数据集合的交集中的元素,目标信息由第一设备在基于第二目标数据集合确定交集的势满足预设条件的情况下发送。
在本申请实施例中,对于相互通信的两个设备中的第二设备,可以在接收到第一设备基于其私有的第一数据集合生成第一目标数据集合后,根据该第一目标数据集合和其私有的第二数据集合生成第二目标数据集合,并发送至第一设备,其中,该第一目标数据集合中的元素包括基于该第一数据集合中的元素生成的第一密文元素,第二目标数据集合中的元素包括第二密文元素,即在第一设备与第二设备进行通信交互的过程中,相互之间基于密文形式进行数据交互,以及第二目标数据集合用于第一设备确定从属于同一全量数据集合(即第三数据集合)的第一数据集合和第二数据集合间的交集的势,也就是说,在第一设备和第二设备互相无需获知对方私有的实际数据的情况下,即在不破解对方私有的数据的情况下,可以准确的确定各自私有的数据集合间的交集的势,如此,可以确保不同设备间的通信交互过程中数据具有较高的安全性,使得各自私有的数据得到有效的保护,避免泄露。
进一步地,可以根据第一设备在确定二者间的交集的势满足预设条件时反馈的目标信息,确定第一数据集合和第二数据集合的交集中的元素,如此,可以在求取不同设备各自私有的数据集合间的交集时,能够更大程度的保护各设备分别私有的数据,使得任何一个参与方均无法获取到多于输出规定的数据,从而可以有效地保护用户个人信息及隐私的安全,达到提升用户体验的目的。
上述如本申请前述实施例揭示的数据处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行前述数据处理装置执行的方法,并实现数据处理装置在前述方法实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行前述实施例中数据处理装置执行的方法,并具体用于执行:
基于第一数据集合生成第一目标数据集合,第一目标数据集合中包括基于第一数据集合中的元素生成的第一密文元素;
向第二设备发送第一目标数据集合;
接收来自于第二设备的第二目标数据集合,第二目标数据集合中包括基于第一目标数据集合和第二数据集合生成的第二密文元素,第二数据集合与第一数据集合为第三数据集合的不同子集;
在基于第二目标数据集合,确定第一数据集合与第二数据集合的交集的势满足预设条件的情况下,向第二设备发送目标信息,目标信息用于第二设备确定交集中的元素。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行前述实施例中数据处理装置执行的方法,并具体用于执行:
接收第一设备基于第一数据集合生成的第一目标数据集合,第一目标数据集合中包括基于第一数据集合中的元素生成的第一密文元素;
根据第一目标数据集合和第二数据集合生成第二目标数据集合,第二目标数据集合中包括第二密文元素,第二数据集合和第一数据集合为第三数据集合的不同子集;
将第二目标数据集合发送至第一设备;
根据从第一设备接收到的目标信息,确定第二数据集合与第一数据集合的交集中的元素,目标信息由第一设备在基于第二目标数据集合确定交集的势满足预设条件的情况下发送。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。