Data-Privacy

根據party-2 白/黑名單過濾party-1 字元串,保持列表私有

  • October 4, 2018

假設我有一個伺服器和一個客戶端。客戶端有一個任意字元串的列表,伺服器應該使用伺服器端保存的白名單和黑名單來過濾這個列表。最好不要將字元串列表共享給伺服器並將白/黑名單共享給客戶端。例如,客戶端打開的應用程序列表是敏感數據,白名單/黑名單也不應該從伺服器公開到外部世界。我想知道是否可以根據白/黑名單檢查客戶端字元串,使它們在所有各方都保持私密。我現在能看到的唯一方法是:

  1. 客戶端:將字元串列表拆分為按空格拆分的字元串列表並散列每個元素。
  2. 伺服器:對白名單和黑名單做同樣的事情。
  3. 伺服器:比較客戶端和伺服器的雜湊值。

這個解決方案有很多缺點。是否有可能以其他方式重新實現它?或者,這個想法是否可行?謝謝你。

我看到兩個問題;

  • 關鍵字的數量非常少,並且可能來自伺服器的字典攻擊。

for i in English_Dictionary

if Hash(i) == target_hash

返回成功

此外,也可以使用Rainbow表。為了克服這些問題,您需要在明文中添加鹽,以防止來自伺服器端的任何字典或彩虹攻擊。

有更先進的保護方法,如;

  • 從宋等開始的對加密數據的搜尋。阿爾的 想法
  • 還有另一種可能太慢的方法,使用 FHE 技術。您可以完全使伺服器失明。
  • 如果客戶詢問此字元串是黑色還是白色,您還可以使用私人資訊檢索 (PIR)技術。有一個FHE PIR實現。
  • 此外,命中的頻率可能會洩漏資訊1、2。頻率攻擊真的取決於應用程序。上面列出的方法,不是鹽,也可以克服頻率攻擊。

引用自:https://crypto.stackexchange.com/questions/62859