Protocol-Design
挑戰證明擁有文件
假設 Bob 想給 Alice 一個大文件,以這樣的方式:
- Bob 無法保留該文件,但可以在將文件提供給 Alice 之前使用它來預先計算他需要的任何內容
- Bob 必須能夠定期向 Alice 發起挑戰,並且 Alice 只有在發起挑戰時擁有該文件時才能成功回答挑戰(不允許使用捷徑)
- 質詢不能包括 Alice 向 Bob 發送文件供他檢查(每個質詢必須包括交換小的、恆定大小的消息)
天真的方法是讓 Bob 生成一堆隨機數 $ N_0, N_1, \cdots $ 和預計算 $ S_i = HMAC(N_i, file) $ 並且挑戰包括發送下一個 $ N_i $ 並期待返回相應的 $ S_i $ ,但這樣做的缺點是您只能提前準備有限多個挑戰(Bob 需要獲取文件以製作更多挑戰),並且 Bob 的空間使用量與準備的挑戰數量成正比。
我們能做得更好嗎?是否有不需要提前預先計算挑戰的線上協議?
基本上,我正在尋找一種方法來挑戰設備,以證明它可以在準確的時間訪問特定的、可能無限大小的資訊片段(挑戰者只能通過一些唯一標識符和某種指紋知道)無需將全部內容髮送過來即可完成挑戰。
謝謝
這稱為可檢索性證明或可證明數據擁有(這兩個概念的定義略有不同)。你會發現很多論文討論結構。該領域被引用次數最多的兩篇論文是:
- Shacham & Waters:可回收性的緊湊證明
- Ateniese 等人:不受信任商店的可證明數據擁有