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

一种隐私保护的分布式图数据特征分解方法及系统

2022-07-02 05:33:32 来源:中国专利 TAG:


1.本发明涉及信息安全技术领域,特别涉及一种隐私保护的分布式图数据特征分解方法及系统。


背景技术:

2.图(graph)数据可以描述实体之间复杂的相互关系,在信息丰富的图数据上可以进行各种各样的分析任务,当图数据以分布式的形式出现时,图上的分析任务会变得更加具有挑战性。所谓的分布式的形式是指每个实体仅能获取关于整个图的部分数据(命名为局部图数据)。例如,在电话簿网络中,每个用户是一个图节点,每个用户的电话簿表示了该用户与其他用户之间的联系(即图数据中的边)。显然,若将电话簿网络建模成一个图,没有实体可以直接获取整张图的信息,相反,每个用户仅能了解一部分连接关系(即自己的电话簿包含的联系人信息)。
3.收集这类分布式的图数据进行图任务分析会引起极大的隐私担忧(例如不会有人乐意将自己的电话簿共享出去)。因此,如果每个用户拥有的局部图数据得不到保护,他们可能不愿意参与到这种图任务的分析中。所以,有必要在这类分布式图数据上进行的任务分析中引入隐私保护机制,以至于有价值的图分析任务可以在不损害每个用户敏感且隐私的局部图数据的情况下进行。
4.图分析任务中,特征分解是一个非常热门的的基本任务。基于图数据的特征分解作用于图数据的邻接矩阵,产生特征值和特征向量,可以为各种各样的图分析任务提供基础信息,例如社区结构侦测、社区重要成员发现、图划分以及网页排序等,但是目前还没有在分布式图数据上实现隐私保护的特征分解方案。
5.因此,现有技术还有待改进和提高。


技术实现要素:

