XSalsa20Poly1305 用於靜態加密
我剛剛發現了一個使用 XSalsa20Poly1305 進行傳輸和靜態加密的項目。如果值得信任數據,我正在嘗試查找一些資訊。
將我找到的資訊放入上下文中感覺有點困難。我讀到帶有(大量)Salsa20(密碼)的Poly1305(MAC)可以替代AES。
- 使用 XSalsa20Poly1305 有顯著優勢嗎?
- X Salsa20Poly1305中的“X”是否僅表示 192 位隨機數?
我不是密碼學家,我很想了解更多細節。
雖然您沒有提及來源,但這裡有一個. 實際上,伯恩斯坦的論文中描述了 XSalsa 家族;
- 2011,擴展 Salsa20 隨機數,DJB
XSalsa20Poly1305 中的“X”是否僅表示 192 位隨機數?
是的,這意味著 XSalsa 的 nonce 大小是 192 位,而 Salsa 有 64 位。這是如此之大,以至於即使對於隨機隨機數也必須生成 $ 2^{96} $ 統一的隨機數,以便以 50% 的機率發生碰撞。這在長期密鑰中非常重要。如果重新使用(密鑰,隨機數)對,則機密性失去。192 位可以防止這種情況。對於密碼學來說,這幾乎是永遠不會發生的事件。
使用 XSalsa20Poly1305 有顯著優勢嗎?
- 顯而易見的一個是長隨機數。
- 另一種是Poly1305 是比 GCM 更好的驗證器。
- 由於 ARX 設計,它具有非常好的 CPU 性能,在原始 CPU 中擊敗了 AES,甚至可以與 AES-NI 競爭。
OpenSSL 比較(ChaCha 不是 Salsa);
另外,請注意,伯恩斯坦在論文中提供了安全證明;如果 Salsa20 是安全的,那麼 XSalsa 也是如此。
經證明,Salsa20 的 15 輪可以抵禦差分攻擊。
- 2013,Mouha 和 Preneel, 尋找 ARX 的最佳微分特性:應用於 Salsa20
請注意,Salsa 家族有一個新變種;恰恰一家。ChaCha 系列旨在以幾乎相同的速度增加每輪的擴散。ChaCha 家族比 Salsa 家族更適應,TLS 1.3 使用 ChaCha20-Pol1305。
ChaCha20 也有 XChaCha20-Poly1305 ( ietf draft ),它使用相同的 192 位隨機數大小。優於 XSalsa20-Poly1305。請注意,由於 Salsa 出現在eSTREAM 項目中,因此對 ChaCha 家族的研究少於 Salsa 家族。
如果可以的話,更喜歡 XChaCha20-Poly1305。
請注意,經過身份驗證的加密是傳輸時必須的,建議對其餘數據進行加密。