文章目录
- Secure Summation Operation
- Secure Set Union Operation
Secure Summation Operation
让我们通过一个具体的例子来说明这个算法。
假设有三个数据拥有者 S1, S2 和 S3,他们分别持有以下值:
- S1 持有 value1 = 10
- S2 持有 value2 = 20
- S3 持有 value3 = 30
在正式开始安全求和操作之前,每对数据拥有者 Si 和 Sj (i < j) 需要事先秘密协商一个随机数 sci,j。假设他们协商的随机数如下:
- S1 和 S2 协商 sci,j = sc1,2 = 5
- S1 和 S3 协商 sci,j = sc1,3 = -3
- S2 和 S3 协商 sci,j = sc2,3 = 4
接下来,每个数据拥有者根据公式 perturb 自己的值:(加上比自己大的id的协商值,减去比自己小的协商值)
对于 S1:
- value′1 = value1 + (sc1,2 + sc1,3) - 0 = 10 + (5 + (-3)) - 0 = 10 + 2 = 12
对于 S2:
- value′2 = value2 + sc2,3 - sc1,2 = 20 + 4 - 5 = 20 - 1 = 19
对于 S3:
- value′3 = value3 - (sc1,3 + sc2,3) = 30 - ((-3) + 4) = 30 - 1 = 29
然后,每个数据拥有者将 perturb 后的值发送给空间数据联合体:
- S1 发送 value′1 = 12
- S2 发送 value′2 = 19
- S3 发送 value′3 = 29
最后,空间数据联合体将这些值相加,得到最终结果:
- 最终结果 = value′1 + value′2 + value′3 = 12 + 19 + 29 = 60
我们可以验证这个结果是否等于原始值的和:
- 原始值的和 = value1 + value2 + value3 = 10 + 20 + 30 = 60
通过这种方式,算法在保证数据隐私的前提下,成功地计算出了多个数据拥有者的值的和。
Secure Set Union Operation
让我们通过一个具体的例子来说明这个算法。
假设有三个数据拥有者 S1, S2 和 S3,他们分别持有以下数据集:
- S1 的数据集 set1 = {1, 2, 3}
- S2 的数据集 set2 = {3, 4, 5}
- S3 的数据集 set3 = {5, 6, 7}
首先,每个数据拥有者生成一个随机集:
- S1 生成 rset1 = {8, 9}
- S2 生成 rset2 = {10, 11}
- S3 生成 rset3 = {12, 13}
接下来,按照算法的步骤进行:
- S1 计算 tset1 = set1 ∪ rset1 = {1, 2, 3} ∪ {8, 9} = {1, 2, 3, 8, 9},并将 tset1 发送给 S2。
- S2 计算 tset2 = tset1 ∪ set2 ∪ rset2 = {1, 2, 3, 8, 9} ∪ {3, 4, 5} ∪ {10, 11} = {1, 2, 3, 4, 5, 8, 9, 10, 11},并将 tset2 发送给 S3。
- S3 计算 tset3 = tset2 ∪ set3 ∪ rset3 = {1, 2, 3, 4, 5, 8, 9, 10, 11} ∪ {5, 6, 7} ∪ {12, 13} = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13},并将 tset3 发送给 S1。
然后,开始第二轮操作:
- S1 计算 tset1 = tset3 − rset1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} − {8, 9} = {1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13},并将 tset1 发送给 S2。
- S2 计算 tset2 = tset1 − rset2 = {1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13} − {10, 11} = {1, 2, 3, 4, 5, 6, 7, 12, 13},并将 tset2 发送给 S3。
- S3 计算 tset3 = tset2 − rset3 = {1, 2, 3, 4, 5, 6, 7, 12, 13} − {12, 13} = {1, 2, 3, 4, 5, 6, 7},并将 tset3 发送给 S1。
最后,S1 将 tset3 提交给空间数据联合体。此时,tset3 = {1, 2, 3, 4, 5, 6, 7},它等于 set1, set2 和 set3 的并集。
通过这种方式,算法在保证数据隐私的前提下,成功地计算出了多个数据拥有者的集合并集。