6.针对现有技术的上述缺陷,本发明提供一种隐私保护的分布式图数据特征分解方法及系统,旨在解决现有技术中没有在分布式图数据上实现隐私保护的特征分解方案的问题。
7.为了解决上述技术问题,本发明所采用的技术方案如下:
8.本发明的第一方面,提供一种隐私保护的分布式图数据特征分解方法,所述方法包括:
9.全局图中的目标图节点根据本地局部图数据生成初始集合,所述初始集合中包括多组三元组,每组三元组中包括所述目标图节点的节点标记、所述目标图节点的一个相邻图节点的节点标记、以及所述目标图节点和所述相邻图节点的连接边的权重;
10.所述目标图节点基于函数秘密共享对所述目标图节点的度进行加密,得到第一加密度信息和第二加密度信息,将所述第一加密度信息发送给第一计算终端,将所述第二加密度信息发送给所述第二计算终端;
11.所述第一计算终端和所述第二计算终端根据多个所述目标图节点发送的所述第一加密度信息和所述第二加密度信息生成全局图数据的第一加密度分布信息和第二加密度分布信息;
12.所述目标图节点根据接收到的所述第一加密度分布信息和所述第二加密度分布信息确定所述目标图节点的度所属的目标区间,根据所述目标区间的边界信息确定目标采样敏感度,根据所述目标采样敏感度从拉普拉斯分布中采样噪声,根据所述噪声在所述目标结合中添加虚假三元组,生成目标集合,所述虚假三元组中的权重值为0;
13.所述目标图节点基于加性秘密共享对所述目标集合进行加密,得到第一加密集合和第二加密集合,将所述第一加密集合发送给第一计算终端,将所述第二加密集合发送给第二计算终端;
14.所述第一计算终端和所述第二计算终端根据所述全局图中的各个节点对应的所述第一加密集合和所述第二加密集合,对所述全局图数据进行特征分解。
15.所述的隐私保护的分布式图数据特征分解方法,其中,所述目标图节点基于函数秘密共享对所述目标图节点的度进行加密之前,包括:
16.所述第一计算终端和/或所述第二计算终端在所述全局图的所有节点中随机选择部分节点发送度加密请求;
17.当所述目标图节点接收到所述度加密请求后,所述目标图节点基于函数秘密共享对所述目标图节点的度进行加密。
18.所述的隐私保护的分布式图数据特征分解方法,其中,所述目标图节点基于函数秘密共享对所述目标图节点的度进行加密,得到第一加密度信息和第二加密度信息,包括:
19.所述目标图节点获取函数秘密共享中的第一预设算法输出的所述第一加密度信息和所述第二加密度信息,其中,所述第一预设算法的输入中包括所述目标图节点的度。
20.所述的隐私保护的分布式图数据特征分解方法,其中,所述第一计算终端和所述第二计算终端根据多个所述目标图节点发送的所述第一加密度信息和所述第二加密度信息生成全局图数据的第一加密度分布信息和第二加密度分布信息,包括:
21.所述第一计算终端将所述目标图节点的所述第一加密度信息和一个目标度输入至函数秘密共享中的第二预设算法,得到所述目标图节点的度与所述目标度之间的第一加密度比较信息,所述第二计算终端将所述目标图节点的所述第二加密度信息和所述目标度输入至所述第二预设算法,得到所述目标图节点的度与所述目标度之间的第二加密度比较信息;
22.其中,当所述目标图节点的度与所述目标度相等时,所述目标图节点的度与所述目标度的所述第一加密度比较信息和所述第二加密度比较信息的和为1,否则为0;
23.所述第一计算终端获取第一加密直方图信息,所述第二计算终端获取第二加密直方图信息,所述第一加密直方图信息中包括每个所述目标度对应的第一加密图节点数量信息,每个所述第一加密图节点数量信息为一个所述目标度对应的所有所述第一加密度比较信息的和,所述第二加密直方图信息中包括每个所述目标度对应的第二加密图节点数量,每个所述第二加密图节点数量信息为一个所述目标度对应的所有所述第二加密度比较信息的和;
24.获取多个所述目标图节点的度分别与各个所述目标度之间的所述第一加密度信
息作为第一加密度直方图信息,所述第二计算终端获取多个所述目标图节点的度分别与各个所述目标度之间的所述第二加密度信息作为第二加密度直方图信息;
25.所述第一计算终端和所述第二计算终端根据所述第一加密度直方图信息和所述第二加密度直方图信息确定所述第一加密度分布信息和所述第二加密度分布信息。
26.所述的隐私保护的分布式图数据特征分解方法,其中,所述第一加密度分布信息和所述第二加密度分布信息中的每一位数值为0或1;所述第一计算终端和所述第二计算终端根据所述第一加密度直方图信息和所述第二加密度直方图信息确定所述第一加密度分布信息和所述第二加密度分布信息,包括:
27.所述第一计算终端和所述第二计算终端根据发送加密度信息的所述目标图节点的数量和预设的区间数量,确定每个区间内的目标节点数量;
28.所述第一计算终端将所述第一加密度直方图信息中的各个所述第一加密图节点数量信息按照对应的所述目标度的大小顺序依次加入至第一累加器中,所述第二计算终端将所述第二加密度直方图信息中的各个所述第二加密图节点数量信息按照对应的所述目标度的大小顺序依次加入至第二累加器中;
29.每次所述第一加密图节点数量信息和所述第二加密图节点数量信息分别加入至所述第一累加器和所述第二累加器中后,所述第一计算终端根据所述第一累加器获取第一加密比较结果,根据所述第一加密比较结果生成所述第一加密度分布信息中的新一位数值,所述第二计算终端根据所述第二累加器获取第二加密比较结果,根据所述第二加密比较结果生成所述第二加密度分布信息中的新一位数值,其中,当所述第一累加器和所述第二累加器的和不小于所述目标节点数量时,所述第一加密比较结果和所述第二加密比较结果的异或门运算结果为1,当所述第一累加器和所述第二累加器的和小于所述目标节点数量时,所述第一加密比较结果和所述第二加密比较结果的异或门运算结果为0;
30.所述第一计算终端将所述第一加密度分布信息中的最新一位数值翻转得到翻转位,所述第一计算终端基于加性秘密共享计算得到第一秘密共享份额,所述第二计算终端基于加性秘密共享计算得到第二秘密共享份额,其中,所述第一秘密共享份额与所述第二秘密共享份额的和为第一值与第二值的乘积,所述第一值为所述翻转位和所述第二加密度分布信息中的最新一位的异或门运算结果,所述第二值为所述第一累加器和所述第二累加器的和;
31.所述第一计算终端将所述第一累加器的值更新为所述第一秘密共享份额,将下一个所述第一加密图节点数量信息加入至所述第一累加器,所述第二计算终端将所述第二累加器的值更新为所述第二秘密共享份额,将下一个所述第二加密图节点数量信息加入至所述第二累加器。
32.所述的隐私保护的分布式图数据特征分解方法,其中,所述第一计算终端根据所述第一累加器,获取第一加密比较结果,根据所述第一加密比较结果生成所述第一加密度分布信息中的新一位数值,述第二计算终端根据所述第二累加器获取第二加密比较结果,根据所述第二加密比较结果生成所述第二加密度分布信息中的新一位数值,包括:
33.第三计算终端根据函数秘密共享的第三预设算法和所述目标节点数量生成第一秘钥、第二秘钥、第一随机数和第二随机数,将所述第一秘钥和所述第一随机数发送给所述第一计算终端,将所述第二秘钥和所述第二随机数发送给所述第二计算终端,
34.所述第一计算终端将所述第一随机数和所述第一累加器的和发送给所述第二计算终端,所述第二计算终端生成第二随机数,将所述第二随机数和所述第二累加器的和发送给所述第一计算终端,以使得所述第一计算终端和所述第二计算终端均获取置乱输入值,所述置乱输入值为所述第一随机数、所述第二随机数、所述第一累加器和所述第二累加器的和;
35.所述第一计算终端将所述置换输入值和所述第一秘钥输入至函数秘密共享的第四预设算法,获取所述第一加密位,所述第二计算终端将所述置换输入值和所述第二秘钥输入至函数秘密共享的第四预设算法,获取第二加密位,其中,当所述第一累加器和所述第二累加器的和小于所述目标节点数量时,所述第一加密位和所述第二加密位的异或门运算结果为1,当所述第一累加器和所述第二累加器的和不小于所述目标节点数量时,所述第一加密位和所述第二加密位的异或门运算结果为0;
36.所述第一计算终端将所述第一加密位作为所述第一加密度分布信息中的新一位数值,所述第二计算终端将所述第二加密位翻转后作为所述第二加密度分布信息中的新一位数值,或者,所述第一计算终端将所述第一加密位翻转后作为所述第一加密度分布信息中的新一位数值,所述第二计算终端将所述第二加密位作为所述第二加密度分布信息中的新一位数值。
37.所述的隐私保护的分布式图数据特征分解方法,其中,所述第一计算终端根据所述第一累加器获取第一加密比较结果,根据所述第一加密比较结果生成所述第一加密度分布信息中的新一位数值,述第二计算终端根据所述第二累加器获取第二加密比较结果,根据所述第二加密比较结果生成所述第二加密度分布信息中的新一位数值,包括:
38.所述第一计算终端获取第一随机数,所述第二计算终端获取第二随机数,所述第一随机数和所述第二随机数的和为所述目标节点数量;
39.所述第一计算终端获取第一比特数据,所述第二计算终端获取第二比特数据,所述第一比特数据为所述第一累加器和所述第一随机数的差对应的比特数据,所述第二比特数据为所述第二累加器和所述第二随机数的差对应的比特数据;
40.所述第一计算终端和所述第二计算终端将各自持有的比特数据输入至并行前缀加法电路,执行异或门计算和与门计算分别得到所述第一比特数据的最高有效位和所述第二比特数据的最高有效位,当所述第一累加器和所述第二累加器的和小于所述目标节点数量时,所述第一比特数据和所述第二比特数据的最高有效位的异或门运算结果为1,当所述第一累加器和所述第二累加器的和不小于所述目标节点数量时,所述第一比特数据和所述第二比特数据的最高有效位的异或门运算结果为0;
41.所述第一计算终端将所述第一比特数据的最高有效位作为所述第一加密度分布信息中的新一位数值,所述第二计算终端将所述第二比特数据的最高有效位翻转后作为所述第二加密度分布信息中的新一位数值,或者,所述第一计算终端将所述第一比特数据的最高有效位翻转后作为所述第一加密度分布信息中的新一位数值,所述第二计算终端将所述第二比特数据的最高有效位作为所述第二加密度分布信息中的新一位数值。
42.所述的隐私保护的分布式图数据特征分解方法,其中,所述第一计算终端和所述第二计算终端根据所述全局图中的各个节点对应的所述第一加密集合和所述第二加密集合,对所述全局图数据进行特征分解,包括:
43.所述第一计算终端根据所述全局图中的各个节点对应的所述第一加密集合得到第一加密邻接矩阵,所述第二计算终端根据所述全局图中的各个节点对应的所述第二加密集合得到第二加密邻接矩阵;
44.所述第一计算终端和所述第二计算终端基于加性秘密共享对所述第一加密邻接矩阵和所述第二加密邻接矩阵的和进行降维,得到降维矩阵;
45.所述第一计算终端和所述第二计算终端基于加性秘密对所述降维矩阵执行qr算法,获取所述全局图数据的加密特征值和加密特征向量;
46.其中,对于降维过程中的平方根运算,所述第一计算终端和所述第二计算终端基于加性秘密共享通过第二计算公式迭代计算得到平方根的倒数;
47.所述第二计算公式为:
[0048][0049]
y'n表示第n次迭代计算方根倒数的计算结果,x'表示待开方根的数。
[0050]
所述的隐私保护的分布式图数据特征分解方法,其中,所述第一计算终端和所述第二计算终端基于加性秘密对所述降维矩阵执行qr算法,包括:
[0051]
在qr算法中的第i次迭代中,所述第一计算终端获取第一加密矩阵和第二加密矩阵,所述第一加密矩阵和所述第二加密矩阵的和为目标矩阵,所述目标矩阵为第i次迭代中使用的明文givens旋转矩阵中位置为(i,i)、(i,i 1)、(i 1,i)、(i 1,i 1)的元素组成的矩阵;
[0052]
对于qr算法中的矩阵乘法运算,所述第一计算终端和所述第二计算终端基于随机生成的乘法元组矩阵,将所述第一加密矩阵和所述第二加密矩阵作为qr算法中givens旋转矩阵的两个秘密份额实现加性秘密共享中的乘法运算。
[0053]
本发明的第二方面,提供一种隐私保护的分布式图数据特征分解系统,所述系统包括目标图节点、第一计算终端和第二计算终端,所述目标图节点、所述第一计算终端和所述第二计算终端用于执行如本发明第一方面提供的隐私保护的分布式图数据特征分解方法中的相关步骤。
[0054]
与现有技术相比,本发明提供了一种隐私保护的分布式图数据特征分解方法及系统,所述的隐私保护的分布式图数据特征分解方法中,被随机采样的持有局部图数据的图节点,加密自身的度信息,并发送给第一计算终端和第二计算终端,第一计算终端和第二计算终端协同地在密文域计算生成第一加密度分布信息和第二加密度分布信息,可以使得图节点确定自身的度所属的目标区间,进而选择合适的采样敏感度采样噪声,在真实的图邻接矩阵中添加权值为0虚假的边,并且矩阵三元组的形式实现了矩阵的稀疏表示,图节点对添加了虚假的边的三元组集合进行加密得到第一加密集合和第二加密集合并分别发送给第一计算终端和第二计算终端,第一计算终端和第二计算终端基于第一加密集合和第二加密集合进行特征分解,在保护节点隐私的前提下,保留图数据的稀疏性同时也保证了特征分解的有效性,实现了隐私保护的分布式特数据特征分解。
附图说明
[0055]
图1为本发明提供的隐私保护的分布式图数据特征分解方法的实施例的流程图;
[0056]
图2为本发明提供的隐私保护的分布式图数据特征分解方法的实施例的应用场景的示意图;
[0057]
图3为不同敏感度的拉普拉斯分布的密度函数;
[0058]
图4为本发明提供的隐私保护的分布式图数据特征分解方法的实施例中安全的度直方图估计算法示意图;
[0059]
图5为本发明提供的隐私保护的分布式图数据特征分解方法的实施例中安全的度分布信息生成算法示意图;
[0060]
图6为本发明提供的隐私保护的分布式图数据特征分解方法的实施例中并行前缀加法电路的示意图;
[0061]
图7为本发明提供的隐私保护的分布式图数据特征分解方法的实施例中局部图数据加密算法的示意图;
[0062]
图8为明文的arnoldi算法的示意图;
[0063]
图9为明文的lanczos算法的示意图;
[0064]
图10为本发明提供的隐私保护的分布式图数据特征分解方法的实施例中密文域的arnoldi算法的示意图;
[0065]
图11为现有的qr算法的迭代过程示意图;
[0066]
图12为本发明提供的隐私保护的分布式图数据特征分解方法的实施例中密文域的qr算法的示意图;
[0067]
图13为本发明提供的隐私保护的分布式图数据特征分解方法的实施例中qr算法的迭代过程示意图。
具体实施方式
[0068]
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0069]
实施例一
[0070]
本实施例提供了一种隐私保护的分布式图数据特征分解方法,旨在以隐私保护的方式在分布式的图数据上实现密文域的特征分解,基于图数据的特征分解作用于图数据的邻接矩阵,产生特征值和特征向量。如图2所示,在本实施例提供的方法中,包括三种实体:n个用户ui(i∈[1,n]),两个云服务器(计算终端)cs1和cs2以及分析者。其中每个用户持有局部的图数据(例如通讯录场景中每个用户持有的通讯录)构成了一个完整的图(graph)。该图中,每个用户表示一个图节点,用户之间的关系(如通讯录场景中的联系方式)表示图中的边。每个用户持有的局部数据的大小表示每个节点的度(degree,例如通讯录场景中每个用户的联系人数量)。
[0071]
该分布式的图可以被表示为大小为n*n的邻接矩阵a的形式,其中邻接矩阵中的每一行a[i,:](i∈[1,n])表示用户ui持有的局部图数据。例如在在一个无权图中,a[i,j]=1可以表示用户ui和uj之间存在关系;在一个有权图中,a[i,j]=v可以表示用户ui和uj之间存在关系,且亲密度是v。这些用户允许云服务器在他们的局部图数据的联合数据(即该完整的图数据)上执行分析任务。然而,由于隐私的担忧,在整个特征分解的过程中,每个用户
取代加法操作,使用“与”取代乘法操作。
[0087]
函数密秘共享
[0088]
函数密秘共享(fss)是加性密秘共享的一种扩展,其可以一种较低的通信量完成安全的函数计算。因此,fss在高延迟的网络下相较于普通的密秘共享具有很大的性能优势。总的来说,一个两方的基于fss的隐私函数f,由以下两个抽象算法组成:
[0089]
1.(k1,k2)

