Stream-Cipher

E0加密算法攻擊向量

  • August 26, 2019

[E0](https://en.wikipedia.org/wiki/E0_(cipher)用於對藍牙通信進行加密,使用最多 128 位的密鑰進行初始化。E0 的安全性如何,E0 加密攻擊向量是什麼?

基於 LFSR 的 E0 不是特別安全的流密碼。給定足夠的明文,可以通過已知明文攻擊來恢復密鑰。二級 E0,它使用一個 E0 實例的密鑰流來初始化第二個實例的狀態,該實例本身只加密一個 2745 位幀,在給定 2 23.8幀的初始 24 位的情況下,容易受到需要 2 38 次簡單操作的攻擊. 即使使用兩級 E0 進行保密,這對藍牙也是實用的。請注意,僅將 E0 直接用作流密碼的一級 E0 更容易受到已知明文攻擊。

直接回答您的問題:

  1. E0 是不安全的,即使在所謂的兩級 E0 方案中使用時也是如此。
  2. 已知明文攻擊可用​​於在可忽略的時間內恢復密鑰。

如果您需要一個非常輕量級的流密碼,請考慮使用 ChaCha8,它能夠在 Core2Duo 上以每字節 1.88 個週期的速率進行加密。重度優化可能會進一步提高密鑰流的生成率。ChaCha是一種 ARX 密碼,僅使用加法、旋轉和按位異或。最安全的基於移位寄存器的流密碼,速度更快,是Trivium,它只需要 80 位密鑰。我建議不要這樣做,但它仍然比 E0 好。

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