一种隐私保护的多方安全计算方法和系统与流程

文档序号:28556020发布日期:2022-01-19 16:10阅读:87来源:国知局
一种隐私保护的多方安全计算方法和系统与流程

1.本说明书涉及信息安全技术领域,特别涉及一种隐私保护的多方安全计算方法和系统。


背景技术:

2.安全多方计算又称为多方安全计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果以和共享形式存储于多方或公开给其中的一方或多方。因此,通过安全多方计算,能够让参与的各方在不暴露各自原始数据的情况下,计算出函数的结果。
3.在多方安全计算过程中会涉及到多方之间的数据传输,如何减少计算过程中的数据传输量成为目标亟需解决的问题。


技术实现要素:

4.本说明书实施例的一个方面提供一种隐私保护的多方安全计算方法。其中,第一参与方拥有私有的变换因子,第二参与方拥有私有的变换对象,所述方法由第一参与方执行,其包括:将所述变换因子进行分解,得到包含多个分解因子的变换序列;所述多个分解因子包括私有因子和公共因子,所述公共因子同时为第二参与方持有;与第二参与方协同,依次基于所述变换序列中的多个分解因子对变换对象进行迭代变换,进而获得变换结果的第一分片;其中,在对变换对象进行迭代变换过程中,涉及公共因子的变换,由参与方独自完成,涉及私有因子的变换,由参与方基于多方安全计算协议完成;所述变换结果等于利用变换因子对变换对象进行变换的结果。
5.本说明书实施例的另一个方面提供一种隐私保护的多方安全计算系统。其中,第一参与方拥有私有的变换因子,第二参与方拥有私有的变换对象,所述系统由第一参与方实现,其包括:变换因子分解模块,用于将所述变换因子进行分解,得到包含多个分解因子的变换序列;所述多个分解因子包括私有因子和公共因子,所述公共因子同时为第二参与方持有;第一协同计算模块,用于与第二参与方协同,依次基于所述变换序列中的多个分解因子对变换对象进行迭代变换,进而获得变换结果的第一分片;其中,在对变换对象进行迭代变换过程中,涉及公共因子的变换,由参与方独自完成,涉及私有因子的变换,由参与方基于多方安全计算协议完成;所述变换结果等于利用变换因子对变换对象进行变换的结果。
6.本说明书实施例的另一个方面提供一种隐私保护的多方安全计算方法,其中,第一参与方拥有私有的变换因子,第二参与方拥有私有的变换对象,所述方法由第二参与方执行,其包括:与第一参与方协同,依次基于变换序列中的多个分解因子对变换对象进行迭代变换,进而获得变换结果的第二分片;其中,在对变换对象进行迭代变换过程中,涉及公共因子的变换,由参与方独自完成,涉及私有因子的变换,由参与方基于多方安全计算协议完成;所述变换序列包括第一参与方将所述变换因子进行分解得到的多个分解因子;所述
多个分解因子包括第一参与方持有私有因子和公共因子,所述公共因子同时为第二参与方持有;所述变换结果等于利用变换因子对变换对象进行变换的结果。
7.本说明书实施例的另一个方面提供一种隐私保护的多方安全计算系统,其中,第一参与方拥有私有的变换因子,第二参与方拥有私有的变换对象,所述系统由第二参与方实现,其包括:第二协同计算模块,用于与第一参与方协同,依次基于变换序列中的多个分解因子对变换对象进行迭代变换,进而获得变换结果的第二分片;其中,在对变换对象进行迭代变换过程中,涉及公共因子的变换,由参与方独自完成,涉及私有因子的变换,由参与方基于多方安全计算协议完成;所述变换序列包括第一参与方将所述变换因子进行分解得到的多个分解因子;所述多个分解因子包括第一参与方持有私有因子和公共因子,所述公共因子同时为第二参与方持有;所述变换结果等于利用变换因子对变换对象进行变换的结果。
8.本说明书实施例的另一个方面提供一种隐私保护的多方安全计算方法,其中,第一参与方拥有私有的第一变换因子,第二参与方拥有私有的第一变换对象,所述方法由第一参与方执行,其包括:将所述第一变换因子进行分解,得到左因子、中间因子以及右因子;基于右因子,与第二参与方基于第一变换对象,通过隐私保护的多方安全计算方法,获得右因子变换结果的第一分片;第二参与方获得右因子变换结果的第二分片;基于中间因子以及右因子变换结果的第一分片,获得中间因子变换结果的本地分片;基于中间因子,与第二参与方基于右因子变换结果的第二分片,通过多方安全计算协议,获得中间变换结果的第一分片;第二参与方获得中间变换结果的第二分片;基于左因子、中间因子变换结果的本地分片以及中间因子变换结果的第一分片,获得左变换结果的本地分片;基于左因子,与第二参与方基于所述中间变换结果的第二分片,通过隐私保护的多方安全计算方法,获得左变换结果的第一分片,同时第二参与方获得左变换结果的第二分片;基于左变换结果的本地分片以及左变换结果的第一分片,获得第一变换结果的第一分片;所述第一变换结果等于第一变换因子对第一变换对象进行变换的结果。
9.本说明书实施例的另一个方面提供一种隐私保护的多方安全计算方法,其中,第一参与方拥有私有的第一变换因子,且第一参与方拥有将所述第一变换因子进行分解得到的左因子、中间因子以及右因子;第二参与方拥有私有的第一变换对象,所述方法由第二参与方执行,其包括:基于第一变换对象,与第一参与方基于右因子,通过隐私保护的多方安全计算方法,获得右因子变换结果的第二分片;第一参与方获得右因子变换结果的第一分片;基于右因子变换结果的第二分片,与第一参与方基于中间因子,通过多方安全计算协议,获得中间变换结果的第二分片,同时第一参与方获得中间变换结果的第一分片;基于所述中间变换结果的第二分片,与第一参与方基于左因子,通过隐私保护的多方安全计算方法,获得左变换结果的第二分片,同时第一参与方获得左变换结果的第一分片;基于左变换结果的第二分片,获得第一变换结果的第二分片;所述第一变换结果等于第一变换因子对第一变换对象进行变换的结果。
10.本说明书实施例的另一个方面提供一种隐私保护的多方安全计算装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如上述任一项所述的隐私保护的多方安全计算方法。
11.本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如上述任一项所述的隐私保护的多方安全计算方法。
附图说明
12.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中。
13.图1是根据本说明书一些实施例所示的一种隐私保护的多方安全计算系统的示例性应用场景图;
14.图2是根据本说明书的一些实施例所示的一种隐私保护的多方安全计算方法的示例性交互流程图;
15.图3是根据本说明书一些实施例所示的第一隐私保护的多方安全计算方法的示例性交互流程图;
16.图4是根据本说明书一些实施例所示的第二隐私保护的多方安全计算方法的示例性交互流程图;
17.图5是根据本说明书一些实施例所示的实现多方安全计算协议的示例性交互流程图;
18.图6是根据本说明书一些实施例所示的第一隐私保护的安全计算系统的示例性模块图;
19.图7是根据本说明书一些实施例所示的第二隐私保护的安全计算系统的示例性模块图。
具体实施方式
20.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
21.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
22.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
23.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数
步操作。
24.多方安全计算一个典型的应用是隐私保护的多方数据的联合统计分析和机器学习。多方安全计算能让参与的各方在不暴露各自原始数据的情况下,计算出基于各方联合数据的统计结果、机器学习结果。其中多方安全计算的函数可以是统计运算的函数、机器学习模型等。
25.在机器学习中,经常需要计算矩阵乘以向量。例如,多方安全计算其中的一方持有私密的特征数据,特征数据可以表示为矩阵,另一方持有私密的模型参数,如神经网络模型、线性回归模型或逻辑回归模型等,模型参数可以表示为向量或矩阵(对于神经网络模型,模型参数则可表示为多个向量,每一个向量对应一层神经元的权重系数,或者表示为矩阵)。双方(或称为参与方)可以基于多方安全计算完成对机器学习模型的训练或基于特征数据的机器模型预测。在一些实施例中,双方可以以自身持有的特征数据和模型参数,在第三方(或称为协助方)协助下,基于多方安全乘法协议进行矩阵乘向量的计算,进而获得模型预测结果。在基于多方安全乘法协议进行计算时,其涉及到的通信量包括offline通信量和online通信量。offline通信量表示参与方与第三方之间的通信量,online通信量表示参与的计算方之间的通信量。假设第一方拥有m
×
n的矩阵,第二方拥有n维的向量,在基于多方安全乘法协议的计算过程中,一轮多方安全乘法协议的计算的offline通信量为m log|a|,online通信量为mn log|a|+m log|a|,a为矩阵或向量元素所属的集合或群,log|a|表示传输一个元素时占用的位数。因为通信量中存在mn这一项,实际应用时产生的通信量将非常大,比如,m为64,n为5000,mn=320000。
26.因此,本说明书中的一些实施例提供了一种隐私保护的多方安全计算方法和系统,可以有效地减少基于隐私保护的矩阵乘向量的多方安全计算过程中的通信量开销。以下通过对附图的解释详细阐述本说明书实施例所披露的技术方案。
27.图1是根据本说明书一些实施例所示的一种隐私保护的多方安全计算系统的示例性应用场景图。
28.如图1所示,隐私保护的多方安全计算场景100可以包括计算设备110、计算设备120以及网络140,计算设备110和计算设备120可以是参与多方安全计算的参与方的设备。
29.计算设备可以包括各类具备计算能力的设备,如服务器、个人计算机等。在一些实施例中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
30.网络140连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络140可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络(zigbee)、近场通信(nfc)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。
31.在一些实施例中,计算场景100还可以包括半可信第三方设备130,半可信第三方设备130可协助参与方的计算设备运行安全计算协议,例如,半可信第三方设备130可以生
成随机数、中间结果分片、计算分片值、分发随机数和/或分片值给计算设备110、计算设备120等。
32.图2是根据本说明书的一些实施例所示的一种隐私保护的多方安全计算方法的示例性交互流程图,涉及多方之间的数据交互。在一些实施例中,流程200可以由参与方的处理设备(例如,计算设备110或计算设备120)交互执行。例如,流程200可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程200。流程200可以包括以下操作。
33.在一些实施例中,流程200a可以由参与多方安全计算中的第一参与方执行。流程200b可以由第二参与方执行。第一参与方和第二参与方可以是参与计算的任一计算方(例如,计算设备110或计算设备120),仅为了便于说明,在本说明书实施例中,主要以第一参与方为步骤执行方进行了说明,同时在说明过程中基于第一参与方对步骤的执行说明,简要说明了第二参与方执行的步骤。在一些实施例中,第一参与方拥有私有的第一变换因子,第二参与方拥有私有的第一变换对象。私有是指不面向不具备权限的用户公开,例如,第一参与方拥有的私有第一变换因子与第二参与方拥有的私有第一变换对象不面向对方以及公众公开。
34.步骤202a,将第一变换因子进行分解,得到左因子、中间因子以及右因子。
35.第一变换因子可以是指第一参与方拥有的私有数据。在一些实施例中,第一变换因子可以是第一参与方用于机器学习模型训练的特征数据。
36.左因子、中间因子以及右因子是指将第一变换因子按照一定方式进行分解后得到的分解因子。将第一变换因子分解后,按照其从左到右的顺序即为左因子、中间因子以及右因子。
37.在一些实施例中,第一变换因子可以是矩阵,第二变换因子可以是矩阵或向量。示例性的,第一变换因子可以为m
×
n(即m行n列)的0-1矩阵。第一变换对象为n维向量,向量中的元素来自含1交换环a。本说明书涉及的群、环均为数学概念,满足数学中对其的一般定义和性质。例如,群满足加法封闭性等一些加法性质,交换环则是满足一些乘法性质的群,如满足乘法封闭性、乘法交换律等。
38.存在以下定理:
39.设m为a上的m

