Aes

對於一方來說,在不到 40 個字節中加密 4 個字節的最安全方法是什麼,這將是公開的?

  • November 19, 2020

我有一個項目,使用者需要在區塊鏈上儲存加密的 U32,以便他們可以自己恢復它:使用者將始終擁有可用的密鑰,但可能“忘記”U32 值。不需要其他方對資訊進行解碼,但明文最終也會在鏈上公開。

使用者有一個熵種子,從中可以確定地導出無限數量的任意大小的密鑰。我一直在尋找使用單個 AES 塊,但我想到一個簡單的 XOR 也足夠了。假設使用者每次執行此類操作時都會派生一個唯一的“密鑰”,有沒有理由做比這更複雜的事情?

顯而易見的答案是使用一次性墊。如果您確實為每個 4 字節塊使用唯一的隨機 4 字節密鑰,那麼它是可證明的安全的。

使用者有一個熵種子,從中可以確定地導出無限數量的任意大小的密鑰。

真正的問題是這種“派生的”隨機性以及它真正的隨機性。我不知道它的任何無限來源。

使用 Salsa/ChaCha,您可以生成多達 2^64 個 512 位密鑰,每個密鑰能夠加密 16 個不同的 4 字節塊。所以我想是無限的。

使用者需要使用 320 位密鑰對其進行播種。他們需要在 2^68(如果我的數學沒有錯的話)加密後更改他們的密鑰。使用類似於 XChaCha 的設置允許您將其擴展到 2^132。

總之,如果你有一個加密安全的隨機源,你可以 XOR。

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