一种程序运行方法及系统技术方案

技术编号:28498669 阅读:10 留言:0更新日期:2021-05-19 22:37
本说明书公开了一种程序运行方法及系统。所述方法包括:对原始数据集合中每个数据的值进行分片处理,得到每个数据的N个分片值;确定N个分片数据集合;在指定情况下,N个运行设备分别基于不同的分片数据集合运行目标程序;通过预先配置,使得针对所述目标程序对应的每个基础运算单元,将任意一组值输入该基础运算单元进行运算得到的运算结果,等于:将该任意一组值的每组分片值分别输入该基础运算单元进行分别运算后,对得到的全部运算结果进行逆分片处理后得到的处理结果;当首次对该变量的分片值进行随机数加密时,向随机数提供方请求一个随机数并分配给该变量;当再次对该变量的分片值进行随机数加密时,复用分配给该变量的随机数。机数。机数。

【技术实现步骤摘要】
一种程序运行方法及系统


[0001]本说明书实施例涉及计算机领域,尤其涉及一种程序运行方法及系统。

技术介绍

[0002]设备在运行程序时,往往根据程序中的运算逻辑,对数据集合进行运算,得到运算结果,作为程序的输出。其中,数据集合至少包括用于对程序变量进行赋值的数据。
[0003]在有些场景下,出于信息安全的需要,不希望数据集合所承载的敏感信息泄露给运行该程序的设备。例如,在模型训练场景下,运行模型训练程序的设备需要获取多个用户样本与相应的标签进行运算,然而,这意味着设备能够基于获取到的多个用户样本以及相应的标签得到用户隐私信息。
[0004]因此,亟需一种确保信息安全的程序运行方法。

技术实现思路

