Stream-Cipher

IV 在 Trivium 等流密碼中的意義是什麼?

  • April 12, 2020

在 Trivium 密碼中,最初使用 80 位密鑰和 80 位 IV(初始化向量)來設置初始狀態。我想知道,

  1. IV在流密碼中的作用?
  2. 我們可以讓 IV 成為一個秘密參數嗎?和
  3. 在 Trivium 中如何選擇/更新 IV 值?
  1. IV在流密碼中的作用?

就像分組密碼一樣;它有助於實現隨機加密。此外,在同一密鑰下使用不同的 IV 可以防止像所有流密碼一樣的嬰兒床拖動攻擊。這使我們能夠通過使用不同的 IV 來重用密鑰,而不會導致嬰兒床拖動攻擊(在兩次或多次墊上起作用)。

如果 IV 在同一個密鑰下重複,則密鑰流將被重複,並且攻擊者將 x-or 將兩個或多個加密消息與消息的 x-or

$$ C_1 = M_1 \oplus keystream $$ $$ C_2 = M_2 \oplus keystream $$然後

$$ M_1 \oplus M_2 = C_1 \oplus C_2 $$並且被動攻擊者可以訪問 $ C_1 \oplus C_2 $ 因為他們正在收聽頻道。現在,他們需要執行嬰兒床拖動,並且可以自動化。

我們的方法與 HMM 相關,通過使用統計語言模型和動態規划算法來恢復這種類型的最可能明文。它對真實數據產生高達 99% 的準確度,並且可以在 2,000 美元的 PC 上以每字節 200 毫秒的速度處理密文。

還應該注意的是,這種(同步)流密碼的 IV 作為重新同步的一種手段發揮著重要作用,例如在每個消息的基礎上。

  1. 我們可以讓 IV 成為一個秘密參數嗎?和

IV 是公共值,從不打算保護,否則,我們可以將它們稱為密鑰的一部分。記住Kerckhoffs 的原則;只有關鍵是秘密。

  1. 在 Trivium 中如何選擇/更新 IV 值?

Trivium 規範沒有提到生成 IV 值。但是,我們可以使用關於它的常識。

由於在同一密鑰下重複 IV 可能會導致災難性的失敗,因為在所有流密碼中,機密性都失敗了。必須保證不重複。

  • **隨機 IV:**由於 Trivium 使用 80 位 IV,之後 $ 2^{40} $ 隨機 IV 生成 由於生日攻擊,預計 IV 將以 50% 的機率重複。實際上,必須更早地停止使用目前加密密鑰並生成/交換新密鑰。
  • 基於計數器/LFSR 的 IV:基於計數器/LFSR 的解決方案很好,除了在系統故障時可能無法正確儲存計數器/LFSR 的最後一個值,從而導致重複。要緩解這種情況,請生成/交換新密鑰或查看下一個解決方案。
  • **隨機結合計數器/LFSR:**這一次隨機部分可以幫助消除系統故障,即使系統恢復後計數器/LFSR的最後一個值重複。

$$ \text{IV} = \text{[40-bit random]} \mathbin| \text{[40-bit counter/LFSR value]} $$


一些不錯的拖拉式答案以獲取更多詳細資訊;

  1. 利用一次性鍵盤鍵重用?
  2. 一個人如何攻擊一個兩次鍵盤(即一次性鍵盤與密鑰重用)?
  3. Vernam Cipher 的小問題

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