Aes

與 AES 和 Serpent 相比,ChaCha 的安全性

  • January 26, 2021

我試圖了解 XChaCha20 與其他密碼相比有多安全。據我所知,ChaCha 比 AES 更安全,但不如 Serpent 安全。我的問題是,ChaCha 比 AES 更“安全”多少,又比 Serpent 安全多少。如果(在 1 到 10 的範圍內)AES 是 5,Serpent 是 10,那麼 ChaCha 是什麼?我認為它在 6~7 左右,但我不確定。此外,ChaCha 在 NSA 的蠻力下理論上會比 AES 持續多長時間(假設沒有使用 KDF)?如果我加密一個存檔並將其儲存在雲中,我可以期望它比使用 AES 加密的相同存檔更安全嗎?理論上會不會比 Serpent 更安全?謝謝。

在此處輸入圖像描述 我正在尋找安全性和現代性的最佳組合,以便在雲中長期儲存文件。

這個答案有兩部分,第一部分是關於“量化”完整密碼的安全性,第二部分是關於不同使用場景的密碼選擇。

如果(在 1 到 10 的範圍內)AES 是 5,Serpent 是 10,那麼 ChaCha 是什麼?

首先,您必須量化它們的安全性,以使分數有意義。量化必須有依據,比如評論中提到的“安全邊際”。

這個答案並不打算為分數或詳細公式提供具體值,而是提供一個關於如何計算它的大綱。

以“安全邊際”作為量化指標,我們可以進行如下處理:大多數密碼在輪次中迭代操作,每一輪都會增加輸入的擴散和混淆——每輪獲得的擴散和混淆量通常是一個數量級的大,所以量化應該是一個指標而不是一個因素。

考慮到這些,我們可以看看

  1. $ r $ 每個密碼的輪數,
  2. $ r_a $ 被攻擊的回合數,以及
  3. $ w $ 攻擊所需的時間-空間-查詢(可選成功機率)權衡。這是以被攻擊破壞的安全比特數除以密鑰的比特長度來衡量的。

我們得到密碼的安全邊際指數的粗略分數:

$$ r \over {r_a \cdot \log(w + 1)} $$

因為我們正在考慮攻擊的威脅和可行性,所以必須考慮對給定密碼的多次攻擊,以找到其最終的實際最低分數。

我在找…

此問題要求雲中其餘數據的安全性,但其他看到此問題標題的人可能會尋找一些稍微不同的東西。

ChaCha 以其在 TLS 中作為“備用密碼”包含而聞名,因此,導致這種決定的推理值得分析。為此,我們將參考https://datatracker.ietf.org/doc/html/draft-mcgrew-standby-cipher-00 。

首先要考慮的是,更改密碼有多容易?

  • 對於 Internet 傳輸協議,更改密碼就像重新連接到伺服器並協商新密碼一樣簡單。最大的負擔是在庫實現上添加對該密碼的支持。
  • 對於靜態數據(在雲中或離線),新數據很容易使用新密碼進行加密。對於現有數據,我們必須先用舊密碼解密它們,然後用新密碼重新加密它們來“轉碼”它們——這是一個漫長而緩慢的過程,可能會出現意外故障。
  • 對於硬體設備,如果不完全更換硬體,更改密碼通常是不切實際的。

第二件事是范式多樣性的平衡,而不是支持多種算法的負擔。

連結的 IETF 草案明確規定,備用密碼應具有與 AES 不同的設計。這樣,適用於 AES 的非通用攻擊將不適用於新的備用密碼(當發現對 AES 的此類攻擊時,可能會尋求第二個備用密碼)。

連結的 IETF 草案還規定,為了減輕實施的負擔,只選擇 1 個備用密碼。對於產消者來說,一個聰明的策略是使用不同的密碼(和不同強度的密鑰)加密不同重要性的文件,但這必須與舊軟體中新密碼支持的可用性相平衡。否則,使用較新算法加密的最需要的文件可能無法使用較舊的軟體讀取。

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