是否有可能以密碼方式證明密文最後一次被解密/加密的時間是什麼時候?
我想提供加密和解密文件的服務,並且我想向使用者提供我沒有竊取他們的密鑰並閱讀他們的文件的證據。
我知道我可以用加密時間戳證明文件上次修改的時間。是否可以證明文件在給定時間段內被加密/解密?
在我的腦海中,我在想也許有某種方法可以安排需要某種工作證明來加密/解密文件,但我對發明自己的加密貨幣感到不舒服。
更新的答案:
不,這在密碼學中是不可能的。 你有密文,你有密鑰。眾所周知,您可以將這些副本複製到其他電腦並在不告訴任何人的情況下解密密文。沒有辦法(使用密碼學)證明你沒有這樣做。
一種方法是實施安全服務並聘請獨立審計員來審計您的程式碼和架構,並證明您似乎已經以保護客戶數據的方式進行了設置。您可以聘請獨立的安全專家來審查您的系統並編寫客戶可以查看的公開報告。我不知道這是否會給潛在客戶帶來更好的舒適感,或者是否物有所值。
我能想到的唯一方法,通過技術手段解決這個問題,就是使用可信計算。可信計算依賴於可信硬體 (TPM),它對遠端證明的支持將允許您向其他人證明您正在執行什麼程式碼。您可以將原始碼發佈到您的軟體中,以允許任何人驗證您的軟體不會複製他們的密鑰或數據,並使用遠端證明來證明您正在使用該優質軟體。
然而,以這種方式使用可信計算是極其複雜的。可信計算是最前沿的東西;這是一個很大比例的工程和管理問題。此外,大多數客戶可能沒有耐心、技能或願望來承擔驗證您的系統是否正常工作所需的所有任務。
所以,我認為您的問題沒有技術解決方案。您將不得不依賴客戶的信任、聲譽、契約保證和其他社會/法律手段,而不是技術解決方案。
評論:您的問題更多是資訊安全問題而不是密碼學問題。您熟悉IT 安全嗎?
原答案:
我認為您需要更好地定義問題,確定誰是委託人/參與者以及威脅模型是什麼。
如果解密者知道密文和解密密鑰,想要破壞協議,就不能證明解密者沒有解密密文。
解密者可以證明他確實解密了密文(使用零知識證明,可能帶有一些時間戳)。但是,他無法證明他閱讀了解密的消息或關注它或對其採取了行動,因此我懷疑這在實踐中基本上沒有用。
如果您可以限制對密文或解密密鑰的訪問,那麼您可以證明一些部分陳述。例如,如果您直到時間才將密文發布給任何人 $ t $ , 你可以證明沒有人可能在時間之前解密它 $ t $ . 但是,如果您知道密鑰,您將無法證明您沒有提前釋放它 $ t $ (除非可能通過使用 TPM / 可信計算),因此您可能需要被信任才能使這有意義。
還有許多其他可能的場景——要提出一個特定的解決方案,我們可能需要更詳細地了解威脅模型和需求。