Aes
在純文字中使用計數器進行 AES256 加密和身份驗證的缺點?
如果我們在純文字中使用計數器,然後使用 aes 256 對純文字進行加密以進行加密和驗證呢?
例如:
加密AES(32bit_counter+plain_text_of_96bit);或加密AES(16bit_counter+plain_text_of_112bit);
這樣我們就不需要依賴其他身份驗證算法,並且可以使用單個密鑰發送大約 2^32*96 ~= 48 GB 的數據。
使用者還可以調整他們的計數器長度和按摩長度,他們可以通過在達到最大數據傳輸限制之前安全地交換新密鑰來開始使用新密鑰。
那麼除了降低數據傳輸率之外,使用這種方法有什麼缺點嗎?
這種身份驗證方法是否比可用的加密雜湊函式更好?(考慮到加密散列函式對沖突攻擊和長度擴展攻擊的弱點,這種方法有多少未來的證明?參考:SHA 函式的比較)。
那麼除了降低數據傳輸率之外,使用這種方法有什麼缺點嗎?
實際上,這是一個相當重要的問題。然而,另一個是有人注入未被檢測到的隨機變化的可能性。
假設攻擊者獲取了一個密文塊,並將其替換為隨機數據。然後,當你解密時,你想出的實際上是隨機數據。如果序列號看起來正確(機率 $ 2^{-32} $ 或者 $ 2^{-16} $ ,取決於標籤大小),那麼它將被接受。這是一個比許多應用程序接受的更高的機率。攻擊者無法控制解密是什麼,對於某些攻擊,這可能就足夠了。
這種身份驗證方法是否比可用的加密雜湊函式更好?
你可以把這個問題轉過來;這種方法如何與標準方法(例如 GCM)一樣好?它使用更多的頻寬,並且它具有更弱的修改檢測機率。