Encryption

為 XChaCha20 使用許多隨機數是否安全?

  • March 29, 2021

我有一個非常簡單的問題。由於 XChaCha20 隨機數是 192 位的,因此在技術上對加密消息的最大數量沒有限制,因為兩個隨機隨機數相同的可能性非常小。可以使用相同的密鑰,但不同的隨機數來加密大塊的大文件嗎?基本上,我一次讀取 1KB 的大文件,使用相同的密鑰但隨機的 nonce 加密。如果文件是 1GB,那麼我將使用 1000000 個隨機數。如果我以 1MB 的塊進行加密,那麼我將使用 1000 個隨機數。這樣做安全嗎?(假設所有內容都經過身份驗證,並且我使用 CSPRNGs 作為隨機數)

是的。事實上,“nonce”是一個使用過一次的數字。如果您曾經重用(nonce,key)對,安全性會災難性地破壞。對於大的分塊文件,您可以簡單地使用分塊編號作為隨機數,只要您在每個文件後重新鍵入並可以跟踪計數即可。

Libsodium 的 secretstream API在內部執行此操作。如果可能,請使用它,因為它比建造自己的建築要安全得多。

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