CN114546645A - 基于秘密分享的数据处理方法及设备 - Google Patents

基于秘密分享的数据处理方法及设备 Download PDF

Info

Publication number
CN114546645A
CN114546645A CN202210153130.3A CN202210153130A CN114546645A CN 114546645 A CN114546645 A CN 114546645A CN 202210153130 A CN202210153130 A CN 202210153130A CN 114546645 A CN114546645 A CN 114546645A
Authority
CN
China
Prior art keywords
traversal
function
data
task
network
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.)
Pending
Application number
CN202210153130.3A
Other languages
English (en)
Inventor
韩风
冯翰文
刘巍然
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taobao China Software Co Ltd
Original Assignee
Taobao China Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Taobao China Software Co Ltd filed Critical Taobao China Software Co Ltd
Priority to CN202210153130.3A priority Critical patent/CN114546645A/zh
Publication of CN114546645A publication Critical patent/CN114546645A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供的基于秘密分享的数据处理方法及设备,通过利用并行前缀网络的网络特性,以使安全计算任务中对于待遍历数据表进行遍历任务可采用并行运算的遍历处理的运算方式实现,其相对于现有技术所采用的依次遍历处理的方式来说,其能够使得遍历处理轮数降低,从而降低了任务所需的通信时间,提升处理效率。

Description

