一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于多方安全计算的选择问题处理方法与流程

2021-11-10 04:03:00 来源:中国专利 TAG:


1.本说明书涉及信息技术领域,特别涉及基于多方安全计算的选择问题处理方法。


背景技术:

2.安全多方计算又称为多方安全计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果以和共享形式存储于多方或公开给其中的一方或多方。因此,通过安全多方计算,能够让参与的各方在不暴露各自原始数据的情况下,计算出函数的结果。
3.一些安全多方计算过程涉及选择问题,所述选择问题可描述为从包含n个元素的集合中选出m个元素(简称n选m问题)。目前,希望提供一种基于多方安全计算的选择问题处理方法。


技术实现要素:

4.本说明书实施例之一提供一种基于多方安全计算的选择问题处理方法。其中,安全计算的参与方包括第一方和第二方;第一方持有私密的单射f,单射f为集合x到集合a的单射;第二方持有私密的m个原像p1,p2,

,p
m
,m个原像p1,p2,

,p
m
均属于集合x,集合x的元素个数为n;第一方和第二方共有单射q,单射q用于将集合x的元素映射到预设的向量空间;所述方法由第一方的设备执行,其包括:获得与单射f和单射q对应的多项式g;其中,多项式g以集合x中任一元素在单射q下的像的各向量元素为输入时的输出等于该元素在单射f下的像;获得多项式h0;第一方获得的多项式h0与第二方获得的线性变换矩阵σ和多项式h1的满足,多项式在线性变换矩阵σ作用下得到的复合多项式的两个分片为多项式h0和多项式h1;其中,所述线性变换矩阵σ用于与向量运算,以改变向量中元素的位置,所述作用使得复合多项式以线性变换矩阵σ和第一向量的运算结果的各向量元素为输入时的输出,等于多项式以所述第一向量的各向量元素为输入时的输出;从第二方的设备接收与q1,q2,

,q
m
分别对应的其中,q1,q2,

,q
m
分别为m个原像p1,p2,

,p
m
在单射q下的像,中的每个向量为线性变换矩阵σ和q1,q2,

,q
m
中相应向量的运算结果;计算多项式h0分别以的各向量元素为输入时的输出并基于获得[f(p1),f(p2),

,f(p
m
)]的第一分片;获得多项式δg,)]的第一分片;获得多项式δg,并将多项式δg发送给第二方的设备,以使第二方的设备能够获得[f(p1),f(p2),

,f(p
m
)]的第二分片。
[0005]
本说明书实施例之一提供一种基于多方安全计算的选择问题处理系统。其中,安全计算的参与方包括第一方和第二方;第一方持有私密的单射f,单射f为集合x到集合a的单射;第二方持有私密的m个原像p1,p2,

,p
m
,m个原像p1,p2,

,p
m
均属于集合x,集合x的元素个数为n;第一方和第二方共有单射q,单射q用于将集合x的元素映射到预设的向量空间;
所述系统在第一方的设备上实现,其包括:第一获得模块,用于获得与单射f和单射q对应的多项式g;其中,多项式g以集合x中任一元素在单射q下的像的各向量元素为输入时的输出等于该元素在单射f下的像;第二获得模块,用于获得多项式h0;第一方获得的多项式h0与第二方获得的线性变换矩阵σ和多项式h1的满足,多项式在线性变换矩阵σ作用下得到的复合多项式的两个分片为多项式h0和多项式h1;其中,所述线性变换矩阵σ用于与向量运算,以改变向量中元素的位置,所述作用使得复合多项式以线性变换矩阵σ和第一向量的运算结果的各向量元素为输入时的输出,等于多项式以所述第一向量的各向量元素为输入时的输出;第一接收模块,用于从第二方的设备接收与q1,q2,

,q
m
分别对应的其中,q1,q2,

,q
m
分别为m个原像p1,p2,

,p
m
在单射q下的像,中的每个向量为线性变换矩阵σ和q1,q2,

