
我有一個文本文檔,我不想透露全部內容,但我想提前發布一些有關它的信息,以便稍後聲明原創性。例如,如果文字文件是X,那麼我可以使用任何好的雜湊函數h並將h(X)發布給公眾。稍後,如果我想聲稱我已經事先擁有了文件 X,我可以將整個 X 發布給公眾。
但是暴露整個X來證明我擁有X也暴露了X的全部內容。有了這個,我想知道是否有一個實用程式可以生成“哈希”h(X) 和一些零知識證明方案,以便我可以聲稱擁有與哈希值h(X) 匹配的X,而無需透露實際內容X 的。
所以基本上我想我想要類似於一些命令列實用程式(例如,PGP)的東西來進行零知識證明。這樣做會有什麼好處嗎?
答案1
我相信執行此操作的標準方法是提供文件的 SHA 校驗和。這是您似乎正在考慮的哈希類型,但與 PGP 無關。
它們是 NIST 標準,因此享有盛譽。不要使用 SHA1,因為理論上它可能被駭客攻擊 - SHA2 沒問題。
sha256sum 可以從 Linux 中的檔案建立此哈希,Windows 有一個 PowerShell 命令 get-filehash 可以執行相同的操作。
為了獲得更多證據,您還可以提供替代雜湊值(例如 sha3 和 md5 - 但請注意 md5 本身不夠強大)。另請考慮,作為律師協會成員的律師有義務,因此您可以要求他們保留一份副本 - 在某些國家/地區,太平紳士也可以幫助提供證明。