基于秘密分享的数据处理方法及设备
技术领域
本申请实施例涉及多方安全计算技术领域,尤其涉及一种基于秘密分享的数据处理方法及设备。
背景技术
随着计算机技术的快速发展,基于大数据的数据分析为各领域的发展提供了保障。多方安全计算是一种可实现在不披露任意计算参与方输入数据的条件下,实现多方数据联合运算的计算机制,而对数据表进行遍历处理则是多方安全计算任务中的一种常见的处理环节。
在现有遍历计算中,需要针对数据表中的每一行数据依次进行运算处理。这将使得对数据表的运算处理的处理轮数与数据表的数据行数成正比,而当数据行数较大时,多轮运算处理将导致较大的通信开销,严重影响数据处理效率。
发明内容
本申请实施例提供一种基于秘密分享的数据处理方法及设备。
第一方面,本申请实施例提供了一种基于秘密分享的数据处理方法,方法应用于基于秘密分享的数据处理系统,数据处理系统包括多个计算参与方;
该数据处理方法,包括:在确定当前安全计算任务包括对待遍历数据表进行遍历任务的情况下,各个计算参与方利用预先部署的并行前缀网络,对各自所持有的待遍历数据表的分享数据,进行基于并行运算的遍历处理,得到待遍历数据表的遍历结果;基于遍历结果,执行当前安全计算任务。
可知的是,在本申请实施方式中,通过利用并行前缀网络的网络特性,以使安全计算任务中对于待遍历数据表进行遍历任务可采用并行运算的遍历处理的运算方式实现,其相对于现有技术所采用的依次遍历处理的方式来说,其能够使得遍历处理轮数降低,从而降低了任务所需的通信时间,提升处理效率。
可选的,基于并行运算的遍历处理,包括有各个计算参与方按照并行前缀网络的网络层结构触发的多轮协议运算;其中,每一轮协议运算中包括一次或多次运算处理,每一次的运算处理是基于并行前缀网络的运算算子实现。
可选的,协议运算的轮数与并行前缀网络的网络深度相关。
可知的是,本申请实施例中的遍历处理包括有多轮协议运算,其中的多轮协议运算是按照并行前缀网络的网络层结构触发实现的,通过这样的设置能够实现秘密分享场景下的并行前缀网络和遍历处理的结合应用。
可选的,各个计算参与方所利用的并行前缀网络,是基于遍历任务所使用的遍历函数确定的。
可选的,该数据处理还包括:若遍历任务所使用的遍历函数满足函数结合律,则采用与遍历函数相应运算算子的并行前缀网络执行遍历任务。
可知的是,本申请实施例中的并行前缀网络是基于遍历任务中所使用的遍历函数确定,通过基于不同的遍历函数调用不同的并行前缀网络以满足对数据表的不同遍历需求。
可选的,该数据处理还包括:若遍历任务所使用的遍历函数不满足函数结合律,则对遍历函数进行函数转换处理,得到满足函数结合律的转换后的遍历函数;采用与转换后的遍历函数具有相应运算算子的并行前缀网络执行遍历任务。
可选的,函数转换处理包括:基于遍历函数的函数特性,在遍历函数中引入变量,得到转换后的遍历函数。
可知的是,本实施方式中当出现遍历任务所需要使用的遍历函数不具有函数结合律的特性时,还可对遍历函数进行相应的转换处理,以得到满足并行前缀网络使用条件的转换后的遍历函数,通过这样的处理方式能够有效提升各类遍历任务的处理效率,满足不同遍历任务的遍历需求。
第二方面,本申请提供了一种电子设备,包括:
至少一个处理器;以及
存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面所述方法。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面所述方法。
第四方面,本申请提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如第一方面所述方法。
本申请实施例提供的基于秘密分享的数据处理方法及设备,通过利用并行前缀网络的网络特性,以使安全计算任务中对于待遍历数据表进行遍历任务可采用并行运算的遍历处理的运算方式实现,其相对于现有技术所采用的依次遍历处理的方式来说,其能够使得遍历处理轮数降低,从而降低了任务所需的通信时间,提升处理效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请所基于的一种网络架构的示意图;
图2为本申请实施例提供的一种并行前缀网络的网络结构示意图;
图3为本申请实施例提供的一种基于秘密分享的数据处理方法的流程示意图;
图4为本申请实施例提供的利用并行前缀网络进行数据处理的数据流示意图;
图5为本申请提供的一种电子设备的硬件结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本申请的技术方案中,所涉及的信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
随着计算机技术的快速发展,基于大数据的数据分析为各领域的发展提供了保障。
在电商领域中,不同的商家、品牌商和平台从不同渠道掌握了不同属性的数据,这些数据可被聚合到一起进行联合分析,以得到更为全面和准确的分析结果。为了保证数据安全,商家、品牌商和平台所持有的数据是不能直接方给其他商家、品牌商和平台的。在这种情况下,利用多方安全计算(secure multiparty computation,简称MPC)将能够有效解决不同的商家、品牌商和平台之间的数据联合分析的问题。
多方安全计算(secure multiparty computation,简称MPC)是一种可实现在不披露任意计算参与方输入数据的条件下,实现多方数据联合运算的计算机制。
具体来说,各计算参与方根据当前执行的安全计算任务约定一个待计算的函数,随后应用MPC协议,将每个人所持有的数据的秘密份额输入协议中,联合计算得到函数的输出,同时不泄漏私有输入。其中,待计算的函数具体用于指当前安全计算任务所包括的任一计算过程中所使用的函数,如,本申请中所涉及到函数则为对数据表进行遍历处理过程所使用的遍历函数。
上述提及的数据提供方的数量以及计算参与方的数量均可为多个。图1为本申请所基于的一种网络架构的示意图,该图中是以电商领域为例进行的网络架构的说明。本申请基于的网络架构将以数据提供方的数量为3个,以及计算参与方的数量为3个为例进行说明。
具体的,图1中的各数据提供方分别属于不同的厂商A、厂商B和厂商C。各厂商各自持有独占的数据,且各厂商之间不进行数据交互。在MPC下,各厂商将利用协议将各自持有的数据输入协议中。在协议下各数据将构成待遍历数据表T。而对于每一个厂商来说,其均不可获知待遍历数据表T的具体内容。
而对于待遍历数据表T来说,根据不同的运算需求,其具体可为不同类型的用于存储不同信息的数据表。例如,在一些情况下,该待遍历数据表可为购买记录数据所构成的数据表,本申请将对待遍历数据表所表征的数据内容不进行限制。
同时,图1所示网络架构中的计算参与方将包括有计算参与方P1、计算参与方P2和计算参与方P3。对于每一个计算参与方来说,其均可为用于执行当前安全计算任务的设备,各设备将按照MPC中的预设协议执行相应的协议运算,以完成当前执行的安全计算任务。
在一些实际场景中,安全计算任务中涉及对数据表进行操作的操作类型可包括多种,常见的操作类型为对数据表进行相等连接(Equal Join)操作,以及对数据表进行分组聚合(Group By)操作。
在各类对数据表进行的操作类型中,往往需要对数据表进行不经意遍历的遍历处理。不经意遍历的遍历处理是一种数据表操作的常用处理算子,其是构成数据库相等连接操作和分组聚合操作的重要组件。
以分组聚合操作为例:
假设需要对数据表T进行分组聚合处理,而数据表T由包含分组属性xi和数据属性yi的多列数据构成。
在对数据表T进行分组聚合操作时,首先可针对分组属性数据xi和进行排序,根据排序结果将数据表划分为多个数据组。然后,基于分组聚合操作的操作需求,对每个数据组中的分组属性xi和数据属性yi进行不经意遍历的遍历处理,并基于遍历处理所得到的遍历结果[Z]。最后,基于遍历结果[Z]执行后续的聚合处理,得到数据表T的分组聚合操作的操作结果。
而在包括不经意遍历在内的遍历处理过程中,各计算参与方需要将根据数据表[T]中的分组属性xi和数据属性yi计算得到另一个数据属性zi的值。在该过程中,计算得到的zi将满足:
zi=f(zi-1,Ti)或者,zi=f(zi+1,Ti);其中f是遍历函数,Ti表示为(xi,yi)。
一般来说,对数据表的遍历处理一般是利用遍历函数对m行数据中的每一行数据依次进行遍历运算而实现的,即从i=1开始,利用遍历函数依次计算z1、z2…直至得到zm,而各zi将构成遍历后的数据表[Z]。
但是,在多方安全计算场景下,这样的对数据表进行遍历处理会导致较大的通信开销。具体的,若针对数据表中的任一行数据完成一次遍历计算,各计算参与方将在该次遍历计算中进行O(1)轮的通信,那么可知的是,完成对m行数据的m次遍历计算所需要的通信轮的轮数为O(m)。
例如,以m=4的数据表[T]为例,利用上述遍历函数f(以zi=f(zi-1,Ti)为例)对数据表进行遍历可表示为如下的四轮遍历计算步骤:
第1轮遍历计算:计算z1,得到z1=T1
第2轮遍历计算:利用z1和T2计算z2,得到:
z2=f(z1,T2)=f(T1,T2);
第3轮遍历计算:利用z2和T3计算z3,得到:
z3=f(z2,T3)=f(f(T1,T2),T3);
第4轮遍历计算:利用z3和T4计算z4,得到:
z4=f(z3,T4)=f(f(f(T1,T2),T3),T4);
在完成上述4轮遍历计算之后,将得到包括有z1、…z4的遍历后的数据表[Z]。也就是说,在上述示例中的4行数据,需要进行4轮遍历计算,需要的总通信轮数为O(4)。
但是,在包括电商领域在内的一些领域中,由于数据表所包含的数据量是极大的,这将导致针对数据量较大(数据表中包括大量行数的数据)的数据表进行遍历处理时,各计算参与方的通信开销成倍增长,十分不利于各计算参与方的数据处理效率的提升。
基于上述问题,本申请想到可利用的并行前缀网络,来实现对安全计算任务中的不经意遍历的遍历处理的并行化运算处理。
具体来说,并行前缀网络是一种需要在数组上顺序执行的网络,其网络可广泛应用于实现高性能加法器功能,常用的网络结构包括Brent-Kung型,Sklansky型和Ladner-Fischer型等。
图2为本申请实施例提供的一种并行前缀网络的网络结构示意图,在图2所示的并行前缀网络中,其网络深度为2,网络所使用的运算算子为g。
如图2所示的,完成对该输入数据表[T]的处理将包括2轮运算:
第1轮运算:
第1行的输入数据T1和第2行的输入数据T2经过一次运算算子,计算得到数据Q1-2=g(T1,T2);
同时,第3行的输入数据T3和第4行的输入数据T4经过一次运算算子,计算得到数据Q3-4=g(T3,T4)。
第2轮运算:
第3行的输入数据T3和前一层结构得到的数据Q1-2经过一次运算算子,计算得到数据Q1-3=g(Q1-2,T3)=g(g(T1,T2),T3);
同时,前一层结构得到的数据Q1-2和前一层结构得到的数据Q3-4经过一次运算算子,计算得到数据Q1-4,=g(Q1-2,Q3-4)=g(g(T1,T2),g(T3,T4))。
也就是说,在完成上述2轮遍历运算之后,网络得到的数据将包括有Q1=T1、Q1-2=g(T1,T2)=Q2、Q1-3=g(g(T1,T2),T3)=Q3以及Q1-4=g(g(T1,T2),g(T3,T4))。
其中,对于Q1-4来说,由于函数g满足函数交换律,则可得到如下表达式:
Q1-4=g(Q1-2,Q3-4)=g(g(T1,T2),g(T3,T4))=g(g(g(T1,T2),T3),T4)=Q4
至此,得到Q1、Q2、Q3和Q4
通过与前述现有的遍历处理结果z1、…z4进行比对可发现,当Q1包括有z1,Q2包括有z2,Q3包括有z3,,Q4包括有z4时,则可利用并行前缀网络来对遍历任务进行处理,而为了实现利用并行前缀网络执行遍历任务,则可将并行前缀网络中使用的运算算子(函数g),与前述遍历任务中的遍历函数f进行一定关联处理,如令图2所示的并行前缀网络中的运算算子函数g等于遍历函数f,从而使得可利用图2所示的网络执行对数据表[T]的遍历处理,得到遍历结果[Z]。
可知的是,利用现有的遍历算法对包括有m行数据的数据表中第m行遍历结果z4需要进行m=4轮单次运算(z1→z2→z3→z4),而并行前缀网络对于Q1-4的运算仅需logm=2轮基于并行的运算(Q1-2、Q3-4→Q4)即可得到Q4所包含的z4
换句话说,如果能够利用并行前缀网络对遍历任务进行处理,各计算参与方将不再采用从T1到Tm依次计算的计算方式,而是采用按照并行前缀网络的网络结构,对T1到Tm中的一个或多个数据进行并行计算的计算方式,以降低完成对数据表遍历处理所需要的通信轮数。
正是基于上述原理和相关考虑,本申请将采用在基于秘密分享的数据处理方法中,利用并行前缀网络对当前安全计算任务中所涉及到的遍历任务进行拆分处理,以使遍历任务可按照并行前缀网络拆分为多轮并行运算,这将使得本申请完成对m行数据的遍历计算所需要的通信轮的轮数从原有的O(m)轮降低至O(logm)轮,而通信轮数的降低,将有利于对通信开销的减小和数据处理效率的提升。
下面通过具体的实施例对本申请提供的基于秘密分享的数据处理方法及设备进行详细说明。下面的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
需要说明的是,本实施例中提供的基于秘密分享的数据处理方法的执行主体为前述提及的由多个计算参与方构成的基于秘密分享的数据处理系统。图3为本申请实施例提供的一种基于秘密分享的数据处理方法的流程示意图。如图3所示的,该基于秘密分享的数据处理方法可以包括如下几个步骤:
步骤301、在确定当前安全计算任务包括对待遍历数据表进行遍历任务的情况下,各个计算参与方利用预先部署的并行前缀网络,对各自所持有的待遍历数据表的分享数据,进行基于并行运算的遍历处理,得到待遍历数据表的遍历结果;
步骤302、基于遍历结果,执行当前安全计算任务。
可以理解的是,本申请实施例提供的基于秘密分享的数据处理方法可应用于多方安全计算的相关系统,具体可应用在安全计算任务中的遍历任务的相关处理过程中。
本申请中的安全计算任务是指以为通过预设编程语言实现的计算机程序代码,多方安全计算系统可通过执行该计算机程序代码可以实现相应的计算功能。具体的,安全计算任务包括但不限于:基于密文实现数据的计算、清洗、分析、模型训练、存储、数据库查询等数据相关操作。当然,需要明确的是,当确定出安全计算任务中包括有本申请实施方式所能够处理的遍历任务时,各计算参与方将触发本申请提供的数据处理方式,执行相应的处理流程。
同时,上述步骤中的待遍历数据表可以使任何类型的数据表,数据表可用于描述包括但不限于用户的个人信息的数据,或者商业数据等的数据信息。而待遍历数据表的分享数据则是基于秘密分享的相关协议经过加密处理的以密文形式存在的数据,该分享数据将以如图1所示的秘密份额的形式下发至各计算参与方以进行相关运算处理。
此外,在各个计算参与方按照本申请实施方式提供的数据处理方法对待遍历数据表进行遍历处理时,其是基于秘密分享技术实现的。也就是说,各个计算参与方将按照既定协议,各自执行协议所约定的处理,以最终实现对待遍历数据表进行遍历处理的处理目的,其中的既定协议应是预先设置在各计算参与方的设备中的。在执行本申请实施方式时,可知的是,既定协议中已经部署有并行前缀网络的网络架构和相关网络参数,各个计算参与方在执行遍历任务可直接调取和使用。
在本申请实施方式中,针对当前的遍历任务,各个计算参与方所利用的并行前缀网络是与遍历任务相匹配的。
具体的,为了能够对数据表的多种操作类型中的遍历任务进行简化运算,在各计算参与方的设备中可部署有多种并行前缀网络,每一种并行前缀网络所采用的运算算子是不相同的,而不同的运算算子的并行前缀网络可对数据表进行不同算法的遍历处理。
基于此,在各计算参与方按照协议执行遍历任务之前,还可先基于本次遍历任务所使用的遍历函数来确定相应的并行前缀网络。也就是说,在确定并行前缀网络时,可基于遍历任务所使用的遍历函数,从预先部署的各并行前缀网络中选择与该遍历函数具有相同运算算子的并行前缀网络,以作为本次遍历任务所采用的并行前缀网络。
当确定遍历任务对应的并行前缀网络之后,各个计算参与方利用预先部署的并行前缀网络,对各自所持有的待遍历数据表的分享数据,进行基于并行运算的遍历处理。下面将以对表1所示的遍历任务为例,对本申请提供的基于秘密分享的数据处理的处理方法进行具体说明。
表1示出了一种待遍历数据表[T],其中,[T]中的第i行数据Ti可表示为Ti=(xi,yi)。
x<sub>i</sub> y<sub>i</sub>
1 0
2 1
3 1
10 0
20 1
30 1
100 0
200 1
表1
已知,该遍历任务中所使用的遍历函数f满足函数结合律,那么在多方计算参与方对于表1所示的待遍历数据表进行遍历处理时,可找到与该遍历函数f相对应的那个并行前缀网络,并可按照协议利用该并行前缀网络来对数据表[T]进行遍历处理。
图4为本申请实施例提供的利用并行前缀网络进行数据处理的数据流示意图。如图4所示的,该并行前缀网络所采用的运算算子可为遍历函数g,网络深度为5层。
在处理时,各方计算参与方首先会在需要执行遍历任务时,触发协议以调用该并行前缀网络。
在预计算阶段,各方计算参与方可触发协议将待遍历数据表[T]输入至网络,以作为网络输入数据。
在前缀计算阶段,各个计算参与方按照所述并行前缀网络的网络层结构触发的多轮协议运算;其中,每一轮协议运算中包括一次或多次运算处理,所述每一次的运算处理是基于所述并行前缀网络的运算算子实现。
具体来说,图4所示网络包括有5层,假设遍历任务中Q1=T1
第1层网络的第1轮协议运算,包括:
各个计算参与方将触发协议对T1和T2、T3和T4、T5和T6、T7和T8的4组数据并行进行基于遍历函数g的遍历运算,得到Q1-2、Q3-4、Q5-6和Q7-8
第2层网络的第2轮协议运算,包括:
各个计算参与方将触发协议对Q1-2和Q3-4、Q5-6和Q7-8的2组数据并行进行基于遍历函数g的遍历运算,得到Q1-4和Q5-8
第3层网络的第3轮协议运算,包括:
各个计算参与方将触发协议对Q1-4和Q5-8的1组数据并行进行基于遍历函数g的遍历运算,得到Q1-8
第4层网络的第4轮协议运算,包括:
各个计算参与方将触发协议对Q1-4和Q5-6的1组数据并行进行基于遍历函数g的遍历运算,得到Q1-6
第5层网络的第5轮协议运算,包括:
各个计算参与方将触发协议对Q1-2和T3、Q1-4和T5、Q1-6和T7的3组数据并行进行基于遍历函数g的遍历运算,得到Q1-3、Q1-5和Q1-7
至此,各计算参与方得到了Q1、Q1-2、Q1-3、Q1-4、Q1-5、Q1-6 Q1-7和Q1-8
在后处理阶段,各计算参与方将根据得到各运算结果,可输出待遍历数据表的遍历结果[Z],其中,第i行数据zi,与运算结果之间的关系可为包含关系(其中的si为与zi无关的参数),即Q1=(z1,s1),Q1-2=(z2,s2),Q1-3=(z3,s3),Q1-4=(z3,s4),Q1-5=(z5,s5),Q1-6=(z6,s6),Q1-7=(z7,s7)和Q1-8=(z8,s8)。
根据上述结果得到表2。
x<sub>i</sub> y<sub>i</sub> z<sub>i</sub>
1 0 1
2 1 3
3 1 6
10 0 10
20 1 30
30 1 60
100 0 100
200 1 300
表2
当各计算参与方获取到如表2所示的遍历结果之后,各计算参与方还将按照协议利用该遍历结果继续执行当前安全计算任务,如利用遍历结果执行对数据表的分组聚合操作等等。
当然需要说明的是,上述的协议运算的轮数与并行前缀网络的网络深度相关。具体来说,遍历处理中协议运算的轮数等于网络深度,而网络深度则与数据表的数据行数相关:
针对上述示例中的包括有8行数据库的数据表来说,上述并行前缀网络的网络深度为5,其可将遍历处理所需要的通信轮数降为O(5)。在其他示例中,还可对并行前缀网络的网络结构进行进一步压缩,其网络深度的压缩极限应为logm(其中m为数据行数),即针对上述数据表,还可采用网络深度为3的其他并行前缀网络对数据表进行遍历处理。
无论是采用网络深度为5还是网络深度为3的并行前缀网络,各计算参与方在执行遍历任务时所需要的通信轮数O(logm)均小于原有遍历所需要的通信轮数O(m)。
在上述各实施方式的基础上,由于安全计算任务中对数据表所进行的操作类型的差异,其安全计算任务中对待遍历数据表所进行的遍历任务中所使用的遍历函数也是不同的。
一般来说,遍历任务所使用的遍历函数是满足函数结合律的,例如,某一遍历任务所使用的遍历函数为f,该f满足函数结合律,即满足f(f(f(T1,T2),T3),T4)=f(f(T1,T2),f(T3,T4))。
此时,各计算参与方采用与遍历函数f相应运算算子的并行前缀网络执行该遍历任务。
而另一些遍历任务所使用的遍历函数是不满足函数结合律的,例如,某一遍历任务所使用的遍历函数为h,该h不满足函数结合律,即h(h(h(T1,T2),T3),T4)≠h(h(T1,T2),h(T3,T4))。
此时,各计算参与方采用将对遍历函数h进行函数转换处理,得到满足函数结合律的转换后的遍历函数g;采用与转换后的遍历函数g具有相应运算算子的并行前缀网络执行遍历任务。
下面将以不经意遍历算子Ftra所采用的遍历函数h为例,对遍历函数不满足函数结合律的情况下的遍历处理进行在说明:
不经意遍历算子Ftra是一种可将秘密分享的数据表[T]通过子函数θ和子函数φ转换为数据表[Z]的算子,即利用遍历函数h可得到,[Z]=h([T])。
此时,针对[Z]中的第i行数据zi,可利用第i-1行数据zi-1和[T]中的第i行数据Ti来获取,即zi=h(zi-1,Ti)。其中的[T]包括有数据项X和Y,那么针对Ti来说,Ti=(xi,yi)。
在上述数据表的基础上,对于其中的遍历函数h来说,其是子函数θ和子函数φ构成的,而基于该子函数的表达式,则遍历函数h具有多种表达形式。
具体的,子函数θ可表达为两种表达式:
θ(a,b)=a+b,或者,θ(a,b)=a;
子函数φ可表达为三种表达式:
Figure BDA0003511398600000131
或者,
Figure BDA0003511398600000132
或者,φ(a,b)=1。
基于上述两种子函数θ的表达式和三种子函数φ的表达式,可得到6种遍历函数h的表达式。下面将以遍历函数采用φ(a,b)=1和θ(a,b)=a+b的表达式为例,可知:
对于待遍历数据表[T]执行遍历函数h,得到的遍历后的数据表[Z]可表示为:
当i=1时,zi=xi
当i∈[2,m]时,在φ(zi-1,xi)=1且yi=1的情况下,zi=θ(zi-1,xi);
当i∈[2,m]时,在φ(zi-1,xi)≠1或者yi≠1的情况下,zi=xi
换句话说,遍历后的数据表[Z]中的第i行数据zi,可表示为:
Figure BDA0003511398600000133
通过推算可知,上述遍历函数h不满足函数结合律:
以z4为例,利用上述表达式可推算出z4的表达式为:
z4=h(z3,T4)=h(h(h(z1,T2),T3),T4);
由于z1=x1≠T1,使得z4=h(h(h(z1,T2),T3),T4)=h(h(h(x1,T2),T3),T4)≠h(h(h(T1,T2),T3),T4),即h不满足函数结合律。
由于该遍历函数h不满足函数结合律,因此,并行前缀网络无法直接使用该遍历函数h以作为其网络的运算算子,此时,可对遍历函数h进行函数转换处理,以使得转换后的遍历函数既满足得到的遍历后的数据表[Z]的遍历任务又满足函数结合律。
在本实施方式中,针对如上采用子函数θ和子函数φ构成的遍历函数h来说,可根据遍历函数h的函数特性,在遍历函数h中引入变量,得到转换后的遍历函数g。由于转换后的遍历函数g满足函数结合律,可在多种预设的并行前缀网络中找到与该遍历函数g相应的并行前缀网络,各计算参与方可触发该网络实现基于遍历函数g的并行遍历运算处理,得到相应的数据表[Z]。
具体来说,在遍历函数h中引入变量[S],令[S]中的第i个变量si=si-1·yi
此时,引入变量[S]的遍历函数h将被转换为遍历函数g,得到([Z],[S])=g([T]);
利用转换后的遍历函数g对于数据表[T]进行处理,以得到第i行数据zi和第i个变量si的过程可表示为:
(zi,si)=g((zi-1,si-1),Ti)=g((zi-1,si-1),(xi,yi))
另[W]=([Z],[S]),则有Wi=(zi,si)以及Wi-1=(zi-1,si-1);
对上述(zi,si)的表达式进行变形可得到:
Wi=g(Wi-1,Ti)。
需要明确的是,对于遍历函数g来说,其表达式包括有遍历函数h,以及[S]的表达式,即对[W]中的第i行数据Wi来说,Wi中的zi可利用前述的表达式
Figure BDA0003511398600000141
来计算,而Wi中si将采用表达式si=si-1·yi来进行算。通过推算可知,上述遍历函数g满足函数结合律:
以W4为例,利用上述表达式可推算出W4的表达式为
W4=g(W3,T4)=g(g(g(W1,T2),T3),T4);
由于W1=(z1,s1),z1=x1且s1=y1,使得W1=(x1,y1)=T1,将W1代入W4,得到:
W4=g(g(g(W1,T2),T3),T4)=g(g(g(T1,T2),T3),T4),可知遍历函数g符合函数结合律形式,W4可变形为W4=g(g(T1,T2),g(T3,T4))。
通过上述的引入变量[S]的方式,从而使得将不满足函数结合律的遍历函数h转换为满足函数结合律的遍历函数g,且由于遍历函数g的表达式中包括有遍历函数h的表达式,利用遍历函数g对待遍历数据表[T]进行处理,依旧能得到遍历后的数据表[Z]所需要的各行数据zi,这也保证了使用转换后的遍历函数g对待遍历数据表[T]进行处理所得到的遍历结果的准确性。
需要说明的是,上述提出利用引入变量的方式将不满足函数结合律的遍历函数h转换为满足函数结合律的遍历函数g的方式仅为其中一种可选的转换方式,即本实施方式仅示出了子函数θ和子函数φ所构成的遍历函数h的转换示例,对于由其他子函数构成的不满足函数结合率的遍历函数来说,应结合函数的特性采用相应的转换方式对函数进行转换。
本申请实施例提供的基于秘密分享的数据处理方法及设备,通过利用并行前缀网络的网络特性,以使安全计算任务中对于待遍历数据表进行遍历任务可采用并行运算的遍历处理的运算方式实现,其相对于现有技术所采用的依次遍历处理的方式来说,其能够使得遍历处理轮数降低,从而降低了任务所需的通信时间,提升处理效率。
图5为本申请提供的一种电子设备的硬件结构示意图,如图5所示的,本申请实施例提供一种电子设备,电子设备的存储器可用于存储至少一个程序指令,处理器用于执行至少一个程序指令,以实现上述方法实施例的技术方案。其实现原理和技术效果与上述方法相关实施例类似,此处不再赘述。
在实际应用场景下,图5所示的电子设备具体可为基于秘密分享的数据处理系统中任一计算参与方的承载设备,其每一电子设备将按照前述所示的数据处理方法执行相应的数据处理,完成基于秘密分享的多方安全计算。
本申请实施例提供一种芯片。芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
本申请实施例提供一种计算机程序产品,当计算机程序产品在电子设备运行时,使得电子设备执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
本申请实施例提供一种计算机可读存储介质,其上存储有程序指令,程序指令被电子设备执行时,使得电子设备执行上述实施例的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
以上的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

Claims (10)

1.一种基于秘密分享的数据处理方法,其特征在于,所述方法应用于基于秘密分享的数据处理系统,所述数据处理系统包括多个计算参与方;
所述数据处理方法,包括:
在确定当前安全计算任务包括对待遍历数据表进行遍历任务的情况下,各个计算参与方利用预先部署的并行前缀网络,对各自所持有的待遍历数据表的分享数据,进行基于并行运算的遍历处理,得到所述待遍历数据表的遍历结果;
基于所述遍历结果,执行所述当前安全计算任务。
2.根据权利要求1所述的数据处理方法,其特征在于,所述基于并行运算的遍历处理,包括有所述各个计算参与方按照所述并行前缀网络的网络层结构触发的多轮协议运算;
其中,每一轮协议运算中包括一次或多次运算处理,所述每一次的运算处理是基于所述并行前缀网络的运算算子实现。
3.根据权利要求2所述的数据处理方法,其特征在于,所述协议运算的轮数与所述并行前缀网络的网络深度相关。
4.根据权利要求1-3任一项所述的数据处理方法,其特征在于,所述各个计算参与方所利用的所述并行前缀网络,是基于所述遍历任务所使用的遍历函数确定的。
5.根据权利要求4所述的数据处理方法,其特征在于,还包括:
若所述遍历任务所使用的所述遍历函数满足函数结合律,则采用与所述遍历函数相应运算算子的并行前缀网络执行所述遍历任务。
6.根据权利要求4所述的数据处理方法,其特征在于,还包括:
若所述遍历任务所使用的所述遍历函数不满足函数结合律,则对所述遍历函数进行函数转换处理,得到满足函数结合律的转换后的遍历函数;
采用与所述转换后的遍历函数具有相应运算算子的并行前缀网络执行所述遍历任务。
7.根据权利要求6所述的数据处理方法,其特征在于,所述函数转换处理包括:
基于所述遍历函数的函数特性,在所述遍历函数中引入变量,得到所述转换后的遍历函数。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-7所述方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-7所述方法。
10.一种计算机程序产品,包括计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求1-7所述方法。
CN202210153130.3A 2022-02-18 2022-02-18 基于秘密分享的数据处理方法及设备 Pending CN114546645A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210153130.3A CN114546645A (zh) 2022-02-18 2022-02-18 基于秘密分享的数据处理方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210153130.3A CN114546645A (zh) 2022-02-18 2022-02-18 基于秘密分享的数据处理方法及设备

