Nonce

使用隨機數和時間戳有什麼好處?

  • November 1, 2016

我知道 nonce 和時間戳都用於防止重放攻擊,並且 nonce 可以在允許視窗中使用時間戳重放消息的情況下提供更高的安全性。但是,如果一個 nonce 可以提供時間戳所做的所有保護,為什麼它們會一起使用呢?

但是,如果一個 nonce 可以提供時間戳所做的所有保護,為什麼它們會一起使用呢?

如果將時間戳與 nonce 結合使用,它可以幫助降低 nonce 重用的風險。保證 nonce 在相關範圍內永遠不會重複通常會使系統更加複雜,因為它需要在該範圍“活動”時可靠地維護狀態。

例如,想像一下,發送使用計數器 nonce 加密的數據包的系統會瞬間斷電,然後恢復,並使用斷電前保存的密鑰/隨機數對恢復傳輸。你如何保證它不會重用它在斷電之前使用的隨機數?

這類問題屬於有狀態密碼學的範疇——密碼方案要求您以正確的方式在呼叫之間保持和更新某些狀態。錯誤地或不可靠地保持這種狀態是失敗的常見來源。時間戳並不總能解決狀態問題,但它們確實可以提供幫助。

此外,它們對於各種非加密原因也很有幫助。例如,時間戳本身通常不能提供事件的總順序,因為兩個事件可能被測量為同時發生。添加計數器為您提供了一種對此類同時發生的事件進行一致排序的方式——即使是任意順序(在任何意義上都不能反映現實),如果各方都同意,通常也很有用。

如果我們特別討論重放,如果您將時間戳作為關聯數據進行身份驗證並拒絕過去標記過遠的數據,您通常會削減攻擊者的許多選項,這通常是一個加分項。但是,這並不要求您將時間戳用作加密算法的隨機數,而是用作身份驗證的**關聯數據

引用自:https://crypto.stackexchange.com/questions/41170