Authentication

數據真實性是否總是隱含地提供數據完整性?

  • May 27, 2014

提供數據真實性(例如 HMAC 或 RSA 簽名)的方案是否總是隱含地提供完整性?至少在我看來,它必須是必要的。但是,我看到密碼學家將 MAC、MIC 和 MAIC 稱為單獨的術語。根據我的經驗,這通常意味著有一個細微的差異需要注意。但是,如果 MAC 和 MAIC 相同,那麼區別的原因是什麼?

真實性完整性有不同的定義,但一般來說,沒有

在密碼學意義上,真實性表明消息得到了特定主體的認可。該主體可以認可多個消息,並且相同的身份驗證標籤可以驗證不同的消息。例如,擁有一個(安全的)MAC 可以保證消息的真實性,但不能保證其完整性(請參閱為什麼擁有 MAC 時需要散列?)。HMAC 保證真實性和完整性,但其他 MAC 通常只保證真實性:身份驗證方可以偽造具有相同 MAC 值的其他消息。

在數據流的意義上,真實性保證了消息的出處,但它不區分來自同一主體的不同消息。單純的真實性檢查並不能防止重放攻擊:在之前的協議執行中是真實的消息現在仍然是真實的,但完整性要求接收到的消息是作為同一執行的一部分發送的消息。在某些情況下,完整性比真實性更難實現。例如,假設我將文件備份到遠端儲存服務。當我下載文件時,我可以檢查我得到的是一個正確簽名的文件,如果我包含文件名,我知道我真的得到了我上傳的文件的一個版本:文件是真實的。如果我以相同的名稱上傳文件的多個版本,完整性將保證我下載回最新版本;僅僅保證真實性,我所知道的就是我下載了該文件的某個版本。

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