CN111753324B - 私有数据的处理方法、计算方法及所适用的设备 - Google Patents
私有数据的处理方法、计算方法及所适用的设备 Download PDFInfo
- Publication number
- CN111753324B CN111753324B CN201910252631.5A CN201910252631A CN111753324B CN 111753324 B CN111753324 B CN 111753324B CN 201910252631 A CN201910252631 A CN 201910252631A CN 111753324 B CN111753324 B CN 111753324B
- Authority
- CN
- China
- Prior art keywords
- computing
- data
- private data
- processing
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 370
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 382
- 238000000034 method Methods 0.000 claims abstract description 77
- 230000008569 process Effects 0.000 claims abstract description 41
- 230000003993 interaction Effects 0.000 claims description 43
- 238000004891 communication Methods 0.000 claims description 34
- 238000007726 management method Methods 0.000 description 67
- 238000004590 computer program Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 27
- 238000005457 optimization Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 13
- 238000011156 evaluation Methods 0.000 description 13
- 238000000605 extraction Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000001010 compromised effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010130 dispersion processing Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007499 fusion processing Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 229920000433 Lyocell Polymers 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种私有数据的处理方法、计算方法及所适用的设备。其中,私有数据的处理方法包括:获取一计算任务,以及获取用于处理计算任务的计算配置;依据计算配置确定至少一个计算节点;依据计算配置将计算任务处理成对应各计算节点的计算指令;令各计算节点依据相应的计算指令执行包含私密数据的秘密计算,以使各计算节点输出用于得到计算任务的处理结果的计算结果;其中,私密数据是各计算节点依据相应计算指令从至少一个数据源获取的、且由数据源将私有数据隐私化处理后而得到的。本申请解决了技术人员难于利用密码学方式处理涉及私有数据的数据处理逻辑,同时计算节点无法对私有数据进行泄露。
Description
技术领域
本申请涉及数据计算技术领域,特别是涉及一种私有数据的处理方法、计算方法及所适用的设备。
背景技术
电子设备的智能化+互联网推动大数据业务的发展,同时,受大数据业务更具便捷性、操作性的引导,人们的生活习惯也在发生变化。例如,用户/企业在各银行的信用评级,可便于贷款方评价借款方的还贷能力。再如,集体出行时多人分享导航路线有利于彼此联系。又如,企业之间藉由分享数据进行数据处理以便于为客户提供更准确的统计信息等等。
随着大数据在企业之间、企业与个人之间、个人与个人之间分享,一些私有数据,如银行信用等级、个人身份信息、个人消费信息等,会随着数据业务被泄露。随着用户行为、习惯被以数据化收集,用户/企业对私有数据越来越重视。因此,数据分享业务和私有数据保密成为一对日益凸显的矛盾。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种私有数据的处理方法、计算方法及所适用的设备,用于解决现有技术中数据分享中隐私数据安全处理的问题。
为实现上述目的及其他相关目的,本申请的第一方面提供一种私有数据的处理方法,包括:获取一计算任务,以及获取用于处理所述计算任务的计算配置;依据所述计算配置确定至少一个计算节点;依据所述计算配置将所述计算任务处理成对应各计算节点的计算指令;令各所述计算节点依据相应的计算指令执行包含私密数据的秘密计算,以使各所述计算节点输出用于得到所述计算任务的处理结果的计算结果;其中,所述私密数据是各所述计算节点依据相应计算指令从至少一个数据源获取的、且由所述数据源将私有数据隐私化处理后而得到的。
在所述第一方面的某些实施方式中,所述计算任务是基于用户的输入操作而生成的。
在所述第一方面的某些实施方式中,所述计算配置包括:执行所述计算任务的秘密计算方式,和按照所述秘密计算方式执行所述计算任务的计算节点数量。
在所述第一方面的某些实施方式中,所述依据计算配置确定至少一个计算节点的方式包括:根据基于计算节点的属性信息而设置的选取规则,从多个计算节点中选取属性信息符合所述依据计算配置的计算节点。
在所述第一方面的某些实施方式中,还包括维护各计算节点的属性信息的步骤。
在所述第一方面的某些实施方式中,所述依据计算配置将所述计算任务处理成对应各计算节点的计算指令的方式包括:根据预设的计算节点与数据源之间的交互方式,将数据源信息、及基于所述计算配置而设置的用于向相应计算节点提供私密数据的相关信息,设置在相应计算节点的计算指令中;其中,所述私密数据是所述数据源将私有数据进行隐私处理而得到的。
在所述第一方面的某些实施方式中,根据所述计算配置,各数据源所提供的私密数据是利用以下任一种隐私化处理方式得到的:所述私密数据是将私有数据进行转换而得到的;所述私密数据是将私有数据进行分散处理而得到的;或所述私密数据是将多个私有数据进行融合处理而得到的。
在所述第一方面的某些实施方式中,所述依据计算配置将所述计算任务处理成对应各计算节点的计算指令的方式包括:按照所述计算配置将所述计算任务处理成对应各计算节点、且使各计算节点协同执行的各计算指令。
在所述第一方面的某些实施方式中,所述按照计算配置将所述计算任务处理成对应各计算节点、且使各计算节点协同执行的各计算指令包括:按照计算配置将所述计算任务生成用于分配给参与秘密计算的多个计算节点的计算指令;以及按照计算配置将设置各计算节点之间进行中间数据交互的计算指令;其中,依据所述计算指令中所交互的中间数据使各计算节点协同执行。
在所述第一方面的某些实施方式中,所生成的计算指令用于指令至少部分计算节点将计算结果输出至用于得到所述处理结果的计算设备上。
本申请第二方面提供一种处理私有数据的计算方法,包括:从一任务管理平台获取计算指令;其中,所述计算指令是所述任务管理平台依据处理一计算任务的计算配置而得到的;依据所述计算指令从至少一个数据源获取私密数据;其中,所述私密数据是由所述数据源将私有数据隐私化处理后而得到的;依据所述计算指令并利用所述私密数据执行秘密计算,并得到计算结果。
在所述第二方面的某些实施方式中,在执行所述秘密计算之前,依据所述计算指令从所有数据源获取私密数据。
在所述第二方面的某些实施方式中,所述依据计算指令从至少一个数据源获取私密数据的方式包括:将包含私密数据的相关信息的数据请求发送至相应数据源,以获取相应数据源所提供的私密数据。
在所述第二方面的某些实施方式中,所获取的私密数据为:经加密处理而得到的私有数据、和/或经随机分散处理而得到的多个私密数据中的部分私密数据。
在所述第二方面的某些实施方式中,所述依据计算指令并利用所述私密数据执行秘密计算的方式包括以下至少一种:将执行所述秘密计算期间所产生的中间数据发送至其他计算节点;获取其他计算节点的中间数据,以利用所述中间数据执行秘密计算。
在所述第二方面的某些实施方式中,还包括:依据计算指令将计算结果输出至用于得到对应计算任务的处理结果的计算设备上。
本申请第三方面提供一种处理私有数据的任务管理平台,包括:存储装置,用于存储至少一个程序;处理装置,与所述存储装置相连,用于按照所存储的至少一个程序,执行如第一方面中任一所述的处理方法以确定各计算节点执行相应的秘密计算;接口装置,与所述处理装置和各所述计算节点数据连接。
本申请第四方面提供一种处理私有数据的节点设备,包括:接口装置,用于与一任务管理平台和至少一个数据源进行数据通信;存储装置,用于存储至少一个程序、来自所述任务管理平台的计算指令、以及来自各数据源的私密数据;处理装置,用于调用所述至少一个程序以执行如第二方面中任一所述的计算方法。
本申请第五方面提供一种数据源,包括:数据接口,用于读取私有数据;网络接口,用于与计算节点进行数据通信;处理装置,用于基于包含计算节点信息的数据请求,将私有数据进行隐私化处理并得到私密数据,以及将相应私密数据发送给相应计算节点;其中,所述隐私化处理方式与所述数据请求中基于计算配置而设置的相关信息相对应。
在所述第五方面的某些实施方式中,所述隐私化处理方式包括以下任一种:将私有数据进行转换而得到私密数据;将私有数据进行分散处理而得到私密数据;或将多个私有数据进行融合处理而得到私密数据。本申请第六方面提供一种私有数据的处理***,包括:数据源,用于提供私密数据,其中所述私密数据是经隐私化处理的私有数据;如第三方面所述的任务管理平台;由所述任务管理平台选择的、如第四方面所述的计算节点。
本申请第七方面提供一种计算机可读存储介质,存储有至少一程序;所述至少一程序在被调用时执行如第一方面中任一所述的处理方法。
本申请第八方面提供一种计算机可读存储介质,存储有至少一程序;所述至少一程序在被调用时执行如第二方面中任一所述的计算方法。
本申请第九方面提供一种任务管理***,包括:获取模块,用于获取一计算任务,以及获取用于处理所述计算任务的计算配置;节点选取模块,用于依据所述计算配置确定至少一个计算节点;指令生成模块,用于依据所述计算配置将所述计算任务处理成对应各计算节点的计算指令;分配模块,用于令各所述计算节点依据相应的计算指令执行包含私密数据的秘密计算,以使各所述计算节点输出用于得到所述计算任务的处理结果的计算结果;其中,所述私密数据是各所述计算节点依据相应计算指令从至少一个数据源获取的、且由所述数据源将私有数据隐私化处理后而得到的。
在所述第九方面的某些实施方式中,所述计算任务是基于用户的输入操作而生成的。
在所述第九方面的某些实施方式中,所述计算配置包括:执行所述计算任务的秘密计算方式,和按照所述秘密计算方式执行所述计算任务的计算节点数量。
在所述第九方面的某些实施方式中,所述节点选取模块用于根据基于计算节点的属性信息而设置的选取规则,从多个计算节点中选取属性信息符合所述依据计算配置的计算节点。
在所述第九方面的某些实施方式中,所述节点选取模块还用于维护各计算节点的属性信息。
在所述第九方面的某些实施方式中,所述指令生成模块用于根据预设的计算节点与数据源之间的交互方式,将数据源信息、及基于所述计算配置而设置的用于向相应计算节点提供私密数据的相关信息,设置在相应计算节点的计算指令中;其中,所述私密数据是所述数据源将私有数据进行隐私处理而得到的。
在所述第九方面的某些实施方式中,根据所述计算配置,各数据源所提供的私密数据是利用以下任一种隐私化处理方式得到的:所述私密数据是将私有数据进行转换而得到的;所述私密数据是将私有数据进行分散处理而得到的;或所述私密数据是将多个私有数据进行融合处理而得到的。
在所述第九方面的某些实施方式中,所述指令生成模块用于按照所述计算配置将所述计算任务处理成对应各计算节点、且使各计算节点协同执行的各计算指令。
在所述第九方面的某些实施方式中,所述指令生成模块用于执行以下步骤:按照计算配置将所述计算任务生成用于分配给参与秘密计算的多个计算节点的计算指令;以及按照计算配置将设置各计算节点之间进行中间数据交互的计算指令;其中,依据所述计算指令中所交互的中间数据使各计算节点协同执行。
在所述第九方面的某些实施方式中,所生成的计算指令用于指令至少部分计算节点将计算结果输出至用于得到所述处理结果的计算设备上。
如上所述,本申请的私有数据的处理方法、计算方法及所适用的设备,具有以下有益效果:通过将计算任务转换为计算节点的计算指令,解决了技术人员难于利用复杂的密码学方式处理涉及私有数据的数据处理逻辑,同时由于计算节点仅获取经隐私处理后的私密数据,因此计算节点无法对私有数据进行泄露。
附图说明
图1显示为本申请任务管理平台执行的处理方法在一实施方式中的流程图。
图2显示为本申请利用树状结构描述循环处理操作的计算任务的示意图。
图3显示为本申请利用树状结构描述提取公因子操作的计算任务的示意图。
图4显示为本申请利用树状结构描述常用表达提取操作的计算任务的示意图。
图5显示为将图2所示的计算任务优化处理的示意图。
图6显示为将图3所示的计算任务优化处理的示意图。
图7显示为将图4所示的计算任务优化处理的示意图。
图8显示为本申请计算节点执行的计算方法在一实施方式中的流程图。
图9显示为本申请数据源执行的私有数据提供方法的流程图。
图10显示为本申请处理***在一实施方式中的架构示意图。
图11显示为本申请处理***在又一实施方式中的架构示意图。
图12显示为本申请任务管理***的程序模块在一实施方式中的示意图。
图13显示为用于获取计算任务而提供的计算机程序语言编辑界面的示意图。
图14显示为用于获取计算任务而提供的可供选择操作的编辑界面的示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一计算节点可以被称作第二计算节点,并且类似地,第二计算节点可以被称作第一计算节点,而不脱离各种所描述的实施例的范围。第一计算节点和第二计算节点均是在描述一个计算节点值,但是除非上下文以其他方式明确指出,否则它们不是同一个计算节点。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
为了保护互联网企业和用户的私有数据,一些方式是采用加密方式进行数据传输,以确保数据传输期间的计算机设备不会获得私有数据,然而,该加密数据在处理设备进行数据处理时,是需解密的。这使得私有数据在处理设备上不存在隐私可言。在另一些方式中,利用私有数据的数据处理过程采用密码学所使用的数据处理方式,如采用同态处理方式、秘密分享方式等,这使得处理私有数据的处理设备无需利用解密后的私有数据进行数据处理,该种方式虽然有效解决了私有数据隐私化的问题,但是,对技术人员来说,利用密码学技术进行数据处理具有极高的研发门槛,不利于技术人员在确保私有数据***露的情况下使用私有数据进行业务开发的目的。
为此,本申请提供一种私有数据的处理方法。所述处理方法旨在一方面确保用户的私有数据不被泄露,另一方面有效降低技术人员使用私有数据进行数据处理的研发难度。其中,所述私有数据是指以数字化形式存储并且具有不希望被泄露属性的数据,其包括但不限于:个人/企业身份信息、个人/企业账户信息、个人体貌特征信息、个人/企业消费信息(如账单)、个人/企业因使用软件的行为而产生的信息(如移动路线、浏览时长等)、企业收集到的具有商业价值的评价信息、以及企业根据至少上述各信息进行分析后得到的信息等。在此,所述数字化形式存储举例为带有私有数据标签和/或权限而保存在计算机可读存储介质中的数据,其不希望被泄露的属性表现在所设置的标签和/或权限。其中,所述标签包括但不限于标记在数据库中且对应于数据库中所存储的数据的标志位(如布尔值等)。所述权限包括但不限于:读写数据的权限、获得明文的私有数据的权限等。所述私有数据可通过对数据库进行读操作而获得,或利用存储地址进行读操作而获得。所述私有数据通常由数据持有方生成或运维。例如,所述数据持有方不因注资、人员关系、使用关系等将私有数据提供给数据处理方和获取方,并由数据处理方予以公开、交易等处置。其中,所述数据持有方可以与数据处理方为同一方或为单独一方。例如,某借贷部门藉由一查询平台查证个人A在银行B1和B2的信用记录,则借贷部门为数据结果的获取方,查询平台为数据处理方,银行B1和B2为私有数据持有方。又如,用户P1和P2使用同一企业C的导航软件,用户P1通过企业C获取用户P2的导航数据,则获取方为P1、数据处理方为企业C,私有数据持有方为用户P2。
在此,所述处理方法由任务管理平台来执行。其中,所述任务管理平台可为单台计算机设备、或基于云架构的服务***等。其中,所述单台计算机设备可以是自主配置的可执行所述处理方法的计算机设备,其可位于私有机房或位于公共机房中的某个被租用的机位中。所述云架构的服务***包括公共云(Public Cloud)服务端与私有云(Private Cloud)服务端,其中,所述公共或私有云服务端包括Software-as-a-Service(软件即服务,简称SaaS)、Platform-as-a-Service(平台即服务,简称PaaS)及Infrastructure-as-a-Service(基础设施即服务,简称IaaS)等。所述私有云服务端例如阿里云计算服务平台、亚马逊(Amazon)云计算服务平台、百度云计算平台、腾讯云计算平台等等。
所述任务管理平台可包括存储装置、处理装置、网络接口装置等。事实上,根据任务管理平台实际运行所述处理方法的硬件装置,上述各装置可位于单台服务器上,或位于多台服务器中并通过各服务器之间的数据通信协同完成。
为此,所述接口装置与处理装置数据连接,其可以通过总线连接,或通过通信网络进行数据传递。为此,所述接口装置包括但不限于网卡、移动网络接入模块、通过总线与处理装置相连的总线接口等。所述接口装置还与计算节点通信连接,其中,所述计算节点是由处理装置执行所述处理方法而选定的,所述计算节点可以为一个或多个。所述计算节点可以为一实体计算设备,或由实体计算设备承载的虚拟设备。所述接口装置通过互联网、移动网络、及局域网络中至少一种与各计算节点进行数据通信,以便向各计算节点发送用于秘密计算的计算指令。
所述存储装置用于存储可执行所述处理方法的至少一个程序。所述存储装置可与处理装置位于同一实体服务器上,或位于不同实体服务器中并通过各服务器的接口装置将程序传递给运行所述程序的处理装置。所述存储装置可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络(未示出)访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。所述存储装置还包括存储器控制器,其可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。其中,存储在存储装置中的软件组件包括操作***、通信模块(或指令集)、文本输入模块(或指令集)、以及应用(或指令集)。
所述处理装置可操作地与存储装置耦接。更具体地,处理装置可执行在存储器和/或非易失性存储设备中存储的程序以在任务平台中执行操作。如此,处理装置可包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个现场可编程逻辑阵列(FPGA)、或它们的任何组合。其中,所述处理装置所包含的多个CPU可位于同一实体服务器中或分散在多个实体服务器中,并借助于接口装置实现数据通信,以协同地执行所述处理方法。
所述处理装置通过调用存储装置所存储的程序执行所述处理方法。请参阅图1,其显示为所述处理方法在一实施方式中的流程图。
在步骤S110中,获取一计算任务,以及获取用于处理所述计算任务的计算配置。
在此,技术人员预先将包含处理私有数据的业务逻辑的程序存储在任务管理平台的存储装置中,所述业务逻辑是藉由计算机程序语言来描述对私有数据的处理过程,该处理过程可包含一个或多个处理操作。其中,所述计算机程序语言可以是任一种可由计算机设备识别的语言,其包括但不限于可经由编译而得到机器语言的计算机程序语言(如Python、Java、C++等),或者与机器语言一一对应且具有可读性的计算机程序语言(如汇编语言等)。
所述处理操作可以是为了实现业务逻辑而对数据进行条件处理、循环处理、布尔处理、计算处理等。其中计算处理包括但不限于:加、减、乘、除等数字计算处理,以及与、或、非等逻辑计算等。所述业务逻辑是指技术人员利用一个或多个处理操作对包含私有数据进行数据处理、且依据自然规律而得到的流程。例如,一种业务逻辑包括:利用银行B1和B2中用户A的银行存款数量、银行贷款数量、银行还款历史记录等确认用户A的还款能力的评价流程。又如,一种业务逻辑包括:利用用户P1和P2当前的位置信息向用户P1所持终端设备提供P1与P2之间相距距离和相距路线信息的路程提示流程。
所述计算任务的获取操作可基于用户的输入操作而生成的。在一些示例中,所述计算任务可直接地由使用所述业务逻辑的用户的输入操作而产生。例如,用户通过浏览器或客户端输入待查询信用评价结果的用户信息,藉由所述浏览器或客户端将包含用户信息和待反馈评价结果的设备信息封装在一查询请求中,并发送给所述任务管理平台,所述任务管理平台基于所获取的查询请求执行相应的业务逻辑,其中所述业务逻辑中包含对私有数据进行处理的计算任务。在又一些示例中,所述计算任务可间接地由使用所述业务逻辑的用户的输入操作而产生、或由设计所述业务逻辑的技术人员的输入操作而产生。例如,用户通过浏览器或客户端输入一时间间隔信息,其用于定期获得对私有数据进行处理的处理结果;或者技术人员根据业务需求在业务逻辑中内置了所述时间间隔,所述任务管理平台基于所述时间间隔信息执行相应的业务逻辑,其中所述业务逻辑中包含对私有数据进行处理的计算任务。
为此,在一些示例中,所述计算任务包括:藉由计算机程序语言编辑界面而获取的程序模块。在此,所述计算任务可以是藉由计算机程序语言来描述数据处理的程序模块(或叫程序段、程序块),其中需要执行秘密计算的计算任务包含涉及对私有数据处理过程的程序模块。在一些具体示例中,所述计算任务为直接获取自所述编辑界面中用计算机程序语言描述的程序模块。例如,请参阅图13,其显示为用于获取计算任务而提供的计算机程序语言编辑界面的示例,其中,在所述编辑界面中技术人员(或叫程序员)编辑包含下述程序模块的程序包括:
……
x=p.ss(client ID)
def logistic(x,start,iter_cnt);
……
result=logistic(x,0,100)
result.reveal()
……
其中,所述计算任务为由:获取输入参数的程序语句(x=p.ss(client ID)),对所述输入参数进行处理的程序语句(def logistic(x,start,iter_cnt);……result=logistic(x,0,100)),以及获得处理结果的程序语句(result.reveal())构成的程序模块。
其中,client ID为表示持有私有数据的数据源的ID信息,x为经隐私处理的私有数据,即用于秘密计算的私密数据;logistic()表示对私有数据x进行秘密计算的计算方式,其中,start和iter_cnt为秘密计算所用到的参数;result.reveal()表示对秘密计算结果的反馈。
在又一些具体示例中,所述计算任务为将前述示例中提及的利用计算机程序语言描述的程序模块转换成利用计算算式而描述的程序模块。在此,为实现一完整的业务逻辑可能由计算机程序语言描述成包含条件处理、循环处理、布尔处理、计算处理等处理操作的程序。为进行秘密计算,所述程序被分解成多个可由计算算式执行的程序模块。例如,一个包含循环和计算处理的处理操作可分解为一个或多个程序模块。
在经分解的各程序模块中,所述计算任务包含涉及对私有数据处理操作的程序模块,以便采用秘密计算方式进行数据处理。其中,所述程序模块可由计算机程序语言描述,或者利用源码语法结构来描述。其中,所述源码语法结构举例为抽象语法树(AbstractSyntax Tree,AST)。
例如,请参阅图2,其显示为利用树状结构描述循环处理操作的计算任务的示意图;其中,将循环处理操作的计算任务描述成通过包含乘法计算得到处理结果的树状结构。又如,请参阅图3,其显示为利用树状结构描述提取公因子操作的计算任务的示意图;其中,将提取公因子操作的计算任务描述成通过加法计算和乘法计算级联的方式得到处理结果的树状结构。再如,请参阅图4,其显示为利用树状结构描述常用表达提取操作的计算任务的示意图;其中,将常用表达提取操作的计算任务描述成通过加法计算和乘法计算级联的方式得到处理结果的树状结构。
其中,描述计算任务的程序模块可直接被暂存以便在执行步骤S130时被调用。在一些示例中,所述程序模块被反馈到技术人员的编辑界面上,以供技术人员参照使用。
在又一些示例中,所述计算任务可基于编辑界面的选择操作、输入操作、拖拽操作、绘图操作等而生成的程序模块。例如,请参阅图14,其显示为可供选择操作的编辑界面的示意图,通过浏览器或客户端内所展示的数据源选项,从被勾选的数据源获取私有数据的程序语句;以及利用所述编辑界面所展示的对私有数据的处理方式的选项,获取处理该私有数据的处理过程及得到相应处理结果的程序语句,故而所述计算任务为包含上述各程序语句的程序模块。
需要说明的是,上述各示例仅为对获取计算任务的举例而非对计算任务的获取方式的限制。事实上,计算任务还可以为结合前述各示例的方式而得到的程序模块。或者所述计算任务还可以在任何执行业务逻辑期间藉由所执行的涉及私有数据处理的程序模块而产生等。
其中,为了便于技术人员利用秘密计算方式实现业务逻辑中的计算任务,所述任务管理平台还获取用于处理所述计算任务的计算配置。在此,在一些示例中,用于描述业务逻辑的程序中包含可执行秘密计算的接口程序,通过调用相应接口程序来确定执行相应计算任务的计算配置。例如上述提及的x=p.ss(client ID),其中,利用p.ss()接口程序提供了用于执行与私有数据x相关的计算配置,即采用基于四个计算节点的秘密计算方式进行秘密计算。需要说明的是,根据实际设计需要,处理装置还可依据计算任务中的参数设置来确定计算配置,例如,所调用的接口程序中设有用于描述使用或不使用秘密计算方式进行数据处理的布尔参数、和/或对应计算配置的参数等。
在又一示例中,技术人员可通过勾选用于描述计算配置的选项,来确定私有数据x执行秘密计算的方式。例如,技术人员通过浏览器或客户端的操作界面在私有数据所在栏勾选一计算配置选项,则处理装置获取处理该私密数据的计算任务的计算配置。
在此,所述计算配置用于指明对私有数据进行秘密计算的方式,其包括但不限于:计算方式、数据通信方式、和隐私化处理方式等。其中,计算方式包括采用同态加密计算方式、采用乱码电路计算方式、或多计算节点协同计算的方式等。数据通信方式包括采用秘密分享计算方式、基于认证而传输数据的通信方式、利用密钥进行数据通信方式中的至少一种等。其中,秘密分享计算方式举例包含利用秘密分享技术执行基于SPDZ秘密计算架构而确定的秘密计算方式,或者利用秘密分享技术执行基于四选二秘密计算架构而确定的秘密计算方式。其中,所述秘密计算架构还可以举例为三选二等。其中,四选二秘密计算架构和三选二秘密计算架构是指由四个(或三个)计算节点参与秘密计算并由两个计算节点提供计算结果。例如,最多采用四个计算节点的秘密计算架构的秘密计算方式。
需要说明的是,根据秘密计算架构的设计需要,参与计算节点的数量不限于上述示例,以及提供计算结果的计算节点数量也不限于上述示例。例如,所述计算配置中包含利用秘密分享技术和乱码电路配合的计算方式执行由预设数量的多个计算节点参与计算的秘密计算方式;其中,各计算节点中配置有可执行乱码电路的处理芯片并利用秘密分享技术进行数据交互。
藉由上述各示例可见,所述计算配置包括:执行所述计算任务的秘密计算方式,和按照所述秘密计算方式执行所述计算任务的计算节点数量。其中,所述计算节点数量可由秘密计算方式确定。为此,在获得计算任务和所对应的计算配置后,所述处理装置执行步骤S120。
在步骤S120中,依据所述计算配置确定至少一个计算节点。在此,依据计算配置,处理装置从所能提供的计算节点中选取对应数量的计算节点以作为参与秘密计算的执行者。
其中,所述计算节点可为实体计算机设备。例如,所述计算节点为一实体服务器、个人计算设备、构成云服务端的服务器、或者设置有专用于秘密计算的专用设备等。例如,所述计算节点包含专用于计算同态加密方式的处理芯片。再如,所述计算节点包含基于秘密分享和SPDZ或基于四个计算节点的秘密计算架构的处理芯片等。其中,上述各示例中的处理芯片举例为包含微处理器的芯片,或包含FPGA的芯片等。又如,所述计算节点包含乱序电路的处理芯片。
所述计算节点也可以为虚拟设备。例如,一实体服务器可提供的多个虚拟设备,以作为对应的多个计算节点,其中,所配置的秘密计算方式为可由虚拟设备执行的软件程序。
在一些示例中,根据实际秘密计算方式的设计,所述计算节点还可以位于数据源一侧,例如,由数据源作为计算节点(或计算节点之一);又如,所述任务管理平台为计算节点(或计算节点之一)。故而计算节点的实体或虚拟设备的形态和所设置的地理位置不做限定。
其中,处理装置所能提供的计算节点可以是所述处理装置通过接口装置所能进行数据通信的所有计算节点。在一些实例中,所述处理装置所能提供的计算节点为根据计算配置预先加载了执行程序的实体设备和/或虚拟设备。换言之,处理装置根据计算配置选择可按照相应秘密计算方式进行秘密计算的计算节点。例如,处理装置可与能够按照计算配置C1的计算节点(P11、P12…、P1n)进行数据通信,以及能够按照计算配置C2的计算节点(P21、P22…、P2m)进行数据通信,根据所获取的计算配置C1,所述处理装置从计算节点(P11、P12…、P1n)中选取对应数量的计算节点来执行对应所获取的计算任务的秘密计算。
在一些示例中,所述计算配置中可明确设置计算节点的数量。例如,藉由接口程序中的节点数量参数定义计算配置中的计算节点的数量,所述处理装置通过解析所述接口程序来确定参与秘密计算的计算节点数量。在又一示例中,处理装置根据预设的秘密计算方式与计算节点数量的对应关系,确定所获取的计算配置中秘密计算方式所对应的计算节点数量。例如,所获取的计算配置包括采用同态加密计算的秘密计算方式执行所获取的计算任务,根据上述对应关系确定使用一个计算节点来执行。又如,所获取的计算配置包括采用秘密分享技术及基于四个计算节点的秘密计算架构的秘密计算方式执行所获取的计算任务,根据上述对应关系确定使用四个计算节点来执行。
在此,所述处理装置可依据计算配置确定选取计算节点的数量。当处理装置所能选取的计算节点的数量与所确定的计算节点的数量一致时,选取相应的计算节点。当处理装置所能选取的计算节点的数量多于所确定的计算节点的数量时,在一些示例中,所述处理装置可随机选取相应数量的计算节点;在又一些示例中,处理装置根据预设的各计算节点的选取规则来选取相应数量的计算节点。其中,计算节点的属性信息为所述处理装置维护的可动态更新的属性信息,其包括但不限于:当前执行秘密计算的各计算节点的设备信息,以及各计算节点所能执行的秘密计算方式的配置信息、各计算节点所在实体服务器的设备提供商信息等。其中,根据当前执行秘密计算的各计算节点为实体设备或虚拟设备,其对应的设备信息为实体设备的设备信息(如IP地址、MAC地址等)、或者为虚拟设备的设备信息(如虚拟设备ID等)。所述各计算节点所能执行的秘密计算方式的配置信息可以根据预先对各计算节点执行秘密计算而配置的程序或处理芯片而确定的。例如,根据可处理的秘密计算方式而预先配置了多个计算节点,相应各计算节点的配置信息即为所能执行的秘密计算方式的类型或芯片ID信息等。所述设备提供商信息举例为云服务提供商信息、或服务器租赁服务提供商信息。在一些示例中,所述属性信息还包括各计算节点不断更新的资源信息等。例如,处理装置所能连接的各计算节点间隔地将当前的资源信息上报至所述服务端。其中,所述资源信息举例包括CPU占用率、内存占用率、当前所分配的秘密计算的数量等。
其中,所述选取规则是根据各计算节点的属性信息而设置的。例如,所述选取规则包括基于设备提供商信息而设置的规则,比如,选取不同设备提供商所提供的计算节点。又如,所述选取规则包括基于资源信息而设置的规则,比如,选取CPU占用率低于预设占有率阈值的计算节点。再如,所述选取规则包括选取当前已分配的秘密计算数量小于预设数量阈值的计算节点等。
需要说明的是,上述选区规则并非择一设置,事实上可根据综合所维护的各计算节点的属性信息来设置用于选择的评价方式,通过执行所述评价方式而得到的评价结果来选择用于执行当前秘密计算的计算节点。在此不再详述。
在步骤S130中,依据所述计算配置将所述计算任务处理成对应各计算节点的计算指令。
在此,根据预设的对应计算配置中的秘密计算方式的接口程序库,处理装置将所获取的算任务转换成便于计算节点运行的计算指令。其中,所述计算指令可以是利用机器语言描述的指令、或利用计算机程序语言描述的指令。所述计算指令举例包含指示计算节点获取经隐私处理的私有数据的指令、按照秘密计算方式执行计算任务所描述逻辑的指令、以及指示计算节点对计算结果进行处理的指令等。
其中,为使数据源能够向参与秘密计算的各计算节点提供与所述处理装置所获取的计算配置相匹配的私有数据,所述步骤S130包括:根据预设的计算节点与数据源之间的交互方式,将数据源信息、及基于所述计算配置而设置的用于向相应计算节点提供私密数据的相关信息,设置在相应计算节点的计算指令中。其中,所述私密数据是所述数据源将私有数据进行隐私处理而得到的,以供各计算节点依据计算指令获取。
在此,所述处理装置依据计算任务所涉及的私有数据,为参与秘密计算的各计算节点设置用以获取私密数据的计算指令。其中,所述计算节点与数据源之间的交互方式为预设方式,其举例包括以下任意种:基于权限认证的方式进行数据交互,基于通信加密方式进行数据交互,基于携带校验信息的方式进行数据交互,或者基于秘密分享进行数据交互等。
其中,数据源预先设有计算配置及所对应的隐私化处理方式。根据计算配置,处理装置将与获取私密数据相关的相关信息设置在计算指令中,以供相应计算节点执行。其中,所述相关信息用于藉由计算节点向数据源所发送的数据请求,来告知数据源其采用何种数据隐私化处理方式来反馈相应的私密数据。例如所述相关信息包括:获取私密数据的权限信息、便于数据源查询和读取私有数据的索引信息,甚至还可以包含计算节点在秘密计算中的身份信息、计算配置等。根据所述计算配置,各数据源所提供的私密数据可以是利用以下任一种方式得到的:将私有数据进行转换而得到的,将私有数据进行分散处理而得到的,或者将多个私有数据进行融合处理而得到的。其中,将私有数据进行转换而得到私密数据的方式包括但不限于以下任一种:将私有数据进行如M5加密等加密方式进行数据转换而得到私密数据;利用编码等方式将私有数据变长或变短而得到私密数据;利用预设的映射操作将私有数据进行映射而得到私密数据;利用经机器学习而确定的模型将私有数据进行模型化处理而得到私密数据等。例如,处理装置将用于标识有同态加密计算方式的相关信息以及发送该相关信息的交互方式设置在计算指令中以便藉由计算节点发送给相应数据源,或将所述相关信息和计算节点信息直接发送给数据源;数据源根据所述相关信息向计算节点反馈经加密处理后的私有数据作为私密数据。
所述将私有数据进行分散处理而得到私密数据的方式包括但不限于:随机分散处理等。例如,处理装置将用于标识有采用基于四个计算节点的秘密计算架构的相关信息和发送该相关信息的交互方式设置在计算指令中,以便藉由计算节点发送给相应数据源,数据源依据基于四个计算节点的秘密计算架构所对应的隐私化处理方式,将私有数据随机分散处理成多个私密数据,并依据基于四个计算节点的秘密计算架构所预设的私密数据的节点分配方式,向对应计算节点反馈其中部分私密数据。
所述将多个私有数据进行融合处理而得到私密数据的方式包括但不限于:将各个私有数据进行转换处理后并形成矩阵形式的私密数据,或者利用经机器学习而确定的模型将多个私有数据融合成一个序列化(或称为向量化)的私密数据。
另外,根据计算配置中所使用的秘密计算方式,所述处理装置将处理操作中的计算任务转换成可由各计算节点按照秘密计算方式执行计算任务所描述逻辑的计算指令。其中,所述计算指令包含为秘密计算而产生用于参与计算的随机数的计算指令、为秘密计算而使得多计算节点之间执行中间数据交互的计算指令、以及利用一系列计算来描述计算任务的逻辑的计算指令等。
基于上述各计算指令的设置示例,为利用一系列计算来实现计算任务,所述步骤S130包括:按照所述计算配置将所述计算任务处理成对应各计算节点、且使各计算节点协同执行的各计算指令。
在一些示例中,所述计算任务由单一计算节点来执行,处理装置按照计算配置将用于构成对私有数据的逻辑处理操作和计算处理操作等的计算任务处理成以私密数据为输入数据之一且通过计算来描述计算任务的计算指令。其中,所述逻辑处理操作包括条件处理操作、循环处理操作、计算处理操作等等。所述计算处理操作包括数学计算处理操作、逻辑计算处理操作等。所述计算任务举例对应一条或多条依顺序执行的计算指令等。例如,根据对应计算配置的接口程序库,处理装置将一计算任务:res=a if cond else b转换成计算指令:res=b+cond×(a-b)。藉由上述示例推广到更为复杂的计算任务,所述处理装置将利用计算机程序语言所描述的计算任务转换成一系列的数学计算,并以按照顺序执行的计算指令描述一系列数学计算的计算顺序。
在一些具体示例中,为了降低秘密计算的复杂度,所述处理装置根据计算配置所提供的秘密计算方式,对执行计算任务的秘密计算过程进行优化处理,进而生成优化后的计算指令。其中,所述优化处理包括但不限于利用矩阵计算来优化循环逻辑、特征提取、常用表达提取等。
例如,请参阅图5,其显示为将图2所示的计算任务优化处理的示意图;其中,根据计算配置,将对应循环处理操作的计算任务优化成利用矩阵乘法计算执行循环处理操作的计算任务,并依据优化后的计算任务生成计算指令。又如,请参阅图6,其显示将图3所示的计算任务优化处理的示意图;其中,根据计算配置,将对应提取公因子操作的计算任务优化处理成通过加法计算所得到的各计算结果级联和乘法计算的计算任务,并依据优化后的计算任务生成计算指令。再如,请参阅图7,其显示为将图4所示的计算任务优化处理的示意图;其中,根据计算配置,将对应常用表达提取操作的计算任务优化成通过矩阵加法计算的计算任务,并依据优化后的计算任务生成计算指令。
在另一些示例中,计算节点的数量为多个,处理装置将基于处理操作而得到的计算任务转换成一系列需要多个计算节点协同执行数学计算的计算指令。
在此,从个体来说,各对应于计算节点的计算指令用于指示各自对应的计算节点按顺序执行数学计算;从整体来说,各计算指令还用于指示各计算节点之间按顺序将所计算得到的中间数进行数据交互,以便通过多计算节点的协调调度来实现对私有数据在各计算节点中无法被泄露。为此,所述步骤S130还包括:按照计算配置将所述计算任务生成用于分配给参与秘密计算的多个计算节点的计算指令;以及按照计算配置将设置各计算节点之间进行中间数据交互的计算指令;其中,依据所述计算指令中所交互的中间数据使各计算节点协同执行。
基于图5-图7所生成的各计算指令均可转换成利用多个计算节点交互的计算顺序来执行相应计算任务的计算指令。其中,多个计算节点交互的中间数据为在秘密计算期间所产生的临时计算结果。
例如,计算节点S1、S2、Sa、Sb参与由数据源D1和D2各自持有的私有数据d1和d2执行乘法计算任务的秘密计算,其中,按照计算配置,处理装置将d1×d2的计算任务转换成由该四个计算节点按照计算指令的执行顺序予以执行的秘密计算。其中,为使任一计算节点无法获得原始的私有数据d1或d2,所生成的对应计算节点S1的计算指令中包含如“send t1to Sb”的数据交互指令,其中t1为中间数据;以及包含如“calculates t1=x1y1-r12”的数学计算的指令;对应地,对应计算节点Sb的计算指令中包含如“Sb sets zb=(tb+t1)”的数学计算的指令;其中zb为计算节点Sb的计算结果。基于上述示例可见,利用对应该四个计算节点而设置的基于数据交互协同完成秘密计算的各计算指令,确定了按照计算配置所描述的秘密计算方式完成秘密计算的执行顺序。
再有,在根据计算配置而选取单一计算节点进行秘密计算的方式中,该计算节点可提供对应计算任务的经加密的处理结果。例如,计算任务为对私有数据d1和d2执行加法计算,经由步骤S110-S130的处理而得到的计算指令包含:令一计算节点获取数据源的经加密处理的私有数据d1和d2的计算指令,利用同态加密计算方式由该计算节点执行对私有数据d1+d2的计算指令,则该计算节点可得到加密后的计算结果,该计算结果为该计算任务的处理结果。在根据计算配置而选取多个计算节点进行秘密计算的方式中,该计算节点可提供对应计算任务的经加密的处理结果。仍以计算任务为对私有数据d1和d2执行加法计算为例,经由步骤S110-S130的处理而得到的计算指令包含:令3个计算节点获取数据源的经加密处理的私有数据d1和d2的计算指令,利用秘密分享和SPDZ秘密计算架构的计算方式由该3计算节点执行对私有数据d1+d2的计算指令,则各计算节点所得到的计算结果是基于将私有数据d1和d2随机分解后的私密数据进行加法计算的计算结果,该计算结果需经整合处理后得到该计算任务的处理结果。
为防止计算节点得到明文的计算任务的处理结果,或者为防止计算节点可通过破译加密方式而获得私有数据及处理结果。各计算节点基于处理装置所设置的计算指令而得到的计算结果可均不是计算任务的处理结果,为得到对应计算任务的处理结果,所述处理装置所生成的计算指令还包括:用于指令至少部分计算节点将计算结果输出至用于得到所述处理结果的计算设备上的计算指令。其中,所述计算设备可以是任务管理平台或用户执行输入操作所使用的计算设备。例如,处理装置将用户操作的计算设备作为执行计算任务最后计算步骤的终端设备,并为该终端设备配置从三个或四个计算节点中获取两个计算节点的计算结果的计算指令,以及配置按照所获取的计算结果执行计算任务最后计算步骤的计算指令。
需要说明的是,上述选取计算结果以得到处理结果的计算指令仅为举例。根据计算配置,所生成的得到计算任务所对应的处理结果的计算指令可从唯一的计算节点或全部计算节点获取计算结果。
利用上述得到处理结果的计算指令可实现各计算节点及任务管理平台均无法获知私有数据以及利用私有数据执行计算任务后所得到的处理结果。
在得到对应各计算节点的计算指令后,为使各计算节点执行计算指令,所述处理装置还执行步骤S140。
在步骤S140中,令各所述计算节点依据相应的计算指令执行包含私密数据的秘密计算,以使各所述计算节点输出用于得到所述计算任务的处理结果的计算结果。
在此,所述任务管理平台将所得到的计算指令分别发送给相应计算节点,以令各计算节点执行,以使得用户得到对应计算任务的处理结果。
本申请所述的私有数据的处理方法通过将计算任务转换为计算节点的计算指令,解决了技术人员难于利用复杂的密码学方式处理涉及私有数据的数据处理逻辑,同时由于计算节点仅获取经隐私处理后的私密数据,因此计算节点无法对私有数据进行泄露。
为执行计算指令,本申请还提供了一种处理私有数据的计算方法。该计算方法主要由前述提及的计算节点(又称节点设备)执行。其中,所述计算节点为单台计算机设备、或基于云架构的服务***中被使用的实体设备或虚拟设备等。其中,所述单台计算机设备可以是自主配置的可执行所述计算方法的计算机设备,其可位于私有机房或位于公共机房中的某个被租用的机位中。所述云架构的服务***包括公共云服务端与私有云服务端,其中,所述公共或私有云服务端包括SaaS、PaaS及IaaS等。所述私有云服务端例如阿里云计算服务平台、亚马逊云计算服务平台、百度云计算平台、腾讯云计算平台等等。其中,所述虚拟设备可以是实体服务器通过虚拟技术将一***占设备虚拟成多台逻辑设备,供多个用户进程同时使用的设备之一。
所述计算节点可包含存储装置、处理装置、网络接口装置等。事实上,根据计算节点实际运行所述计算方法的硬件装置,上述各装置可位于单台服务器上,或位于多台服务器中并通过各服务器之间的数据通信协同完成。
在一些示例中,根据实际秘密计算方式的设计,所述计算节点还可以位于数据源一侧,例如,由数据源作为计算节点(或计算节点之一);又如,所述任务管理平台为计算节点(或计算节点之一)。故而计算节点的实体或虚拟设备的形态和所设置的地理位置不做限定。
为此,所述接口装置与处理装置数据连接,其可以通过总线连接,或通过通信网络进行数据传递。为此,所述接口装置包括但不限于网卡、移动网络接入模块、通过总线与处理装置相连的总线接口等。所述接口装置还与任务管理平台通信连接,其中,所述任务管理平台可为前述提及的任务管理平台或其他可提供计算指令的任务管理平台。所述接口装置通过互联网、移动网络、及局域网络中至少一种与任务管理平台和数据源进行数据通信,以便接收任务管理平台所发送的用于秘密计算的计算指令,以及获取数据源的私密数据。
所述存储装置用于存储可执行所述计算方法的至少一个程序。所述存储装置可与处理装置位于同一实体服务器上,或位于不同实体服务器中并通过各服务器的接口装置将计算指令传递给运行所述计算的处理装置。所述存储装置可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络(未示出)访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。所述存储装置还包括存储器控制器,其可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。其中,存储在存储装置中的软件组件包括操作***、通信模块(或指令集)、文本输入模块(或指令集)、以及应用(或指令集)。
所述处理装置可操作地与存储装置耦接。更具体地,处理装置可执行在存储器和/或非易失性存储设备中存储的程序以在任务平台中执行操作。如此,处理装置可包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个现场可编程逻辑阵列(FPGA)、或它们的任何组合。其中,所述处理装置所包含的多个CPU可位于同一实体服务器中或分散在多个实体服务器中,并借助于接口装置实现数据通信,以协同地执行所述计算方法。
所述处理装置通过调用存储装置所存储的程序执行所述计算方法。请参阅图8,其显示为所述计算方法在一实施方式中的流程图。
在步骤S210中,从一任务管理平台获取计算指令。
在此所述任务管理平台可以是前述提及的任务管理平台或者其他可提供用于参与秘密计算的计算指令的任务管理平台。其中,所述计算指令是所述任务管理平台依据处理一计算任务的计算配置而得到的。其中,所述计算配置已在前述描述,在此不再详述。所述计算指令为所述计算节点提供了参与秘密计算的执行方式和顺序。
按照计算指令所指示的执行方式和执行顺序,所述计算节点执行步骤S220和S230以利用数据源所提供的私密数据进行计算。其中,根据任务管理平台依据计算配置而设置的计算指令,所述计算指令可包含使得计算节点执行步骤S220的计算指令,以及使得计算节点执行步骤230的计算指令。
在步骤S220中,依据所述计算指令从至少一个数据源获取私密数据;其中,所述私密数据是由所述数据源将私有数据隐私化处理后而得到的。
为此,在一些示例中,所述计算指令包括为执行秘密计算而需获得私密数据的数据交互指令。根据计算配置,用于指令数据交互的计算指令可包含私密数据传输方式、私密数据的相关信息等。其中,所述传输方式举例包括:利用秘密分享技术、利用认证方式、加密传输方式等进行数据传输等。计算节点将包含私密数据的相关信息的数据请求发送至相应数据源,以获取相应数据源所提供的私密数据。其中,所述相关信息包含数据源信息、数据源对私有数据进行隐私处理的方式等。其中,所述私密数据为经由前述提及的任一种隐私化处理方式得到的,在此不再详述。例如,计算节点P1执行计算指令以发送包含数据源D1的IP地址信息和获得加密处理后的私有数据的数据请求,相应的数据源D1反馈的私密数据为经加密处理的私有数据。又如,计算节点P1执行计算指令以发送包含数据源D1的IP地址信息和获得基于基于四个计算节点的计算架构的私密数据的数据请求,相应的数据源D1反馈的私密数据为将私有数据按照基于四个计算节点的计算架构而随机分散的四组私密数据中的一组;其中任一组私密数据无法经反推得到私有数据。
在另一些示例中,所述任务管理平台将包含计算节点信息、私有数据信息和数据源对私有数据进行隐私处理的方式等的数据请求发送至数据源,以便数据源按照数据请求将对应的私密数据推送至计算节点。为此,相应计算节点依据所述计算指令所提供的数据源信息,接收相应数据源所推送所述私密数据。例如,任务管理平台根据计算任务所涉及的私有数据,向对应的各数据源发出定时或延时推送相应私密数据的指令,以供数据源执行;以及任务管理平台将包含获取相应数据源私密数据的计算指令提供给各计算节点,则所述计算节点依据所述计算指令所提供的数据源信息,接收相应数据源所推送所述私密数据。
在步骤S230中,依据所述计算指令并利用所述私密数据执行秘密计算,并得到计算结果。其中,根据计算配置,所述计算指令可包含为秘密计算而产生用于参与计算的随机数的计算指令、为秘密计算而使得多计算节点之间执行中间数据交互的计算指令、以及利用一系列计算来描述计算任务的逻辑的计算指令等。依据计算节点之间的中间数据交互顺序、计算优先级顺序等,该计算节点协同执行秘密计算的执行顺序。
在一些示例中,计算节点依据计算指令单独执行秘密计算。在又一些示例中,计算节点需与其他计算节点协同执行秘密计算。在此,为便于定义不同计算节点,在此,执行图8所示流程的计算节点称为计算节点P1,以及将由任务管理平台选定的、与该计算节点P1一起参与秘密计算的计算节点称为计算节点P2、P3、…、Pn,其中,n>1,所述其他计算节点表示根据计算指令的设置为一个或多个指定的计算节点,而非泛指的任意计算节点。例如,所述计算指令中包含计算节点P1将中间数据t1传递给计算节点P2,则计算节点P1据此执行将执行所述秘密计算期间所产生的中间数据发送至其他计算节点的步骤。又如,所述计算指令中包含计算节点P1从计算节点P3获取中间数据t2,并执行(t2+d1)计算,则计算节点P1据此执行获取其他计算节点P3的中间数据t2,以利用所述中间数据t2执行秘密计算的步骤。
需要说明的是,将执行所述秘密计算期间所产生的中间数据发送至其他计算节点的步骤,以及获取其他计算节点的中间数据,以利用所述中间数据执行秘密计算的步骤并非仅限于上述示例所提供的单点对单点数据传输的情形下使用。根据计算指令的指示一个中间数据可从计算节点P1传递至多个指定的其他计算节点(如P2和P4),计算节点P1也可从多个指定的其他计算节点(如P2和P3)获得中间数据以继续计算。在此不再一一详述。
在一些示例中,计算节点P1按照计算指令的顺序逐条执行。例如,按照逐条执行的顺序,计算节点P1先从数据源D1和D2分别获取私密数据d1和d2,再进行d1和d2的加法计算得到t1,再从数据源D3获取私密数据d3,以及将t1和d3进行加法计算得到t2…等。
在另一些示例中,为提高计算节点的计算效率,所述计算节点对所获取的计算指令进行优化处理。在一些具体示例中,在执行所述秘密计算之前,依据所述计算指令从所有数据源获取私密数据。
在此,计算节点P1可预先提取所得到的计算指令中所涉及的私密数据,并调整计算指令的执行顺序,以将所涉及的私密数据预先从相应数据源获取到本地存储装置中,以便在后续计算期间提高读写效率。与之类似的,根据计算配置而选择多个计算节点协同计算的方式,所述计算节点P1也可以预先提取计算指令中为开始秘密计算而从其他计算节点获取的随机数指令,并将相应随机数保存到本地,由此来提到计算效率。
根据计算指令中针对计算结果的处理方式的指令,所述计算节点还执行将计算结果输出至用于得到对应计算任务的处理结果的计算设备上的步骤。其中,所述计算设备可以是任务管理平台或用户执行输入操作所使用的计算设备。例如,计算节点根据计算指令将所得到的计算结果反馈给用户操作的计算设备,以便该计算设备执行计算任务最后计算步骤,得到对应计算任务的处理结果。由此使得计算节点无法泄露私密数据的处理结果。
本申请还提供一种数据源。所述数据源预配置有对应于计算配置的隐私化处理方式,所述隐私化处理方式用于向外部计算设备提供私有数据时进行隐私处理。其中,所述外部计算设备包括前述提及的计算节点或其他具有获取私有数据权限的计算机设备等。
其中,所述数据源可为运行有数据库的计算机设备,或者可与存储有私有数据的数据库进行数据读取的计算机设备。所述计算机设备举例为个人计算机设备或服务器等。所述数据源所在计算机设备可设置在公共或私有的机房内。例如,数据源位于银行的数据运行中心。
所述数据源包含用于将待输出的私有数据进行隐私处理的处理装置。该处理装置可包含所述数据源所在计算机设备的处理器(如CPU),和由处理器执行所述隐私处理操作的程序。所述处理装置还可以为用于执行隐私处理的专用芯片。所述处理装置包含用于读取私有数据的数据接口,以及与计算节点进行数据交互的网络接口。其中,所述数据接口包括但不限于:USB接口、网卡、总线接口等。所述网络接口包括但不限于:网卡、接入移动网络(如3G/4G/5G等移动网络)的网络通信模块、接入局域网的网络通信模块等。
请参阅图9,其显示为所述数据源的处理装置执行私有数据提供方法的流程图。
在步骤S310中,获取包含计算节点信息的数据请求。其中,所述数据请求还包含待获取的私密数据的相关信息。其中,根据实际设计需要,所述相关信息可基于计算配置而设置,如包括:计算节点在秘密计算中的身份信息、获取私密数据的权限信息、便于数据源查询和读取私有数据的索引信息,甚至还可以包含计算配置等。
在步骤S320中,基于所述私密数据的相关信息将私有数据进行隐私化处理并得到私密数据,并将相应私密数据发送给相应计算节点。在此,所述数据源根据相关信息中的权限信息进行读取私有数据的权限认证,当认证通过后,所述数据源从数据库中读取相应私有数据,并按照默认的与计算配置对应的隐私化处理方式将私有数据转换成私密数据。或者按照所述数据请求中的计算配置和计算节点的身份信息,将私有数据转换成与计算节点相对应的私密数据。其中,所述隐私化处理方式可与前述提及的处理方法中所描述的隐私化处理方式相同或相似,在此不再重述。
例如,所述计算配置包含采用四个计算节点进行秘密计算的计算方式,且所述数据请求来自于计算节点P1在该秘密计算中的角色信息,则数据源将按照索引信息所得到的私有数据进行随机分散处理,并得到四组私密数据,其中每一组私密数据对应一个角色信息,根据所述计算节点P1所提供的角色信息,所述数据源将相应私密数据组反馈给计算节点P1。其中,仅凭一组私密数据,计算节点无法获得所对应的隐私数据。
又如,所述计算配置包含采用单个计算节点进行秘密计算的计算方式,且所述数据请求来自于计算节点P1的数据请求,则数据源将按照相应索引信息所得到的私有数据进行加密处理,并得到私密数据,并将相应私密数据组反馈给计算节点P1。其中,仅凭私密数据,计算节点无法获得所对应的隐私数据。
基于上述的任务管理平台、计算节点及数据源的描述,本申请还提供了一种私有数据的处理***。所述处理***包括如上各示例所提及的数据源、任务管理平台以及计算节点。在此不再一一详述。
以计算配置采用单一计算节点进行秘密计算为例,请参阅图10,其显示为所述处理***在一实施方式中的架构示意图,任务管理平台11将包含私有数据业务处理流程的程序进行分解,得到多个计算任务,其中,使用私有数据进行数据处理的计算任务参阅图1、8和9所示的处理方式进行秘密计算。所述任务管理平台11得到所述计算任务,并通过计算任务所使用的接口程序确定计算配置为同态加密计算方式;根据所述同态加密计算方式,所述任务管理平台11从所维护的计算节点12中选取可执行同态加密计算的一个计算节点12;任务管理平台11根据所述计算任务中所涉及的私有数据的定义语句,生成指令计算节点12获取相应私密数据的计算指令,以及根据同态加密计算方式将计算任务转换成利用具有同态属性的计算方式顺序执行的计算指令,并将所得到的计算指令发送给所选取的计算节点12;所述计算节点12通过执行所述计算指令,向数据源13发送包含私密数据的相关信息的数据请求,其中,所述相关信息包括:取私密数据的权限信息、便于数据源13查询和读取私有数据的索引信息,以及计算配置中的同态加密计算方式等;数据源13基于所述相关信息将私有数据进行加密处理以得到私密数据,以及将其反馈给计算节点12;所述计算节点12利用所得到的私密数据执行计算指令以进行同态加密计算,并得到仍然处于加密状态的计算结果,所述计算结果按照计算指令将该计算结果发送至计算任务所指令的计算设备,由该计算设备通过解密操作得到对应计算任务的处理结果。
以计算配置采用四个计算节点进行秘密计算为例,请参阅图11,其显示为所述处理***在又一实施方式中的架构示意图,其中,用户通过WEB端所提供的页面输入包含持有私有数据的数据源信息、用于获取私有数据的索引信息、以及对私有数据的业务处理方式等,并由WEB端提供给任务管理平台21;任务管理平台21将包含私有数据的业务处理方式的程序进行分解,得到多个计算任务,其中,使用私有数据进行数据处理的计算任务参阅图1、8和9所示的处理方式进行秘密计算,比如,所述任务管理平台21得到所述计算任务,并通过计算任务所使用的接口程序确定计算配置为采用四选二秘密计算架构的秘密计算方式;根据所述秘密计算方式,所述任务管理平台根据所维护的计算节点中的monitor模块所提供的计算节点的属性信息,从所维护的计算节点中选取可执行四选二秘密计算架构的四个计算节点22;任务管理平台根据所述计算任务中所涉及的私有数据的定义语句,以及四选二秘密计算架构,生成指令各计算节点22分别获取相应私密数据的计算指令,以及根据四选二秘密计算架构将计算任务转换成由四个计算节点22顺序计算的计算指令,并将所得到的四组计算指令分别发送给四个计算节点22;各所述计算节点22通过执行相应计算指令,向数据源23中的处理装置DS发送包含私密数据的相关信息的数据请求,其中,所述相关信息包括:计算节点22在秘密计算中的身份信息、获取私密数据的权限信息、便于处理装置DS从数据库Data中查询和读取私有数据的索引信息,以及计算配置中的四选二秘密计算架构等;其中,所述获取私密数据的权限信息可预设在任务管理平台或由用户通过WEB提供;数据源23基于所述相关信息将私有数据进行随机分解处理,并按照四各计算节点22的身份信息将分解后的私密数据分成四组,并根据数据请求中的身份信息将相应分组的私密数据反馈给相应计算节点22;各所述计算节点22利用所得到的私密数据执行计算指令以协同进行秘密计算,并得到各自的计算结果,根据计算指令,四个计算节点22中两个计算节点将各计算结果发送至计算任务所指令的计算设备(如提供WEB页面的设备端),由该计算设备通过执行计算任务的最后操作得到对应计算任务的处理结果。
基于上述任务管理平台所执行的处理方法的过程,本申请还提供了所述任务管理平台所运行的任务管理***,其中所述任务管理***为一种软件***。请参阅图12,其显示为所述任务管理***的程序模块关系示意图。
所述任务管理***包括获取模块31、节点选取模块32、指令生成模块33、分配模块34。
所述获取模块31用于获取一计算任务,以及获取用于处理所述计算任务的计算配置。
在此,技术人员预先将包含处理私有数据的业务逻辑的程序存储在任务管理平台的存储装置中,所述业务逻辑是藉由计算机程序语言来描述对私有数据的处理过程,该处理过程可包含一个或多个处理操作。其中,所述计算机程序语言可以是任一种可由计算机设备识别的语言,其包括但不限于可经由编译而得到机器语言的计算机程序语言(如Python、Java、C++等),或者与机器语言一一对应具有可读性的计算机程序语言(如汇编语言等)。
所述处理操作可以是为了实现业务逻辑而对数据进行条件处理、循环处理、布尔处理、计算处理等。其中计算处理包括但不限于:加、减、乘、除等数字计算处理,以及与、或、非等逻辑计算等。所述业务逻辑是指技术人员利用一个或多个处理操作对包含私有数据进行数据处理、且依据自然规律而得到的流程。例如,一种业务逻辑包括:利用银行B1和B2中用户A的银行存款数量、银行贷款数量、银行还款历史记录等确认用户A的还款能力的评价流程。又如,一种业务逻辑包括:利用用户P1和P2当前的位置信息向用户P1所持终端设备提供P1与P2之间相距距离和相距路线信息的路程提示流程。
所述计算任务的获取操作可基于用户的输入操作而生成的。在一些示例中,所述计算任务可直接地由使用所述业务逻辑的用户的输入操作而产生。例如,用户通过浏览器或客户端输入待查询信用评价结果的用户信息,藉由所述浏览器或客户端将包含用户信息和待反馈评价结果的设备信息封装在一查询请求中,并发送给所述任务管理平台,所述任务管理平台基于所获取的查询请求执行相应的业务逻辑,其中所述业务逻辑中包含对私有数据进行处理的计算任务。在又一些示例中,所述计算任务可间接地由使用所述业务逻辑的用户的输入操作而产生、或由设计所述业务逻辑的技术人员的输入操作而产生。例如,用户通过浏览器或客户端输入一时间间隔信息,其用于定期获得对私有数据进行处理的处理结果;或者技术人员根据业务需求在业务逻辑中内置了所述时间间隔,所述任务管理平台基于所述时间间隔信息执行相应的业务逻辑,其中所述业务逻辑中包含对私有数据进行处理的计算任务。
为此,在一些示例中,所述计算任务包括:藉由计算机程序语言编辑界面而获取的程序模块。在此,所述计算任务可以是藉由计算机程序语言来描述数据处理的程序模块(或叫程序段、程序块),其中需要执行秘密计算的计算任务包含涉及对私有数据处理过程的程序模块。在一些具体示例中,所述计算任务为直接获取自所述编辑界面中用计算机程序语言描述的程序模块。例如,请参阅图13,其显示为用于获取计算任务而提供的计算机程序语言编辑界面的示例,其中,在所述编辑界面中技术人员(或叫程序员)编辑包含下述程序模块的程序包括:
……
x=p.ss(client ID)
def logistic(x,start,iter_cnt):
……
result=logistic(x,0,100)
result.reveal()
……
其中,所述计算任务为由:获取输入参数的程序语句(x=p.ss(client ID)),对所述输入参数进行处理的程序语句(def logistic(x,start,iter_cnt);……result=logistic(x,0,100)),以及获得处理结果的程序语句(result.reveal())构成的程序模块。
在又一些具体示例中,所述计算任务为将前述示例中提及的利用计算机程序语言描述的程序模块转换成利用计算算式而描述的程序模块。在此,为实现一完整的业务逻辑可能由计算机程序语言描述成包含条件处理、循环处理、布尔处理、计算处理等处理操作的程序。为进行秘密计算,所述程序被分解成多个可由计算算式执行的程序模块。例如,一个包含循环和计算处理的处理操作可分解为一个或多个程序模块。
在经分解的各程序模块中,所述计算任务包含涉及对私有数据处理操作的程序模块,以便采用秘密计算方式进行数据处理。其中,所述程序模块可由计算机程序语言描述,或者利用源码语法结构来描述。其中,所述源码语法结构举例为抽象语法树(AbstractSyntax Tree,AST)。
例如,请参阅图2,其显示为描述一利用树状结构描述循环处理操作计算任务的示意图;其中,将循环处理操作的计算任务描述成通过包含乘法计算得到处理结果的树状结构。又如,请参阅图3,其显示为利用树状结构描述提取公因子操作的计算任务的示意图;其中,将提取公因子操作的计算任务描述成通过加法计算和乘法计算级联的方式得到处理结果的树状结构。再如,请参阅图4,其显示为利用树状结构描述常用表达提取操作的计算任务的示意图;其中,将常用表达提取操作的计算任务描述成通过加法计算和乘法计算级联的方式得到处理结果的树状结构。
其中,描述计算任务的程序模块可直接被暂存以便在执行步骤S130时被调用。在一些示例中,所述程序模块被反馈到技术人员的编辑界面上,以供技术人员参照使用。
在又一示例中,所述计算任务可基于编辑界面的选择操作、输入操作、拖拽操作、绘图操作而生成的程序模块。例如,请参阅图14,其显示为可供选择操作的编辑界面的示意图,通过浏览器或客户端内所展示的数据源选项,从被勾选的数据源获取私有数据的程序语句;以及利用所述编辑界面所展示的对私有数据的处理方式的选项,获取处理该私有数据的处理过程及得到相应处理结果的程序语句,故而所述计算任务为包含上述各程序语句的程序模块。
需要说明的是,上述各示例仅为对获取计算任务的举例而非对计算任务的获取方式的限制。事实上,计算任务还可以为结合前述各示例的方式而得到的程序模块。或者所述计算任务还可以在任何执行业务逻辑期间藉由所执行的涉及私有数据处理的程序模块而产生等。
其中,为了便于技术人员利用秘密计算方式实现业务逻辑中的计算任务,所述任务管理平台还获取用于处理所述计算任务的计算配置。在此,在一些示例中,用于描述业务逻辑的程序中包含可执行秘密计算的接口程序,通过调用相应接口程序来确定执行相应计算任务的计算配置。例如上述提及的x=p.ss(client ID),其中,利用p.ss()接口程序提供了用于执行与私有数据x相关的计算配置,即采用基于四个计算节点的秘密计算方式进行秘密计算。需要说明的是,根据实际设计需要,获取模块31还可依据计算任务中的参数设置来确定计算配置,例如,所调用的接口程序中设有用于描述使用或不使用秘密计算方式进行数据处理的布尔参数、和/或对应计算配置的参数等。
在又一示例中,技术人员可通过勾选用于描述计算配置的选项,来确定私有数据x执行秘密计算的方式。例如,技术人员通过浏览器或客户端的操作界面在私有数据所在栏勾选一计算配置选项,则获取模块31获取处理该私密数据的计算任务的计算配置。
在此,所述计算配置用于指明对私有数据进行秘密计算的方式,其包括但不限于:计算方式、数据通信方式、和隐私化处理方式等。其中,计算方式包括采用同态加密计算方式、采用乱码电路计算方式、或多计算节点协同计算的方式等。数据通信方式包括采用秘密分享计算方式、基于认证而传输数据的通信方式、利用密钥进行数据通信方式中的至少一种等。其中,秘密分享计算方式举例包含利用秘密分享技术执行基于SPDZ秘密计算架构而确定的秘密计算方式,或者利用秘密分享技术执行基于四选二秘密计算架构而确定的秘密计算方式。其中,所述秘密计算架构还可以举例为三选二等。其中,四选二秘密计算架构和三选二秘密计算架构是指由四个(或三个)计算节点参与秘密计算并由两个计算节点提供计算结果。例如,一种四个计算节点的秘密计算架构的秘密计算方式。
需要说明的是,根据秘密计算架构的设计需要,参与计算节点的数量不限于上述示例,以及提供计算结果的计算节点数量也不限于上述示例。例如,所述计算配置中包含利用秘密分享技术和乱码电路配合的计算方式执行由预设数量的多个计算节点参与计算的秘密计算方式;其中,各计算节点中配置有可执行乱码电路的处理芯片并利用秘密分享技术进行数据交互。
藉由上述各示例可见,所述计算配置包括:执行所述计算任务的秘密计算方式,和按照所述秘密计算方式执行所述计算任务的计算节点数量。其中,所述计算节点数量可由秘密计算方式确定。
为此,在获取模块31获得计算任务和所对应的计算配置后,将其交由后续模块。其中,节点选取模块32用于依据所述计算配置确定至少一个计算节点。
在此,依据计算配置,节点选取模块32从所能提供的计算节点中选取对应数量的计算节点以作为参与秘密计算的执行者。
其中,所述计算节点可为实体计算机设备。例如,所述计算节点为一实体服务器、个人计算设备、构成云服务端的服务器、或者设置有专用于秘密计算的专用设备等。例如,所述计算节点包含专用于计算同态加密方式的处理芯片。再如,所述计算节点包含基于秘密分享和SPDZ或基于四个计算节点的秘密计算架构的处理芯片等。其中,上述各示例中的处理芯片举例为包含微处理器的芯片,或包含FPGA的芯片等。又如,所述计算节点包含乱序电路的处理芯片。
所述计算节点也可以为虚拟设备。例如,一实体服务器可提供的多个虚拟设备,以作为对应的多个计算节点,其中,配置在一个实体服务器上的多个计算节点可基于单独管理的方式参与秘密计算。所配置的秘密计算方式为可由虚拟设备执行的软件程序。
其中,节点选取模块32所能提供的计算节点可以是所述节点选取模块32通过接口装置所能进行数据通信的所有计算节点。在一些实例中,所述节点选取模块32所能提供的计算节点为根据计算配置预先加载了执行程序的实体设备和/或虚拟设备。换言之,节点选取模块32根据计算配置选择可按照相应秘密计算方式进行秘密计算的计算节点。例如,节点选取模块32可与能够按照计算配置C1的计算节点(P11、P12…、P1n)进行数据通信,以及能够按照计算配置C2的计算节点(P21、P22…、P2m)进行数据通信,根据所获取的计算配置C1,所述节点选取模块32从计算节点(P11、P12…、P1n)中选取对应数量的计算节点来执行对应所获取的计算任务的秘密计算。
在一些示例中,所述计算配置中可明确设置计算节点的数量。例如,藉由接口程序中的节点数量参数定义计算配置中的计算节点的数量,所述节点选取模块32通过解析所述接口程序来确定参与秘密计算的计算节点数量。在又一示例中,节点选取模块32根据预设的秘密计算方式与计算节点数量的对应关系,确定所获取的计算配置中秘密计算方式所对应的计算节点数量。例如,所获取的计算配置包括采用同态加密计算的秘密计算方式执行所获取的计算任务,根据上述对应关系确定使用一个计算节点来执行。又如,所获取的计算配置包括采用秘密分享技术及基于四个计算节点的秘密计算架构的秘密计算方式执行所获取的计算任务,根据上述对应关系确定使用四个计算节点来执行。
在此,所述节点选取模块32可依据计算配置确定选取计算节点的数量。当节点选取模块32所能选取的计算节点的数量与所确定的计算节点的数量一致时,选取相应的计算节点。当节点选取模块32所能选取的计算节点的数量多于所确定的计算节点的数量时,在一些示例中,所述节点选取模块32可随机选取相应数量的计算节点;在又一些示例中,节点选取模块32根据预设的各计算节点的选取规则来选取相应数量的计算节点。其中,计算节点的属性信息为所述节点选取模块32维护的可动态更新的属性信息,其包括但不限于:当前执行秘密计算的各计算节点的设备信息,以及各计算节点所能执行的秘密计算方式的配置信息、各计算节点所在实体服务器的设备提供商信息等。其中,根据当前执行秘密计算的各计算节点为实体设备或虚拟设备,其对应的设备信息为实体设备的设备信息(如IP地址、MAC地址等)、或者为虚拟设备的设备信息(如虚拟设备ID等)。所述各计算节点所能执行的秘密计算方式的配置信息可以根据预先对各计算节点执行秘密计算而配置的程序或处理芯片而确定的。例如,根据可处理的秘密计算方式而预先配置了多个计算节点,相应各计算节点的配置信息即为所能执行的秘密计算方式的类型或芯片ID信息等。所述设备提供商信息举例为云服务提供商信息、或服务器租赁服务提供商信息。在一些示例中,所述属性信息还包括各计算节点不断更新的资源信息等。例如,节点选取模块32所能连接的各计算节点间隔地将当前的资源信息上报至所述服务端。其中,所述资源信息举例包括CPU占用率、内存占用率、当前所分配的秘密计算的数量等。
其中,所述选取规则是根据各计算节点的属性信息而设置的。例如,所述选取规则包括基于设备提供商信息而设置的规则,比如,选取不同设备提供商所提供的计算节点。又如,所述选取规则包括基于资源信息而设置的规则,比如,选取CPU占用率低于预设占有率阈值的计算节点。再如,所述选取规则包括选取当前已分配的秘密计算数量小于预设数量阈值的计算节点等。
需要说明的是,上述选区规则并非择一设置,事实上可根据综合所维护的各计算节点的属性信息来设置用于选择的评价方式,通过执行所述评价方式而得到的评价结果来选择用于执行当前秘密计算的计算节点。在此不再详述。
指令生成模块33用于依据所述计算配置将所述计算任务处理成对应各计算节点的计算指令。
在此,根据预设的对应计算配置中的秘密计算方式的接口程序库,指令生成模块33将所获取的算任务转换成便于计算节点运行的计算指令。其中,所述计算指令可以是利用机器语言描述的指令、或利用计算机程序语言描述的指令。所述计算指令举例包含指示计算节点获取经隐私处理的私有数据的指令、按照秘密计算方式执行计算任务所描述逻辑的指令、以及指示计算节点对计算结果进行处理的指令等。
其中,为使数据源能够向参与秘密计算的各计算节点提供与所述指令生成模块33所获取的计算配置相匹配的私有数据,所述步骤S130包括:根据预设的计算节点与数据源之间的交互方式,将数据源信息、及基于所述计算配置而设置的用于向相应计算节点提供私密数据的相关信息,设置在相应计算节点的计算指令中。其中,所述私密数据是所述数据源将私有数据进行隐私处理而得到的,以供各计算节点依据计算指令获取。
在此,所述指令生成模块33依据计算任务所涉及的私有数据,为参与秘密计算的各计算节点设置用以获取私密数据的计算指令。其中,所述计算节点与数据源之间的交互方式为预设方式,其举例包括以下任意种:基于权限认证的方式进行数据交互,基于通信加密方式进行数据交互,基于携带校验信息的方式进行数据交互,或者基于秘密分享进行数据交互等。
其中,数据源预先设有计算配置及所对应的隐私化处理方式。根据计算配置,指令生成模块33将与获取私密数据相关的相关信息设置在计算指令中,以供相应计算节点执行。其中,所述相关信息用于藉由计算节点向数据源所发送的数据请求,来告知数据源其采用何种数据隐私化处理方式来反馈相应的私密数据。例如所述相关信息包括:获取私密数据的权限信息、便于数据源查询和读取私有数据的索引信息,甚至还可以包含计算节点在秘密计算中的身份信息、计算配置等。根据所述计算配置,各数据源所提供的私密数据可以是利用以下任一种隐私化处理方式得到的:将私有数据进行转换而得到的,将私有数据进行分散处理而得到的,或者将多个私有数据进行融合处理而得到的。其中,将私有数据进行转换而得到私密数据的方式包括但不限于以下任一种:将私有数据进行如M5加密等加密方式进行数据转换而得到私密数据;利用编码等方式将私有数据变长或变短而得到私密数据;利用预设的映射操作将私有数据进行映射而得到私密数据;利用经机器学习而确定的模型将私有数据进行模型化处理而得到私密数据等。例如,指令生成模块33将用于标识有同态加密计算方式的相关信息以及发送该相关信息的交互方式设置在计算指令中以便藉由计算节点发送给相应数据源,或将所述相关信息和计算节点信息直接发送给数据源;数据源根据所述相关信息向计算节点反馈经加密处理后的私有数据作为私密数据。
所述将私有数据进行分散处理而得到私密数据的方式包括但不限于:随机分散处理等。例如,指令生成模块33将用于标识有采用基于四个计算节点的秘密计算架构的相关信息和发送该相关信息的交互方式设置在计算指令中以便藉由计算节点发送给相应数据源,数据源依据基于四个计算节点的秘密计算架构所对应的隐私化处理方式,将私有数据随机分散处理成多个私密数据,并依据基于四个计算节点的秘密计算架构所预设的私密数据的节点分配方式,向对应计算节点反馈其中部分私密数据。
所述将多个私有数据进行融合处理而得到私密数据的方式包括但不限于:将各个私有数据进行转换处理后并形成矩阵形式的私密数据,或者利用经机器学习而确定的模型将多个私有数据融合成一个序列化(或称为向量化)的私密数据。
另外,根据计算配置中所使用的秘密计算方式,所述指令生成模块33将处理操作中的计算任务转换成可由各计算节点按照秘密计算方式执行计算任务所描述逻辑的计算指令。其中,所述计算指令包含为秘密计算而产生用于参与计算的随机数的计算指令、为秘密计算而使得多计算节点之间执行中间数据交互的计算指令、以及利用一系列计算来描述计算任务的逻辑的计算指令等。
基于上述各计算指令的设置示例,为利用一系列计算来实现计算任务,所述步骤S130包括:按照所述计算配置将所述计算任务处理成对应各计算节点、且使各计算节点协同执行的各计算指令。
在一些示例中,所述计算任务由单一计算节点来执行,指令生成模块33按照计算配置将用于构成对私有数据的逻辑处理操作和计算处理操作等的计算任务处理成以私密数据为输入数据之一且通过计算来描述计算任务的计算指令。其中,所述逻辑处理操作包括条件处理操作、循环处理操作、计算处理操作等等。所述计算处理操作包括数学计算处理操作、逻辑计算处理操作等。所述计算任务举例对应一条或多条依顺序执行的计算指令等。例如,根据对应计算配置的接口程序库,指令生成模块33将一计算任务:res=a if condelse b转换成计算指令:res=b+cond×(a-b)。藉由上述示例推广到更为复杂的计算任务,所述指令生成模块33将利用计算机程序语言所描述的计算任务转换成一系列的数学计算,并以按照顺序执行的计算指令描述一系列数学计算的计算顺序。
在一些具体示例中,为了降低秘密计算的复杂度,所述处理装置根据计算配置所提供的秘密计算方式,对执行计算任务的秘密计算过程进行优化处理,进而生成优化后的计算指令。其中,所述优化处理包括但不限于利用矩阵计算来优化循环逻辑、特征提取、常用表达提取等。
例如,请参阅图5,其显示为将图2所示的计算任务优化处理的示意图;其中,根据计算配置,将对应循环处理操作的计算任务优化成利用矩阵乘法计算执行循环处理操作的计算任务,并依据优化后的计算任务生成计算指令。又如,请参阅图6,其显示将图3所示的计算任务优化处理的示意图;其中,根据计算配置,将对应提取公因子操作的计算任务优化处理成通过加法计算所得到的各计算结果级联和乘法计算的计算任务,并依据优化后的计算任务生成计算指令。再如,请参阅图7,其显示为将图4所示的计算任务优化处理的示意图;其中,根据计算配置,将对应常用表达提取操作的计算任务优化成通过矩阵加法计算的计算任务,并依据优化后的计算任务生成计算指令。
在另一些示例中,计算节点的数量为多个,指令生成模块33将基于处理操作而得到的计算任务转换成一系列需要多个计算节点协同执行数学计算的计算指令。
在此,从个体来说,各对应于计算节点的计算指令用于指示各自对应的计算节点按顺序执行数学计算;从整体来说,各计算指令还用于指示各计算节点之间按顺序将所计算得到的中间数进行数据交互,以便通过多计算节点的协调调度来实现对私有数据在各计算节点中无法被泄露。为此,所述步骤S130还包括:按照计算配置将所述计算任务生成用于分配给参与秘密计算的多个计算节点的计算指令;以及按照计算配置将设置各计算节点之间进行中间数据交互的计算指令;其中,依据所述计算指令中所交互的中间数据使各计算节点协同执行。
基于图5-图7所生成的各计算指令均可转换成利用多个计算节点交互的计算顺序来执行相应计算任务的计算指令。其中,多个计算节点交互的中间数据为在秘密计算期间所产生的临时计算结果。
例如,计算节点S1、S2、Sa、Sb参与由数据源D1和D2各自持有的私有数据d1和d2执行乘法计算任务的秘密计算,其中,按照计算配置,指令生成模块33将d1×d2的计算任务转换成由该四个计算节点按照计算指令的执行顺序予以执行的秘密计算。其中,为使任一计算节点无法获得原始的私有数据d1或d2,所生成的对应计算节点S1的计算指令中包含如“send t1to Sb”的数据交互指令,其中t1为中间数据;以及包含如“calculates t1=x1y1-r12”的数学计算的指令;对应地,对应计算节点Sb的计算指令中包含如“Sb sets zb=(tb+t1)”的数学计算的指令;其中zb为计算节点Sb的计算结果。基于上述示例可见,利用对应该四个计算节点而设置的基于数据交互协同完成秘密计算的各计算指令,确定了按照计算配置所描述的秘密计算方式完成秘密计算的执行顺序。
再有,在根据计算配置而选取单一计算节点进行秘密计算的方式中,该计算节点可提供对应计算任务的经加密的处理结果。例如,计算任务为对私有数据d1和d2执行加法计算,经由步骤S110-S130的处理而得到的计算指令包含:令一计算节点获取数据源的经加密处理的私有数据d1和d2的计算指令,利用同态加密计算方式由该计算节点执行对私有数据d1+d2的计算指令,则该计算节点可得到加密后的计算结果,该计算结果为该计算任务的处理结果。在根据计算配置而选取多个计算节点进行秘密计算的方式中,该计算节点可提供对应计算任务的经加密的处理结果。仍以计算任务为对私有数据d1和d2执行加法计算为例,经由步骤S110-S130的处理而得到的计算指令包含:令3个计算节点获取数据源的经加密处理的私有数据d1和d2的计算指令,利用秘密分享和SPDZ秘密计算架构的计算方式由该3计算节点执行对私有数据d1+d2的计算指令,则各计算节点所得到的计算结果是基于将私有数据d1和d2随机分解后的私密数据进行加法计算的计算结果,该计算结果需经整合处理后得到该计算任务的处理结果。
为防止计算节点得到明文的计算任务的处理结果,或者为防止计算节点可通过破译加密方式而获得私有数据及处理结果。各计算节点基于指令生成模块33所设置的计算指令而得到的计算结果可均不是计算任务的处理结果,为得到对应计算任务的处理结果,所述指令生成模块33所生成的计算指令还包括:用于指令至少部分计算节点将计算结果输出至用于得到所述处理结果的计算设备上的计算指令。其中,所述计算设备可以是任务管理平台或用户执行输入操作所使用的计算设备。例如,指令生成模块33将用户操作的计算设备作为执行计算任务最后计算步骤的终端设备,并为该终端设备配置从三个或四个计算节点中获取两个计算节点的计算结果的计算指令,以及配置按照所获取的计算结果执行计算任务最后计算步骤的计算指令。
需要说明的是,上述选取计算结果以得到处理结果的计算指令仅为举例。根据计算配置,所生成的得到计算任务所对应的处理结果的计算指令可从唯一的计算节点或全部计算节点获取计算结果。
利用上述得到处理结果的计算指令可实现各计算节点及任务管理平台均无法获知私有数据以及利用私有数据执行计算任务后所得到的处理结果。
在得到对应各计算节点的计算指令后,为使各计算节点执行计算指令,所述分配模块34用于令各所述计算节点依据相应的计算指令执行包含私密数据的秘密计算,以使各所述计算节点输出用于得到所述计算任务的处理结果的计算结果。
在此,所述分配模块34将所得到的计算指令分别发送给相应计算节点,以令各计算节点执行,以使得用户得到对应计算任务的处理结果。
本申请所述的任务管理***通过将计算任务转换为计算节点的计算指令,解决了技术人员难于利用复杂的密码学方式处理涉及私有数据的数据处理逻辑,同时由于计算节点仅获取经隐私处理后的私密数据,因此计算节点无法对私有数据进行泄露。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行;又如,按照逻辑功能将上述提及的任一模块拆分成多个模块或组件,或者拆分后的多个模块可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
本申请再提供一种计算机可读写存储介质,其上存储有用于处理私有数据或者用于进行秘密计算的计算机程序及计算配置,所述存储有用于处理私有数据的计算机程序被处理器执行时实现上述私有数据的处理方法的步骤,即图1中所述的步骤。所述存储有用于进行秘密计算的计算机程序被处理器执行时实现上述私有数据的计算方法的步骤,即图8中所述的步骤。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (27)
1.一种私有数据的处理方法,其特征在于,包括:
获取一计算任务,以及获取用于处理所述计算任务的计算配置;其中,所述计算配置包括执行所述计算任务的秘密计算方式,和按照所述秘密计算方式执行所述计算任务的计算节点数量;
依据所述计算配置确定至少一个计算节点;
依据所述计算配置将所述计算任务处理成对应各计算节点的计算指令;其中,所述计算指令中包括与获取私密数据相关的相关信息,所述相关信息用于藉由计算节点向数据源所发送的数据请求,来告知数据源其采用何种数据隐私化处理方式来反馈相应的私密数据;令各所述计算节点依据相应的计算指令执行包含私密数据的秘密计算,以使各所述计算节点输出用于得到所述计算任务的处理结果的计算结果;
其中,所述私密数据是各所述计算节点依据相应计算指令从至少一个数据源获取的、且由所述数据源将私有数据隐私化处理后而得到的;其中,所述数据源预先设置有计算配置及对应的隐私化处理方式,各数据源根据所述计算配置所提供的私密数据是利用以下任一种隐私化处理方式得到的:所述私密数据是将私有数据进行转换而得到的;所述私密数据是将私有数据进行分散处理而得到的;或者所述私密数据是将多个私有数据进行融合处理而得到的。
2.根据权利要求1所述的私有数据的处理方法,其特征在于,所述计算任务是基于用户的输入操作而生成的。
3.根据权利要求1所述的私有数据的处理方法,其特征在于,依据计算配置确定至少一个计算节点的方式包括:
根据基于计算节点的属性信息而设置的选取规则,从多个计算节点中选取属性信息符合所述计算配置的计算节点。
4.根据权利要求3所述的私有数据的处理方法,其特征在于,还包括维护各计算节点的属性信息的步骤。
5.根据权利要求1所述的私有数据的处理方法,其特征在于,依据计算配置将所述计算任务处理成对应各计算节点的计算指令的方式包括:根据预设的计算节点与数据源之间的交互方式,将数据源信息、及基于所述计算配置而设置的用于向相应计算节点提供私密数据的相关信息,设置在相应计算节点的计算指令中;其中,所述私密数据是所述数据源将私有数据进行隐私处理而得到的。
6.根据权利要求1所述的私有数据的处理方法,其特征在于,依据计算配置将所述计算任务处理成对应各计算节点的计算指令的方式包括:
按照所述计算配置将所述计算任务处理成对应各计算节点、且使各计算节点协同执行的各计算指令。
7.根据权利要求1所述的私有数据的处理方法,其特征在于,按照计算配置将所述计算任务处理成对应各计算节点、且使各计算节点协同执行的各计算指令包括:
按照计算配置将所述计算任务生成用于分配给参与秘密计算的多个计算节点的计算指令;以及
按照计算配置将设置各计算节点之间进行中间数据交互的计算指令;其中,依据所述计算指令中所交互的中间数据使各计算节点协同执行。
8.根据权利要求1所述的私有数据的处理方法,其特征在于,所生成的计算指令用于指令至少部分计算节点将计算结果输出至用于得到所述处理结果的计算设备上。
9.一种处理私有数据的计算方法,其特征在于,包括:
从一任务管理平台获取计算指令;其中,所述计算指令是所述任务管理平台依据处理一计算任务的计算配置而得到的;其中,所述计算指令中包括与获取私密数据相关的相关信息,所述相关信息用于藉由计算节点向数据源所发送的数据请求,来告知数据源其采用何种数据隐私化处理方式来反馈相应的私密数据;所述计算配置包括执行所述计算任务的秘密计算方式,和按照所述秘密计算方式执行所述计算任务的计算节点数量;
依据所述计算指令从至少一个数据源获取私密数据;其中,所述私密数据是由所述数据源将私有数据隐私化处理后而得到的;其中,所述数据源预先设置有计算配置及对应的隐私化处理方式,各数据源根据所述计算配置所提供的私密数据是利用以下任一种隐私化处理方式得到的:所述私密数据是将私有数据进行转换而得到的;所述私密数据是将私有数据进行分散处理而得到的;或者所述私密数据是将多个私有数据进行融合处理而得到的;
依据所述计算指令并利用所述私密数据执行秘密计算,并得到计算结果。
10.根据权利要求9所述的处理私有数据的计算方法,其特征在于,在执行所述秘密计算之前,依据所述计算指令从所有数据源获取私密数据。
11.根据权利要求9所述的处理私有数据的计算方法,其特征在于,依据计算指令从至少一个数据源获取私密数据的方式包括以下任一种:
将包含私密数据的相关信息的数据请求发送至相应数据源,以获取相应数据源所提供的私密数据;或者
依据所述计算指令所提供的数据源信息,接收相应数据源所推送所述私密数据。
12.根据权利要求9所述的处理私有数据的计算方法,其特征在于,依据计算指令并利用所述私密数据执行秘密计算的方式包括以下至少一种:
将执行所述秘密计算期间所产生的中间数据发送至其他计算节点;
获取其他计算节点的中间数据,以利用所述中间数据执行秘密计算。
13.根据权利要求9所述的处理私有数据的计算方法,其特征在于,还包括:依据计算指令将计算结果输出至用于得到对应计算任务的处理结果的计算设备上。
14.一种处理私有数据的任务管理平台,其特征在于,包括:
存储装置,用于存储至少一个程序;
处理装置,与所述存储装置相连,用于按照所存储的至少一个程序,执行如权利要求1-8中任一所述的处理方法以确定各计算节点执行相应的秘密计算;
接口装置,与所述处理装置和各所述计算节点数据连接。
15.一种处理私有数据的节点设备,其特征在于,包括:
接口装置,用于与一任务管理平台和至少一个数据源进行数据通信;
存储装置,用于存储至少一个程序、来自所述任务管理平台的计算指令、以及来自各数据源的私密数据;
处理装置,用于调用所述至少一个程序以执行如权利要求9-13中任一所述的计算方法。
16.一种数据源,其特征在于,包括:
数据接口,用于读取私有数据;
网络接口,用于与计算节点进行数据通信;
处理装置,用于基于包含计算节点信息的数据请求,将私有数据进行隐私化处理并得到私密数据,以及将相应私密数据发送给相应计算节点;其中,隐私化处理方式与所述数据请求中基于计算配置而设置的相关信息相对应;其中,所述数据源预先设置有计算配置及对应的隐私化处理方式,各数据源根据所述计算配置所提供的私密数据是利用以下任一种隐私化处理方式得到的:所述私密数据是将私有数据进行转换而得到的;所述私密数据是将私有数据进行分散处理而得到的;或者所述私密数据是将多个私有数据进行融合处理而得到的。
17.一种私有数据的处理***,其特征在于,包括:
数据源,用于提供私密数据,其中所述私密数据是经隐私化处理的私有数据;
如权利要求14所述的任务管理平台;
由所述任务管理平台选择的、如权利要求15所述的节点设备。
18.一种计算机可读存储介质,其特征在于,存储有至少一程序;所述至少一程序在被调用时执行如权利要求1-8中任一所述的处理方法。
19.一种计算机可读存储介质,其特征在于,存储有至少一程序;所述至少一程序在被调用时执行如权利要求9-13中任一所述的计算方法。
20.一种任务管理***,其特征在于,包括:
获取模块,用于获取一计算任务,以及获取用于处理所述计算任务的计算配置;其中,所述计算配置包括执行所述计算任务的秘密计算方式,和按照所述秘密计算方式执行所述计算任务的计算节点数量;
节点选取模块,用于依据所述计算配置确定至少一个计算节点;
指令生成模块,用于依据所述计算配置将所述计算任务处理成对应各计算节点的计算指令;其中,所述计算指令中包括与获取私密数据相关的相关信息,所述相关信息用于藉由计算节点向数据源所发送的数据请求,来告知数据源其采用何种数据隐私化处理方式来反馈相应的私密数据;
分配模块,用于令各所述计算节点依据相应的计算指令执行包含私密数据的秘密计算,以使各所述计算节点输出用于得到所述计算任务的处理结果的计算结果;
其中,所述私密数据是各所述计算节点依据相应计算指令从至少一个数据源获取的、且由所述数据源将私有数据隐私化处理后而得到的;其中,所述数据源预先设置有计算配置及对应的隐私化处理方式,各数据源根据所述计算配置所提供的私密数据是利用以下任一种隐私化处理方式得到的:所述私密数据是将私有数据进行转换而得到的;所述私密数据是将私有数据进行分散处理而得到的;或者所述私密数据是将多个私有数据进行融合处理而得到的。
21.根据权利要求20所述的任务管理***,其特征在于,所述计算任务是基于用户的输入操作而生成的。
22.根据权利要求20所述的任务管理***,其特征在于,所述节点选取模块用于根据基于计算节点的属性信息而设置的选取规则,从多个计算节点中选取属性信息符合所述计算配置的计算节点。
23.根据权利要求22所述的任务管理***,其特征在于,所述节点选取模块还用于维护各计算节点的属性信息。
24.根据权利要求20所述的任务管理***,其特征在于,所述指令生成模块用于根据预设的计算节点与数据源之间的交互方式,将数据源信息、及基于所述计算配置而设置的用于向相应计算节点提供私密数据的相关信息,设置在相应计算节点的计算指令中;其中,所述私密数据是所述数据源将私有数据进行隐私处理而得到的。
25.根据权利要求20所述的任务管理***,其特征在于,所述指令生成模块用于按照所述计算配置将所述计算任务处理成对应各计算节点、且使各计算节点协同执行的各计算指令。
26.根据权利要求20所述的任务管理***,其特征在于,所述指令生成模块用于执行以下步骤:
按照计算配置将所述计算任务生成用于分配给参与秘密计算的多个计算节点的计算指令;以及
按照计算配置将设置各计算节点之间进行中间数据交互的计算指令;其中,依据所述计算指令中所交互的中间数据使各计算节点协同执行。
27.根据权利要求20所述的任务管理***,其特征在于,所生成的计算指令用于指令至少部分计算节点将计算结果输出至用于得到所述处理结果的计算设备上。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910252631.5A CN111753324B (zh) | 2019-03-29 | 2019-03-29 | 私有数据的处理方法、计算方法及所适用的设备 |
PCT/CN2020/076314 WO2020199785A1 (zh) | 2019-03-29 | 2020-02-22 | 私有数据的处理方法、计算方法及所适用的设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910252631.5A CN111753324B (zh) | 2019-03-29 | 2019-03-29 | 私有数据的处理方法、计算方法及所适用的设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111753324A CN111753324A (zh) | 2020-10-09 |
CN111753324B true CN111753324B (zh) | 2024-02-09 |
Family
ID=72664908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910252631.5A Active CN111753324B (zh) | 2019-03-29 | 2019-03-29 | 私有数据的处理方法、计算方法及所适用的设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111753324B (zh) |
WO (1) | WO2020199785A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065142A (zh) * | 2021-03-12 | 2021-07-02 | 华控清交信息科技(北京)有限公司 | 多方安全计算方法、装置、服务器及存储介质 |
CN113360922A (zh) * | 2021-06-01 | 2021-09-07 | 广东电网有限责任公司电力调度控制中心 | 一种电力***云计算平台的自动化配置方法 |
CN115065561B (zh) * | 2022-08-17 | 2022-11-18 | 深圳市乙辰科技股份有限公司 | 一种基于数据库数据存储的信息交互方法及*** |
CN116436704B (zh) * | 2023-06-13 | 2023-08-18 | 深存科技(无锡)有限公司 | 面向用户隐私数据的数据处理方法和数据处理设备 |
CN116975897B (zh) * | 2023-09-22 | 2023-12-19 | 青岛国信城市信息科技有限公司 | 一种智慧社区人员隐私信息安全管理*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007098660A1 (fr) * | 2006-03-02 | 2007-09-07 | Huawei Technologies Co., Ltd. | Procédé et système d'authentification d'entités de réseau dans un sous-système multimédia |
CN107545005A (zh) * | 2016-06-28 | 2018-01-05 | 华为软件技术有限公司 | 一种数据处理方法及装置 |
CN107924445A (zh) * | 2015-09-25 | 2018-04-17 | 英特尔公司 | 保留隐私的计算的相互认可 |
CN108650328A (zh) * | 2018-05-22 | 2018-10-12 | 河海大学常州校区 | 一种云服务平台中数据信息记录与存储的区块链*** |
CN109255247A (zh) * | 2018-08-14 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10068097B2 (en) * | 2015-08-12 | 2018-09-04 | Microsoft Technology Licensing, Llc | Data center privacy |
-
2019
- 2019-03-29 CN CN201910252631.5A patent/CN111753324B/zh active Active
-
2020
- 2020-02-22 WO PCT/CN2020/076314 patent/WO2020199785A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007098660A1 (fr) * | 2006-03-02 | 2007-09-07 | Huawei Technologies Co., Ltd. | Procédé et système d'authentification d'entités de réseau dans un sous-système multimédia |
CN107924445A (zh) * | 2015-09-25 | 2018-04-17 | 英特尔公司 | 保留隐私的计算的相互认可 |
CN107545005A (zh) * | 2016-06-28 | 2018-01-05 | 华为软件技术有限公司 | 一种数据处理方法及装置 |
CN108650328A (zh) * | 2018-05-22 | 2018-10-12 | 河海大学常州校区 | 一种云服务平台中数据信息记录与存储的区块链*** |
CN109255247A (zh) * | 2018-08-14 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111753324A (zh) | 2020-10-09 |
WO2020199785A1 (zh) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111753324B (zh) | 私有数据的处理方法、计算方法及所适用的设备 | |
CN112182644B (zh) | 一种数据处理方法、装置和电子设备 | |
US11620401B2 (en) | System and method for automatically securing sensitive data in public cloud using a serverless architecture | |
CN111967038B (zh) | 数据处理***、方法、设备、编辑器及存储介质 | |
CN108154038B (zh) | 数据处理方法及装置 | |
CN104079574A (zh) | 云环境下基于属性和同态混合加密的用户隐私保护方法 | |
EP3087519A1 (en) | Techniques and architecture for anonymizing user data | |
CN112017007A (zh) | 用户行为数据的处理方法及装置、计算机设备、存储介质 | |
EP4198783A1 (en) | Federated model training method and apparatus, electronic device, computer program product, and computer-readable storage medium | |
Ramamoorthy et al. | Optimized data analysis in cloud using BigData analytics techniques | |
EP3553689B1 (en) | System and method for automatically securing sensitive data in public cloud using a serverless architecture | |
Kaci et al. | Toward a big data approach for indexing encrypted data in cloud computing | |
CN112783847B (zh) | 数据共享方法及装置 | |
WO2021219342A1 (en) | Decision tree-based inference on homomorphically-encrypted data | |
US11133926B2 (en) | Attribute-based key management system | |
CN116383246A (zh) | 联合查询方法以及装置 | |
CN115758432A (zh) | 一种基于机器学习算法的全方位数据加密方法及*** | |
US11539521B2 (en) | Context based secure communication | |
Xavier et al. | Hybrid elliptic curve cryptographic approach for data privacy and authentication in secured map reduce layer (SMR) for optimized CPU utilization | |
Saxena et al. | Protecting data storage on cloud to enhance security level and processing of the data by using Hadoop | |
Patil | Enhanced-elliptic curve Diffie Hellman algorithm for secure data storage in multi cloud environment | |
US20240039692A1 (en) | Private vertical federated learning | |
CN115510466B (zh) | 密文预测方法、相关装置及存储介质 | |
Jerlin et al. | Secure and Efficient Data Outsourcing Protocol in Un-Trusted Cloud Environments | |
CN117997528A (zh) | 电力调度数据的处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |