本申请涉及多方安全计算领域,具体而言,涉及一种多方安全的数据重排方法、装置、电子设备及存储介质。
背景技术:
1、安全多方计算(multi-party computation, 简称mpc)主要解决多个参与方在不互相透露各自输入的前提下,如何联合完成计算的问题。
2、mpc目前的应用前景越来越广泛,企业、政府、学术机构和个人间的协同业务需求日趋强烈。一个典型的场景是,人工智能迅猛发展的历程中,数据隐私的需求愈加强烈。ai训练所需的数据,在很多商业场景里由于隐私合规性的原因无法获得,导致无法完成训练或者训练效果很差。隐私ai (privacy ai)正试图利用mpc来解决ai计算中的隐私保护问题,即如何在ai训练涉及的数据方不直接暴露明文数据的前提下,完成协同训练和协同预测。
3、安全两方计算是国内应用比较广泛的多方安全计算模式。目前的安全两方计算缺少高效的对数据进行shuffle的方法。基于shuffle network对数据进行shuffle,这种重排网络只能对固定长度的数据进行重排。
技术实现思路
1、本申请实施例的目的在于提供一种多方安全的数据重排方法、装置、电子设备及存储介质,用以实现对任意长度的数据进行重排。
2、第一方面,本申请实施例提供一种多方安全的数据重排方法,应用于多方安全计算系统中的参与方,所述多方安全计算系统中包括多个参与方,每一所述参与方中存储有原始数据对应的一数据分片;每一所述参与方随机生成一个重排网络,并与其他参与方秘密共享所述重排网络;所述方法包括:
3、所述参与方按照如下步骤进行多轮迭代,直至完成对所述数据分片中所有的数据被重排,获得对所述原始数据进行重排后的重排数据;所述步骤包括:
4、每一所述参与方从自身存储的数据分片中获取预设数量的数据构成子数据分片;
5、所述参与方与所述其他参与方基于秘密共享的所述重排网络对所述子数据分片进行重排操作,获得重排后数组,并将所述重排后数组作为所述数据分片。
6、本申请实施例针对每次迭代重排,各参与方均从数据分片中选取预设数量的数据,通过秘密共享的重排网络进行数据的重排,由于预设数量可以为任意长度,从而解决了现有技术中只能对固定长度的数据进行重排的问题。
7、在任一实施例中,所述每一所述参与方从自身存储的数据分片中获取预设数量的数据构成子数据分片,包括:
8、各参与方同步生成随机种子,并根据所述随机种子从所述数据分片中获取预设数量的数据,构成所述子数据分片。
9、本申请实施例基于随机种子从数据分片中选取待重排的数据,使得各个参与方能够获取到各自数据分片中对应位置的数据,以确保各参与方采样的一致性。
10、在任一实施例中,所述根据所述随机种子从所述数据分片中获取预设数量的数据,包括:
11、各参与方基于所述随机种子,以概率从上一次已经采样过的数据中进行不放回采样,以概率从上一次未采样过的数据中进行不放回采样,获取所述预设数量的数据;或,
12、各参与方基于所述随机种子,根据概率以有放回的方式从所述数据分片中获取次所述预设数量的数据;
13、其中,,为所述原始数据的长度;为所述预设数量;为所述原始数据中参与重排的各个数据的概率。
14、本申请实施例通过无放回或有放回的方式从各个数据分片中获取待重排的数据,保证数据分片中的每个数据均能够被作为待重排的数据。
15、在任一实施例中,所述重排网络包括多个交换层,每一所述交换层包括多个交换门,每一所述交换门对应一个交换系数,所述交换系数用于表征是否对输入的数据进行交换;所述参与方与所述其他参与方基于秘密共享的所述重排网络对所述子数据分片进行重排操作,包括:
16、根据公式对输入到所述交换门的数据进行重排操作;其中,为所述交换门输出所述参与方的输出数据;为所述参与方输入到所述交换门的输入数据;为所述交换系数;为所述交换门输出所述其他参与方的输出数据;为其他参与方输入到所述交换门的输入数据。
17、本申请实施例通过每次从数据分片中选取重排网络所需数据量的数据进行重排,满足了重排网络每次重排的数据的数量要求。
18、在任一实施例中,所述重排网络包括完备网络、双调合并网络或随机网络。
19、本申请实施例中的重排网络可以为完备网络、双调合并网络或随机网络,将上述网络用于数据的重排,使得数据重排可以有多种网络选择。
20、在任一实施例中,所述原始数据的长度为n,根据公式确定所述预设数量。
21、本申请实施例通过上述公式确定的预设数量能够满足重排网络对数据数量的要求。
22、在任一实施例中,各参与方之间通过比特进行秘密共享所述重排网络。
23、本申请实施例中各参与方之间通过比特的方式进行秘密共享重排网络,进一步减少隐私计算时的通信量级,提高计算性能。
24、第二方面,本申请实施例提供一种多方安全的数据重排装置,应用于多方安全计算系统中的参与方,所述多方安全计算系统中包括多个参与方,每一所述参与方中存储有原始数据对应的一数据分片;每一所述参与方随机生成一个重排网络,并与其他参与方秘密共享所述重排网络;所述装置包括:
25、所述参与方按照如下步骤进行多轮迭代,直至完成对所述数据分片中所有的数据被重排,获得对所述原始数据进行重排后的重排数据;所述步骤包括:
26、每一所述参与方从自身存储的数据分片中获取预设数量的数据构成子数据分片;
27、所述参与方与所述其他参与方基于秘密共享的所述重排网络对所述子数据分片进行重排操作,获得重排后数组,并将所述重排后数组作为所述数据分片。
28、第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
29、所述处理器和所述存储器通过所述总线完成相互间的通信;
30、所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法。
31、第四方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:
32、所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法。
33、本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
1.一种多方安全的数据重排方法,其特征在于,应用于多方安全计算系统中的参与方,所述多方安全计算系统中包括多个参与方,每一所述参与方中存储有原始数据对应的一数据分片;每一所述参与方随机生成一个重排网络,并与其他参与方秘密共享所述重排网络;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述每一所述参与方从自身存储的数据分片中获取预设数量的数据构成子数据分片,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述随机种子从所述数据分片中获取预设数量的数据,包括:
4.根据权利要求1所述的方法,其特征在于,所述重排网络包括多个交换层,每一所述交换层包括多个交换门,每一所述交换门对应一个交换系数,所述交换系数用于表征是否对输入的数据进行交换;所述参与方与所述其他参与方基于秘密共享的所述重排网络对所述子数据分片进行重排操作,包括:
5.根据权利要求1所述的方法,其特征在于,所述重排网络包括完备网络、双调合并网络或随机网络。
6.根据权利要求1所述的方法,其特征在于,所述原始数据的长度为n,根据公式确定所述预设数量。
7.根据权利要求1-6任一项所述的方法,其特征在于,各参与方之间通过比特进行秘密共享所述重排网络。
8.一种多方安全的数据重排装置,其特征在于,应用于多方安全计算系统中的参与方,所述多方安全计算系统中包括多个参与方,每一所述参与方中存储有原始数据对应的一数据分片;每一所述参与方随机生成一个重排网络,并与其他参与方秘密共享所述重排网络;所述装置包括:
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-7任一项所述的方法。