,q
m
中相应向量的运算结果;第一计算模块,用于计算多项式h0分别以的各向量元素为输入时的输出并基于获得[f(p1),f(p2),

,f(p
m
)]的第一分片;第一发送模块,用于获得多项式δg,并将多项式δg发送给第二方的设备,以使第二方的设备能够获得[f(p1),f(p2),

,f(p
m
)]的第二分片。
[0006]
本说明书实施例之一提供一种基于多方安全计算的选择问题处理方法。其中,安全计算的参与方包括第一方和第二方;第一方持有私密的单射f,单射f为集合x到集合a的单射;第二方持有私密的m个原像p1,p2,

,p
m
,m个原像p1,p2,

,p
m
均属于集合x,集合x的元素个数为n;第一方和第二方共有单射q,单射q用于将集合x的元素映射到预设的向量空间;所述方法由第二方的设备执行,其包括:获得m个原像p1,p2,

,p
m
在单射q下的像q1,q2,

,q
m
;获得线性变换矩阵σ和多项式h1;第一方获得的多项式h0与第二方获得的线性变换矩阵σ和多项式h1的满足,多项式在线性变换矩阵σ作用下得到的复合多项式的两个分片为多项式h0和多项式h1;其中,所述线性变换矩阵σ用于与向量运算,以改变向量中元素的位置,所述作用使得复合多项式以线性变换矩阵σ和第一向量的运算结果的各向量元素为输入时的输出,等于多项式以所述第一向量的各向量元素为输入时的输出;计算与q1,q2,

,q
m
分别对应的并将发送给第一方的设备,以使第一方的设备能够获得[f(p1),f(p2),

,f(p
m
)]的第一分片;其中,中的每个向量为线性变换矩阵σ和q1,q2,

,q
m
中相应向量的运算结果;从第一方的设备接收多项式δg,其中,多项式g以集合x中任一元素在单射q下的像的各向量元素为输入时的输出等于该元素在单射f下的像;计算多项式δg分别以q1,q2,

,q
m
的各向量元素为输入时的输出δg(q1),δg(q2),

,δg(q
m
),计算多项式h1分别以的各向量元素为输入时的输出并基于δg(q1),δg(q2),

,δg(q
m
)和获得[f(p1),f(p2),

,f(p
m
)]的第二分片。
[0007]
本说明书实施例之一提供一种基于多方安全计算的选择问题处理系统。其中,安全计算的参与方包括第一方和第二方;第一方持有私密的单射f,单射f为集合x到集合a的单射;第二方持有私密的m个原像p1,p2,

,p
m
,m个原像p1,p2,

,p
m
均属于集合x,集合x的元
素个数为n;第一方和第二方共有单射q,单射q用于将集合x的元素映射到预设的向量空间;所述系统在第二方的设备上实现,其包括:第三获得模块,用于获得m个原像p1,p2,

,p
m
在单射q下的像q1,q2,

,q
m
;第四获得模块,用于获得线性变换矩阵σ和多项式h1;第一方获得的多项式h0与第二方获得的线性变换矩阵σ和多项式h1的满足,多项式在线性变换矩阵σ作用下得到的复合多项式的两个分片为多项式h0和多项式h1;其中,所述线性变换矩阵σ用于与向量运算,以改变向量中元素的位置,所述作用使得复合多项式以线性变换矩阵σ和第一向量的运算结果的各向量元素为输入时的输出,等于多项式以所述第一向量的各向量元素为输入时的输出;第二发送模块,用于计算与q1,q2,

,q
m
分别对应的并将发送给第一方的设备,以使第一方的设备能够获得[f(p1),f(p2),

,f(p
m
)]的第一分片;其中,中的每个向量为线性变换矩阵σ和q1,q2,

,q
m
中相应向量的运算结果;第二接收模块,用于从第一方的设备接收多项式δg,其中,多项式g以集合x中任一元素在单射q下的像的各向量元素为输入时的输出等于该元素在单射f下的像;第二计算模块,用于:计算多项式δg分别以q1,q2,