n矩阵,有k1个非0行,k2个非0列,且非0元素均为1,则m可分解为:m=pσq。
40.其中,右因子q为l

n的0-1矩阵,有k2个非0列,每行有且仅有一个1,且每行的1的列坐标单调不减。列坐标单调不减可以是指每一行中的1的列坐标(或所在的列的序号)相对于上一行1的列坐标的坐标大小相同或更大。例如,第一行中的1的列坐标为1,则第二行中的1的列坐标大于等于1;若第二行中的1的列坐标为2,则第三行中的1的列坐标大于等于2。
41.中间因子σ来自l阶对称群s
l
,可表征为l
×
l的矩阵。有限集合到自身的一一映射称为一个置换。由l个元素的有限集合中各元素的全部置换所构成的群,称为l阶对称群。群可以是指在数学中表示一个拥有满足封闭性、满足结合律、有单位元、有逆元的二元运算的代数结构,包括阿贝尔群、同态和共轭类。其中,通常可以使用乘法符号
“×
或*”(在无歧义时可省略)或加法符号“+”作为该二元运算的符号,但需要注意的是,该二元运算不一定等
同于四则运算中的乘法或加法。在一些实施例中,可以将l
×
l的单位矩阵(对角线上的元素为1,其余元素为0)中的行或列随机调换位置,可以得到l!个不同的矩阵,这l!个矩阵组成l阶对称群s
l
,中间因子σ则是其中的一个矩阵。
42.左因子p为m

