多次散列具有不同鍵的 64 位計數器並異或到明文塊:一些問題
假設我想要一個 2048 位的塊加密。
我採用一個 512 位雜湊函式(如 Blake2b),提供一個計數器和一個密鑰並對計數器進行雜湊處理,然後對密文塊中的雜湊值進行異或運算,並使用不同的計數器和密鑰重複此過程多次,直到第四個密鑰(2048/4=512=雜湊函式獲取的位)。
這種方法是否容易受到MITM 攻擊?
這種方法是否容易受到量子攻擊,以及Groover 的算法
我會獲得 2048 位的加密強度嗎?
雖然可以從散列函式構造流密碼。這種結構有一個非常嚴重的缺陷。
最大的問題是你沒有隨機數,所以如果你的密鑰被重用,解密這兩條消息變得微不足道,因為你只是對明文進行異或。
此外,您不會在此處獲得 2048 位加密。例如,我可以攻擊密碼文本的前 512 位。這意味著我只需要找到第一把鑰匙。第二個鍵等也是如此……因此,對於整個塊,您只需找到 4 個鍵。因此,您實際上只將密鑰長度增加了 2 位。這是因為每個密鑰都獨立於另一個密鑰,因此在暴力攻擊中更改一個密鑰不會影響其他密鑰。因此,如果您的目標是 2048 位密鑰強度,那麼它甚至比中間攻擊中的相遇還要糟糕。它基本上只與您的起始鍵位長度一樣強。
對於對稱密碼來說,這麼大的密鑰也毫無意義。
像 BLAKE2b 這樣的雜湊函式的後量子安全性已經非常安全,尤其是使用 512 位摘要。
這種方法是否容易受到 MITM 攻擊?
你描述的是ECB模式。如果您多次使用相同的密鑰,那麼是的,它很容易受到 MITM 攻擊。MITM 可以將一條消息中的某些塊替換為另一條消息中具有相同編號的塊。修改後的消息將完全可以解密,並且無法確定它是否被修改。
如果使用相同的密碼,您的方案將為相同的明文產生相同的結果。因此,知道一些消息就可以解密一些其他消息:如果一些具有相同編號的塊是相同的,那麼明文也是相同的。