是否可以製作時間鎖定的加密算法?
我不確定我問的是不是一個有效的問題,但這裡有。
是否有可能在加密算法中添加一種機制,這意味著它必須是一天中的某個時間或一年中的某個天才能解密加密。
澄清一下,它應該只能在特定時間解密,例如
- 2 月 4 日或
- 上午 11.23
- 或下午 1 點到 2 點之間
以類似於銀行保險箱上的時鐘的方式工作。
顯然,這需要對網際網路時間伺服器的加密訪問,以確保不受欺騙的時間信號。
- 這有意義嗎?
- 這有沒有可能?
- 機制是什麼?
我在 stackexchange.com 上問過這個問題,但這似乎是一個更好的地方。
Rabin 和 Thorpe 在這裡寫了一篇關於這個主題的技術報告: “Time-Lapse Cryptography”
那裡也有許多相關的引文。還有一張他們建構的原型的海報:http ://www.eecs.harvard.edu/~cat/papers/tlc-poster.pdf 。
密碼算法不具備時間感知能力,因此您需要具備時間感知能力的第三方來完成此操作。第三方還需要訪問安全的時間源(如現場原子鐘或與離岸原子鐘的安全連接)
精確的實現和協議取決於你的案例,但作為一個例子,你可以有一個伺服器來做兩件事:
- 接受包括時間鎖定消息和“發布日期”的輸入
- 僅在消息的發布日期過後才允許請求獲取消息
對於第一種情況,伺服器會生成一個足夠長的隨機對稱密鑰,用它加密消息,對加密的消息進行散列,然後在某個數據庫中添加密鑰 + 散列 + 發布日期。然後,伺服器返回雜湊值,作為剛剛被時間鎖定的消息的標識符。如果需要,它還可以返回加密的消息(大概,送出消息的實體會在之後銷毀他的明文副本,因為他是希望對其進行時間鎖定的人)。
然後,在第二種情況下,客戶端將標識符發送到伺服器。伺服器查找它,並檢查發布日期。如果還沒有通過,伺服器會拒絕並放棄,但是如果是,伺服器只會返回正確的加密密鑰(如果需要,還可以返回明文消息)。
這只是非常基本的時間鎖定服務的一個範例(例如,您可以通過使用公鑰加密來增強服務的各個方面)。
您的問題很廣泛,也許您應該添加更多細節。