一個故事理解 基于秘密共享的多方安全計算

最近 聯(lián)邦學習 概念很是火熱,同態(tài)加密、不經(jīng)意傳輸、秘密共享 這些名詞也常有耳聞,大多數(shù)相關(guān)的文章都寫得很專業(yè),專業(yè)到把我們這些剛想入門的新手直接就給拒之門外了。

今天嘗試通過一個小故事來簡單理解 基于秘密共享的多方安全計算,關(guān)于這個名詞的定義我就不用專業(yè)詞匯贅述了,直接看故事。


  • 我、小王、小張是同一家公司的員工
  • 我們各自不知道對方的工資
  • 我們都不想讓其他人知道自己的真實薪資
  • 但我們特別想知道我們間的平均工資,來決定自己是否應該申請漲薪

今天的主角 秘密共享 就是來解決這個問題的,大家可以在保證自己薪資不泄露的前提下求得平均工資。咋一聽這簡直天方夜譚,逗我呢,那咋算嘛?

其實通過一些簡單的數(shù)學知識就能做到了,接下來大家就跟著我的方法來試著算一下,假設(shè)大家工資是:

  • 我 5000
  • 小王 4000
  • 小張 9000

第一步,我們?nèi)朔謩e將自己的薪資拆成任意三個數(shù)相加的和,如:

  • 我 5000 = 1000 + 1000 + 3000
  • 小王 4000 = 2000 + 1000 + 1000
  • 小張 9000 = 4000 + 3000 + 2000

現(xiàn)在每個人手上都有了 3 個數(shù)字,選其中 2 個數(shù)字分別告訴其他倆人,留下 1 個數(shù)字只有自己知道。

如下圖所示,經(jīng)過這樣的 “秘密” 交換,每個人手上擁有了 3 個新的數(shù)字,其中一個是之前自己留下的,另外兩個分別來自其他倆人。大家都將自己的信息以特定的方式共享了出來,并且因為大家都保留了 1 個只有自己知道的數(shù)字,所以這種共享是安全的,不會泄露自己的真實薪資的。

接下來,如果要求 3 個人的工資總和,只需要每個人將手上新的 3 個數(shù)相加之和(圖中黃圈)公布給大家即可,再次加總就能得到 18000 的總數(shù),除以 3 就是平均工資 6000。

原來我每天辛辛苦苦工作,拿到的錢還不及平均數(shù)!知道真相后的我第二天就向老板提出了加薪申請。


當然,實際工程中的算法并不會這么簡單,這個示例只是幫助正要入門的新手理解一些基本的理念,數(shù)據(jù)科學并沒有想象中那么可怕~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容