Encryption

可變長度消息的延展性

  • November 8, 2020

給定使用加密的消息的密文 $ AES-CTR $ 連同實際的、所需的消息和 IV,我需要對密文執行延展性攻擊以將原始消息從 $ M $ 至 $ M’ $ . 但消息長度為 $ M $ 和 $ M’ $ 不一樣。由於 CTR 不使用填充並且密文與消息的長度相同,那麼我應該從偽造密碼中的密文中刪除額外的字節以獲得 $ M’ $ 因為它比 $ M $ ?

為了更好地解釋這一點,請參閱以下我到目前為止所做的範例!

$ M $ =“支付亞歷克斯$ 100”

$ M’ $ =“支付900美元”

$ C $ = 第一個塊為 IV 的密文

  • 計算 $ x = M ⊕ M’ $ (我補了 $ M’ $ 在 XOR 之前匹配長度 $ M $ )
  • $ C’ = C[17… n] $ (不包括最初的 16 個字節,因為它對應於 IV)
  • $ C’’ = C’ ⊕ x $
  • 偽造密碼 $ C^* = C[1.. 16]||C’’ $ (前 16 個字節是 IV)

當我解密偽造的密文時 $ C^* $ 我收到了預期的消息,但最後有額外的字元“支付 900 美元……”。

所以在偽造的密文中,如果我刪除最後 10 個十六進製字元,我會得到確切的消息 $ M’ $ 我所期待的。擺脫偽造密文中的額外位以匹配消息長度是正確的方法還是我所做的不正確?

是的,你沒看錯。您異或了正確的位,複製了 IV,然後縮短了消息。這種方法沒有錯。

我唯一有點批評的是基於一的索引而不是基於零的索引。大多數數學家使用從零開始的索引(例如,因為它與模組化計算兼容),大多數開發人員也同樣如此,因此密碼學家……

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