[0005]为了确保信息安全,本说明书提供了一种程序运行方法及系统。技术方案如下所示。
[0006]一种程序运行方法,包括:
[0007]对原始数据集合中每个数据的值进行分片处理,得到每个数据的N个分片值;所述原始数据集合包括用于对程序中变量进行赋值的数据;
[0008]确定N个分片数据集合;确定每个分片数据集合,包括:对所述原始数据集合中的每个数据,采用该数据的一个分片值进行重新赋值;同一数据在N个分片数据集合中的值与该同一数据的N个分片值一一对应;
[0009]在指定情况下,N个运行设备分别基于不同的分片数据集合运行目标程序;
[0010]其中,通过预先配置,使得针对所述目标程序对应的每个基础运算单元,将任意一组值输入该基础运算单元进行运算得到的运算结果,等于:将该任意一组值的每组分片值分别输入该基础运算单元进行分别运算后,对得到的全部运算结果进行逆分片处理后得到的处理结果;
[0011]在所述N个运行设备需要针对所述目标程序中任一变量交互分片值的情况下,分别对本地存储的该变量的分片值进行随机数加密;所述N个运行设备在分别运行所述目标程序的过程中,针对所述目标程序中每个变量,当首次对该变量的分片值进行随机数加密时,向随机数提供方请求一个随机数并分配给该变量;当再次对该变量的分片值进行随机数加密时,复用分配给该变量的随机数。
[0012]一种程序运行系统,预先对原始数据集合中每个数据的值进行分片处理,得到每个数据的N个分片值;所述原始数据集合包括用于对程序中变量进行赋值的数据;确定N个分片数据集合;确定每个分片数据集合,包括:对所述原始数据集合中的每个数据,采用该数据的一个分片值进行重新赋值;同一数据在N个分片数据集合中的值与该同一数据的N个分片值一一对应;
[0013]所述系统包括N个运行设备,每个运行设备用于:在指定情况下基于分片数据集合运行目标程序;
[0014]其中,N个运行设备分别基于不同的分片数据集合运行目标程序;通过预先配置,使得针对所述目标程序对应的每个基础运算单元,将任意一组值输入该基础运算单元进行运算得到的运算结果,等于:将该任意一组值的每组分片值分别输入该基础运算单元进行分别运算后,对得到的全部运算结果进行逆分片处理后得到的处理结果;
[0015]在所述N个运行设备需要针对所述目标程序中任一变量交互分片值的情况下,每个运行设备用于对本地存储的该变量的分片值进行随机数加密;所述N个运行设备在分别运行所述目标程序的过程中,每个运行设备用于:针对所述目标程序中每个变量,当首次对该变量的分片值进行随机数加密时,向随机数提供方请求一个随机数并分配给该变量;当再次对该变量的分片值进行随机数加密时,复用分配给该变量的随机数。
[0016]上述技术方案通过预先配置,使得N个运行设备可以基于分片数据集合运行目标程序,得到基于原始数据集合的目标程序运行结果。因此,在能够得到基于原始数据集合的目标程序运行结果的前提下,每个运行设备都只能获取到分片数据集合中的分片值,无法获取到原始数据集合中的任一明文数据,也就无法获取到原始数据集合中的敏感信息,保护了信息安全。
附图说明
[0017]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0018]图1是本说明书实施例提供的一种程序运行方法的流程示意图;
[0019]图2是本说明书实施例提供的一种分片数据集合确定方法的原理示意图;
[0020]图3是本说明书实施例提供的另一种分片数据集合确定方法的原理示意图;
[0021]图4是本说明书实施例提供的一种虚拟运行设备的结构示意图;
[0022]图5是本说明书实施例提供的一种模型训练程序运行方法的流程示意图;
[0023]图6是本说明书实施例提供的一种程序运行系统的结构示意图。
具体实施方式
[0024]为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于公开的范围。
[0025]设备在运行程序时,往往根据程序中的运算逻辑,对数据集合进行运算,得到运算结果,作为程序的输出。其中,数据集合至少包括用于对程序变量进行赋值的数据。
[0026]在有些场景下,出于信息安全的需要,不希望数据集合所承载的敏感信息泄露给运行该程序的设备。
[0027]例如,在模型训练场景下,运行模型训练程序的设备需要获取多个用户样本与相
应的标签进行运算,然而,这意味着设备能够基于获取到的多个用户样本以及相应的标签得到用户隐私信息。
[0028]因此,亟需一种确保信息安全的程序运行方法。
[0029]本说明书提供一种程序运行方法。由于单个设备在运行程序时,通常都会获取到程序所运算的数据集合中的全部明文数据(为了便于描述,将包含全部明文数据的数据集合称为原始数据集合),因此,本说明书提供的程序运行方法中,可以针对原始数据集合中每个明文数据的值进行分片处理,得到多个分片值;进而可以得到多个包含原始数据集合中全部数据(值为分片值)的分片数据集合,并将得到的多个分片数据集合分别部署在多个设备上,使得这些设备可以基于分片数据集合运行相同的程序。
[0030]而在具体运行程序时,可以通过特定分片运算算法执行程序中针对分片数据集合的运算,使得多个设备的多个基于分片数据集合的程序运行结果在经过逆分片处理后,得到的逆分片处理结果,等于基于原始数据集合的程序运行结果。
[0031]为了便于理解,下面给出一种具体的示例。
[0032]原始数据集合中包含数据X,其数值为a。针对数据X进行分片处理,可以是将数值a拆分成N份,具体为a1,a2,a3,...,a
N
。其中,
[0033]确定N个分片数据集合,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序运行方法,包括:对原始数据集合中每个数据的值进行分片处理,得到每个数据的N个分片值;所述原始数据集合包括用于对程序中变量进行赋值的数据;确定N个分片数据集合;确定每个分片数据集合,包括:对所述原始数据集合中的每个数据,采用该数据的一个分片值进行重新赋值;同一数据在N个分片数据集合中的值与该同一数据的N个分片值一一对应;在指定情况下,N个运行设备分别基于不同的分片数据集合运行目标程序;其中,通过预先配置,使得针对所述目标程序对应的每个基础运算单元,将任意一组值输入该基础运算单元进行运算得到的运算结果,等于:将该任意一组值的每组分片值分别输入该基础运算单元进行分别运算后,对得到的全部运算结果进行逆分片处理后得到的处理结果;在所述N个运行设备需要针对所述目标程序中任一变量交互分片值的情况下,分别对本地存储的该变量的分片值进行随机数加密;所述N个运行设备在分别运行所述目标程序的过程中,针对所述目标程序中每个变量,当首次对该变量的分片值进行随机数加密时,向随机数提供方请求一个随机数并分配给该变量;当再次对该变量的分片值进行随机数加密时,复用分配给该变量的随机数。2.根据权利要求1所述的方法,原始数据集合中的数据分布式存储在N个运行设备上;所述对原始数据集合中每个数据的值进行分片处理,得到每个数据的N个分片值,包括:所述N个运行设备分别对本地存储的数据值进行分片处理并彼此交互处理结果,使得每个运行设备获得所述原始数据集合中每个数据的一个分片值。3.根据权利要求1所述的方法,原始数据集合中的数据存储在目标设备上;所述方法还包括:目标设备将N个分片数据集合分别发送到N个运行设备。4.根据权利要求1所述的方法,所述原始数据集合还包括用于对程序中常量进行赋值的数据。5.根据权利要求1所述的方法,还包括:当对该变量的分片值经过数学变换得到的变换结果进行随机数加密时,复用分配给该变量的随机数,针对该随机数进行相同的数学变换,并利用变换后的随机数对该变量分片值的变换结果进行随机数加密。6.根据权利要求1所述的方法,向随机数提供方请求一个随机数并分配给该变量之后,所述方法还包括:若该变量的分片值在所述目标程序中还需要进行至少1次随机数加密,则在本地存储分配给该变量的随机数;所述复用分配给该变量的随机数,包括:复用本地存储的分配给该变量的随机数。7.一种程序运行系统,预先对原始数据集合中每个数...

【专利技术属性】
技术研发人员:谭晋王磊
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1