Stream-Cipher

Trivium 可以用作 PRF 嗎?

  • October 7, 2019

Trivium 加密算法有兩個輸入,key 和 IV,它們都是 80 位長。我們稱之為 Trivium(key, IV) → keystream。我的問題是執行 Trivium(key, input) 並獲取密鑰流的前 80 位是否會產生安全的 PRF。

我找到了另一種從流密碼創建 PRF 的方法,但這似乎適用於沒有 IV 輸入的流密碼,因此可能不需要這樣複雜的構造。根據閱讀Trivium 算法描述文件Trivium 設計文件,我覺得我的構造應該是安全的,但我不知道如何去證明它。

這個問題是因為想知道我是否可以僅使用 Trivium 作為原語來實現經過身份驗證的加密。如果我能把它變成一個 PRF,據我所知,我可以從中構造類似於 CBC-MAC 的東西。(當然,這沒有多大意義,因為每 8 個字節需要重新加密一次密碼,這非常慢。)

要嘗試這樣的證明,您需要定義基於 IV 的流密碼應該提供哪些安全屬性。例如,像這樣(非常非正式):

  • 基於隨機數的密碼是安全的,當且僅當它的加密與相同長度的隨機位串無法區分到允許執行選擇明文攻擊的隨機數攻擊對手。

“尊重隨機數”位很重要,因為 PRF 中的關鍵假設之一是它應該對對抗選擇的輸入是安全的,並且在這樣的定義中包含“尊重隨機數”是為了給對手盡可能多地控制隨機數。(請注意,並非所有密碼都符合這個標準——例如,CBC 模式加密不符合,因為它需要隨機數。評估 Trivium 是否符合這個標準是一個完整的“另一個話題”。)

所以如果加密消息 $ p $ 帶鑰匙 $ k $ 和隨機數 $ n $ 記為 $ Enc^n_k(p) $ ,那麼您建議的 PRF 構造將是:

$$ PRF_k(m) = Enc^m_k(0^{80}) $$

…在哪裡 $ 0^{80} $ 是 80 位全零字元串。你想要證明的是,給定一個秘密的、隨機的選擇 $ k $ , 如果攻擊者可以選擇消息 $ m $ 可以將您的 PRF 與隨機函式區分開來,然後它們可以破壞基於隨機數的底層密碼。

在這種情況下,接下來觀察如果存在這樣的選擇消息攻擊,他們可以針對 PRF 發起攻擊,這將通過查詢相同明文的加密來暗示存在對密碼的相應攻擊 $ 0^{80} $ 重複但具有不同的、對抗性控制的隨機數。

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