,q
m
的各向量元素为输入时的输出δg(q1),δg(q2),

,δg(q
m
),计算多项式h1分别以的各向量元素为输入时的输出并基于δg(q1),δg(q2),

,δg(q
m
)和获得[f(p1),f(p2),

,f(p
m
)]的第二分片。
[0008]
本说明书实施例之一提供一种基于多方安全计算的选择问题处理装置。所述装置包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的基于多方安全计算的选择问题处理方法。
附图说明
[0009]
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
[0010]
图1是根据本说明书一些实施例所示的基于多方安全计算的选择问题处理方法的示例性交互流程图;
[0011]
图2是根据本说明书一些实施例所示的获得多项式h0,h1以及线性变换矩阵σ的示例性交互示意图;
[0012]
图3是根据本说明书一些实施例所示的在第一方的设备上实现的基于多方安全计算的选择问题处理系统的示例性模块图;
[0013]
图4是根据本说明书一些实施例所示的在第二方的设备上实现的基于多方安全计算的选择问题处理系统的示例性模块图。
具体实施方式
[0014]
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实
施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
[0015]
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
[0016]
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
[0017]
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
[0018]
在数学中,“群”表示一个满足封闭性、满足结合律、有单位元、有逆元的二元运算的代数结构,包括阿贝尔群、同态和共轭类。其中,通常可以使用乘法符号“*”(在无歧义时可省略)或加法符号“ ”作为该二元运算的符号,但需要注意的是,该二元运算不一定等同于四则运算中的乘法或加法。若干元素通过一次或多次二元运算产生的结果可称为合值。
[0019]
群的二元运算满足:1.封闭律,对于g中的任意元素a、b,a*b仍在g中;2.结合律,对于g中的任意元素a、b和c,有(a*b)*c=a*(b*c);3.有单位元(也称作幺元),g中存在元素e,使得a*e=e*a;4.有逆元,对于g中的任一元素a,g中存在b,使得a*b=b*a=e,a、b互为逆元,此处e为单位元。值得说明的是,对于“ ”表示的二元运算,e也可称为零元,逆元也可称为负元,对于g中的任意元素a、b,a

b可以表示a (b的逆元)。群运算的次序很重要,把元素a与元素b结合,所得到的结果不一定与把元素b与元素a结合相同,即交换律a*b=b*a不一定恒成立。满足交换律的群称为阿贝尔群(交换群),不满足交换律的群称为非阿贝尔群(非交换群),阿贝尔群由自身的集合g和二元运算*构成。
[0020]
在数学中,映射经常等同于函数。例如,假设a和b为两个非空集合,若对a中的每个元素x,依照某种规律(或法则)f,恒有b中的唯一确定的元素y与之对应,则称对应规律f为一个从a到b的映射,a可称作始集,b可称作终集。记作f:a