l的0-1矩阵,有k1个非0行,每列有且仅有一个1,且每列的1的行坐标单调不减。行坐标单调不减可以是指每一列中的1的行坐标(或所在的行的序号)相当于上一列1的行坐标的坐标大小相同或更大。例如,第一列中的1的行坐标为1,则第二列中的1的行坐标大于等于1;若第二列中的1的行坐标为2,则第三列中的1的行坐标大于等于2。
43.其中,m、n、l、k1以及k2为正整数。
44.在一些实施例中,第一参与方的处理设备可以对第一变换因子进行分解,得到左因子、中间因子以及右因子。
45.步骤204a,基于右因子,与第二参与方基于第一变换对象,通过第一隐私保护的多方安全计算方法,获得右因子变换结果的第一分片;第二参与方获得右因子变换结果的第二分片。
46.第一变换对象是第二参与方拥有的隐私数据。在一些实施例中,第一变换对象可以是第二参与方拥有的机器学习模型的模型参数。
47.在一些实施例中,所述第一变换因子为m
×
n的0-1矩阵,相应的,第一变换对象为n维向量,向量中的元素来自含1交换环a。交换环可以是指乘法可交换的环。环是一类包含两种运算(加法和乘法)的代数系统。交换环中的元素的乘法满足乘法封闭性、乘法结合律、乘法分配律以及乘法交换律。例如,对于交换环a,其中的任意元素a和b,满足ab=ba。含1交换环a则是指a中的元素包括1。
48.在一些实施例中,第一参与方可以基于右因子,与第二参与方基于第一变换对象,基于图3所示的第一隐私保护的多方安全计算方法,计算得到右因子变换结果的第一分片;其中,右因子作为第一隐私保护的多方安全计算方法的变换因子,第一变换对象作为变换对象,第二参与方获得右因子变换结果的第二分片。第一分片和第二分片是指以和共享形式存在与第一参与方和第二参与方的数据分片。关于第一隐私保护的多方安全计算方法的详细说明,可以参见本说明书图3及其相关描述,此处不再赘述。
49.相应的,第二参与方可以通过执行步骤204b,获得右因子变换结果的第二分片。
50.步骤204b,基于第一变换对象,与第一参与方基于右因子,通过第一隐私保护的多方安全计算方法,获得右因子变换结果的第二分片;第一参与方获得右因子变换结果的第一分片。
51.关于详细的计算过程的说明,可以参见图3及其相关描述,此处不再赘述。
52.在一些实施例中,可以用x来表示第一变换对象,则右因子变换结果可以表示为y=qx。
53.其中,y表示右因子变换结果,q为右因子,x为第一变换向量。则右因子变换结果的第一分片可以表示为y1=(qx)1,右因子变换结果的第二分片可以表示为y2=(qx)2,右因子变换结果y=y1+y2。
54.步骤206a,基于中间因子以及右因子变换结果的第一分片,获得中间因子变换结果的本地分片。
55.在一些实施例中,处理设备(第一参与方)可以将中间因子与右因子变换结果的第
一分片进行计算,得到中间因子变换结果的本地分片。计算方式可以是将中间因子作用于右因子变换结果的第一分片。作用于是对某些运算或处理方式的抽象概括,例如,作用于可以是将中间因子与右因子变换结果的第一分片相乘,也可以是其他运算,本实施例对此不作限定。
56.在一些实施例中,根据从右到左的计算顺序,中间因子变换结果可以表示为z=σy。
57.其中,z表示中间因子变换结果,σ表示中间因子,y表示右因子变换结果。
58.将y=y1+y2代入其中可得z=σ(y1+y2)=σy1+σy2。
59.其中,σ为第一参与方本地拥有,y1为第一参与方拥有的右因子变换结果的第一分片,因此,σy1可以由第一参与方在其本地计算得到,即,中间因子变换结果的本地分片。
60.步骤208a,基于中间因子,与第二参与方基于右因子变换结果的第二分片,通过多方安全计算协议,获得中间变换结果的第一分片。
61.如上述实施例所述,中间变换结果可以表示为σy=σy1+σy2,其中,σy1可以由第一参与方在其本地直接计算得到,σy2则可以由第一参与方基于中间因子,与第二参与方右因子变化结果的第二分片,通过多方安全计算协议计算获得。
62.在一些实施例中,第一参与方可以基于多方安全计算协议,将中间因子作用于右因子变换结果的第二分片,得到中间变换结果的第一分片(σy2)1;第二参与方可以通过执行步骤208b,获得中间变换结果的第二分片(σy2)2。
63.步骤208b,基于右因子变换结果的第二分片,与第一参与方基于中间因子,通过多方安全计算协议,获得中间变换结果的第二分片。
64.在一些实施例中,第一参与方与第二参与方协同计算得到的中间变换结果的分片σy2以和共享形式可以表示为σy2=(σy2)1+(σy2)2。其中,第一参与方私有的中间因子σ作为多方安全计算协议的输入数据g,第二参与方私有的右因子变换结果的第二分片y2作为多方安全计算协议的输入数据a。关于多方安全计算协议的详细说明,可以参见本说明书图5及其相关描述,此处不再赘述。
65.步骤210a,基于左因子、中间因子变换结果的本地分片以及中间因子变换结果的第一分片,获得左变换结果的本地分片。
66.第一变换因子对第一变换对象的变换可以表示为mx=pσqx时,经过上述实施例中的步骤,已经计算得到σqx,即σqx=σy=σ(y1+y2)=σy1+(σy2)1+(σy2)2,其中,第一参与方持有σy1、(σy2)1,第二参与方持有(σy2)2。
67.将左因子作用于已经计算得到的σqx即可得到左变换结果,如,
68.pσqx=p(σy1+(σy2)1+(σy2)2)=p(σy1+(σy2)1)+p(σy2)269.其中,左因子为p,中间因子变换结果的本地分片为σy1,中间因子变换结果的第一分片为(σy2)1,其都为第一参与方拥有,因此,第一参与方可以直接在其本地计算得到p(σy1+(σy2)1),即,左变换结果的本地分片。
70.步骤212a,基于左因子,与第二参与方基于所述中间变换结果的第二分片,通过第二隐私保护的多方安全计算方法,获得左变换结果的第一分片。
71.在一些实施例中,左变换结果为p(σy1+(σy2)1)+p(σy2)2,其中,p(σy1+(σy2)1)为左变换结果的本地分片,已经可以计算得到,而p(σy2)2中,p为左因子,由第一参与方持有;(σ
y2)2为中间变换结果的第二分片,由第二参与方持有,其各自并不会向对方透露,因此,左变换结果的一部分p(σy2)2需要由第一参与方与第二参与方基于多方安全计算协议协同计算得到。
72.在一些实施例中,左变换结果的p(σy2)2部分可以表示为p(σy2)2=(p(σy2)2)1+(p(σy2)2)2。
73.其中,(p(σy2)2)1为左变换结果的第一分片,由第一参与方持有;(p(σy2)2)2为左变换结果的第二分片,由第二参与方持有。
74.在一些实施例中,9p9σy2)2)1可以由第一参与方基于左因子,与第二参与方基于所述中间变换结果的第二分片,通过第二隐私保护的多方安全计算方法计算得到。(p9σy2)2)2则可以由第二参与方通过执行步骤212b计算得到。
75.步骤212b,基于所述中间变换结果的第二分片,与第一参与方基于左因子,通过第二隐私保护的多方安全计算方法,获得左变换结果的第二分片。
76.在执行第二隐私保护的多方安全计算方法时,左因子作为变换因子,中间变换结果的第二分片作为变换对象。关于第二隐私保护的多方安全计算方法的详细说明,可以参见图4及其相关描述,此处不再赘述。
77.步骤214a,基于左变换结果的本地分片以及左变换结果的第一分片,获得第一变换结果的第一分片;所述第一变换结果等于第一变换因子对第一变换对象进行变换的结果。
78.示例性地,沿用上述步骤中的示例,第一变换结果的第一分片可以表示为p(σy1+(σy2)1)+(p(σy2)2)1;第一变换结果的第二分片可以表示为(p(σy2)2)2,由第二参与方获得。
79.在一些实施例中,第一参与方可以将所述左变换结果的本地分片和左变换结果的第一分片进行相加,即可得到第一变换结果的第一分片p(σy1+(σy2)1)+(p(σy2)2)1。
80.在一些实施例中,第二参与方可以通过执行步骤214b,获得第一变换结果的第二分片。
81.步骤214b,基于左变换结果的第二分片,获得第一变换结果的第二分片。
82.在一些实施例中,第二参与方可以直接将左变换结果的第二分片作为第一变换结果的第一分片。
83.图3是根据本说明书一些实施例所示的第一隐私保护的多方安全计算方法的示例性交互流程图,涉及多方之间的数据交互。在一些实施例中,流程300可以由处理设备(例如,计算设备110或计算设备120)执行。例如,流程300可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程300。流程300可以包括以下操作。
84.在一些实施例中,当第一参与方拥有私有的变换因子,第二参与方拥有私有的变换对象时,第一参与方可以按照如下文实施例所描述步骤300a的方式与第二参与方按照下文实施例所描述的步骤300b的方式计算得到变换结果。其中,变换结果等于利用变换因子对变换对象进行变换的结果。变换可以理解基于变换因子与变换对象进行计算,计算方式可包括但不限于四则运算,例如变换可以是矩阵乘法。
85.在一些实施例中,变换因子可以通过对第一变换因子进行分解得到,即,变换因子可以是第一变换因子的分解结果中的一部分。关于第一变换因子的更多内容可以参见图2
及其相关描述,此处不再赘述。在一些实施例中,变换因子可以是第一变换因子分解得到的右因子q,变换对象可以是第一变换对象x。
86.步骤302a,将变换因子进行分解,得到包含多个分解因子的变换序列;所述多个分解因子包括私有因子和公共因子,所述公共因子同时为第二参与方持有。
87.分解因子可以是指对变换因子进行分解后得到的分解项。在一些实施例中,多个分解因子可以包括私有因子和公共因子。私有因子是指仅有第一参与方持有的因子,公共因子除第一参与方可以持有以外,同时还可以被第二参与方持有。示例性的,变换因子以矩阵表示时,其可以被分解成多个矩阵相乘的形式,分解得到的多个矩阵为分解因子。
88.在一些实施例中,第一参与方可以按照预设分解规则对变换因子进行分解。示例性地,对变换因子进行分解的一种结果可以如下文所示。
89.当第一参与方拥有的变换因子,如矩阵q时,可以按照引理1对其进行分解。
90.引理1:存在σ1∈sn,σ2∈s
l
,使得变换因子q可以被分解为以下形式。
91.q=∫σ2jδσ192.其中,∫、σ2、j、δ、σ1分别表示分解后得到的多个分解因子,按照从右到左的顺序依次为第一分解因子σ1、第二分解因子δ、第三分解因子j、第四分解因子σ2和第五分解因子∫。
93.其中,sn、s
l
分别表示n阶对称群和l阶对称群,关于对称群的定义可以参见图2的相关说明,在此不再赘述。其中,第一分解因子σ1可以表征为n
×
n的矩阵,第四分解因子σ2可以表征为l
×
l的矩阵。第五分解因子第三分解因子第三分解因子表示k2×
k2的单位阵,第二分解因子的单位阵,第二分解因子
94.其中,第二分解因子δ、第三分解因子j和第五分解因子∫不会随q的变化而变化,即这些分解因子不会携带变换因子q的信息,因此可以与第二参与方共享,这些因子又可称为公共因子。第一分解因子σ1和第四分解因子σ2跟随着q的变化而变化,这些因子会携带变换因子q的信息,因此为第一参与方私有。
95.在对变换因子进行分解后,第一参与方可以基于分解得到的多个分解因子,与第二参与方协同,依次基于所述变换序列中的多个分解因子对变换对象进行迭代变换,进而获得变换结果的第一分片,同时第二参与方获得变换结果的第二分片。变换结果等于利用变换因子对变换对象进行变换的结果。
96.其中,在对变换对象进行迭代变换过程中,涉及公共因子的变换,由参与方独自完成,涉及私有因子的变换,由参与方基于多方安全计算协议完成。
97.在一些实施例中,所述变换序列可以包括上述示例的5个分解因子。示例性地,依次基于多个分解因子对变换对象进行变换的过程可以如下文实施例所示。
98.上述第一分解因子为私有因子,第一参与方可以通过执行步骤304a计算得到第一迭代变换结果的第一分片。
99.步骤304a,基于第一分解因子,与第二参与方基于所述变换对象,通过多方安全计算协议,获得第一迭代变换结果的第一分片。
100.第一迭代变换结果可以是指将第一分解因子作用于变换对象所得到的结果。
101.在一些实施例中,第一参与方可以基于第一分解因子σ1与第二参与方基于变换对象x,通过多方安全协议协同计算,得到第一迭代变换结果。其中,第一迭代变换结果可以以和共享的形式存在于第一参与方和第二参与方。第一迭代变换结果的第一分片由第一参与方持有,第一迭代变换结果的第二分片由第二参与方持有。
102.在一些实施例中,第二参与方可以通过执行步骤304b获得第一迭代变换结果的第二分片。
103.步骤304b,基于所述变换对象,与第一参与方基于所述第一分解因子,通过多方安全计算协议,获得第一迭代变换结果的第二分片。
104.在一些实施例中,变换可以是矩阵乘法。因此,第一迭代变换结果可以表示为σ1x=(σ1x)1+(σ1x)2,其中,(σ1x)1为第一参与方持有的第一迭代变换结果的第一分片,(σ1x)2为第二参与方持有的第一迭代变换结果的第二分片。
105.在当前迭代变换过程中执行多方安全计算协议时,第一分解因子σ1作为输入数据g,变换对象x作为输入数据a。关于基于多方安全计算协议可以参见图5及其相关描述,此处不再赘述。
106.步骤306a,基于第二分解因子以及第一迭代变换结果的第一分片,获得第二迭代变换结果的第一分片。
107.在一些实施例中,第二分解因子为n
×
n的矩阵,且对角线元素为1,第i+1行第i列的元素为-1,其余元素为0,i取1~(n-1)的整数。
108.第二迭代变换结果可以是指将第二分解因子δ作用于第一迭代变换结果得到的结果。其中,第二迭代变换结果可以表示为δσ1x=δ((σ1x)1+(σ1x)2)。
109.进一步对其进行展开可得δσ1x=δ(σ1x)1+δ(σ1x)2,其中,由于δ为公共因子,第一参与方和第二参与方都可以持有,因此,δ(σ1x)1可以由第一参与方直接在其本地计算得到,即,第二迭代变换结果的第一分片;第二迭代变换结果的第二分片δ(σ1x)2则可以由第二参与方基于第二分解因子和第一迭代变换结果的第二分片在其本地计算得到。
110.在一些实施例中,第二参与方可以通过执行步骤306b获得第二迭代结果的第二分片。
111.步骤306b,基于第二分解因子以及第一迭代变换结果的第二分片,获得第二迭代变换结果的第二分片。
112.第二迭代变换结果的第二分片可以直接由第二参与方在其本地计算得到。
113.步骤308a,基于第三分解因子以及第二迭代变换结果的第一分片,获得第三迭代变换结果的第一分片。
114.在一些实施例中,第三分解因子为l
×
n的矩阵,且前k2行与前k2列的公共元素组成的矩阵块的对角线元素为1,其余元素为0。
115.第三迭代变换结果可以是指将第三分解因子j作用于第二迭代变换结果的结果。在一些实施例中,第三迭代变换结果可以表示为jδσ1x=j(δ(σ1x)1+δ(σ1x)2)=jδ(σ1x)1+jδ(σ1x)2。
116.第三分解因子j为公共因子,第一参与方和第二参与方均可以持有。那么在以上例子中的jδ(σ1x)1表示的第三迭代变换结果的第一分片,可以直接由第一参与方在其本地基
于第三分解因子和第二迭代变换结果的第一分片计算得到;jδ(σ1x)2表示的第三迭代变换结果的第二分片,可以直接由第二参与方在其本地基于第三分解因子和第二迭代变换结果的第二分片计算得到。
117.具体地,第二参与方可以通过执行步骤308b获得第三迭代变换结果的第二分片。
118.步骤308b,基于第三分解因子以及第二迭代变换结果的第二分片,获得第三迭代变换结果的第二分片。
119.步骤310a,基于第四分解因子以及所述第三迭代变换结果的第一分片,获得第四迭代变换结果的本地分片。
120.在一些实施例中,第四分解因子来自l阶对称群,表征为l
×
l的矩阵。
121.第四迭代变换结果可以是指将第四分解因子作用于第三迭代变换结果的结果。
122.在一些实施例中,由于第四分解因子σ2为第一参与方持有的私有因子,对于第二参与方而言,其并不能得知关于第四分解因子σ2的相关信息。因此,第四分解因子σ2作用于第三迭代变换结果的计算过程中会涉及到与第二参与方的协同计算。具体地,第四迭代变换结果可以用以下形式进行表示。
123.σ2jδσ1x=σ2(jδ(σ1x)1+jδ(σ1x)2)=σ2jδ(σ1x)1+σ2jδ(σ1x)2124.其中,2为第四分解因子,由第一参与方持有,jδ(σ1x)1为第三迭代变换结果的第一分片,也由第一参与方持有。
125.在一些实施例中,第一参与方可以在其本地,直接基于第四分解因子和第三迭代变换结果的第一分片,计算得到第四迭代变换结果的本地分片σ2jδ(σ1x)1。
126.步骤312a,基于第四分解因子,与第二参与方基于所述第三迭代变换结果的第二分片,通过多方安全计算协议,获得第四迭代变换结果的第一分片。
127.基于步骤310a中的描述可知,第四迭代变换结果可以由两部分组成,一部分为由第一参与方在其本地直接计算得到的第四迭代变换结果的本地分片,另一部分为第一参与方与第二参与方协同计算得到,该另一部分可以表示为σ2jδ(σ1x)2。
128.其中,第四分解因子σ2由第一参与方持有,第三迭代变换结果的第二分片jδ(σ1x)2由第二参与持有,因此,第一参与方与第二参与方可以基于其所拥有的数据,基于多方安全计算协议计算得到第四迭代变换结果的所述另一部分。计算结果仍然可以以和共享的形式存在于第一参与方和第二参与方之间,如下所示。
129.σ2jδ(σ1x)2=(σ2jδ(σ1x)2)1+(σ2jδ(σ1x)2)2130.其中,(σ2jδ(σ1x)2)1表示第四迭代变换结果的第一分片,由第一参与方持有;(σ2jδ(σ1x)2)2表示第四迭代变换结果的第二分片,由第二参与方持有。
131.在一些实施例中,第二参与方可以通过执行步骤312b获得第四迭代变换结果的第二分片。
132.步骤312b,基于所述第三迭代变换结果的第二分片,与第一参与方基于第四分解因子,通过多方安全计算协议,获得第四迭代变换结果的第二分片。
133.在当前轮迭代变换过程中,执行多方安全计算协议时,第四分解因子作为输入数据g,第三迭代变换结果的第二分片作为输入数据a。关于多方安全计算协议的内容可参见图5及其相关描述,此处不再赘述。
134.步骤314a,基于第五分解因子、第四迭代变换结果的本地分片、以及第四迭代变换
结果的第一分片,获得所述变换结果的第一分片。
135.在一些实施例中,第五分解因子为l
×
l的矩阵,且对角线元素以及对角线下方的元素为1,其余元素为0。
136.接上述步骤中的描述,变换结果可以表示为qx=∫σ2jδσ1x。将上述步骤中得到的第四迭代变换结果代入其中可得:qx=∫σ2jδσ1x=∫(σ2jδ(σ1x)1+σ2jδ(σ1x)2),对其进行展开可得:qx=∫σ2jδ(σ1x)1+∫σ2jδ(σ1x)2=∫σ2jδ(σ1x)1+∫(σ2jδ(σ1x)2)1+∫(σ2jδ(σ1x)2)2。
137.第五分解因子∫为公共因子,第一参与方和第二参与方均可以持有,第四迭代变换结果的本地分片为σ2jδ(σ1x)1,第四迭代变换结果的第一分片为(σ2jδ(σ1x)2)1。第一参与方可以将第五分解因子分别与第四迭代变换结果的本地分片和第四迭代变换结果的第一分片进行计算后得到变换结果的第一分片∫σ2jδ(σ1x)1+∫(σ2jδ(σ1x)2)1。
138.在一些实施例中,第二参与方可以通过执行步骤314b获得变换结果的第二分片。
139.步骤314b,基于第五分解因子、以及第四迭代变换结果的第二分片,获得所述变换结果的第二分片。
140.在一些实施例中,第二参与方可以将第五分解因子作用于第四迭代变换结果的第二分片后得到变换结果的第二分片∫(σ2jδ(σ1x)2)2。
141.在本说明书一些实施例中,基于隐私保护的多方安全计算方法计算得到的变换因子q与变换对象x的计算结果可以表示为qx=∫σ2jδ(σ1x)1+∫(σ2jδ(σ1x)2)1+∫(σ2jδ(σ1x)2)2=∫σ2jδσ1x。
142.图4是根据本说明书一些实施例所示的第二隐私保护的多方安全计算方法的示例性交互流程图,涉及多方之间的数据交互。在一些实施例中,流程400可以由处理设备(例如,设备110或设备120)执行。例如,流程400可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程400。流程400可以包括以下操作。
143.在一些实施例中,所述变换因子可以是第一变换因子分解得到的左因子p,变换对象可以是第二参与方在流程300中获得的中间变换结果的第二分片。
144.在一些实施例中,第一参与方同样可以将变换因子进行分解,得到多个分解因子。
145.引理2:存在σ1∈s
l
,σ2∈sm,使得变换因子p可以被分解为以下形式。
146.p=σ2δkσ1∫
147.其中,σ2、δ、k、σ1、∫分别表示分解后得到的多个分解因子,按照从右到左的顺序依次为第一分解因子∫、第二分解因子σ1、第三分解因子k、第四分解因子δ和第五分解因子σ2。
148.其中,s
l
、sm分别表示l阶对称群、m阶对称群,其中,第二分解因子σ1可以表征为l
×
l的矩阵,第五分解因子σ2可以表征为m
×
m的矩阵。第一分解因子第三分解因子表示k1×
k1的单位阵,第四分解因子
其中,第一分解因子∫、第三分解因子k和第四分解因子δ为公共因子,第二分解因子σ1和第五分解因子σ2为私有因子。
149.第一参与方可以执行流程400a,获得变换结果的第一分片;第二参与方可以执行流程400b获得变换结果的第二分片。所述变换结果可以是变换因子对变换对象进行变换结果。在一些实施例中,变换可以是矩阵乘法。
150.步骤401b,基于第一分解因子以及所述变换对象获得第一迭代变换结果。
151.第一分解因子为l
×
l的矩阵,且对角线元素以及对角线下方的元素为1,其余元素为0。第一分解因子也就是上述示例中的∫。在一些实施例中,由于第一分解因子∫为公共因子,且变换对象x为第二参与方持有,因此,第二参与方可以直接计算得到第一迭代变换结果为∫x。
152.步骤402a,基于第二分解因子,与第二参与方基于第一迭代变换结果,通过多方安全计算协议,获得第二迭代变换结果的第一分片。
153.在一些实施例中,第二分解因子来自l阶对称群,表征为l
×
l的矩阵。
154.第二迭代变换结果可以是指将第二分解因子σ1作用于第一迭代变换结果的结果。在一些实施例中,第二迭代变换结果可以表示为σ1∫x。
155.第一参与方与第二参与方基于多方安全计算协议计算得到的第二迭代变换结果可以以和共享的形式存在于两方,例如,σ1∫x=(σ1∫x)1+(σ1∫x)2,其中,第一参与方获得第二迭代变换结果的第一分片(σ1∫x)1,第二参与方获得第二迭代变换结果的第二分片(σ1∫x)2。
156.在一些实施例中,第二参与方可以通过执行步骤402b获得第二迭代变换结果的第二分片。
157.步骤402b,基于所述第一迭代变换结果,与第一参与方基于第二分解因子,通过多方安全计算协议,获得第二迭代变换结果的第二分片。
158.在当前轮迭代变换的过程中,当执行多方安全计算协议时,第二分解因子作为输入数据g,第一迭代变换结果作为输入数据a。关于多方安全计算协议的详细内容,可以参见图5及其相关描述,此处不再赘述。
159.在一些实施例中,对变换序列进行分解得到的分解因子可以包括5个分解因子,其中,第二分解因子和第五分解因子为私有因子,其余分解因子为公共因子。5个分解因子可以如上文所示,即,p=σ2δkσ1∫。第一参与方可以继续通过执行步骤404a至412a,获得变换结果的第一分片,对应的,第二参与方可以继续通过执行步骤404b至412b,获得变换结果的第二分片。
160.步骤404a,基于第三分解因子以及第二迭代变换结果的第一分片,获得第三迭代变换结果的第一分片。
161.在一些实施例中,第三分解因子为m
×
l的矩阵,且倒数k1行与倒数k1列的公共元素组成的矩阵块的对角线元素为1,其余元素为0。
162.第三迭代变换结果可以是指将第三分解因子k作用于第二迭代变换结果的结果。
163.在一些实施例中,第三迭代变换结果可以表示为kσ1∫x=k((σ1∫x)1+(σ1∫x)2),对其
进行分解可得kσ1∫x=k(σ1∫x)1+k(σ1∫x)2。
164.由于第三分解因子k为公共因子,因此,第一参与方和第二参与方可以直接基于其各自所拥有的数据计算得到第三迭代变换结果的分片。其中,第一计算方计算得到第三迭代变换结果的第一分片k(σ1∫x)1,第二参与方计算得到第三迭代变换结果的第二分片k(σ1∫k)2。
165.在一些实施例中,第二参与方可以通过执行步骤404b获得第三迭代变换结果的第二分片。
166.步骤404b,基于第三分解因子以及第二迭代变换结果的第二分片,获得第三迭代变换结果的第二分片。
167.步骤406a,基于第四分解因子以及第三迭代变换结果的第一分片,获得第四迭代变换结果的第一分片。
168.在一些实施例中,第四分解因子为m
×
m的矩阵,对角线元素为1,第i+1行第i列的元素为-1,其余元素为0,i取1~(m-1)的整数。
169.第四迭代变换结果可以是指将第四分解因子作用于第三迭代变换结果的结果。
170.在一些实施例中,第四迭代变换结果可以表示为δkσ1∫x。对其进行展开,即,将第三迭代变换结果的第一分片和第三迭代变换结果的第二分片代入其中可得,δkσ1∫x=δ(k(σ1∫x)1+k(σ1∫x)2)=δk(σ1∫x)1+δk(σ1∫x)2。
171.δk(σ1∫x)1为第四迭代变换结果的第一分片,δk(σ1∫x)2为第四迭代变换结果的第二分片。由于第四分解因子δ为公共因子,第一参与方和第二参与方均可以持有,因此,第一参与方和第二参与方均可以在其本地计算得到对应的第四迭代结果的分片。
172.在一些实施例中,第二参与方可以通过执行步骤406b获得第四迭代变换结果的第二分片。
173.步骤406b,基于第四分解因子以及第三迭代变换结果的第二分片,获得第四迭代变换结果的第二分片。
174.步骤408a,基于第五分解因子以及所述第四迭代变换结果的第一分片,获得第五迭代变换结果的本地分片。
175.在一些实施例中,第五分解因子为私有因子,由第一参与方持有,第二参与方并不得知第五分解因子。
176.在一些实施例中,第五分解因子来自m阶对称群,表征为m
×
m的矩阵。
177.第五迭代变换结果可以是指将第五分解因子作用于第四迭代变换结果的结果。
178.示例性地,第五分解因子为σ2,第四迭代变换结果为δkσ1∫x,第五迭代变换结果可以表示为σ2δkσ1∫x。将第四迭代结果的分片代入其中可得:
179.σ2δkσ1∫x=σ2(δk(σ1∫x)1+δk(σ1∫x)2)=σ2δk(σ1∫x)1+σ2δk(σ1∫x)2180.其中,第五分解因子σ2为私有因子,和第四迭代变换结果的第一分片σ2δk(σ1∫x)1由第一参与方持有,因此,σ2δk(σ1∫x)1可以由第一参与方在其本地直接计算得到。σ2δk(σ1∫x)1即为第五迭代变换结果的本地分片。σ2δk(σ1∫x)2为第五迭代变换结果的另一部分,以和共享的形式存在于第一参与方和第二参与方,计算方式可见后文步骤410a中的描述。
181.步骤410a,基于第五分解因子,与第二参与方基于所述第四迭代变换结果的第二分片,通过多方安全计算协议,获得第五迭代变换结果的第一分片,同时第二参与方获得第
五迭代变换结果的第二分片。
182.如上所述,第五迭代变换结果的另一部分可以表示为σ2δk(σ1∫x)2,其中的第五分解因子σ2由第一参与方持有,第四迭代变换结果的第二分片δk(σ1∫x)2由第二参与方持有,第一参与方和第二参与方可以基于多方安全计算协议进行计算。此时,第五分解因子作为输入数据g,第四迭代变换结果的第二分片作为输入数据a。关于多方安全计算协议的内容可以参见图5的相关描述,此处不再赘述。
183.在一些实施例中,第五分解因子σ2与第四迭代变换结果的第二分片δk(σ1∫x)2的计算结果可以表示为σ2δk(σ1∫x)2=(σ2δk(σ1∫x)2)1+(σ2δk(σ1∫x)2)2。
184.其中,(σ2δk(σ1∫x)2)1表示第五迭代变换结果的第一分片,由第一参与方获得;(σ2δk(σ1∫x)2)2表示第五迭代变换结果的第二分片,由第二参与方获得。
185.在一些实施例中,第二参与方可以通过执行步骤410b获得第五迭代变换结果的第二分片。
186.步骤410b,基于所述第四迭代变换结果的第二分片,与第一参与方基于第五分解因子,通过多方安全计算协议,获得第五迭代变换结果的第二分片。
187.步骤412a,基于第五迭代变换结果的本地分片以及第五迭代变换结果的第一分片,获得所述变换结果的第一分片。
188.在一些实施例中,第一参与方将第五迭代变换结果的本地分片和第五迭代变换结果的第一分片求和可以得到变换结果的第一分片。
189.示例性地,变换结果的第一分片可以表示为σ2δk(σ1∫x)1+(σ2δk(σ1∫x)2)1,由第一参与方持有。
190.相应的,第二参与方可以通过执行步骤412b获得变换结果的第二分片。
191.步骤412b,基于所述第五迭代变换结果的第二分片,获得所述变换结果的第二分片。
192.在一些实施例中,第二参与方可以直接将第五迭代变换结果的第二分片(σ2δk(σ1∫x)2)2作为变换结果的第二分片。
193.在本说明书一些实施例中,变换因子p与变换对象的乘积可以表示为的乘积可以表示为可以是流程200中的中间变换结果的第二分片。
194.在前述实施例中,第一参与方与第二参与方多次执行多方安全计算协议,得到结果的和共享分片。下面详细介绍在一些实施例中,多方安全计算协议的具体内容。
195.图5是根据本说明书一些实施例所示的实现多方安全计算协议的示例性交互流程图,涉及多方之间的数据交互。在一些实施例中,流程500可以由处理设备(例如,计算设备110或计算设备120)执行。例如,流程500可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程500。流程500可以包括以下操作。
196.在一些实施例中,当在计算变换结果的过程中,涉及到私有因子的变换(计算)时,第一参与方可以按照以下步骤500a,第二参与方按照以下步骤500b所示的操作实现多方安全计算协议。
197.在一些实施例中,多方安全计算协议可以为g-module交互计算协议。g-module交互计算协议参与方包括两方,其中一方拥有属于有限群g的输入数据g,另一方拥有属于有限g-module群,或阿贝尔群,的输入数据a,存在有限群g在有限g-module群上的作用到有限g-module群的映射满足分配率,g-module交互计算协议的计算任务为所述两方协同计算g对a的作用,作用结果以和共享分片存储于所述两方。
198.要说明的是,有限群g在有限g-module群上的作用可以解释为,存在一个映射g
×a→
a,那么(g,a)在该映射下的像称为g在a上的作用,记为ga。在一些实施例中,所述作用可以是乘法,如矩阵乘法。输入数据g、输入数据a可以是单个数值,也可以是矩阵或向量。当输入数据g、输入数据a为矩阵或向量时,属于有限群g的输入数据g是指g中的元素属于有限群g,属于有限g-module群的输入数据a是指a中的元素属于有限g-module群。
199.在一些实施例中,多方安全计算协议的参与方可以是本说明书中的第一参与方和第二参与方。输入数据g可以对应本说明书实施例中的私有因子或中间因子,输入数据a可以对应本说明书实施例中的变换对象或迭代变换的结果,也可以是右因子变换结果的第二分片。
200.步骤502a,获取随机分解因子以及第一中间结果的第一分片。
201.步骤502b,获取随机对象以及第一中间结果的第二分片。
202.在一些实施例中,第一参与方的第一中间结果的第一分片与第二参与方的第一中间结果的第二分片为基于随机分解因子对随机对象进行变换的结果的和共享分片。
203.在一些实施例中,随机分解因子为元素属于有限群g的随机矩阵h,对应前述输入数据g,随机对象为元素属于含1交换环a的随机向量e,其中,交换环a满足有限g-module群的性质,因此随机向量e对应前述数据a。在一些实施例中,可以由第三方(第三方可以是半可信的第三方设备,例如,第三方半可信设备130)随机生成随机分解因子和随机对象。例如,第三方通过预设的随机数种子生成随机矩阵h和随机向量e中的元素,进而得到随机分解因子和随机对象。
204.在一些实施例中,第三方可以计算随机分解因子h和随机对象e的乘积得到基于随机分解因子对随机对象进行变换的结果。所述乘积结果属于有限g-module群,进一步,第三方可以对所述乘积结果进行拆解,得到第一中间结果的第一分片与第一中间结果的第二分片,两个分片也属于有限g-module群。
205.之后,第三方可以将随机分解因子以及第一中间结果的第一分片发送给第一参与方,将随机对象以及第一中间结果的第二分片发送给第二参与方。以h表示随机分解因子,e表示随机对象,则运算的和共分片可以表示为:d0+d1=he。然后,第三方将随机分解因子h和第一中间结果的第一分片d0发送至第一参与方;将随机对象b和第一中间结果的第二分片d1发送至第二参与方。
206.由于随机分解因子h的元素属于有限群g,第一中间结果的第一分片d0、随机对象e和第一中间结果的第二分片d1的元素属于有限g-module群,假设随机分解因子h来自n阶对称群,随机对象为n维的向量,则步骤502a和步骤502b中数据传输量或通信量一共为log|g|+3nlog|a|。|g|表示g群中的元素个数,|a|表示交换环中的元素个数。log可以表示以2为底的对数运算,log|g|表示传输数据g所需要的位数,log|a|表示传输交换环a中的元素所需的位数。对于n阶对称群,其元素个数为n!,因此,通信量又可写成logn!+3nlog|a|
207.为了减小步骤502中数据传输量,在一些实施例中,参与方可以通过伪随机数算法,基于随机数种子生成随机数。在伪随机数算法中,需要预先设置一组伪随机数据种子,各方再基于预设好的随机数种子,生成一组随机数。当输入相同的随机数种子时,所生成的随机数序列也是相同的。作为示例,各方基于相同的随机数种子各生产5个随机数,那么各方生成的随机数对应相同,如其中一方的第一个随机数与另一方的第一个随机数相同。
208.具体的,第一参与方拥有第一随机数种子与第三随机数种子,第二参与方拥有第二随机数种子与第四随机数种子,第三方拥有第一~四随机数种子。在一些实施例中,第一参与方可以通过第一随机数种子以此生成多个随机数,作为随机矩阵h的元素,进而得到随机分解因子,以及通过预设的第三随机数种子生成多个随机数,作为第一中间结果的第一分片d0中的元素,进而得到第一中间结果的第一分片d0。第二参与方可以通过第二随机数种子生成多个随机数,作为随机向量e的元素,进而得到随机对象。第三方通过第一随机数种子、第二随机数种子和第三随机数种子对应生成h、e以及d0,并基于d1=he-d0得到第一中间结果的第二分片d1,因此第二参与方可以从第三方获取第一中间结果的第二分片d1,此时第二参与方持有随机对象b和第一中间结果的第二分片d1,完成随机数及分片的分发。在一些替代性的实施例中,还可以是第一中间结果的第一分片d0为第一参与方从第三方获取,所述第一中间结果的第二分片d1为第二参与方通过所述预设的随机对象种子生成。
209.在利用伪随机数算法实现随机数及分片的分发过程中,仅有一方从第三方处获取第一中间结果的第一分片d0或第一中间结果的第二分片d1,因此步骤502的传输量仅为nlog|a|,可以进一步减轻系统传输开销。
210.步骤504a,发送第一传输数据至所述第二参与方。
211.步骤504b,发送第二传输数据至所述第一参与方。
212.步骤506a,获取所述第二参与方的第二传输数据。
213.步骤506b,获取所述第一参与方的第一传输数据。
214.第一传输数据基于私有因子对所述随机分解因子的逆进行叠加变换得到。
215.私有因子为第一参与方拥有的隐私数据,即输入数据g。例如,私有因子可以是流程200中的中间因子,又例如流程300中的第一分解因子、第四分解因子,又例如流程400中的第二分解因子、第五分解因子。随机分解因子h来自与私有因子相同的群,随机分解因子h的逆可以表示为h-1
,则第一传输数据f可以基于得到gh-1
得到,g为所述私有因子,第一传输数据f=gh-1
。在一些实施例中,第一参与方可以通过网络将第一传输数据f发送至另一方。
216.在一些实施例中,第二传输数据可以基于随机对象与变换对象的差值,或基于随机对象与前一轮迭变换迭代结果的第二分片的差值得到。
217.第二传输数据i基于a-e得到,输入数据a为所述变换对象或所述前一轮迭代变换结果的第二分片。随机对象e与输入数据a同维。
218.具体的,当当前变换是第一轮迭代变换时,第二传输数据可以基于随机对象与变换对象的差值得到。当当前变换不是第一轮迭代变换时,第二传输数据可以基于随机对象与前一轮迭代变换结果的差值得到或者第二传输数据可以基于随机对象与前一轮迭代变换结果的第二分片的差值得到。
219.示例性地,在流程200中,第二传输数据为右因子变换结果的第二分片与e的差值。在流程300的第一轮迭代变换中,第二传输数据可以表示为i=x-e,其中x为所述变换对象。
在流程300的第四轮迭代变换中,第二传输数据为第三轮迭代变换结果的第二分片与e的差值。在流程400的第二轮迭代变换中,第二传输数据为第一轮迭代变换结果与e的差值。在流程400的第五轮迭代变换中,第二传输数据为第四轮迭代变换结果的第二分片与e的差值。
220.在一些实施例中,第一参与方可以通过网络从第二参与方获取得到第二传输数据,并执行步骤508a~512a,得到ga的第一分片。第二参与方可以通过网络从第一参与方获得第一传输数据,并执行步骤510b、步骤512b,得到ga的第二分片。在一些实施例中,ga也可以表示流程200、流程300或流程400调用流程500的迭代变换的迭代变换结果。如ga可以表示流程200中中间因子对右因子变换结果的第二分片进行变换的结果,或者表示流程300中第一分解因子对所述变换对象进行变换的结果,或者表示流程300中第四分解因子对第三迭代变换结果的第二分片进行变换的结果,或者表示流程400中第二分解因子对第一迭代变换结果进行变换的结果,或者表示流程400中第五分解因子对第四迭代变换结果的第二分片进行变换的结果。
221.步骤508a,基于所述私有因子对所述第二传输数据进行变换,得到第二中间变换结果。
222.在一些实施例中,变换方式可以是将私有因子g作用于第二传输数据i,得到第二中间变换结果。第二中间变换结果可以表示为gi。
223.步骤510a,基于第一传输数据对第一中间结果的第一分片进行变换,得到第三中间变换结果。
224.在一些实施例中,变换方式可以是将第一传输数据f作用于第一中间结果的第一分片d0,得到第三中间变换结果。第三中间变换结果可以表示为fd0。
225.步骤512a,基于所述第二中间变换结果与所述第三中间变换结果,得到当前轮迭代变换结果的第一分片。
226.在一些实施例中,当前轮迭代变换结果的第一分片c0可以用第二中间变换结果和第三中间变换结果的和的形式进行表示。即,当前轮迭代变换结果的第一分片c0基于gi+fd0得到。
227.步骤510b,基于第一传输数据对第一中间结果的第二分片进行变换,得到第四中间变换结果。
228.在一些实施例中,变换方式可以是将第一传输数据f作用于第一中间结果的第二分片d1,得到第四中间变换结果。第四中间变换结果可以表示为fd1。
229.步骤512b,基于所述第四中间变换结果,得到当前轮迭代变换结果的第二分片。
230.第二参与方可以基于fd1得到当前轮迭代变换结果的第二分片c1,(c0,c1)即为当前轮迭代变换结果。该协议的原理可以表示为:ga=c0+c1=(gi+fd0)+fd1=g(a-e)+gh-1
d0+gh-1
d1=g(a-e)+gh-1
he。
231.由上述步骤可知,在多方安全计算协议的执行过程中,一方生成数据时无需另一方的数据参与。因此,可以实现全双工,即两方可以同时向对方发送数据,减少了交互次数,降低了系统延迟产生的影响。以流程300中的第一轮迭代变换为例,第一参与方向第二参与方发送第一传输数据时,产生的通信量为logn!,第二参与方向第一参与方发送第二传输数据时,产生的通信量为nlog|a|,因此,流程300中通过多方安全计算协议实现的第一轮迭代
变换的通信量为logn!+2nlog|a|。以此类推,可以算出流程200中的中间迭代变换过程产生的通信量为logl!+2llog|a|。流程300中通过多方安全计算协议实现的第四轮迭代变换的通信量为logl!+2llog|a|。流程400中通过多方安全计算协议实现的第二轮迭代变换的通信量为logl!+2llog|a|。流程400中通过多方安全计算协议实现的第五轮迭代变换的通信量为logm!+2mlog|a|。
232.相应的,可以确定流程300涉及的通信量为2+l)log|a|+logl!+logn!,流程400涉及的通信量为2+l)log|a|+logm!+logl!。流程200所涉及到的通信量主要包括分别基于右因子、中间因子以及左因子与第二参与方计算时的通信量,其中,基于右因子与第二参与方进行计算时的通信量与流程300相同;基于左因子和第二参与方的变换结果进行计算时的通信量与流程400相同,因此流程200中所有的通信量总计为2(m+n+3l)log|a|+logm!logn!+3logl!。从以上通信量中可以直接看出,所有的通信过程中的通信量均不含有mn项,相较于两项相乘所带来的通信量,本说明书实施例所披露的技术方案中所需要的通信量在实际应用时能有效地被减少。
233.应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,对本说明书有关流程步骤的改变,如添加预处理步骤和存储步骤等。又例如,第一参与方与第二参与方的各步骤可以同时或非同时进行。
234.图6是根据本说明书一些实施例所示的第一隐私保护的安全计算系统的示例性模块图。如图6所示,系统600可以包括变换因子分解模块610和第一协同计算模块620。
235.变换因子分解模块610可以用于将所述变换因子进行分解,得到包含多个分解因子的变换序列。
236.在一些实施例中,所述多个分解因子包括私有因子和公共因子,所述公共因子同时为第二参与方持有。
237.第一协同计算模块620可以用于与第二参与方协同,依次基于所述变换序列中的多个分解因子对变换对象进行迭代变换,进而获得变换结果的第一分片。
238.在一些实施例中,在对变换对象进行迭代变换过程中,涉及公共因子的变换,由参与方独自完成,涉及私有因子的变换,由参与方基于多方安全计算协议完成;所述变换结果等于利用变换因子对变换对象进行变换的结果。
239.在一些实施例中,所述变换序列中的第一分解因子为私有因子。第一协同计算模块620还可以用于基于第一分解因子,与第二参与方基于所述变换对象,通过多方安全计算协议,获得第一迭代变换结果的第一分片,同时第二参与方获得第一迭代变换结果的第二分片。
240.在一些实施例中,所述变换序列包括5个分解因子,其中第一分解因子和第四分解因子为私有因子,其余分解因子为公共因子。第一协同计算模块620还可以用于基于第二分解因子以及第一迭代变换结果的第一分片,获得第二迭代变换结果的第一分片;基于第三分解因子以及第二迭代变换结果的第一分片,获得第三迭代变换结果的第一分片;基于第四分解因子以及所述第三迭代变换结果的第一分片,获得第四迭代变换结果的本地分片;以及基于第四分解因子,与第二参与方基于所述第三迭代变换结果的第二分片,通过多方
安全计算协议,获得第四迭代变换结果的第一分片,同时第二参与方获得第四迭代变换结果的第二分片;基于第五分解因子、第四迭代变换结果的本地分片、以及第四迭代变换结果的第一分片,获得所述变换结果的第一分片。
241.在一些实施例中,所述变换因子为l

