文章目錄
- 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 的并集。
通過這種方式,算法在保證數據隱私的前提下,成功地計算出了多個數據擁有者的集合并集。