b,称y为x的像,记作y=f(x),并称x为y的原像,集合a称为映射f的定义域,集合b称为f的陪域。进一步地,若映射f下不同的原像具有不同的像,则称映射f为单射(或入射/嵌入)。换句话说,f为单射,当f(a)=f(b),则a=b(若a≠b,则f(a)≠f(b))。
[0021]
进一步地,本说明书涉及一种基于(非负)整数阿贝尔群的商群,其数学表示可以是g:=z/nz,其中,z为(非负)整数集合,n为正整数,“/”左边的z表示群元素为1的整数倍,“/”右边的nz表示群的模为n,商群z/nz为模以n的余数的n阶循环群。
[0022]
值得说明的是,由于计算设备通常使用固定位数(如bit)来存储计算过程中产生的数值,多方协同计算时会频繁使用涉及取模的加法、乘法(以下称为模加法、模乘法)等等。本说明书中,在没有特别说明的情况下,涉及符号的数学表示可优先按模加法、模乘法而非四则运算来理解,相关术语(如求和、和值、相乘、乘积等)也优先按模加法、模乘法而非
四则运算来理解。
[0023]
在一些分布式场景中,需要多方安全计算得到目标运算结果,其中,安全可以指输出结果的正确性和输入信息、输出信息的保密性。例如,在一些机器学习场景中,一方持有私密的特征数据,另一方持有私密的标签数据。若直接计算关于私密数据(特征数据/标签数据)的目标运算结果时,一旦该目标运算结果被泄露可能导致私密数据被反推出。为此,双方可各自获得私密数据x的一个和共享分片,双方获得的私密数据x的和共享分片的和值即x。然后,双方运行安全计算协议,各自得到目标运算结果f(x)的一个和共享分片。双方获得的目标运算结果f(x)的和共享分片的和值即f(x)。在两方参与的多方安全计算中,攻击者若想获知隐私数据需要得到两方的和共享分片(以下简称分片)。
[0024]
一些安全多方计算过程涉及选择问题,该选择问题可被描述为从包含n个元素的集合中选出m个元素。该选择问题可等效为:存在映射f和m个原像p1,p2,

,p
m
,计算m个原像p1,p2,

,p
m
在映射f下的像f(p1),f(p2),

,f(p
m
)。其中,映射f为集合x到集合a的映射,所述m个原像p1,p2,

,p
m
均属于集合x,集合x的元素个数为n。在一些实施例中,对于群加法和群乘法,集合a可以是阿贝尔群,如z/nz。安全计算的参与方包括第一方和第二方,第一方持有私密的映射f,第二方持有私密的m个原像p1,p2,

,p
m
。在安全计算过程中,第一方不希望对外暴露私有的f,第二方不希望对外暴露私有的m个原像p1,p2,

,p
m

[0025]
仅作为示例,在分布式机器学习场景中,特征方持有大量样本(如包含n个样本)的特征数据,而标签方持有样本的标签数据。训练时需要特征方和标签方将样本对齐,以便能够至少基于n个样本中m个样本(这m个样本属于特征方与标签方共有的)的数据进行训练。具体地,特征方持有所述n个样本的id和特征数据的对应关系(不妨记为映射f),标签方至少持有所述m个样本的id(即m个原像p1,p2,

,p
m
)和标签数据的对应关系,对于同一个样本,特征方的id与标签方的id相同。训练时,标签方需要从特征方拿到所述m个样本的id对应的特征数据的分片,同时特征方需要拿到所述m个样本的特征数据的分片,但并不知晓这些分片属于哪些样本。可以理解,这里的数据安全包括两方面:一方面,特征方不希望向标签方透露来自映射f的更多信息,换言之特征方仅希望向标签方提供n个样本中m个样本的特征数据的至多部分信息(如分片);另一方面,标签方不希望特征方知道己方持有的m个样本的标签数据具体对应所述n个样本中的哪些样本,即标签方不希望向特征方透露所述m个样本的id。对于特征数据的分片的分配,需要在保证数据安全的前提下,特征方和标签方通过协同计算各自获得所述m个样本的特征数据的己方分片,即双方需要安全计算m个原像p1,p2,

,p
m
在映射f下的像f(p1),f(p2),

,f(p
m
)。
[0026]
有鉴于此,本说明书实施例提供一种基于多方安全计算的选择问题处理方法。通过构造集合x到集合的嵌入q,将m个原像p1,p2,

,p
m
映射到向量空间,如集合得到对应的向量q1,q2,

,q
m
,进而将m个原像p1,p2,

,p
m
在映射f下的像f(p1),f(p2),

,f(p
m
)转换为在多项式g分别以向量q1,q2,

,q
m
的向量元素为输入时的输出(记为g(q1),g(q2),

,g(q
m
))。其中,集合为m维且汉明权重为k的向量的集合,所述向量(以下称为0/1向量)的每个向量元素为0或1,q1,q2,