n的0-1矩阵,有k2个非0列,每行有且仅有一个1,且每行的1的列坐标单调不减;所述变换对象为n维向量,向量中的元素来自含1交换环a;所述变换为矩阵乘法;其中,n、l以及k2为正整数。
242.所述第二分解因子为n
×
n的矩阵,且对角线元素为1,第i+1行第i列的元素为-1,其余元素为0,i取1~(n-1)的整数;第三分解因子为l
×
n的矩阵,且前k2行与前k2列的公共元素组成的矩阵块的对角线元素为1,其余元素为0;第五分解因子为l
×
l的矩阵,且对角线元素以及对角线下方的元素为1,其余元素为0;第一分解因子来自n阶对称群,表征为n
×
n的矩阵;第四分解因子来自l阶对称群,表征为l
×
l的矩阵。
243.在一些实施例中,所述变换序列中的第一分解因子为公共因子,第二分解因子为私有因子。第一协同计算模块620还可以用于基于第二分解因子,与第二参与方基于第一迭代变换结果,通过多方安全计算协议,获得第二迭代变换结果的第一分片,同时第二参与方获得第二迭代变换结果的第二分片;所述第一迭代变换结果由第二参与方基于第一分解因子以及所述变换对象获得。
244.在一些实施例中,所述变换序列包括5个分解因子,其中第二分解因子和第五分解因子为私有因子,其余分解因子为公共因子。第一协同计算模块620还可以用于基于第三分解因子以及第二迭代变换结果的第一分片,获得第三迭代变换结果的第一分片;基于第四分解因子以及第三迭代变换结果的第一分片,获得第四迭代变换结果的第一分片;基于第五分解因子以及所述第四迭代变换结果的第一分片,获得第五迭代变换结果的本地分片;以及基于第五分解因子,与第二参与方基于所述第四迭代变换结果的第二分片,通过多方安全计算协议,获得第五迭代变换结果的第一分片,同时第二参与方获得第五迭代变换结果的第二分片;基于第五迭代变换结果的本地分片以及第五迭代变换结果的第一分片,获得所述变换结果的第一分片。
245.在一些实施例中,所述变换因子为m

