Gcm
通用散列函式可以(ab)用作流密碼嗎?
如今,像GHASH和Poly1305這樣的通用雜湊函式因其簡單和快速而非常流行。
現在在與出口限制相關的討論中,主要是加密技術受到監管,而這些散列函式不會受到此影響。
現在問題來了:
你能在 CTR 模式下執行一個通用散列函式來獲得一個安全的流密碼嗎?
不,考慮簡單的通用散列函式 $ H(k, x) = k \cdot x \in \mathbb{F}_{2^n} $ . 它是普遍的 $ \text{Pr}[H(k, x) = H(k, y)] \le 1/(2^n - 1) $ 對於隨機選擇的 $ k $ ; 當在單個塊上執行時,多項式評估會退化為此函式。如果你在計數器模式下執行它,你會得到密文 $ k \cdot 0 $ , $ k \cdot 1 $ , $ \ldots $ ,這顯然是不安全的,並導致立即恢復密鑰。
通用散列函式(或較弱的幾乎異或通用變體)與身份驗證一起使用,因為它們的唯一工作是將可能較長的消息統一映射到較短的消息;保密工作由一些 PRF 或 PRP 處理。