Reference-Request

XSalsa20Poly1305 中的明文大小是否有上限?

  • November 15, 2019

在擺弄 Go 中的 NaCl 實現,特別是SecretBox時,在閱讀文件後出現了一個一般性的加密問題。

引用:

包 secretbox 加密和驗證小消息。

我以前沒見過這個。有最大尺寸嗎?什麼是消息?

我已經查找了一些解釋該行的論文或文件,我什至瀏覽了source,但我在任何地方都找不到任何相關資訊來解釋消息大小的注意限制。

實際上,我剛剛成功加密了數百兆字節的數據。所以,我真的很困惑為什麼文件說它只用於小消息。目前,我猜測這是我可能無法找到的加密原因。

所以 - 回顧一下 - 我要問的是:在 Salsa20 中,可能的消息大小是否有限制?如果有,您能否另外提供一個提示,我可以在哪裡找到相關的參考/論文供我查看?

更新

我打開的問題已經解決,並且更新了文件以闡明限制。

正如評論指出的那樣,這很可能是文件中的錯誤/錯誤。

如果您查看***“ RC4或Salsa20等流密碼的PRG週期是多少?”***,您會找到一個明確指出 Salsa20 限制的答案(引用)

…Salsa20 用作流密碼,它使用 64 位塊計數器和 64 字節塊,將其容量限制為 $ 2^{73} $ 位。之後,計數器將翻轉,從而輸出。

在翻轉之前,這是 1180591620717411303424 字節(大約 1180591620 TB)的最大大小,我不會真正稱之為“小”。但這可能只是我……

出於參考目的,請參閱Salsa20 論文(PDF)。

編輯

Eclipse 評論

SecretBox 使用 Poly1305,所以這可能與它們如何協同工作有關嗎?

我也看不出有任何理由使用 Poly1305 會限制事情。例如,如果您查看RFC 7539: ChaCha20 and Poly1305 for IETF Protocols,您會看到一個有用的提示(第 20 頁),從我的角度來看,它實際上將 Poly1305 排除在任何“小消息”的來源之外限制。

引用:

…,Poly1305 執行的緩衝區構造中的密文長度欄位將密文(以及明文)大小限制為 2^64 字節,或 16000 PB(準確地說是 18,446,744,073,709,551,616 字節)。

當您查看該 RFC 的第 6 頁時,您會讀到該 RFC 假定使用 Poly1305 處理 247,877,906,880 字節(近 256 GB)是安全的。所以 Poly1305 似乎也不是一個限制因素,它可以解釋這樣的“小消息”評論。

剩下的就是實現本身的潛在限制。如果您在原始碼中也找不到“小消息”限制(您已經檢查並確認不存在),則很可能是文件中的錯誤。最後,該聲明…small messages似乎只不過是文件中的一個“小”故障,它在不應該的地方造成了不必要的混亂。

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