Publications (1)

Publication Number Publication Date
CN114546645A true CN114546645A (zh) 2022-05-27

Family

ID=81675441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210153130.3A Pending CN114546645A (zh) 2022-02-18 2022-02-18 基于秘密分享的数据处理方法及设备

Country Status (1)

Country Link
CN (1) CN114546645A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115269234A (zh) * 2022-09-26 2022-11-01 华控清交信息科技(北京)有限公司 一种任务消息传输方法、装置及相关设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115269234A (zh) * 2022-09-26 2022-11-01 华控清交信息科技(北京)有限公司 一种任务消息传输方法、装置及相关设备
CN115269234B (zh) * 2022-09-26 2023-01-10 华控清交信息科技(北京)有限公司 一种任务消息传输方法、装置及相关设备

Similar Documents

Publication Publication Date Title
Wagh et al. SecureNN: 3-party secure computation for neural network training
CN112910631B (zh) 一种基于云服务器辅助的高效隐私集合交集计算方法及系统
Rathee et al. Elsa: Secure aggregation for federated learning with malicious actors
CN111885079A (zh) 保护数据隐私的多方联合处理数据的方法及装置
Chen et al. Multiparty generation of an RSA modulus
CN106850224B (zh) 一种私钥定长的密文策略属性基加密方法
Laud Parallel oblivious array access for secure multiparty computation and privacy-preserving minimum spanning trees
Troncoso-Pastoriza et al. Secure signal processing in the cloud: enabling technologies for privacy-preserving multimedia cloud processing
CN112506469A (zh) 针对隐私数据进行处理的方法和装置
CN114691167A (zh) 机器学习模型更新的方法和装置
Bostanci et al. Quantum game theory and the complexity of approximating quantum Nash equilibria
Tassa et al. Privacy preserving implementation of the Max-Sum algorithm and its variants
Zhang Generic constant-round oblivious sorting algorithm for MPC
Asharov et al. Efficient secure three-party sorting with applications to data analysis and heavy hitters
CN117857039B (zh) 多方安全计算方法、装置、设备及介质
CN114546645A (zh) 基于秘密分享的数据处理方法及设备
Dolev et al. SodsMPC: FSM based anonymous and private quantum-safe smart contracts
CN114553407A (zh) 基于秘密分享的数据处理方法及设备
Suresh Mpcleague: robust MPC platform for privacy-preserving machine learning
Nasirigerdeh et al. Hyfed: A hybrid federated framework for privacy-preserving machine learning
CN109684603B (zh) 一种高效求解大尺度矩阵行列式的可验证外包计算方法、客户端及云计算系统
CN113849806A (zh) 多方安全计算中的任务执行方法及装置
Friedrich et al. Near-perfect load balancing by randomized rounding
CN115952526B (zh) 密文排序方法、设备及存储介质
Harnik et al. How many oblivious transfers are needed for secure multiparty computation?

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