Elliptic-Curves

ECIES:MAC的目的?

  • September 4, 2014

假設:

  • $ A $ 想交流 $ B $
  • $ A $ 知道公鑰 $ P_B $ 受第三方信任並屬於 $ B $
  • $ A $ 知道假裝某人的地址 $ B $

$ A $ 想發消息給 $ B $ 使用ECIES

  1. $ A $ 計算隨機私鑰 $ K $ 和相關的公鑰 $ P $
  2. $ A $ 計算共享秘密 $ Z $ 使用 $ K $ 和 $ P_B $ 根據ECIES
  3. $ A $ 從共享密鑰派生對稱密鑰 $ k_1|k_2=\text{KDF}(Z_x) $
  4. $ A $ 加密消息 $ c=\text{ENCRYPT}_{k_1}(m) $
  5. $ A $ 標記加密的消息 $ t=\text{MAC}_{k_2}(c) $
  6. $ A $ 發送 $ P|c|t $ 對假裝的人 $ B $

問題:

  • 能 $ A $ 假設,只有 $ B $ 可以閱讀留言嗎?我認同。
  • 作為 $ B $ 什麼都不知道 $ A $ MAC的加密目的是什麼?作為 $ K $ 和 $ P $ 是特定於消息的任何人都知道 $ P_B $ 可以使用有效的 MAC 將此消息發送到 $ B $ !?
  • 刪除 MAC 步驟會降低ECIES的安全性嗎?我假設,但我不明白為什麼。

能 $ A $ 假設只有 $ B $ 可以閱讀留言嗎?

只有擁有對應私鑰的人 $ P_B $ 可以閱讀消息。如果 $ A $ 可以假設只有 $ B $ 有它,這行得通。

作為 $ B $ 什麼都不知道 $ A $ MAC的加密目的是什麼?

這樣其他人就無法修改加密的消息。

我們要防止的是有人可以拿走加密的消息 $ E_{P_B}{m} $ ,並對其進行修改,使其成功解密為消息 $ m’ $ , 在哪裡 $ m $ 和 $ m’ $ 有關係。如果沒有 MAC,有人可能會嘗試以下方法:

  • 取密文 $ c = ENCRYPT_{k_1}(m) $
  • 將其替換為 $ c’ $ , 解密為 $ k_1 $ 進入 $ m’ $
  • 重新打包成 $ P|c’ $ 作為新的加密消息。

這通常是可行的,因為許多加密方法使修改加密消息成為可能(即使您不知道加密密鑰 $ k_1 $ )。一個例子是計數器模式。如果您翻轉加密消息的任何位,則解密的相應位也將翻轉(沒有其他更改)。

因此,在沒有 MAC 的情況下,Eve 可能能夠獲取加密消息:

$ ENCRYPT( \text{ “Transfer one million into Bob’s account, password Rhinosaurus” }) $

並將其更改為

$ ENCRYPT( \text{ “Transfer one million into Eve’s account, password Rhinosaurus” }) $

使用 MAC,這種類型的消息修改是不可行的。

所以在這種情況下,MAC Eve 仍然可以發送“有效”消息到 $ B $ ,但只要 Eve 沒有密碼(“Rhinosaurus”),Eve 就無法執行或修改交易。

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