1.本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置和用于数据处理的装置。
背景技术:2.多方安全计算是一种在计算参与方不共享各自数据且没有可信第三方的情况下安全地计算约定函数的技术。通过安全的算法和协议,计算参与方将明文形式的数据加密后或转化后再提供给其他方,其他计算参与方都无法接触到其他方的明文形式的数据,从而保证各方数据的安全。
3.为保证各方数据在计算过程中不被泄露,可以借助多方安全计算技术在密文端进行计算。然而,完全基于密文的计算会导致多方安全计算效率下降。
技术实现要素:4.本发明实施例提供一种数据处理方法、装置和用于数据处理的装置,可以提高多方安全计算的计算效率。
5.为了解决上述问题,本发明实施例公开了一种数据处理方法,应用于明密文混合计算系统,所述方法包括:确定参与计算的至少两个数据中各数据的归属状态,所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种;根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,所述执行端包括单方明文端、多方明文端、以及密文端中的一种;通过所述执行端利用所述数据执行所述计算。
6.可选地,所述根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,包括:在参与计算的数据的个数大于2的情况下,将所述计算分解为若干步两个数据的计算,并分别确定每步两个数据的计算的执行端。
7.可选地,通过如下步骤确定两个数据的计算的执行端:若两个数据的归属状态均为公开数据,或者,若两个数据的归属状态分别为公开数据和单方私有数据,则确定所述两个数据之间任意类型计算的执行端为单方明文端;若两个数据的归属状态分别为公开数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为多方明文端;若两个数据的归属状态中包含融合数据,或者,若两个数据的归属状态分别为单方私有数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为密文端;若两个数据的归属状态均为单方私有数据,或者,若两个数据的归属状态均为多方私有数据,则根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端。
8.可选地,所述根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端,包括:若两个数据的归属状态均为单方私有数据,且两个数据属于相同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为所述计算参与方的明文端;若两个数据的归属状态均为单方私有数据,且两个数据属于不同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为密文端。
9.可选地,所述根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端,包括:若两个数据的归属状态均为多方私有数据,且两个数据的计算可以拆分为仅包含相同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为多方明文端;若两个数据的归属状态均为多方私有数据,且两个数据的计算包含不同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为密文端。
10.可选地,所述数据设置有预置属性,所述预置属性用于标识所述数据的归属状态,所述确定参与计算的至少两个数据中各数据的归属状态,包括:根据所述至少两个数据中各数据的预置属性,确定所述各数据的归属状态;所述方法还包括:在所述计算的执行过程中和/或在所述计算执行完成后,更新所述数据的预置属性,并设置新产生的数据的预置属性。
11.可选地,所述更新所述数据的预置属性,并设置新产生的数据的预置属性,包括:若所述数据的数值发生改变,则更新所述数据的预置属性为融合数据;设置新产生的数据的预置属性为融合数据。
12.可选地,不同归属状态对应不同的优先级,所述更新所述数据的预置属性,包括:若所述数据的预置属性更新后的优先级高于或等于更新前的优先级,则隐式更新所述数据的预置属性;若所述数据的预置属性更新后的优先级低于更新前的优先级,则显示更新所述数据的预置属性。
13.另一方面,本发明实施例公开了一种数据处理装置,应用于明密文混合计算系统,所述装置包括:归属状态确定模块,用于确定参与计算的至少两个数据中各数据的归属状态,所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种;执行端确定模块,用于根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,所述执行端包括单方明文端、多方明文端、以及密文端中的一种;计算执行模块,用于通过所述执行端利用所述数据执行所述计算。
14.可选地,所述执行端确定模块,具体用于在参与计算的数据的个数大于2的情况下,将所述计算分解为若干步两个数据的计算,并分别确定每步两个数据的计算的执行端。
15.可选地,所述执行端确定模块,包括:第一确定子模块,用于若两个数据的归属状态均为公开数据,或者,若两个数据的归属状态分别为公开数据和单方私有数据,则确定所述两个数据之间任意类型计算的执行端为单方明文端;
第二确定子模块,用于若两个数据的归属状态分别为公开数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为多方明文端;第三确定子模块,用于若两个数据的归属状态中包含融合数据,或者,若两个数据的归属状态分别为单方私有数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为密文端;第四确定子模块,用于若两个数据的归属状态均为单方私有数据,或者,若两个数据的归属状态均为多方私有数据,则根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端。
16.可选地,所述第四确定子模块,包括:第一确定单元,用于若两个数据的归属状态均为单方私有数据,且两个数据属于相同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为所述计算参与方的明文端;第二确定单元,用于若两个数据的归属状态均为单方私有数据,且两个数据属于不同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为密文端。
17.可选地,所述第四确定子模块,包括:第三确定单元,用于若两个数据的归属状态均为多方私有数据,且两个数据的计算可以拆分为仅包含相同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为多方明文端;第四确定单元,用于若两个数据的归属状态均为多方私有数据,且两个数据的计算包含不同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为密文端。
18.可选地,所述数据设置有预置属性,所述预置属性用于标识所述数据的归属状态,所述归属状态确定模块,具体用于根据所述至少两个数据中各数据的预置属性,确定所述各数据的归属状态;所述装置还包括:属性更新模块,用于在所述计算的执行过程中和/或在所述计算执行完成后,更新所述数据的预置属性,并设置新产生的数据的预置属性。
19.可选地,所述属性更新模块,包括:第一更新子模块,用于若所述数据的数值发生改变,则更新所述数据的预置属性为融合数据;第二更新子模块,用于设置新产生的数据的预置属性为融合数据。
20.可选地,不同归属状态对应不同的优先级,所述属性更新模块,包括:第三更新子模块,用于若所述数据的预置属性更新后的优先级高于或等于更新前的优先级,则隐式更新所述数据的预置属性;第四更新子模块,用于若所述数据的预置属性更新后的优先级低于更新前的优先级,则显示更新所述数据的预置属性。
21.再一方面,本发明实施例公开了一种用于数据处理的装置,应用于明密文混合计算系统,所述装置包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如前述一个或多个所述的数据处理方法的指令。
22.又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据处理方法。
23.本发明实施例包括以下优点:本发明实施例对参与计算的数据引入归属状态的概念,所述归属状态可以表示数据的私有化程度。所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种。本发明实施例根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,并通过所述执行端利用所述数据执行所述计算。所述执行端包括单方明文端、多方明文端、以及密文端中的一种。所述明密文混合计算系统是一种既可以进行明文计算,又可以进行密文计算的系统。本发明实施例根据参与计算的至少两个数据中各数据的归属状态以及计算类型,动态确定计算的执行端,将该计算分配至既能保证数据隐私安全,又能最大程度提高计算效率的执行端。由此,在保证数据的隐私安全的前提下,将计算尽可能放在明文端(包括单方明文端或者多方明文端)执行,可以提高整个系统的计算效率。进而在利用所述明密文混合计算系统对至少两个计算参与方的数据进行多方安全计算时,可以提高多方安全计算的计算效率。
附图说明
24.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
25.图1是本发明的一种数据处理方法实施例的步骤流程图;图2是本发明的一种数据处理装置实施例的结构框图;图3是本发明的一种用于数据处理的装置800的框图;图4是本发明的一些实施例中服务器的结构示意图。
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,所述方法可应用于明密文混合计算系统,所述方法具体可以包括如下步骤:步骤101、确定参与计算的至少两个数据中各数据的归属状态,所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种;步骤102、根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,所述执行端包括单方明文端、多方明文端、以及密文端中的一种;步骤103、通过所述执行端利用所述数据执行所述计算。
28.本发明提供的数据处理方法可应用于明密文混合计算系统,所述明密文混合计算
系统是一种既可以进行明文计算,又可以进行密文计算的系统。所述明密文混合计算系统包括明文计算端(简称明文端)和密文计算端(简称密文端)。可选地,所述明密文混合计算系统可以包括一个密文端和至少一个计算参与方的明文端。所述计算参与方可以为数据拥有方,用于为多方安全计算提供计算数据。需要说明的是,本发明实施例对计算参与方的数量不做限制。
29.进一步地,所述明密文混合计算系统可以是一种多方安全计算系统,本发明实施例对所述多方安全计算系统采用的安全计算协议不做限制。例如,所述多方安全计算系统可以基于mpc(secure multi
‑
party computation,多方安全计算)协议,在基于mpc协议的多方安全计算系统中,多个计算参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协同计算得到计算结果,参与计算的数据、中间结果、以及最终结果可以为密文。当然,所述多方安全计算系统还可以基于秘密分享、半同态、不经意传输等技术实现的多方安全计算协议。
30.对于至少两个数据参与的计算,所述至少两个数据中可以包括明文数据和/或密文数据,并且参与计算的数据可能归属于不同的计算参与方。本发明实施例根据参与计算的至少两个数据中各数据的归属状态以及计算类型,确定计算的执行端,并通过所述执行端利用所述数据执行所述计算。所述计算可以是任意类型的计算,包括但不限于清洗、计算、分析、模型训练、存储、数据库查询、以及联邦学习等数据相关操作。
31.需要说明的是,本发明实施例对参与计算的数据的类型不做限制。例如所述数据可以是整数、浮点数、数组、集合、矩阵等等。
32.在实际的应用场景中,参与多方安全计算的数据可以来自于多个(至少两个)计算参与方,需要基于这些数据进行计算。一个示例中,在联邦学习的场景中,参与联邦学习的数据可以来自于多个(至少两个)计算参与方,需要基于这些数据使用机器学习算法进行模型训练。另一个示例中,在排序计算的场景中,参与排序计算的数据可以来自于多个(至少两个)计算参与方,需要基于这些数据进行排序计算。
33.由于明文端的计算效率相较于密文端高得多,因此,本发明实施例根据参与计算的至少两个数据中各数据的归属状态以及计算类型,确定计算的执行端。在保证数据的隐私安全的前提下,将计算尽可能放在明文端执行,以提高整个系统的计算效率。
34.例如,在计算过程中,有些计算只涉及到单个计算参与方的数据,则可以在该计算参与方的明文端执行该计算。又如,有些计算涉及到多个计算参与方的数据,为了保护数据的隐私安全,可以借助多方安全计算技术在密文端执行该计算。再如,有些计算虽然涉及到多个计算参与方的数据,但是如果该计算可以拆分成针对各个计算参与方自身数据的子计算,则可以在多个计算参与方的明文端同时执行相应子计算,即可在各计算参与方不泄露各自数据的情况下得到最终的计算结果。
35.本发明实施例根据参与计算的至少两个数据中各数据的归属状态以及计算类型,确定计算的执行端,实现对至少两个数据参与的计算动态确定执行端,将该计算分配至既能保证数据隐私安全,又能最大程度提高计算效率的执行端。
36.在本发明实施例中,所述归属状态可以包括但不限于:公开数据、单方私有数据、多方私有数据、以及融合数据中的一种。
37.公开数据,指可以向所有计算参与方公开的数据。单方私有数据,指计算参与方中
某一方拥有的私有数据,对于其他计算参与方是不可见的。多方私有数据是由多个单方私有数据组合而成的数据。融合数据是指由不同计算参与方的数据计算后融合得到的数据,不属于任何计算参与方。
38.一个示例中,假设数据a1是计算参与方1的私有数据,也即,a1的归属状态为单方私有数据。假设数据b1是计算参与方2的私有数据,也即,b1的归属状态为单方私有数据。在计算得到c=a1+b1之后,数据c的归属状态就是融合数据。由数据a1和b1组合而成的数据m=[a1,b1]的归属状态是多方私有数据。
[0039]
本发明实施例根据参与计算的各数据的归属状态以及计算类型,确定计算的执行端,所述执行端可以包括单方明文端、多方明文端、以及密文端中的一种。
[0040]
执行端为单方明文端是指在某一个计算参与方的明文端执行计算。执行端为多方明文端是指同时在多个计算参与方的明文端执行计算。执行端为密文端是指基于已有的多方安全计算技术在密文端执行计算。
[0041]
其中,所述明文端和/或密文端可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。本发明实施例对所述明文端和密文端的具体类型不做限制。
[0042]
所述明密文混合计算系统可以包括一个密文端和多个明文端。一个示例中,参与多方安全计算的参与方包括计算参与方1、计算参与方2、以及计算参与方3,则在该计算过程中,可能参与计算的执行端包括计算参与方1的明文端、计算参与方2的明文端、计算参与方3的明文端、以及密文端。
[0043]
在本发明的一种可选实施例中,所述根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,可以包括:在参与计算的数据的个数大于2的情况下,将所述计算分解为若干步两个数据的计算,并分别确定每步两个数据的计算的执行端。
[0044]
本发明实施例的数据处理方法可适用于两个或两个以上数据参与计算的场景,为便于计算,在参与计算的数据的个数大于2的情况下,可以将所述计算分解为若干步两个数据的计算,分别确定每步两个数据的计算的执行端,并分别对每步的两个数据进行两两计算。
[0045]
一个示例中,假设a1、a2、a3、a4为4个数据,需要计算a1+a2+a3+a4。该计算可以分解为(a1+a2)+(a3+a4),分别确定a1+a2的执行端和a3+a4的执行端,假设分别计算a1+a2和a3+a4得到的计算结果为s1和s2,再确定s1+s2的执行端并计算s1+s2。
[0046]
另一个示例中,假设a1、a2、a3为3个数据,需要计算a1+a2+a3。该计算可以分解为(a1+a2)+a3,则可以先确定a1+a2的执行端并计算a1+a2,假设得到计算结果为s1,再确定s1+a3的执行端并计算s1+a3。
[0047]
在本发明的一种可选实施例中,可以通过如下步骤确定两个数据的计算的执行端:若两个数据的归属状态均为公开数据,或者,若两个数据的归属状态分别为公开数据和单方私有数据,则确定所述两个数据之间任意类型计算的执行端为单方明文端;若两个数据的归属状态分别为公开数据和多方私有数据,则确定所述两个数据之
间任意类型计算的执行端为多方明文端;若两个数据的归属状态中包含融合数据,或者,若两个数据的归属状态分别为单方私有数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为密文端;若两个数据的归属状态均为单方私有数据,或者,若两个数据的归属状态均为多方私有数据,则根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端。
[0048]
参照表1,示出了本发明的一种两个数据的计算的执行端与归属状态之间的关联关系。
[0049]
表1 公开数据单方私有数据多方私有数据融合数据公开数据单方明文端单方明文端多方明文端密文端单方私有数据 单方明文端或密文端密文端密文端多方私有数据
ꢀꢀ
多方明文端或密文端密文端融合数据
ꢀꢀꢀ
密文端
一个示例中,假设数据p和数据q的归属状态为公开数据,数据a的归属状态为单方私有数据,数据m的归属状态为多方私有数据,数据x的归属状态为融合数据。对于任意的计算类型,p和q之间的计算的执行端可以为任意的单方明文端。p和a之间的计算的执行端可以为数据a所属计算参与方的单方明文端。p和m之间的计算的执行端可以为m所属多个计算参与方的多方明文端。例如,m由m1和m2组成,m1为计算参与方1的单方私有数据,m2为计算参与方2的单方私有数据,则p和m之间的计算的执行端可以同时包括计算参与方1的单方明文端以及计算参与方2的单方明文端。p和x之间的计算的执行端可以为密文端。
[0050]
另一个示例中,假设数据a的归属状态为单方私有数据,数据m的归属状态为多方私有数据,数据x和数据y的归属状态为融合数据。对于任意的计算类型,x和y之间的计算、x和a之间的计算、x和m之间的计算、y和a之间的计算、y和m之间的计算的执行端均为密文端。
[0051]
又一个示例中,假设数据a的归属状态为单方私有数据,数据m的归属状态为多方私有数据。对于任意的计算类型,a和m之间的计算的执行端均为密文端。
[0052]
在两个数据参与计算的情况下,公开数据之间的计算、单方私有数据之间的特定计算、公开数据与单方私有数据之间的计算的执行端为单方明文端;公开数据与多方私有数据之间的计算、多方私有数据之间的特定计算的执行端为多方明文端;其他所有情况的计算的执行端均为密文端。更具体来说,单方私有数据之间的计算以及多方私有数据之间的计算的执行端取决于数据的归属状态和具体的计算类型。
[0053]
在本发明的一种可选实施例中,所述根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端,可以包括:若两个数据的归属状态均为单方私有数据,且两个数据属于相同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为所述计算参与方的明文端;若两个数据的归属状态均为单方私有数据,且两个数据属于不同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为密文端。
[0054]
一个示例中,假设数据a1和数据a2的归属状态为单方私有数据,且a1和a2都是计算参与方1的私有数据。数据b的归属状态为单方私有数据,且b是计算参与方2的私有数据。由
于a1和b属于不同的计算参与方,因此,对于a1和b之间任意类型的计算,执行端均为密文端。由于a1和a2属于相同的计算参与方,因此,a1和a2之间任意类型的计算,执行端可以为计算参与方1的明文端。
[0055]
在本发明的一种可选实施例中,所述根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端,可以包括:若两个数据的归属状态均为多方私有数据,且两个数据的计算可以拆分为仅包含相同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为多方明文端;若两个数据的归属状态均为多方私有数据,且两个数据的计算包含不同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为密文端。
[0056]
在本发明实施例中,对于一些特定的计算,如果计算过程中只涉及到相同计算参与方的私有数据之间的计算,此时计算可以发生在多方明文端,否则计算发生在密文端。
[0057]
一个示例中,假设数据m1=[a1,a2,b1,b2]
t
和m2=[a3,a4,b3,b4]
t
的归属状态均为多方私有数据。其中,a1=[1,1,1]、a2=[2,2,2]、a3=[3,3,3]、a4=[4,4,4]是计算参与方1的单方私有数据。b1=[1,1,1]、b2=[2,2,2]、b3=[3,3,3]、b4=[4,4,4]是计算参与方2的单方私有数据。假设需要计算m1+m2,该计算可以进行如下分解:m1+m2=[a1,a2,b1,b2]
t
+[a3,a4,b3,b4]
t
=([a1,a2]+[a3,a4])+([b1,b2]+[b3,b4])可以看出,m1+m2可以分解成子计算([a1,a2]+[a3,a4])和子计算([b1,b2]+[b3,b4])。对于子计算([a1,a2]+[a3,a4]),由于a1、a2、a3、a4都是计算参与方1的单方私有数据,因此可以在计算参与方1的明文端执行该子计算。同样地,对于子计算([b1,b2]+[b3,b4]),由于b1、b2、b3、b4都是计算参与方2的单方私有数据,因此可以在计算参与方2的明文端执行该子计算。由此,本示例在计算m1+m2时,只需要在计算参与方1和计算参与方2的明文端分别计算a=[a1,a2]+[a3,a4]=[[4,4,4],[6,6,6]]和b=[b1,b2]+[b3,b4]=[[4,4,4],[6,6,6]],再令m=[a,b]
t
=[[4,4,4],[6,6,6],[4,4,4],[6,6,6]]
t
,即得到m1+m2的结果。
[0058]
另一个示例中,假设数据m1=[a1,a2,b1,b2]
t
和m2=[b3,b4,a3,a4]
t
的归属状态均为多方私有数据。其中,a1=[1,1,1]、a2=[2,2,2]、a3=[3,3,3]、a4=[4,4,4]是计算参与方1的单方私有数据。b1=[1,1,1]、b2=[2,2,2]、b3=[3,3,3]、b4=[4,4,4]是计算参与方2的单方私有数据。假设需要计算m1+m2,该计算可以进行如下分解:m1+m2=[a1,a2,b1,b2]
t
+[b3,b4,a3,a4]
t
=([a1,a2]+[b3,b4])+([b1,b2]+[a3,a4])可以看出,m1+m2可以分解成子计算([a1,a2]+[b3,b4])和子计算([b1,b2]+[a3,a4])。对于子计算([a1,a2]+[b3,b4]),由于a1、a2和b3、b4是不同计算参与方的私有数据,因此,该子计算需在密文端执行。同理,子计算([b1,b2]+[a3,a4])也需在密文端执行。由此,本示例在计算m1+m2时,需要在密文端计算m1+m2=[a1,a2,b1,b2]
t
+[b3,b4,a3,a4]
t
=[[4,4,4],[6,6,6],[4,4,4],[6,6,6]]
t
。
[0059]
可以理解的是,本发明实施例对至少两个数据参与的计算的类型不做限制。一个示例中,明密文混合计算系统需要计算dot(m1,m2),dot()为计算函数,参与计算的数据包
括m1和m2。明密文混合计算系统在检测到参与计算的数据m1和m2均为计算参与方1的私有数据时,可以在计算参与方1的明文端执行该计算。
[0060]
在本发明的一种可选实施例中,所述数据设置有预置属性,所述预置属性可用于标识所述数据的归属状态,所述确定参与计算的至少两个数据中各数据的归属状态,可以包括:根据所述至少两个数据中各数据的预置属性,确定所述各数据的归属状态;所述方法还可以包括:在所述计算的执行过程中和/或在所述计算执行完成后,更新所述数据的预置属性,并设置新产生的数据的预置属性。
[0061]
本发明实施例对每个数据设置预置属性,用于标识数据的归属状态。示例性的,对于本发明实施例中的四种归属状态设置预置属性如下:1表示归属状态为公开数据,2表示归属状态为单方私有数据,3表示归属状态为多方私有数据,4表示归属状态为融合数据。
[0062]
本发明实施例在执行计算之前,确定参与计算的各数据的归属状态。在计算过程中,随着数据的变化,数据的归属状态可能也需要变化。因此,本发明实施例在计算过程中维护并更新数据的归属状态,此外,还维护和更新计算过程中新产生的数据的归属状态。
[0063]
在本发明的一种可选实施例中,所述更新所述数据的预置属性,并设置新产生的数据的预置属性,可以包括:若所述数据的数值发生改变,则更新所述数据的预置属性为融合数据;设置新产生的数据的预置属性为融合数据。
[0064]
一个示例中,假设数据a是计算参与方1的私有数据,也即,数据a的预置属性为2,表示归属状态为单方私有数据。数据b是计算参与方2的私有数据,也即,数据b的预置属性为2,表示归属状态为单方私有数据。
[0065]
在计算a=a+b之后,数据a的数值发生改变,则更新数据a的预置属性为融合数据,如将数据a的预置属性由2更新为4。又如,在计算c=a+b之后,c是新产生的数据,则设置数据c的预置属性为融合数据,如设置数据c的预置属性为4。
[0066]
在本发明的一种可选实施例中,不同归属状态对应不同的优先级,所述更新所述数据的预置属性,可以包括:若所述数据的预置属性更新后的优先级高于或等于更新前的优先级,则隐式更新所述数据的预置属性;若所述数据的预置属性更新后的优先级低于更新前的优先级,则显示更新所述数据的预置属性。
[0067]
为了保证明密文混合计算系统计算过程中数据的隐私性,本发明实施例对更新数据的归属状态设置了一定的规则。
[0068]
具体地,本发明实施例对不同归属状态设置不同的优先级。示例性的,归属状态按照公开数据、单方私有数据、多方私有数据、融合数据的顺序,对应的优先级由低到高。
[0069]
更新数据的归属状态应满足如下规则:从低优先级向高优先级的转换可以是隐式的,无需被使用者感知;而从高优先级向低优先级的转换是显式的,需要被使用者感知。
[0070]
例如,对于数据d,其归属状态为单方私有数据,如果要将数据d的归属状态由单方私有数据更新为融合数据,由于融合数据的优先级高于单方私有数据的优先级,则可以隐式更新数据d的预置属性。隐式更新指明密文混合计算系统自动更新,用户无感知。
[0071]
又如,对于数据f,其归属状态为单方私有数据,如果要将数据f的归属状态由单方
私有数据更新为公开数据,由于公开数据的优先级低于单方私有数据的优先级,则需要显示更新数据f的预置属性。显示更新指通过用户指令进行更新,用户有感知。
[0072]
综上,本发明实施例对参与计算的数据引入归属状态的概念,所述归属状态可以表示数据的私有化程度。所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种。本发明实施例根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,并通过所述执行端利用所述数据执行所述计算。所述执行端包括单方明文端、多方明文端、以及密文端中的一种。所述明密文混合计算系统是一种既可以进行明文计算,又可以进行密文计算的系统。本发明实施例根据参与计算的至少两个数据中各数据的归属状态以及计算类型,动态确定计算的执行端,将该计算分配至既能保证数据隐私安全,又能最大程度提高计算效率的执行端。由此,在保证数据的隐私安全的前提下,将计算尽可能放在明文端(包括单方明文端或者多方明文端)执行,可以提高整个系统的计算效率。进而在利用所述明密文混合计算系统对至少两个计算参与方的数据进行多方安全计算时,可以提高多方安全计算的计算效率。
[0073]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0074]
参照图2,示出了本发明的一种数据处理装置实施例的结构框图,应用于明密文混合计算系统,所述装置具体可以包括:归属状态确定模块201,用于确定参与计算的至少两个数据中各数据的归属状态,所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种;执行端确定模块202,用于根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,所述执行端包括单方明文端、多方明文端、以及密文端中的一种;计算执行模块203,用于通过所述执行端利用所述数据执行所述计算。
[0075]
可选地,所述执行端确定模块,具体用于在参与计算的数据的个数大于2的情况下,将所述计算分解为若干步两个数据的计算,并分别确定每步两个数据的计算的执行端。
[0076]
可选地,所述执行端确定模块,包括:第一确定子模块,用于若两个数据的归属状态均为公开数据,或者,若两个数据的归属状态分别为公开数据和单方私有数据,则确定所述两个数据之间任意类型计算的执行端为单方明文端;第二确定子模块,用于若两个数据的归属状态分别为公开数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为多方明文端;第三确定子模块,用于若两个数据的归属状态中包含融合数据,或者,若两个数据的归属状态分别为单方私有数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为密文端;第四确定子模块,用于若两个数据的归属状态均为单方私有数据,或者,若两个数据的归属状态均为多方私有数据,则根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端。
[0077]
可选地,所述第四确定子模块,包括:第一确定单元,用于若两个数据的归属状态均为单方私有数据,且两个数据属于相同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为所述计算参与方的明文端;第二确定单元,用于若两个数据的归属状态均为单方私有数据,且两个数据属于不同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为密文端。
[0078]
可选地,所述第四确定子模块,包括:第三确定单元,用于若两个数据的归属状态均为多方私有数据,且两个数据的计算可以拆分为仅包含相同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为多方明文端;第四确定单元,用于若两个数据的归属状态均为多方私有数据,且两个数据的计算包含不同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为密文端。
[0079]
可选地,所述数据设置有预置属性,所述预置属性用于标识所述数据的归属状态,所述归属状态确定模块,具体用于根据所述至少两个数据中各数据的预置属性,确定所述各数据的归属状态;所述装置还包括:属性更新模块,用于在所述计算的执行过程中和/或在所述计算执行完成后,更新所述数据的预置属性,并设置新产生的数据的预置属性。
[0080]
可选地,所述属性更新模块,包括:第一更新子模块,用于若所述数据的数值发生改变,则更新所述数据的预置属性为融合数据;第二更新子模块,用于设置新产生的数据的预置属性为融合数据。
[0081]
可选地,不同归属状态对应不同的优先级,所述属性更新模块,包括:第三更新子模块,用于若所述数据的预置属性更新后的优先级高于或等于更新前的优先级,则隐式更新所述数据的预置属性;第四更新子模块,用于若所述数据的预置属性更新后的优先级低于更新前的优先级,则显示更新所述数据的预置属性。
[0082]
本发明实施例对参与计算的数据引入归属状态的概念,所述归属状态可以表示数据的私有化程度。所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种。本发明实施例根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,并通过所述执行端利用所述数据执行所述计算。所述执行端包括单方明文端、多方明文端、以及密文端中的一种。所述明密文混合计算系统是一种既可以进行明文计算,又可以进行密文计算的系统。本发明实施例根据参与计算的至少两个数据中各数据的归属状态以及计算类型,动态确定计算的执行端,将该计算分配至既能保证数据隐私安全,又能最大程度提高计算效率的执行端。由此,在保证数据的隐私安全的前提下,将计算尽可能放在明文端(包括单方明文端或者多方明文端)执行,可以提高整个系统的计算效率。进而在利用所述明密文混合计算系统对至少两个计算参与方的数据进行多方安全计算时,可以提高多方安全计算的计算效率。
[0083]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关
之处参见方法实施例的部分说明即可。
[0084]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0085]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0086]
本发明实施例提供了一种用于数据处理的装置,应用于明密文混合计算系统,所述装置包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行以下操作的指令:确定参与计算的至少两个数据中各数据的归属状态,所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种;根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,所述执行端包括单方明文端、多方明文端、以及密文端中的一种;通过所述执行端利用所述数据执行所述计算。
[0087]
可选地,所述根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,包括:在参与计算的数据的个数大于2的情况下,将所述计算分解为若干步两个数据的计算,并分别确定每步两个数据的计算的执行端。
[0088]
可选地,可以通过如下步骤确定两个数据的计算的执行端:若两个数据的归属状态均为公开数据,或者,若两个数据的归属状态分别为公开数据和单方私有数据,则确定所述两个数据之间任意类型计算的执行端为单方明文端;若两个数据的归属状态分别为公开数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为多方明文端;若两个数据的归属状态中包含融合数据,或者,若两个数据的归属状态分别为单方私有数据和多方私有数据,则确定所述两个数据之间任意类型计算的执行端为密文端;若两个数据的归属状态均为单方私有数据,或者,若两个数据的归属状态均为多方私有数据,则根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端。
[0089]
可选地,所述根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端,包括:若两个数据的归属状态均为单方私有数据,且两个数据属于相同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为所述计算参与方的明文端;若两个数据的归属状态均为单方私有数据,且两个数据属于不同的计算参与方,则确定所述两个数据之间任意类型计算的执行端为密文端。
[0090]
可选地,所述根据两个数据分别所属的计算参与方和两个数据参与计算的计算类型确定所述计算的执行端,包括:若两个数据的归属状态均为多方私有数据,且两个数据的计算可以拆分为仅包含相同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为多方明文端;若两个数据的归属状态均为多方私有数据,且两个数据的计算包含不同计算参与方的私有数据之间的子计算,则确定所述子计算的执行端为密文端。
[0091]
可选地,所述数据设置有预置属性,所述预置属性用于标识所述数据的归属状态,
所述确定参与计算的至少两个数据中各数据的归属状态,包括:根据所述至少两个数据中各数据的预置属性,确定所述各数据的归属状态;所述装置还经配置以由一个以上处理器执行所述一个以上程序包含用于进行以下操作的指令:在所述计算的执行过程中和/或在所述计算执行完成后,更新所述数据的预置属性,并设置新产生的数据的预置属性。
[0092]
可选地,所述更新所述数据的预置属性,并设置新产生的数据的预置属性,包括:若所述数据的数值发生改变,则更新所述数据的预置属性为融合数据;设置新产生的数据的预置属性为融合数据。
[0093]
可选地,不同归属状态对应不同的优先级,所述更新所述数据的预置属性,包括:若所述数据的预置属性更新后的优先级高于或等于更新前的优先级,则隐式更新所述数据的预置属性;若所述数据的预置属性更新后的优先级低于更新前的优先级,则显示更新所述数据的预置属性。
[0094]
图3是根据一示例性实施例示出的一种用于数据处理的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0095]
参照图3,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(i/ o)的接口812,传感器组件814,以及通信组件816。
[0096]
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
[0097]
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0098]
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
[0099]
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或
视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0100]
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
[0101]
i/ o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0102]
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0103]
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频信息处理(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0104]
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0105]
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd
‑
rom、磁带、软盘和光数据存储设备等。
[0106]
图4是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
[0107]
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网
络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如windows servertm,mac os xtm,unixtm, linuxtm,freebsdtm等等。
[0108]
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的数据处理方法。
[0109]
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种数据处理方法,所述方法包括:确定参与计算的至少两个数据中各数据的归属状态,所述归属状态包括公开数据、单方私有数据、多方私有数据、以及融合数据中的一种;根据所述各数据的归属状态以及计算类型,确定所述计算的执行端,所述执行端包括单方明文端、多方明文端、以及密文端中的一种;通过所述执行端利用所述数据执行所述计算。
[0110]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0111]
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
[0112]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0113]
以上对本发明所提供的一种数据处理方法、一种数据处理装置和一种用于数据处理的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。