安全多方計算中使用了多少多項式?
基於 Samir Secret 共享方法的安全多方計算依賴於多項式。想像一下,應該將數據語料庫外包給一堆不受信任的伺服器進行任何計算。現在,數據可以由受信任的客戶端使用秘密共享進行拆分,並分佈在多個不受信任的伺服器之間。隨後,對數據的任何操作都可以使用安全多方計算協議完成,這樣任何一個不受信任的伺服器都無法訪問完整的明文數據。
如果數據語料庫是機密文件,並且客戶端將它們標記為每個單詞,那麼秘密將這些單詞共享為三個共享。將它們分發到三個不受信任的伺服器。以便隨後客戶端可以使用某些 SMC 協議在文件中搜尋關鍵字。
客戶是否應該對每個單詞(或單詞集合)使用不同的多項式,或者可以對整個文件語料庫使用相同的多項式
恰恰,
- 如果相同的多項式用於秘密共享所有單詞,那麼使用關鍵字共享搜尋語料庫將很容易。但是隨後每個單詞的秘密份額將是相當確定的,並且可以啟動頻率分析來辨識單詞。
- 如果使用不同的多項式,那麼在整個語料庫中搜尋關鍵字是如何工作的?
這不僅適用於 search ,也適用於包括算術在內的任何其他操作。有什麼幫助嗎?
對於“標準”Shamir 秘密共享,您對要共享的每個秘密使用一個新的隨機多項式(包括在 SMC 中使用 Shamir 秘密共享時)。即,您將為每個秘密使用不同的多項式。請注意,Shamir 秘密共享並不直接作用於“文字”,而是作用於某些領域的元素。您必須將數據轉換為欄位元素,然後單獨共享這些元素。
然而,Shamir 秘密共享有一種變體,稱為“打包秘密共享”。在此變體中,您可以共享一個“塊” $ l $ 使用單個多項式的秘密。這意味著您將使用一個因子 $ l $ 更少的多項式。也有依賴於這種共享的 SMC 方案,儘管它們比使用標準 Shamir 秘密共享的方案要復雜一些(可以在此處找到此類方案的範例:iacr eprint 連結)。
至於搜尋如何工作,這確實不是標準化的東西。SMC 允許您在共享數據上計算任何算術電路。您基本上可以將任何功能(包括關鍵字搜尋)表達為算術電路。然而,究竟如何做到這一點並非易事。
事實上,對於這個特定任務,您最好選擇一種不同的 SMC 技術,基於布爾電路而不是算術電路。這是因為關鍵字搜尋可能涉及很多比較。布爾電路更適合的東西。
外包時我們有兩種搜尋:關鍵字搜尋和文本搜尋。
在關鍵字搜尋中,您可以在文本中選擇一些關鍵字並在外包之前對其進行預處理。在伺服器中,每個關鍵字只有一個實例,因此不存在重複問題。有可搜尋加密的文獻主要涵蓋了這種搜尋。請注意,在這種情況下,即使文本中存在預處理關鍵字,您也無法找到其他任何內容。
在這種情況下,您可以簡單地使用一個多項式。有許多安全協議可以解決這種情況。
在文本搜尋中,您不能或根本不想選擇一些關鍵字。例如,在 DNA 數據集中,沒有這樣的關鍵字可供選擇,並且有一個字元流。在這種情況下,伺服器中有很多重複項,可用於通過統計分析揭示整個文本。
在這種情況下,由於重複,您不能使用單個多項式。另一方面,您不能使用多個多項式並保持查詢的通信順序小於 $ O(|text|) $ .
這種搜尋的最佳解決方案是外包模式匹配,S.Fuast 等人,2014 年。然而,它們的工作方式仍然是關鍵字搜尋。