Salsa20
Bouncycastle 和 Salsa 回合
Daniel J. Bernstein 的 Salsa 原本是要跑 20 輪的。因為我可以使用 Salsa20Engine 在 Bouncycastle 中配置回合,所以通過將回合增加到 1000 是否有更好的安全性?性能可以忽略不計。
一般來說,您應該避免無緣無故更改密碼。簡單地增加輪數不太可能顯著改變密碼的安全性。儘管攻擊通常針對有限的輪數,但針對 Salsa20 的說明如下(來源:維基百科):
截至 2015 年,沒有針對 Salsa20/12 或完整的 Salsa20/20 的公開攻擊;已知最好的攻擊
$$ 2 $$打破 12 或 20 輪中的 8 輪。
這是對記憶體的非常高的要求,並且只是部分地降低了複雜性(即使對於減少輪次的版本也沒有任何實際攻擊)。
如果 Salsa20 損壞,則可能是一輪內的操作存在問題,或者與預處理或後處理有關。
因此,在犧牲性能和 - 可能更重要的是 - 兼容性的同時,您幾乎一無所獲。
如果您想要更好的安全性,您可以使用另一個流密碼 - 或在流模式下分組密碼 - 將密碼異或在一起。您還可以查看(帶有密碼的)硬體支持,以更好地保護密鑰和可能的算法(關於側通道攻擊)。