web-dev-qa-db-ja.com

可変長入力に対してCBC-MACが安全でないのはなぜですか?

CBC-MACが可変長メッセージに対して安全でない理由を誰かが説明できますか?

私はたくさんの本を読みましたが、まだいくつかの混乱があります。次の写真でハイライトされている部分のように

スライド32: Slide 32

スライド33: Slide 33

  1. 最初の質問、なぜT "= C0を設定する必要があるのですか?

  2. 理解できない最大の質問である2番目の質問、なぜT "'= T"なのか。この関係を証明する方法は?

  3. 3番目の質問、なぜ新しいメッセージ= P0.P1。(P0 xor T ')ですか?

誰かが私を助けてくれますか?ありがとう!

2
Ricky

単純な形式では、CBC-MACは「長さ拡張攻撃」に対して脆弱であり、最後にブロックを追加するだけです。

したがって、人々がそうするのを止めるためには、どういうわけか最終ブロックを最終ブロックとしてマークする必要があります。そしてnotそれを他のブロックのように扱います。

Wikipediaには2つの方法がリストされています :ブロックカウントのプレフィックス、または独立したキーで最終ブロックを暗号化(これは "暗号化CBC-MAC"またはECBC-MACとして知られています)。

4
StackzOfZtuff