,q
m
分别为m个原像p1,p2,

,p
m
在嵌入q下的像。基于此,通过运行多方安全计算协议,持有映射f的第一方可以获得g(q1),g(q2),

,g(q
m
)的第一分片作为f(p1),f(p2),

,f(p
m
)的第一分片,持有m个原像p1,p2,

,p
m
的第二方可以获得g(q1),g(q2),

,g(q
m
)的第二分片作为f(p1),f(p2),

,f(p
m
)的第二分片。
[0027]
图1是根据本说明书一些实施例所示的基于多方安全计算的选择问题处理方法的示例性交互流程图。图1中,后缀为1的步骤由持有私密的映射f的第一方执行,后缀为2步骤由持有私密的m个原像p1,p2,

,p
m
的第二方执行。
[0028]
步骤110

1,获得与映射f和嵌入q对应的多项式g。
[0029]
步骤110

2,获得m个原像p1,p2,

,p
m
在嵌入q下的像q1,q2,

,q
m

[0030]
其中,嵌入q为第一方和第二方共有,即嵌入q是第一方和第二方的公共知识。嵌入q也即单射q,根据单射的定义可知,单射必定满足终集元素数量不小于始集元素数量。因此,对于集合x到集合的嵌入q,满足集合的元素数量不小于集合x的元素个数n,即关于映射f和嵌入q的更多细节,可以参考前文的相关描述。
[0031]
多项式g属于多项式集合a[x1,x2,

,x
m
]
k
,多项式集合a[x1,x2,

,x
m
]
k
中的多项式具有以下特点:1.属于m元k次的齐次多项式,x1,x2,

,x
m
即表示多项式的m个输入元素;2.每个单项式的系数均为集合a中的元素。为了便于理解,多项式集合a[x1,x2,

,x
m
]
k
中多项式(以下简称目标多项式)的结构可以用以下数学形式来表达:
[0032][0033]
其中,即单项式的系数,此系数是集合a中的元素。每个单项式可通过从多项式的m个输入元素x1,x2,

,x
m
选择k个输入元素得到,故每个目标多项式由个单项式组成。
[0034]
集合中m维的0/1向量的各向量元素正好可以作为目标多项式的输入,而且集合中0/1向量的汉明权重为k(即0/1向量中有且仅有k个向量元素为1),结合目标多项式的结构可知:多项式g以集合x中任一元素(记为p)在嵌入q下的像(即集合中的0/1向量,记为q)的各向量元素为输入时的输出(记为g(q))等于多项式g的某个单项式的系数,该系数是集合a中的元素。
[0035]
基于此,找到了一种将f(p)转换为g(q)来计算的思路。具体地,与映射f和嵌入q对应的多项式g可满足:多项式g以集合x中任一元素(记为p)在单射q下的像(记为q)的各向量元素为输入时的输出(记为g(q))等于该元素在单射f下的像(记为f(p)),即g(q)=f(p)。
[0036]
在一些实施例中,为了确保多项式g的输出的所有取值可能能够覆盖映射f下的像的所有取值可能(不超过集合a的元素个数,记为|a|),多项式g的单项式个数(即单项式系数的个数,为)可以大于或等于集合a的元素个数,即
[0037]
多项式集合a[x1,x2,

,x
m
]
k
具备一些数学性质,使得将f(p)转换为g(q)之后可以通过适当的数学变换来获得g(q)的分片,当然,g(q)的分片即可作为f(p)的分片,具体细节参考后文的相关描述。
[0038]
步骤120

1,获得多项式h0。
[0039]
步骤120

