Aes

在不更改標籤的情況下更改身份驗證消息。(CBC-MAC)

  • January 13, 2022

你知道CBC-MAC嗎?我有 iv 、MAC 和 Transaction 但沒有密鑰。我應該在不更改密文的情況下更改事務。你知道這怎麼可能嗎?另外,我沒有密文來查找密鑰。資訊:

Transaction:to=9714163002&from=9711412111&amount=10000000
IV: qes/2BpH9BvVN7f6jFy43g== (base64)
MAC: NEhKNEtaR3lDdzRtWHJJTg== (base64)

9714163002 應該換成 1234567890 以外的東西,我應該找到並送出的是:

Transaction:
IV: 
MAC:
  • 挑戰的正文如下:

考慮以下數字簽名方法。

A. 應該下載文本 P

B. CBC 文本使用密鑰加密

C. 丟棄除最後一個塊之外的所有程式碼塊

D.最後一個批量應該被認為是文本的MAC-CBC數字簽名。

上述方法可以很容易地檢測到文本中的任何未經授權的更改,因為如果有任何更改,MAC-CBC 將不會與文本對應。假設這個系統用於銀行交易,如果簽名正確,任何交易都是有效的。你作為攻擊者你能聽到一個消息:

Transaction:to=9714163002&from=9711412111&amount=10000000 
IV: qes/2BpH9BvVN7f6jFy43g== 
MAC: NEhKNEtaR3lDdzRtWHJJTg==

IV 和 MAC 採用 base64 編碼。如果您可以在上面的消息中將號碼 9714163002 更改為您的參與者號碼,金額將記入您的帳戶,但問題是交易必須具有有效的 CBCMAC 而您沒有密鑰。找到一種無需鑰匙即可實現目標的方法。將您的答案發送到問題的地址。請注意,目的地必須是您的參與者編號。

在 CBC-MAC 中使用 zero-IV 是有充分理由的;如果存在固定的非零 IV,那麼攻擊者可以修改 $ IV $ 和 $ P_1 $ 這樣明文的第一塊就可以成為攻擊者的優勢。

CBC-MAC 標籤計算的第一步是這樣執行的$$ C_1 = E_k(IV \oplus P_1) $$

現在讓 $ P_1’ $ 是攻擊者想要更改的目標第一個塊而不更改 CBC-MAC 標籤。為了實現這種簡單的偽造,他們需要為第一個密文保持相同的值 $ C_1 $ 這樣其餘的將產生相同的 MAC 標籤。

$$ IV \oplus P_1 = IV’ \oplus P_1’ $$

既然攻擊者知道 $ P_1 $ (‡), $ IV $ 和 $ P_1’ $ 比它容易找到 $ IV’ $ $$ IV’ = IV \oplus P_1 \oplus P_1’ $$即攻擊者只需要一個簡單的x-or 操作和傳輸。

在這種攻擊中,消息大小沒有改變,只有明文的第一個塊和IV被改變以偽造MAC。可以組合兩條消息來偽造另一條消息,但是,這會改變消息的大小。

這對 CBC-MAC 中的非固定 IV 進行了簡單的偽造。CBC-MAC 已經定義了零 IV 以減輕這種攻擊和組合攻擊。

(‡) MAC 方案的安全性不需要對消息進行加密。如果有加密,攻擊者仍然可以修改,這在 CBC 模式下非常容易。

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