AEAD和ECIES在傳輸秘密消息時的區別
我想知道使用 Authenticated Encryption 和 ECIES 之間的實際區別是什麼。看起來兩者都需要在各方之間以某種方式傳達共享秘密,並且都提供加密和身份驗證。
舉一個具體的例子,假設我們有一個方A,它接收來自其他各方的消息*{x1, x2, …, xn} ,但需要從消息本身中讀取發送者,因為在接收到消息**x時,否則 A 不知道發件人。使用一些 AEAD 方案,A可以在經過身份驗證的部分中以純文字形式包含發送者,從而允許A*選擇用於驗證和解密它收到的消息的共享密鑰。
ECIES 可以做到這一點,如果可以,實際區別是什麼?如果不是,那麼 ECIES 的目的是什麼?似乎缺乏關於 ECIES 的資訊。
我想知道使用 Authenticated Encryption 和 ECIES 之間的實際區別是什麼。看起來兩者都需要在各方之間以某種方式傳達共享秘密,並且都提供加密和身份驗證。
ECIES 是一種特定的混合加密方案,它使用橢圓曲線加密來啟用基於 EC 的加密——即:使用接收器的靜態公鑰加密和使用接收器的靜態私鑰解密。
AEAD 是對帶有身份驗證的對稱加密介面的描述。
ECIES 依賴於一個非對稱密鑰對(公鑰是可信的),而 AEAD 依賴於一個需要保密的對稱密鑰。ECIES 是一種使用橢圓曲線執行加密的特定構造,AEAD 是對經過身份驗證的密碼介面的描述。在這種情況下,將兩者進行比較沒有多大意義。
舉個具體的例子,假設我們有一個甲方,它接收來自其他各方的消息 {x1, x2, …, xn},但需要從消息本身中讀取發送者,因為在收到消息 x A不知道發件人。使用一些 AEAD 方案,A 可以在每個 x 中有一個純文字部分,在經過身份驗證的部分告訴發送者,因此需要選擇哪個共享密鑰來打開實際消息。
您真的不需要驗證密鑰標識符;如果您更改密鑰標識符,則身份驗證標籤已經無效,因為您將使用錯誤的密鑰來驗證密文。僅當該方案為相互信任的多個發件人重用密鑰時才需要它(不是常見情況)。如果這是用於傳輸身份驗證,您通常只需跟踪會話。
ECIES 可以做到這一點,如果可以,實際區別是什麼?如果不是,那麼 ECIES 的目的是什麼?似乎缺乏關於 ECIES 的資訊。
不,ECIES 只是執行加密,因為任何人都擁有公鑰,所以任何人都可以創建有效的密文。如果你想添加這樣的功能,你應該對數據進行簽名,然後加密明文和簽名。
如果您談論的是發送者和接收者之間的實時通信,那麼您只需使用傳輸協議,例如 TLS。TLS 1.3 需要 AEAD,但由於已經有基於 DH 的密鑰建立方案,因此不使用 ECIES。