2,获得线性变换矩阵σ和多项式h1。
[0040]
第一方获得的多项式h0与第二方获得的线性变换矩阵σ和多项式h1可以满足
下面将详细说明此关系的由来。
[0041]
首先介绍的数学含义。表示多项式在线性变换矩阵σ作用下得到的复合多项式。线性变换矩阵σ与向量进行运算,如矩阵相乘,时,可以改变向量中元素的位置,σ
‑1表示线性变换矩阵σ的逆矩阵,其与前述运算的结果再次运算时,可以还原元素的位置,得到所述向量。所述作用使得:复合多项式以线性变换矩阵σ和第一向量的矩阵乘积的各向量元素为输入时的输出,等于多项式以所述第一向量的各向量元素为输入时的输出。为了便于理解线性变换矩阵对多项式的作用,不妨令第一向量为v(现以列向量为例进行阐述),线性变换矩阵σ和第一向量的矩阵乘积为向量即将的各向量元素作为输入代入复合多项式可以得到以v的各向量元素作为输入的多项式即换言之,将线性变换矩阵σ的逆矩阵σ
‑1和第二向量(不妨记为列向量y)的矩阵乘积(即σ
‑1y)的各向量元素作为输入代入多项式可以得到以y的各向量元素作为输入的多项式即
[0042]
需要说明的是,基于若多项式g属于多项式集合a[x1,x2,

,x
m
]
k
,则复合多项式也属于该集合;对于模加法,多项式集合a[x1,x2,

,x
m
]
k
可构成群,故可将该集合中的多项式拆分成两个分片,即多项式h0和多项式h1(这两个分片也属于该集合)。实际上,计算机可以通过存储一个多项式的各个单项式系数来存储该多项式,相应地计算机可以通过对单项式系数进行运算来实现对多项式的运算。
[0043]
关于步骤120

1和步骤120

2的具体实现方式,可以参考图2及其相关描述。
[0044]
步骤130

1,计算多项式δg,并将多项式δg发送给第二方的设备。
[0045]
其中,第一方的设备获得多项式g和多项式后,可以在本地计算δg。进而,第一方的设备可以将多项式δg发送给第二方的设备,以使第二方的设备能够获得g(q1),g(q2),

,g(q
m
)的第二分片作为f(p1),f(p2),

,f(p
m
)的第二分片。
[0046]
步骤130

2,计算并将发送给第一方的设备。
[0047]
其中,第二方的设备获得线性变换矩阵σ和q1,q2,

,q
m
后,可以在本地计算进而,第二方的设备可以将发送给第一方的设备,以使第一方的设备能够获得g(q1),g(q2),

,g(q
m
)的第一分片作为f(p1),f(p2),

,f(p
m
)的第一分片。
[0048]
步骤140

1,从第二方的设备接收
[0049]
步骤150

1,计算多项式h0分别以的各向量元素为输入时的输出并基于获得f(q1),f(q2),

,f(q
m
)的第一分片。
[0050]
在一些实施例中,第一方的设备可以直接将作为g(q1),g(q2),

,g(q
m
)的第一分片,即获得f(p1),f(p2),

,f(p
m
)的第一分片。相应地,第二方的设
备可以计算得到g(q1),g(q2),

,g(q
m
)的第二分片,即获得f(p1),f(p2),

,f(p
m
)的第二分片。
[0051]
步骤140

2,从第一方的设备接收多项式δg。
[0052]
步骤150

2,计算多项式δg分别以q1,q2,

,q
m
的各向量元素为输入时的输出δg(q1),δg(q2),

,δg(q
m
),计算多项式h1分别以的各向量元素为输入时的输出基于δg(q1),δg(q2),

,δg(q
m
)和获得f(q1),f(q2),

,f(q
m
)的第二分片。
[0053]
在一些实施例中,第二方的设备可以计算在一些实施例中,第二方的设备可以计算得到g(q1),g(q2),

,g(q
m
)的第二分片,即获得f(p1),f(p2),

,f(p
m
)的第二分片。相应地,第一方的设备可以将作为g(q1),g(q2),

,g(q
m
)的第一分片,即获得f(p1),f(p2),

