在我們的亂碼電路系列的第 2 部分中,我們看到,如果我們有辦法讓 Alice 在 Alice 不知道 Bob 收到什么信息的情況下向 Bob 發送一些他需要的信息,那么可以私下評估任意函數(即,不透露要計算的函數的輸入)。雖然這在直覺上似乎是不可能的,但發送方(愛麗絲)有一種方法可以向接收方(鮑勃)提供一組可能的消息,這樣鮑勃從愛麗絲那里得到他想要的消息,但愛麗絲不知道鮑勃收到了哪條消息 - 即使她提供了消息!
要了解遺忘傳輸的工作原理,需要對公鑰加密有一個基本的了解。公鑰加密的每個用戶都有兩個數學上相關的密鑰,而不是在用戶之間共享私鑰(與 AES 一樣):私鑰 k 只有用戶知道,以及公鑰 kG,其中 G 是公共參數。用戶可以向任何人透露他們的公鑰 kG,但絕不能透露他們的私鑰 k。即使其他用戶都知道 G 和 kG,也無法提取用戶的私鑰 k。
讓我們來看看這個協議是如何工作的,以了解為什么接收方只能恢復一條消息,以及為什么發送方不知道收到了哪條消息:
發送方首先發布公鑰值 kG,只有他們知道該值 k。即使 kG 和 G 都是公開的,其他人也不可能恢復 k。
接收方現在構造一個值,該值取決于他們想要的消息 M0 或 M1。此值必須被值 rG “屏蔽”,否則發件人將清楚他們選擇的是哪條消息。
為了接收 M0,它們構造并發送 R = 0(kG) + rG = rG
為了接收 M1,它們構造并發送 R = 1(kG) + rG
由于發送方不知道值 rG,因此他們無法區分 (rG) 和 (rG + kG)。發送方現在構造并返回兩個值 V0 和 V1。讓我們根據接收方要恢復的消息來研究 V0 和 V1 是什么:
請記住,接收方只能訪問 G、kG 和 r,因此他只能通過將隨機值 r(他們選擇)乘以發送方公鑰 kG 來計算非盲值 r(kG)。接收方無法計算紅色的盲值,因為接收方不知道 k。 請注意接收方如何通過從相應的 Vb 值中減去 r(kG) 來成功解盲他們選擇的消息 Mb。但是,他們無法刪除 V(1-b) 上的盲法,因為接收方不知道發送方的私鑰 k 來計算 k(rG - kG) 或 k(kG + rG)。因此,接收方準確地恢復了他們請求的消息,而發送方不知道他們能夠恢復哪條消息!
賦值器步驟 (鮑勃)
現在我們已經了解了 Oblivious Transfer 的工作原理,我們準備完成上一篇文章并完成評估任何函數的通用解決方案,而無需任何一方透露他們的輸入。
Alice 生成亂碼表后,將連線 1 和亂碼輸出列的輸入鍵發送給 Bob。為了檢索與鮑勃的輸入位b對應的線路2的輸入鍵,他與Alice進行了遺忘傳輸協議。這允許 Bob 只學習與他的輸入位 b 對應的鍵,而 Alice 不知道 Bob 能夠恢復哪個輸入鍵。亂碼表現在處于以下狀態:
Bob 知道這對輸入鍵正好解鎖了一個亂碼輸出條目,但由于他不知道 Alice 的鍵對應于哪個輸入位,他將不得不嘗試解密所有四個條目。只有一個解密條目位于 {0,1} 中,而其他條目將顯示為隨機數。Bob 現在發布結果,以便 Alice 和 Bob 都了解函數的結果,而不必透露他們的私人輸入。
亂碼電路的應用
使用專用輸入計算函數的問題稱為安全多方計算(MPC)或安全函數評估(SFE)。亂碼電路為許多不同領域的重要問題提供了解決方案,包括IP保護(在不知道功能是什么的情況下評估功能),醫療保健(分析而不披露醫療記錄),生物識別(比較而不披露生物特征測量值),私有數據庫即服務(托管和處理對處理器隱藏的客戶數據的查詢),基于云的機器學習(保護專有模型免受客戶侵害, 以及來自處理器的敏感客戶數據)等等!
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19259瀏覽量
229652 -
函數
+關注
關注
3文章
4327瀏覽量
62571 -
MPC
+關注
關注
2文章
36瀏覽量
21221
發布評論請先 登錄
相關推薦
評論