-1
A
回答
1
只要您提供的應用程序是用戶的黑匣子,我不認爲這是一個可解決的問題。實現你想要的東西的方法是將源代碼提供給客戶端,以便用戶可以檢查它並且可能自己編譯它。例如,請考慮Tarsnap,這是針對這種問題(他們提供了在線備份「真正的偏執狂」)。 Tarsnap客戶端僅提供以源代碼形式提供。
您可以通過發佈協議規範來提供類似(但較弱)的保證,而不會將源代碼發佈到您的實現中。這允許用戶檢查協議,確定它是否發送可以在傳輸中讀取的數據,並可能實現自己的客戶端以保護自己免受客戶端可能存在的任何旁路信道的影響。
總體規則是密碼學最好在公開場合完成。你的系統中的每一個祕密都是用戶必須隱式信任你並且不能證明你的行爲的一塊。你執行的祕密越少,你就越可信。
然而,最終我不相信有可能證明夏娃不知道某事。只有證明Eve才能發現某些事情,因爲她在某些規則之內。
作爲一個快速證明通過反例:
- 艾麗絲使用可證安全變換E(K,M)發送消息M給Bob。
- Eve截取E(K,M),但由於它是可證實的安全的,她沒有K,所以她不能解密它。
- 夏娃開始約會鮑勃和說服他告訴她K.
- 夏娃執行d(K,E(K,M))和恢復M.
- 因此,E(K,M)並不能證明失明在所有可能的攻擊中,儘管在傳統攻擊方面證明是安全的。
相關問題
- 1. 什麼是算法
- 2. 什麼是TreeNode.Nodes.ContainsKey的算法
- 3. 這是什麼算法?
- 4. 什麼是McNaughton-Yamada算法?
- 5. 這是什麼算法?
- 6. 什麼是s2k算法?
- 7. 什麼是cooks-kim算法
- 8. 這是什麼算法
- 9. 什麼是單遍算法
- 10. 什麼是Excel Days360算法?
- 11. 什麼是「make -jX」算法
- 12. 減法算法的意思是什麼?
- 13. 什麼搜索算法失敗最快
- 14. 什麼是單程算法,是我的算法?
- 15. 「聲明方法」的語義是什麼?
- 16. 最明智的做法是什麼?
- 17. 自然算法顯示計算答案的算法是什麼
- 18. 什麼是我的Javascript語法失敗?
- 19. 什麼是基於規則的算法?
- 20. 什麼是好的(半)異步算法?
- 21. Random.next()背後的算法是什麼?
- 22. search()函數的算法是什麼?
- 23. Robocopy背後的算法是什麼?
- 24. 什麼是好的重疊組算法?
- 25. 什麼是洗牌最好的算法?
- 26. 什麼是好的輪詢算法
- 27. 什麼是Linux diff -y的算法?
- 28. 這個算法的上界是什麼?
- 29. 什麼是最重要的算法?
- 30. 什麼是java互補的算法