gen(1
λ
,f):给定一个安全参数λ和一个函数描述f,输出两个fss密钥k1,k2,每个一个计算参与方。
[0090]
2.《f(x)》i←
eval(ki,x):给定一个fss密钥ki和一个评估点x,输出一个评估结果的加性密秘共享份额《f(x)》i。
[0091]
fss可以确保如果攻击者仅学习到两个fss密钥的一个,他无法获得任何关于这个目标函数以及计算输出f(x)的信息。
[0092]
如图1所示,本实施例提供的隐私保护的分布式图数据特征分解方法,包括步骤:
[0093]
s100、全局图中的目标图节点根据本地局部图数据生成初始集合,所述初始集合中包括多组三元组,每组三元组中包括所述目标图节点的节点标记、所述目标图节点的一个相邻图节点的节点标记、以及所述目标图节点和所述相邻图节点的连接边的权重。
[0094]
所述目标图节点可以是全局图中的任一节点,对于分布式图数据的特征分解任务,首先需要收集各个用户的局部图数据,以便形成关于该图的完整的加密的邻接矩阵a,从而进行后续的密文域的特征分解。具体的,邻接矩阵中的每一行a[i,:]代表了每个用户的局部图数据。在本阶段每个用户ui以密文的方式共享他的局部图数据a[i,:]给两个云服务器cs1和cs2。为了获得较高的效率,借助于ass让每个用户ui加密a[i,:]。每个节点在自己的局部图数据上简单地应用该技术将导致很高的系统开销,因为分布式图数据通常是稀疏的,即邻接矩阵中的每一行a[i,:]大部分是0元素,仅有少部分是有效数据(例如每个用户的电话簿仅存有少量的电话号码)。本实施例中使用矩阵的稀疏表示,其基本思想是只处理和提交非零元素的(加密)值及其位置。具体的,每个用户ui仅存储非零元素的位置和权重:{(i,j,a[i,j])}。该集合中的每个元素是一个矩阵三元组:(i,j,a[i,j]),其中,i表示目标图节点的节点标记,j表示所述目标图节点的一个相邻节点的节点标记,即每个元素即示节点(即用户)ui和节点uj之间的一条边,a[i,j]表示边的权值,集合中元素的数量表示节点ui的度(degree)。之后,让每个用户ui利用ass技术加密权值a[i,j]。具体的,给定一条边权值用户生成一个随机数之后权值a[i,j]的算术密文的两个份额分别为《a[i,j]》1=a[i,j]-r和《a[i,j]》2=r。最后用户ui将{(i,j,《a[i,j]》1)}和{(i,j,《a[i,j]》2)}分别发送给第一计算终端cs1和第二计算终端cs2。然而,由于非零元素的数量代表边的数量(即度degree),所以这种简单的加密方式将泄漏每个节点的度信息给计算终端。基于该信息,已有文献表明计算终端可以推测用户ui的各种各样的隐私信息。同时,如果该分布式图是一个无权图(即其邻接矩阵中的元素是0或1),仅加密非0权值的边是没有意义的,因为边的存在性即揭示了该边的权值是1,进而,计算终端就可以获得完整图邻接矩阵。因此,这里的挑战是如何在使用稀疏矩阵的三元组编码方式的同时,保护每个用户ui的度信息。同时不影响后续特征分解的有效性。
[0095]
为了解决该挑战,本实施例提供的方法是在用户度信息和矩阵稀疏性之间寻找一
种理论上的平衡(trade-off)。具体的,每个用户ui在{(i,j,a[i,:])}中的随机空位置添加一些权值为0的虚假的边(即(i,j,0)),之后同时对真实边的权值和虚假边的权值应用ass技术进行加密。由于在ass技术中,即使对相同的(例如0)值进行多次加密,也可以保证器密文的不可区分性。因此,该方法既可以使云服务器无法区分真实的边和虚假的边,又不影响后续安全特征分解过程的有效性(因为虚假边的权值为0)。同时又可以保护用户ui的度信息(因为添加了一些虚假的边)。这里仍然存在的挑战性是,如何选择合适的虚假边的数量,以达到稀疏性和隐私之间的理论上的平衡。具体的说,虚假边过多会削弱收集的密文图的邻接矩阵的稀疏性,增加后续的系统开销,而虚假边过少则会导致隐私保护性较弱。
[0096]
在一种可能的实现方式中,每个用户ui从离散的拉普拉斯分布(定义2)中采样一个噪声ni,仅共享自己的噪声化的本地数据。
[0097]
拉普拉斯分布是最受欢迎的噪声分布之一,其可以定义为:
[0098]
一个离散的随机变量的概率密度函数满足下式时,则该随机变量服从拉普拉斯分布lap(∈,δ,δ)。
[0099][0100]
其中μ是拉普拉斯分布的均值。
[0101][0102]
其中δ是函数f的敏感度:
[0103]
a=max|f(x)-f(x')|
[0104]
其可以用于衡量在最坏的情况下单个实体的数据可以改变数据输出的程度。
[0105]
根据拉普拉斯分布的定义,如果不做任何的设置,当每个用户ui从离散的拉普拉斯分布(定义2)中采样一个噪声ni时,这里的拉普拉斯分布的敏感度δ应设置为δ=d
max-d
min
,其中d
max
,d
min
分别是该分布式图中可能的节点的最大度和最小度。之后在其局部图数据中的随机位置添加ni个权值为0的虚假边(即(i,j,0))。最后同时对真实边的权值和虚假边的权值应用ass技术进行加密,再将密文发送给每个云服务器。这样既可以实现每个节点度的隐私保护,又可以保护每个边的存在性。
[0106]
虽然该方案是有效的,但是这将会导致一个较大的敏感度δ(理论上将达到n,即图中节点的数量),这会导致采样的拉普拉斯噪声ni会非常大,意味着每个用户需要添加将近n个虚假的边,这会严重地影响图的稀疏性和后续的特征分解的性能。如图3中展示的不同δ的离散拉普拉斯分布的概率密度函数。该图揭示了一个大的敏感度δ将使得拉普拉斯分布的密度函数的形状更加均匀。该特性表明越大的敏感度δ,用户ui将越大概率选择一个较大的噪声|ni|。相反,一个小的敏感度δ(例如图3中的δ=50)将使概率密度函数更加集中,这意味着用户ui将大概率选择一个较小的噪声|ni|。因此,如果所有的用户ui都从一个有较大敏感度δ的拉普拉斯分布中采样噪声,将会导致每个用户在其局部图数据中添加极多的虚假边,从而会严重地影响收集到的图数据的稀疏性。
[0107]
为了获得更好的稀疏性,在本实施例中,使用基于“分桶”思想的隐私保护,即将图
中的各个节点分成不同的“桶”,实现“桶内”节点度信息的隐私保护,具体是将图中的节点划分为几个桶,或者说在图中节点的度可能的最大值和最小值之间划分多个度的区间,每个桶包含大致相等的用户数量,桶内所有节点的度在一个小区间内,因此小区间[d
p
,dq]内。因此,所有在同一桶内的用户可以使用一个较小的敏感度δ=d
q-d
p
。为了实现对节点进行安全地分桶,本实施例提供的方法,还包括步骤:
[0108]
s200、所述目标图节点基于函数秘密共享对所述目标图节点的度进行加密,得到第一加密度信息和第二加密度信息,将所述第一加密度信息发送给第一计算终端,将所述第二加密度信息发送给所述第二计算终端;
[0109]
s300、所述第一计算终端和所述第二计算终端根据多个所述目标图节点发送的所述第一加密度信息和所述第二加密度信息生成全局图数据的第一加密度分布信息和第二加密度分布信息。
[0110]
所述第一加密度分布信息和所述第二加密度分布信息是桶映射的两个秘密份额,所述第一计算终端和所述第二计算终端仅凭自身持有的秘密份额无法得到明文的桶映射,所述第一计算终端和所述第二计算终端分别将所述第一加密度分布信息和所述第二加密度分布信息发送给节点后,节点可以进行解密,得到桶映射,进而确定自己所属的桶,设置采样噪音时的敏感度。在本实施例中,桶映射是一串比特串,其中,元素1显示桶的边界,例如给定d
max
=10,桶映射inter=0001000001显示用户被划分为两个桶(区间):用户他们的度∈[1,4]和用户他们的度∈[5,10]。下面具体说明如何在密文域计算获得桶映射。
[0111]
为了安全地让所述第一计算终端cs1和所述第二计算终端cs2对所全局图中的节点的度的所有可能取值范围划分区间,实现对用户进行分桶,首先需要让第一计算终端和所述第二计算终端在不获得任何节点明文度信息的情况下估计所有节点的加密的度直方图,即估计每个度的可取值对应的节点的数量。具体地说,给定一个公共的度di和一个特定用户uj的度信息dj,在dj和检测结果都是密文的情况下,cs
{1,2}
需要检测是否dj=di。为了实现这一目标,本实施例主要利用了一种基于fss的分布式点函数(distributed point function,下文简称dpf)。一个dpf机制f
α,β
(x)输出β如果x=α,否则输出0。
[0112]
类似于fss的通用框架,一个基于fss的两方dpf机制由以下两个算法组成:
[0113]
1.(k1,k2)

gen(1
λ
,α,β):给定一个安全参数λ和α,β,输出两个dpf密钥k1,k2,每个给云服务器cs1和cs2的其中一方。
[0114]
2.《f
α,β
(x)》i←
eval(ki,x):给定一个dpf密钥ki和一个评估点x,输出评估结果的一个密秘共享份额《f
α,β
(x)》i。
[0115]
本实施例中安全的度直方图估计算法的伪代码如图4所示。
[0116]
因为直接让所有的节点发送他们的加密度的度di给计算终端将导致较高的系统开销,所以本方案利用采样的策略。即计算终端从整个用户群体中随机采样s个用户(表示为{suj}
j∈[1,s]
),让这些被采样的用户发送自己的加密的度信息。即所述目标图节点基于函数秘密共享对所述目标图节点的度进行加密之前,包括:
[0117]
所述第一计算终端和/或所述第二计算终端在所述全局图的所有节点中随机选择部分节点发送度加密请求;
[0118]
当所述目标图节点接收到所述度加密请求后,所述目标图节点基于函数秘密共享对所述目标图节点的度进行加密。
[0119]
所述目标图节点基于函数秘密共享对所述目标图节点的度进行加密,得到第一加密度信息和第二加密度信息,包括:
[0120]
所述目标图节点获取函数秘密共享中的第一预设算法输出的所述第一加密度信息和所述第二加密度信息,其中,所述第一预设算法的输入中包括所述目标图节点的度。
[0121]
所述第一计算终端和所述第二计算终端根据多个所述目标图节点发送的所述第一加密度信息和所述第二加密度信息生成全局图数据的第一加密度分布信息和第二加密度分布信息,包括:
[0122]
所述第一计算终端将所述目标图节点的所述第一加密度信息和一个目标度输入至函数秘密共享中的第二预设算法,得到所述目标图节点的度与所述目标度之间的第一加密度比较信息,所述第二计算终端将所述目标图节点的所述第二加密度信息和所述目标度输入至所述第二预设算法,得到所述目标图节点的度与所述目标度之间的第二加密度比较信息;
[0123]
其中,当所述目标图节点的度与所述目标度相等时,所述目标图节点的度与所述目标度的所述第一加密度比较信息和所述第二加密度比较信息的和为1,否则为0;
[0124]
所述第一计算终端获取第一加密直方图信息,所述第二计算终端获取第二加密直方图信息,所述第一加密直方图信息中包括每个所述目标度对应的第一加密图节点数量信息,每个所述第一加密图节点数量信息为一个所述目标度对应的所有所述第一加密度比较信息的和,所述第二加密直方图信息中包括每个所述目标度对应的第二加密图节点数量,每个所述第二加密图节点数量信息为一个所述目标度对应的所有所述第二加密度比较信息的和;
[0125]
获取多个所述目标图节点的度分别与各个所述目标度之间的所述第一加密度信息作为第一加密度直方图信息,所述第二计算终端获取多个所述目标图节点的度分别与各个所述目标度之间的所述第二加密度信息作为第二加密度直方图信息;
[0126]
所述第一计算终端和所述第二计算终端根据所述第一加密度直方图信息和所述第二加密度直方图信息确定所述第一加密度分布信息和所述第二加密度分布信息。
[0127]
具体的,每个被采样用户suj基于他的度dj生成dpf密钥(图4中algorithm 3的第1行),其中dpf参数α,β分别设置为dj和1。之后,每个用户suj发送密钥k
j,1
(即所述第一加密度信息)给第一计算终端cs1,发送秘钥k
j,2
(即所述第二加密度信息)给第二计算终端cs2。在所有被采样用户都发送dpf密钥之后,每个云服务器cs
t∈{1,2}
对所有可能的度i∈[1,d
max
],利用每个密钥{k
j,t
}
j∈[1,s]
评估eval(k
j,t
,i)。最后将这些评估结果求和(algorithm 3的第6行),cs
t
就可以分别精确地获得有多少被采样的用户他们的度dj是等于i的这一信息的加密份额,其中i∈[1,d
max
]。正确性证明如下:
[0128][0129]
通过上述步骤,所述第一计算终端和所述第二计算终端分别持有加密的度直方图估计的两个秘密份额,随后所述第一计算终端和所述第二计算终端进一步地在密文域生成桶映射。生成桶映射的算法的伪代码如图5所示。图5中的算法algorithm 4,其输出加密的桶映射(以布尔密秘共享加密的比特串),其中元素1显示每个桶的边界。例如给定d
max
=10,inter=0001000001显示用户被划分为两个桶:用户他们的度∈[1,4]和用户他们的度∈[5,10]。在计算加密的桶映射之后,云服务器cs1和cs2可以将发送给每个用户,每个用户根据自己的度判断自己属于哪一个桶。接下来详细介绍如何实现algorithm 4。
[0130]
algorithm 4(第1行)首先让cs
1,2
计算明文的桶大小sizeb(即每个桶里面需要包含多少个用户),之后初始化一个加密的累加器然后cs
1,2
将上一阶段估计的度直方图挨个加进该累加器(algorithm 4的第4行)。同时,在每加一个之后,cs
1,2
在密文域判断是否并添加这个(以布尔密秘共享加密的)比较结果到桶映射(algorithm 4的第5行)。具体的,如果accu≥sizeb,inter[i]=1显示一个桶边界,否则的话inter[i]=0。之后,基于上述加密的比较结果,cs
1,2
在密文域判断是否需要将加密的累加器置0。具体的,如果inter[i]=1,表示一个桶边界出现,因此需要将累加器[accu]a置0,为下一个桶做累加准备。如果inter[i]=0则说经没有桶边界出现,则保持不变继续累加。上述步骤表示成algorithm 4的第6行。其中“!”表示“非”操作,其可以让cs
1,2
的其中一个翻转它的密秘共享份额《inter[i]》1或者《inter[i]》2来完成。最后,cs
1,2
输出加密的桶映射
[0131]
在algorithm 4中,加法操作可以由加性的密秘共享本身支持的协议来完成,但是密文域的比较操作并不被原生地支持。因此,本实施例中提供了两个可以在密文域完成操作的方法。第一种方法是基于函数密秘共享fss的。它更适合于高延迟的网络场景,因为它需要最少的服务器之间的交互轮数(以更多的本地计算为代价)。第二种方法是基于加性的密秘共享ass的,它需要更少的本地计算,但需要两个服务器之间较多的在线通信量和通信论数,因此更适合低延迟的网络场景。
[0132]
在第一种方法中,所述第一计算终端根据所述第一累加器,获取第一加密比较结果,根据所述第一加密比较结果生成所述第一加密度分布信息中的新一位数值,述第二计
算终端根据所述第二累加器获取第二加密比较结果,根据所述第二加密比较结果生成所述第二加密度分布信息中的新一位数值,包括:
[0133]
第三计算终端根据函数秘密共享的第三预设算法和所述目标节点数量生成第一秘钥、第二秘钥、第一随机数和第二随机数,将所述第一秘钥和所述第一随机数发送给所述第一计算终端,将所述第二秘钥和所述第二随机数发送给所述第二计算终端,
[0134]
所述第一计算终端将所述第一随机数和所述第一累加器的和发送给所述第二计算终端,所述第二计算终端生成第二随机数,将所述第二随机数和所述第二累加器的和发送给所述第一计算终端,以使得所述第一计算终端和所述第二计算终端均获取置乱输入值,所述置乱输入值为所述第一随机数、所述第二随机数、所述第一累加器和所述第二累加器的和;
[0135]
所述第一计算终端将所述置换输入值和所述第一秘钥输入至函数秘密共享的第四预设算法,获取所述第一加密位,所述第二计算终端将所述置换输入值和所述第二秘钥输入至函数秘密共享的第四预设算法,获取第二加密位,其中,当所述第一累加器和所述第二累加器的和小于所述目标节点数量时,所述第一加密位和所述第二加密位的异或门运算结果为1,当所述第一累加器和所述第二累加器的和不小于所述目标节点数量时,所述第一加密位和所述第二加密位的异或门运算结果为0;
[0136]
所述第一计算终端将所述第一加密位作为所述第一加密度分布信息中的新一位数值,所述第二计算终端将所述第二加密位翻转后作为所述第二加密度分布信息中的新一位数值,或者,所述第一计算终端将所述第一加密位翻转后作为所述第一加密度分布信息中的新一位数值,所述第二计算终端将所述第二加密位作为所述第二加密度分布信息中的新一位数值。
[0137]
具体地,第一种方法主要使用了函数密秘共享中的分布式比较函数(distributed comparison function,下文简称dcf)来实现密文域的比较运算。一个dcfg
α,β
(x)输出β如果输入x《α,否则输出0。类似于fss的通用框架,一个基于fss的两方dcf机制由以下两个算法组成:
[0138]
1.(k1,k2,r1,r2)

gen(1
λ
,αα,β):给定一个安全参数λ和α,β,输出两个dcf密钥k1,k2和两个随机数r1,r2,(其中r1 r2=r
in
)每个给两方中的其中一方。
[0139]
2.《g
α,β
(x)》i←
eval(ki,x r
in
):给定一个dcf密钥ki和一个置乱的(masked)输入x r
in
,输出评估结果的一个密秘共享份额《g
α,β
(x)》i。
[0140]
dcf函数的安全评估过程只需要一轮的在线通信,即计算终端cs1和cs2发送《x》i ri,i∈{1,2}给彼此,去公开置乱的(masked)输入x r
in
而不损害加密输入x的隐私性。接下来介绍如何基于dcf函数完成操作。
[0141]
为了完成设置相关的参数为α=sizeb,β=1,输出域为之后可以将生成的dcf密钥分别发送给云服务器cs1和cs2。请注意,在实际工作场景中,这种离线准备密钥的工作可以由第三方服务器完成。在获得了相关的dcf密钥之后,cs
t∈{1,2}
首先交换《accu》
t
r
t
以公开accu r
in
。之后,它们各自在本地评估eval(k
t
,accu r
in
),该评估将输出《1》
t
如果accu《sizeb,否则输出《0》
t
。由于的algorithm 4中要求cs
1,2
输出[1]b如果accu≥sizeb,因此cs
1,2
其中的一方需要在本地翻转他的评估结果,以取评估结果的“非”。
[0142]
在第二种方法中,所述第一计算终端根据所述第一累加器获取第一加密比较结果,根据所述第一加密比较结果生成所述第一加密度分布信息中的新一位数值,述第二计算终端根据所述第二累加器获取第二加密比较结果,根据所述第二加密比较结果生成所述第二加密度分布信息中的新一位数值,包括:
[0143]
所述第一计算终端获取第一随机数,所述第二计算终端获取第二随机数,所述第一随机数和所述第二随机数的和为所述目标节点数量;
[0144]
所述第一计算终端获取第一比特数据,所述第二计算终端获取第二比特数据,所述第一比特数据为所述第一累加器和所述第一随机数的差对应的比特数据,所述第二比特数据为所述第二累加器和所述第二随机数的差对应的比特数据;
[0145]
所述第一计算终端和所述第二计算终端将各自持有的比特数据输入至并行前缀加法电路,执行异或门计算和与门计算分别得到所述第一比特数据的最高有效位和所述第二比特数据的最高有效位,当所述第一累加器和所述第二累加器的和小于所述目标节点数量时,所述第一比特数据和所述第二比特数据的最高有效位的异或门运算结果为1,当所述第一累加器和所述第二累加器的和不小于所述目标节点数量时,所述第一比特数据和所述第二比特数据的最高有效位的异或门运算结果为0;
[0146]
所述第一计算终端将所述第一比特数据的最高有效位作为所述第一加密度分布信息中的新一位数值,所述第二计算终端将所述第二比特数据的最高有效位翻转后作为所述第二加密度分布信息中的新一位数值,或者,所述第一计算终端将所述第一比特数据的最高有效位翻转后作为所述第一加密度分布信息中的新一位数值,所述第二计算终端将所述第二比特数据的最高有效位作为所述第二加密度分布信息中的新一位数值。
[0147]
第二种方法是基于密秘共享域的“位分解”。具体的,一个数x的补码的最高有效位(most significant bit,下文表示为msb),其可以表示x的正负属性(即msb=0则x≥0,否则msb=1)。给定补码表示的两个数a和b,其可以表示为一个数的两个密文共享份额,并分别被计算终端cs1和cs2持有。则a b的最高有效位可以通过一个定制的并行前缀加法电路安全地计算。如图6展示了一个定制的8位并行前缀加法电路。
[0148]
给定一个被计算终端cs1和cs2分别持有的密文云服务器cs1和cs2可以首先在本地分解《x》1和《x》2为比特数据:《x》i=xi[1],

,xi[k],i∈{1,2}。之后计算终端cs1和cs2将自己持有的比特位输入到定制的并行前缀加法电路中,安全地执行“异或门”和“与门”计算。正如前面所述,“异或”和“与”在布尔秘密共享中被原生地支持。所以云服务器cs1和cs2可以安全地计算一个密文数据的最高有效位,进而获得隐私输入与0的大小关系。基于并行前缀加法电路,云服务器cs1和cs2可以计算即输出如果accu≥sizeb,否则algorithm 4中要求cs
1,2
输出如果accu≥sizeb,因此cs
1,2
其中的一方需要在本地翻转他的评估结果,以取评估结果的“非”。
[0149]
根据前面的说明不难看出,对于桶映射中的每一位,有两种情况:为0或者为1,当为1时,需要对累加器进行清空,为0时则不需要清空,而为了在密文域实现对累加器的清空或者不清空,即分别对所述第一累加器和所述第二累加器进行更新,但是所述第一计算终端和所述第二计算终端无法推测所述第一累加器和所述第二累加器的和是否被清空,本实
施例提供的方法,在得到所述第一加密度分布信息和所述第二加密度分布信息之后,两个计算终端中的其中一个将本地持有的加密度分布信息的最新一位进行翻转,例如是所述第一计算终端将所述第一加密度分布信息中的最新一位数值翻转得到翻转位,那么如果桶映射中的最新一位为1时,所述翻转位和所述第二加密度分布信息的和(异或门运算结果)为0,如果桶映射中的最新一位为0时,所述翻转位和所述第二加密度分布信息的和(异或门运算结果)为1,所述第一计算终端和所述第二计算终端在密文域计算所述第一值和所述第二值的乘积,就可以实现在密文的情况下基于桶映射的最新一位对所述第一累加器和所述第二累加器的和进行清空或不清空。
[0150]
请再次参阅图1,本实施例提供的隐私保护的分布式图数据特征分解方法,还包括步骤:
[0151]
s400、所述目标图节点根据接收到的所述第一加密度分布信息和所述第二加密度分布信息确定所述目标图节点的度所述的目标区间,根据所述目标区间的边界信息确定目标采样敏感度,根据所述目标采样敏感度从拉普拉斯分布中采样噪声,根据所述噪声在所述目标结合中添加虚假三元组,生成目标集合,所述虚假三元组中的权重值为0;
[0152]
s500、所述目标图节点基于加性秘密共享对所述目标集合进行加密,得到第一加密集合和第二加密集合,将所述第一加密集合发送给第一计算终端,将所述第二加密集合发送给第二计算终端。
[0153]
所述第一计算终端和所述第二计算终端分别在本地持有的所述第一加密度分布信息和所述第二加密度分布信息的和为所述桶映射,所述第一计算终端和所述第二计算终端将本地持有的加密度分布信息发给图中的节点,那么图中的节点进行解密就可以得到明文的所述桶映射,然后基于所述桶映射对自己持有的局部图数据进行加密。具体如图7所示,当加密的桶映射在用户端解密之后,每个用户ui利用algorithm 5加密其局部图数据。这里主要需要注意的点是从拉普拉斯分布中采样的噪音ni可能是负的,这意味着用户ui需要删除一些边。显然,这将会严重地影响后续特征分解的精确度。为了解决这个问题,在本实施例中,每个用户ui截断ni(即algorithm 5的第4行)。之后,我们用表示真实的边和虚假的边的集合,表示用户ui添加权值为0的虚假的边之后的局部图数据。最后用户ui在每条(真实的或虚假的)边的权值a[i,j]上应用ass获得最终的局部图数据密文并将密文的份额和分别发送给cs1和cs2。
[0154]
本实施例提供的对局部图数据进行加密的方案,相较于让每个用户直接加密的其局部图数据a[i,:]中的每个元素,可以节省90%的密文存储空间,同时可以节省后续特征分解中的80%的在线通信和50%的计算时间。
[0155]
s600、所述第一计算终端和所述第二计算终端根据所述全局图中的各个节点对应的所述第一加密集合和所述第二加密集合,对所述全局图数据进行特征分解。
[0156]
所述第一计算终端接收到所述全局图中各个节点发送的所述第一加密集合,所述第二计算终端接收到所述全局图中各个节点发送的所述第二加密集合,在密文域上对全局图数据进行特征分解。下面首先对明文的图数据特征分解过程进行说明:
[0157]
给定一个n*n的邻接矩阵,在其上进行完整的特征分解的复杂度是n3。这是不必要
的,因为大多数图分析应用仅需要top-k的特征值和特征向量(k远小于n)。因此在实际的应用场景中,给定一个大规模的邻接矩阵a,为了计算它的top-k的特征值和特征向量,第一步是将其维度从n*n降低成m*m(m通常稍大于k),产生一个新的小矩阵待后续进一步处理。最受欢迎的降维算法是arnoldi算法(algorithm 1,伪代码如图8所示)和lanzcos算法(algorithm 2,伪代码如图9所示),他们分别作用于非对称矩阵和对称矩阵。降维之后,通常使用qr算法计算新的小矩阵的全部的特征值和特征向量。最后,小矩阵的top-k的特征值和特征向量即表示原始矩阵a的top-k的特征值和特征向量;而的top-k的特征值对应的特征向量(该矩阵的每个列向量是的一个特征向量)可以通过公式转换成原始矩阵a的top-k的特征值对应的特征向量v,其中矩阵p由algorithm 1和algorithm 2中的第11行得到。下面介绍明文的qr算法。
[0158]
qr算法以一种迭代的方式进行。正式地,给定目标矩阵l,设t0=l,在第k次迭代(k∈[1,k])中,输入上一轮迭代的计算结果t
k-1
,可以计算一次qr分解t
k-1
=q
k-1rk-1
,其中q
k-1
是一个正交矩阵,r
k-1
是一个上海森伯格矩阵,输出tk=r
k-1qk-1
。当qr算法结束时,最后一轮迭代的输出矩阵tk的对角线元素即是目标矩阵l的特征值,矩阵s=q1...qk是目标矩阵l的所有特征向量(每一列是一个特征向量)。可以使用givens旋转来完成一次qr分解。正式地,给定一个m*m的上海森伯格矩阵t
k-1
,可以创建正交的givens旋转矩阵gi,i∈[1,m-1]。
[0159][0160]
其中,且h(1)=t
k-1
。在这次qr分解结束时,
[0161][0162]
此外q
k-1
=g1...g
m-1
。图11展示了利用一系列givens旋转矩阵对一个4*4的上海森伯格矩阵完成一次qr分解的过程。
[0163]
所述第一计算终端和所述第二计算终端根据所述全局图中的各个节点对应的所述第一加密集合和所述第二加密集合,对所述全局图数据进行特征分解,包括:
[0164]
所述第一计算终端根据所述全局图中的各个节点对应的所述第一加密集合得到第一加密邻接矩阵,所述第二计算终端根据所述全局图中的各个节点对应的所述第二加密集合得到第二加密邻接矩阵;
[0165]
所述第一计算终端和所述第二计算终端基于加性秘密共享对所述第一加密邻接矩阵和所述第二加密邻接矩阵的和进行降维,得到降维矩阵;
[0166]
所述第一计算终端和所述第二计算终端基于加性秘密对所述降维矩阵执行qr算法,获取所述全局图数据的加密特征值和加密特征向量;
[0167]
其中,对于降维过程中的平方根运算,所述第一计算终端和所述第二计算终端基于加性秘密共享通过第二计算公式迭代计算得到平方根的倒数;
[0168]
所述第二计算公式为:
[0169][0170]
其中,y'n表示第n次迭代计算方根倒数的计算结果,x'表示待开方根的数。
[0171]
下面以arnoldi算法为例,介绍所述第一计算终端和所述第二计算终端在密文域进行降维运算的过程。观察图8中第1-7行的操作,均由加法和乘法组成,在加性秘密共享域自然地被支持。然而,如何在密文域执行第8,9行的操作具有挑战性,因为它们分别要求平方根操作(l2范数需要开平方根)和除法操作。
[0172]
在本实施例中,使用近似计算的方法,将平方根操作和除法操作分解成一系列在密文域支持的加法和乘法操作。具体的,为了在密文域计算平方根首先近似计算平方根的倒数即
[0173][0174]
其中,y'n表示第n次迭代计算方根倒数的计算结果,x'表示待开方根的数,其将迭代收敛到显然,减法和乘法在秘密共享域都原生地支持。此外,为了获得更快的收敛速度,可以使用初始值
[0175]
y'0=3e
0.5-x'
0.003。
[0176]
之后可以计算获得对于密文域的除法主要的挑战是计算倒数然而,algorithm 1的除法操作(第9行)中的倒数是其是第八行的计算结果(平方根)的倒数。因此,可以直接把上述平方根的倒数的计算结果作为再简单地乘以pk即可在密文域完成第9行。至此,就可以在密文域全部执行algorithm 1。具体的密文域的arnoldi算法可以如图10所示。对于其他的降维算法的安全计算方法例如lanczos方法,其需要安全执行的操作与安全的arnoldi方法相同,在此省略安全的lanczos方法的算法描述。
[0177]
qr算法主要有矩阵乘法组成,对于两个m*m的矩阵之间的乘法,在密秘共享域的直接方法是逐个元素相乘,其要求m3次乘法,并需要两个服务器之间通信2m3个元素,在本实施例中,采用矢量化的乘法元组实现更加高效的矩阵之间的乘法,节省通信量和计算量。即,两个矩阵之间的乘法需要的乘法元组可以矢量化为z=xy,其中x和y在安全乘法过程中扮演掩盖(masked)两个输入矩阵的角色。具体来说,对于两个n*n大小的密文矩阵和如果想计算它们之间的密文矩阵乘积现有的密秘共享协议是为矩阵中每次乘法而不是每个元素配置一对乘法元组(即),所以需要提前准备3n3个元素(即两个n*n大小的矩阵相乘需要n3次乘法,每次乘法需要一个乘法元组),但该处理方法是不高效且不必要的。本实施例中采用的乘法元组矢量化是指不直接随机生成独立的乘法元组,而是随机生成乘法元组矩阵之后,可以直接进行密文矩阵乘
法。两个云服务器p
i∈{0,1}
分别使用自己的秘密份额进行矩阵运算《e》i=《a》
i-《u》i和《f》i=《b》
i-《v》i。之后每一方pi将《e》i和《f》i发送给彼此获得明文的e和f。最后,pi,i∈{0,1}持有的乘积密文是《c》i=i
×e×
f f
×
《u》i e
×
《v》i 《e》i。可以发现这个过程双方只需要在线通信2n2个元素,即各发送给对方两个矩阵《e》i和《f》i。同时需要提前准备的乘法元组也变成了即3n2个元素。
[0178]
本实施例中安全的qr算法的伪代码如图12所示。其输入输出和回顾前文中说明的明文的特征分解,的对角线元素中的top-k个(最大的k个)是原始矩阵的top-k的特征值。而是小矩阵的特征向量,通过公式其可以转换为原始矩阵的特征向量,其中是安全的降维算法的输出矩阵。
[0179]
进一步地,发明人还发现,在每次givens旋转或h(i)gi时,仅h(i)的第i行和第i 1行被更新。因此为了节省开销,可以简化givens旋转矩阵gi从公式(1)到图13展示了利用优化的4*4的givens旋转矩阵完成一次qr分解。可以看出,相较于图11其可以节省大量的乘法。类似地,在计算(即algorithm 7的第15行)时,也可以把gi简化为gi。在经过简化之后,givens旋转矩阵采用遍历的形式相乘,如图13所示,givens旋转矩阵g1先乘h矩阵的左上的2*2的四个元素即h[1:2,1:2],再乘下一组元素即h[1:2,2:3]、h[1:2,3:4]。之后更新givens旋转矩阵,得到g2再进行下一行,即h[2:3,1:2]、[2:3,2:3]、h[2:3,3:4],以此类推(参见图13中的阴影部分)。
[0180]
值得说明的是,这里的4*4的h矩阵是一个例子,实际应用中h可以为任意维度的,都可以使用2*2的givens矩阵使用上述方式进行相乘进行更新。
[0181]
在经过上述的简化之后,可以发现,简化的givens旋转矩阵需要与大矩阵h中的两行元素进行多次相乘,即在多个乘法中重复使用。因此,可以使用耦合的乘法元组来节省两个计算终端之间的通信量。例如,假设需要将密文矩阵乘以密文矩阵仅需要使用一个随机矩阵去掩盖(mask)而没必要使用k个不同的随机矩阵。因此,当多个乘法需要由同一个作为乘数时,在本发明中仅需要使用一个随机矩阵去掩盖它。最后,的转置矩阵可以让计算终端cs1和cs2在本地对自己拥有的秘密共享份额《gi》1或《gi》2进行转置得到,从而进一步节省通信开销。
[0182]
在经过上述的优化之后,本实施例中提供的安全的qr算法可以获得极大地性能提升。具体的,基础的安全的qr算法需要计算终端cs1和cs2在线通信6k(m-1)m2个元素(忽略近似计算平方根所需要通信量,因为没有对它进行优化;k和m分别对应于algorithm 7中的k和m),而优化后的安全的qr算法仅需要在线通信k(m-1)(6m 4)个元素。根据实验发现,与基础的安全的qr算法相比,优化后的安全qr算法可节省高达97%的在线通信,以及9.3%的计算时间。
[0183]
综上所述,本实施例提供一种隐私保护的分布式图数据特征分解方法,在该方法
中,持有局部图数据的图节点,加密自身的度信息,并发送给第一计算终端和第二计算终端,第一计算终端和第二计算终端协同地在密文域计算生成第一加密度分布信息和第二加密度分布信息,可以使得图节点确定自身的度所属的目标区间,进而选择合适的采样敏感度采样噪声,在真实的图邻接矩阵中添加权值为0虚假的边,并且矩阵三元组的形式实现了矩阵的稀疏表示,在添加了虚假边的邻接矩阵上进行加密的特征分解,实现了在保护节点隐私的前提下,保留图数据的稀疏性同时也保证了特征分解的有效性,实现了隐私保护的分布式特数据特征分解。
[0184]
应该理解的是,虽然本发明说明书附图中给出的的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0185]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0186]
实施例二
[0187]
基于上述实施例,本发明还相应提供了一种隐私保护的分布式图数据特征分解系统,所述系统包括目标图节点、第一计算终端和第二计算终端;所述目标图节点、所述第一计算终端和所述第二计算终端用于协同执行实施例一中隐私保护的分布式图数据特征分解方法中的相关步骤。
[0188]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献