2014-03-29 18 views
-1

假設我想開發一個IM應用程序,並且我想確保我的用戶不會獲得他們的對話信息,也就是說,通過算法證明我不瞭解某些內容。「失明」的算法是什麼?

我該怎麼做?他們的東西類似於公鑰法嗎?

回答

1

只要您提供的應用程序是用戶的黑匣子,我不認爲這是一個可解決的問題。實現你想要的東西的方法是將源代碼提供給客戶端,以便用戶可以檢查它並且可能自己編譯它。例如,請考慮Tarsnap,這是針對這種問題(他們提供了在線備份「真正的偏執狂」)。 Tarsnap客戶端僅提供以源代碼形式提供。

您可以通過發佈協議規範來提供類似(但較弱)的保證,而不會將源代碼發佈到您的實現中。這允許用戶檢查協議,確定它是否發送可以在傳輸中讀取的數據,並可能實現自己的客戶端以保護自己免受客戶端可能存在的任何旁路信道的影響。

總體規則是密碼學最好在公開場合完成。你的系統中的每一個祕密都是用戶必須隱式信任你並且不能證明你的行爲的一塊。你執行的祕密越少,你就越可信。

然而,最終我不相信有可能證明夏娃不知道某事。只有證明Eve才能發現某些事情,因爲她在某些規則之內。

作爲一個快速證明通過反例:

  • 艾麗絲使用可證安全變換E(K,M)發送消息M給Bob。
  • Eve截取E(K,M),但由於它是可證實的安全的,她沒有K,所以她不能解密它。
  • 夏娃開始約會鮑勃和說服他告訴她K.
  • 夏娃執行d(K,E(K,M))和恢復M.
  • 因此,E(K,M)並不能證明失明在所有可能的攻擊中,儘管在傳統攻擊方面證明是安全的。