l的0-1矩阵,有k1个非0行,每列有且仅有一个1,且每列的1的行坐标单调不减;所述变换对象为l维向量,向量中的元素来自含1交换环;所述变换为矩阵乘法;其中,m、l以及k1为正整数。
246.在一些实施例中,所述第一分解因子为l
×
l的矩阵,且对角线元素以及对角线下方的元素为1,其余元素为0;第三分解因子为m
×
l的矩阵,且倒数k1行与倒数k1列的公共元素组成的矩阵块的对角线元素为1,其余元素为0;第四分解因子为m
×
m的矩阵,对角线元素为1,第i+1行第i列的元素为-1,其余元素为0,i取1~(m-1)的整数;第二分解因子来自l阶对称群,表征为l
×
l的矩阵;第五分解因子来自m阶对称群,表征为m
×
m的矩阵。
247.在一些实施例中,当涉及私有因子的变换,为了实现多方安全计算协议,第一协同计算模块还可以用于:获取随机分解因子以及第一中间结果的第一分片;所述第一中间结果的第一分片与所述第二参与方的第一中间结果的第二分片为基于所述随机分解因子对随机对象进行变换的结果的和共享分片;发送属于第一传输数据至所述第二参与方;所述第一传输数据基于私有因子对所述随机分解因子的逆进行叠加变换得到;获取所述第二参与方的第二传输数据;当当前变换是第一轮迭代变换时,所述第二传输数据基于所述随机
对象与所述变换对象的差值得到;当当前变换不是第一轮迭代变换时,所述第二传输数据基于所述随机对象与前一轮迭代变换结果的差值得到,或者所述第二传输数据基于所述随机对象与前一轮迭代变换结果的第二分片的差值得到;基于所述私有因子对所述第二传输数据进行变换,得到第二中间变换结果;基于第一传输数据对第一中间结果的第一分片进行变换,得到第三中间变换结果;基于所述第二中间变换结果与所述第三中间变换结果,得到当前轮迭代变换结果的第一分片。
248.在一些实施例中,所述随机分解因子为元素属于有限群g的随机矩阵h,随机对象为元素属于含1交换环a的随机向量e;所述基于所述随机分解因子对随机对象进行变换的结果基于随机分解因子h和随机对象e的乘积得到;第一传输数据f基于得到gh-1
得到,g为所述私有因子;第二传输数据i基于x-e得到,a为所述变换对象或所述前一轮迭代变换结果或所述前一轮迭代变换结果的第二分片;当前轮迭代变换结果的第一分片c0基于gi+fd0得到,d0为第一中间结果的第一分片。
249.所述随机分解因子以及第一中间结果的第一分片从第三方获取。
250.所述随机分解因子为第一参与方通过预设的第一随机数种子生成,所述随机对象为第二参与方通过预设的第二随机数种子生成;所述第一中间结果的第一分片d0为所述第一参与方通过预设的第三随机数种子生成,所述第一中间结果的第二分片d1为所述第二参与方从第三方获取,或者,所述第一中间结果的第一分片d0为所述第一参与方从第三方获取,所述第一中间结果的第二分片d1为所述第二参与方通过预设的第四随机数种子生成。
251.图7是根据本说明书一些实施例所示的第二隐私保护的安全计算系统的示例性模块图。如图7所示,系统700可以包括第二协同计算模块710。
252.第二协同计算模块710可以用于与第一参与方协同,依次基于变换序列中的多个分解因子对变换对象进行迭代变换,进而获得变换结果的第二分片。
253.其中,第一参与方拥有私有的变换因子,第二参与方拥有私有的变换对象。
254.在一些实施例中,在对变换对象进行迭代变换过程中,涉及公共因子的变换,由参与方独自完成,涉及私有因子的变换,由参与方基于多方安全计算协议完成;所述变换序列包括第一参与方将所述变换因子进行分解得到的多个分解因子;所述多个分解因子包括第一参与方持有私有因子和公共因子,所述公共因子同时为第二参与方持有;所述变换结果等于利用变换因子对变换对象进行变换的结果。
255.在一些实施例中,所述变换序列中的第一分解因子为私有因子;第二协同计算模块710还可以用于基于所述变换对象,与第一参与方基于所述第一分解因子,通过多方安全计算协议,获得第一迭代变换结果的第二分片,同时第一参与方获得第一迭代变换结果的第一分片。
256.在一些实施例中,所述变换序列包括5个分解因子,其中第一分解因子和第四分解因子为私有因子,其余分解因子为公共因子;第二协同计算模块710还可以用于基于第二分解因子以及第一迭代变换结果的第二分片,获得第二迭代变换结果的第二分片;基于第三分解因子以及第二迭代变换结果的第二分片,获得第三迭代变换结果的第二分片;基于所述第三迭代变换结果的第二分片,与第一参与方基于第四分解因子,通过多方安全计算协议,获得第四迭代变换结果的第二分片,同时第一参与方获得第四迭代变换结果的第一分片;基于第五分解因子、以及第四迭代变换结果的第二分片,获得所述变换结果的第二分
片。
257.在一些实施例中,所述变换序列中的第一分解因子为公共因子,第二分解因子为私有因子;第二协同计算模块710还可以用于基于第一分解因子以及所述变换对象获得第一迭代变换结果;基于所述第一迭代变换结果,与第一参与方基于第二分解因子,通过多方安全计算协议,获得第二迭代变换结果的第二分片,同时第一参与方获得第二迭代变换结果的第一分片。
258.在一些实施例中,所述变换序列包括5个分解因子,其中第二分解因子和第五分解因子为私有因子,其余分解因子为公共因子;第二协同计算模块710还可以用于基于第三分解因子以及第二迭代变换结果的第二分片,获得第三迭代变换结果的第二分片;基于第四分解因子以及第三迭代变换结果的第二分片,获得第四迭代变换结果的第二分片;基于所述第四迭代变换结果的第二分片,与第一参与方基于第五分解因子,通过多方安全计算协议,获得第五迭代变换结果的第二分片;基于所述第五迭代变换结果的第二分片,获得所述变换结果的第二分片。
259.在一些实施例中,当涉及私有因子的变换,为了实现多方安全计算协议,第二协同计算模块710执行的步骤包括:获取随机对象以及第一中间结果的第二分片;第一参与方的第一中间结果的第一分片与所述第一中间结果的第二分片为基于随机分解因子对随机对象进行变换的结果的和共享分片;发送第二传输数据至所述第一参与方;当当前变换是第一轮迭代变换时,所述第二传输数据基于所述随机对象与所述变换对象的差值得到;当当前变换不是第一轮迭代变换时,所述第二传输数据基于所述随机对象与前一轮迭代变换结果的差值得到,或者所述第二传输数据基于所述随机对象与前一轮迭代变换结果的第二分片的差值得到;获取所述第一参与方的第一传输数据;所述第一传输数据为第一参与方基于私有因子对所述随机分解因子的逆进行叠加变换得到;基于第一传输数据对第一中间结果的第二分片进行变换,得到第四中间变换结果;基于所述第四中间变换结果,得到当前轮迭代变换结果的第二分片。
260.在一些实施例中,所述随机分解因子为元素属于有限群g的随机矩阵h,随机对象为元素属于含1交换环a的随机向量e;所述基于所述随机分解因子对随机对象进行变换的结果基于随机分解因子h和随机对象e的乘积得到;第一传输数据f基于得到gh-1
得到,g为所述私有因子;第二传输数据i基于x-e得到,a为所述变换对象或所述前一轮迭代变换结果或所述前一轮迭代变换结果的第二分片;当前轮迭代变换结果的第二分片c1基于fd1得到,d1为第一中间结果的第二分片。
261.在一些实施例中,所述随机对象以及第一中间结果的第二分片从第三方获取。
262.在一些实施例中,所述随机分解因子为第一参与方通过预设的第一随机数种子生成,所述随机对象为第二参与方通过预设的第二随机数种子生成;所述第一中间结果的第一分片d0为所述第一参与方通过预设的第三随机数种子生成,所述第一中间结果的第二分片d1为所述第二参与方从第三方获取,或者,所述第一中间结果的第一分片d0为所述第一参与方从第三方获取,所述第一中间结果的第二分片d1为所述第二参与方通过预设的第四随机数种子生成。
263.关于以上所示的系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图2至图5的相关说明。
264.应当理解,图6和图7所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
265.需要注意的是,以上对于隐私保护的多方安全计算系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,变换因子分解模块610和第一协同计算模块620可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,变换因子分解模块610和第一协同计算模块620可以是两个模块,也可以是一个模块同时具有分解和计算功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
266.本说明书实施例可能带来的有益效果包括但不限于:(1)计算过程中所涉及到的通信量中不会涉及到矩阵的行列相乘项,极大地减少了矩阵乘向量计算过程中所涉及到的通信开销;(2)基于多方安全计算协议进行计算,可以有效地保护各参与方所拥有的数据的隐私安全。
267.需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
268.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
269.同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
270.此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的
各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
271.计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。
272.本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visual basic、fortran 2003、perl、cobol 2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。
273.此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
274.同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
275.一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
276.针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、
定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
277.最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1