,f(p
m
)的第一分片。
[0054]
可以理解,基于即g(q)=δg(q) h0(σq) h1(σq),可以对本说明书中示例的计算g(q)的分片的具体方式进行适当调整,调整后的实施例依然在本说明书范围内。仅作为示例,第一方的设备可以计算得到g(q1)的第一分片,第二方的设备可以计算得到g(q1)的第二分片,其中,k是第一方和第二方的公共知识。
[0055]
回顾前述内容,第一向量v也可以为行向量,则有将行向量的各向量元素作为输入代入复合多项式可得到以行向量v的各向量元素为输入的多项式即相应地,无论第一向量是行向量还是列向量,线性变换矩阵σ的逆矩阵σ
‑1对多项式g的作用都使得复合多项式以线性变换矩阵σ和第一向量的矩阵乘积的各向量元素为输入时的输出,等于多项式以所述第一向量的各向量元素为输入时的输出,区别仅在于相关的矩阵(如σ、σ
‑1)是左乘向量还是右乘向量。
[0056]
在一些实施例中,线性变换矩阵σ可以是矩阵元素为0或1的可逆矩阵(可称作可逆的0/1矩阵),这样的可逆矩阵可以通过伪随机函数或者随机变换单位矩阵的行和/或列来获得。鉴于线性变换矩阵σ会与向量q间产生运算,而向量q本来就是向量元素为0或1(即每个向量元素占用1bit)的向量,若采用矩阵元素为0或1(即每个矩阵元素占用1bit)的线性变换矩阵σ,则计算出的的每个向量元素也可以用1bit来存储,可以最大程度地节省传输(参见步骤130

2)产生的通信量。
[0057]
图2是根据本说明书一些实施例所示的获得多项式h0,h1以及线性变换矩阵σ的示例性交互示意图。
[0058]
如图2所示,参与安全计算的两方可以在第三方设备的协助下获得多项式h0,h1以及线性变换矩阵σ。首先,第三方设备能够获得满足的多项式h0,h1以及
线性变换矩阵σ,进而将多项式h0发送给第一方的设备,将多项式h1和线性变换矩阵σ发送给第二方的设备。
[0059]
为了节省通信量,可以利用伪随机函数生成多项式h0,h1以及线性变换矩阵σ中的一个或多个数据。伪随机函数接受种子作为输入以随机生成数值(可控制在一定大小范围内,如集合a内)或其他类型的数据(如可逆矩阵),当种子固定时,可以生成固定的数值或固定值的其他类型数据。基于此,对于多项式h0,h1以及线性变换矩阵σ中的任一数据,安全计算的参与方可以与第三方设备提前约定好种子,以在不通信的情况下利用伪随机函数生成相同(相等)的该数据。
[0060]
例如,通过提前约定好种子,第一方的设备和第三方设备可以利用伪随机函数生成多项式的单项式系数以获得多项式利用伪随机函数生成多项式h0的单项式系数以获得多项式h0。相应地,通过提前约定好种子,第二方的设备和第三方设备可以利用伪随机函数生成可逆的线性变换矩阵σ。第三方设备生成多项式h0以及线性变换矩阵σ后,可以基于于计算(如按计算)多项式h1并将多项式h1发送给第二方的设备。
[0061]
又如,通过提前约定好种子,第二方的设备和第三方设备可以利用伪随机函数生成多项式h1的单项式系数以获得多项式h1,以及利用伪随机函数生成可逆的线性变换矩阵σ。相应地,通过提前约定好种子,第一方的设备和第三方设备可以利用伪随机函数生成多项式的单项式系数以获得多项式第三方设备生成多项式h1以及线性变换矩阵σ后,可以基于计算(如按计算)多项式h0并将多项式h0发送给第一方的设备。
[0062]
在一些实施例中,也可以由第一方和/或第二方的设备生成多项式h0,h1以及线性变换矩阵σ中的一个或多个数据,并将生成的一个或多个数据发送给第三方设备,以便第三方设备基于第一方和/或第二方已提供的数据以及计算多项式h0,h1以及线性变换矩阵σ中待计算的数据。通常,多项式h0和多项式h1中至少有一个多项式需要由第三方设备计算单项式系数并将计算的单项式系数发送给相应方的设备。
[0063]
在一些实施例中,对于固定的映射f,可以进行多轮安全计算,每一轮次安全计算一组原像(每组包括m个原像p1,p2,

,p
m
)在映射f下的像f(p1),f(p2),

