Aes

自定義基於 AES 的攻擊模型的安全性

  • September 24, 2020

前提是:

  • $ AES(plaintext, key) $ 是 128 位塊的標準 AES 塊密碼。
  • $ \oplus $ 是標準的異或運算。
  • $ K $ 是一個恆定的 128 位偽隨機值,用作 AES 操作的密鑰,攻擊者不知道。
  • $ A $ 是另一個常數 128 位偽隨機值,攻擊者不知道。
  • $ B $ 是一個可變的 128 位偽隨機值,攻擊者不知道。
  • $ C $ 是一個已知的 128 位值,攻擊者可以自由選擇。

攻擊者可以:

  • 獲取值 $ AES(A, K) $ (這是恆定的)。
  • 獲取值 $ AES(B, K) $ , 對於盡可能多的不同 $ B $ 是他想要的(注意攻擊者不能選擇 $ B $ ).
  • 測試是否 $ C = AES(A \oplus B, K) $ ; 他還可以獲得 $ AES(B, K) $ 成為這 2 $ B $ 的值相同。

攻擊者可以利用這些知識嗎?例如,他能猜出一個值嗎? $ C $ 等於 $ AES(A \oplus B, K) $ , 或恢復 $ K $ , $ A $ 或者 $ B $ ?

我從您的描述中猜測您正在描述一種操作模式,其中 $ A $ 是消息和 $ B $ 是特定塊的 IV/nonce。但是,您似乎做了一個例外,即攻擊者可以在沒有密碼的情況下知道密文 $ B $ 涉及。因此,您對密碼的使用相當奇怪。推廣到任意分組密碼:

  • $ ENC(A, K) $ 揭示ECB模式密文
  • $ ENC(B, K) $ 揭示了它的獨特性 $ B $
  • $ ENC(A \oplus B, K) $ 使用適當的操作模式揭示密文。

因此,您基本上擁有一個帶有隨機輸入的過於復雜的 ECB 模式。價值 $ B $ 變得與攻擊者無關 $ ENC(A, K) $ . 如果攻擊者需要找到 $ B $ , 但是他們可以使用相同的歐洲央行突破,因為他們也知道 $ ENC(B, K) $ .

該系統因以下事實而得到加強: $ A $ 和 $ B $ 都是偽隨機生成的(希望以安全的方式),因此破壞歐洲央行的正常嘗試是無用的。對於任意數量的加密塊,您的系統也與隨機無法區分,因為您的輸入實際上是隨機的。

對於您的系統,假設您使用安全加密算法(AES 通常被認為是安全的)以比暴力破解更快的速度獲取有關輸入的任何有用資訊,即使使用 ECB 模式也是不可能的;除了在重複輸入的情況下,此時統計分析成為可能。但是對於隨機輸入,不可能進行統計分析。

我看到這個模型的唯一問題是你的系統的粗略 - 為什麼你的系統需要揭示 $ ENC(A, K) $ , $ ENC(B, K) $ $ ENC(A \oplus B, K) $ ? 我會留給你決定。

我在想你的意思是一種OTP $ A $ 和 $ K $ 製作一個用於生成驗證碼的私鑰,由伺服器驗證 $ A $ 和 $ K $ ……沒關係,我只是想看看我能不能猜出你的意圖。

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