,f(p
m
)。例如,在前文介绍的分布式机器学习场景中,假设标签方持有27个样本的标签数据,标签方可以将这27个样本分成4组,每组25个样本。即,特征方和标签方可以进行4轮安全计算,每一轮次安全计算25个样本的id对应的特征数据的分片。
[0064]
值得说明的是,当映射f不变时,再固定嵌入q可使与映射f和嵌入q对应的多项式g也不变,进一步固定多项式可使多项式δg也不变。因此,多轮安全计算中可以只传输一次多项式δg。
[0065]
相比直接安全计算所有原像在映射f下的像,将所有原像分成若干组并进行多轮安全计算的做法可以获得一个较小的m,小的m可以降低一系列数据(如向量p和q、矩阵σ、单个多项式包含的单项式个数)的维度,因此可以缓解计算过程中的存储压力和处理压力。
[0066]
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
[0067]
图3是根据本说明书一些实施例所示的基于多方安全计算的选择问题处理系统的示例性模块图。系统300可以在第一方的设备上实现。如图3所示,系统300可以包括第一获得模块310、第二获得模块320、第一接收模块330、第一计算模块340和第一发送模块350。
[0068]
第一获得模块310可以用于获得与单射f和单射q对应的多项式g。
[0069]
第二获得模块320可以用于获得多项式h0。
[0070]
第一接收模块330可以用于从第二方的设备接收
[0071]
第一计算模块340可以用于计算多项式h0分别以的各向量元素为输入时的输出
[0072]
第一发送模块350可以用于获得多项式δg,并将多项式δg发送给第二方的设备,以使第二方的设备能够获得f(p1),f(p2),

,f(p
m
)的第二分片。
[0073]
图4是根据本说明书一些实施例所示的基于多方安全计算的选择问题处理系统的示例性模块图。系统400可以在第一方的设备上实现。如图4所示,系统400可以包括第三获得模块410、第四获得模块420、第二发送模块430、第二接收模块440和第二计算模块450。
[0074]
第三获得模块410可以用于获得m个原像p1,p2,

,p
m
在单射q下的像q1,q2,

,q
m

[0075]
第四获得模块420可以用于获得线性变换矩阵σ和多项式h1。
[0076]
第二发送模块430可以用于计算并将发送给第一方的设备。
[0077]
第二接收模块440可以用于从第一方的设备接收多项式δg。
[0078]
第二计算模块450可以用于计算多项式δg分别以q1,q2,

,q
m
的各向量元素为输入时的输出δg(q1),δg(q2),

,δg(q
m
),计算多项式h1分别以的各向量元素为输入时的输出基于δg(q1),δg(q2),

,δg(q
m
)和获得f(q1),f(q2),

,f(q
m
)的第二分片。
[0079]
关于系统300、400及其模块的更多细节,可以参考流程100及其相关描述。
[0080]
应当理解,图3、4所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd

rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
[0081]
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,第一获得模块310和第二获得模块320可以是两个模块,也可以合并为一个模块。诸如此类的变形,均在本说明书的保护范围之内。
[0082]
本说明书实施例可能带来的有益效果包括但不限于:提供了基于多方安全计算的n选m问题处理方法,可以保护计算双方的数据隐私。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
[0083]
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
[0084]
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0085]
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
[0086]
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。
[0087]
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c 、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如
软件即服务(saas)。
[0088]
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
[0089]
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
[0090]
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
[0091]
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献