消息認證

消息認證

消息認證函數(三種函數)

一、哈希函數(跳轉www.)

任意長的M ——> 定長的哈希值,哈希值是認證符。

二、消息加密(又分成2種)

整個消息 ——> 密文,密文是認證符。

1、對稱密碼:
在這裏插入圖片描述

上圖中,如果消息是隨機序列,那麼無法判別是否被篡改。

於是,增加了FCS(校驗和 / 錯誤檢測碼)在末尾:

在這裏插入圖片描述

(a)內部錯誤控制;
(b)外部錯誤控制。
.
(a)更難篡改,因爲FCS被加密了;
而(b)的FCS暴露在外,很容易構造出正確的FCS。

2、公鑰密碼:
在這裏插入圖片描述

(b)僅有保密性;
(c)僅有認證;
(d)既有保密性,也有認證,但是公鑰算法一共執行4次。

三、消息認證碼(MAC) [重點]

又稱 「**校驗和」

消息和** ——> 定長的值,此值是認證符。

MAC算法不需要的可逆性,而加密算法必須可逆。
.
一般而言,MAC直接附在明文後面比較好(符合霍頓原則)。

在這裏插入圖片描述

(a)認證;
(b)認證+保密性,MAC與明文捆綁;
(c)認證+保密性,MAC與密文捆綁
.
(b)優點:更安全,正常人的選擇。
(c)優點:可以先檢驗認證,無誤後,纔會解密,節省資源。

必須使用MAC的情形:

  1. 將同一消息廣播給很多接受者。 只有一個人檢驗MAC,其他人直接解密,如果發現MAC出錯,這個人發出警報給所有人。必須用(b)才行。
  2. 接受者負荷大。 隨機選擇消息驗證MAC。(對稱密碼必須解密每條密文,不然讀不了,解密的同時也就驗證MAC了)
  3. MAC附在明文後面,每次驗證MAC不用解密。(對稱密碼想驗證MAC,只能通過解密密文)

補充:
由於雙方共享**,故MAC不提供數字簽名。(既然發送者能用**加密,一定是自己人)

消息認證的要求

可能的攻擊:
保密性:泄露;傳輸分析
完整性:內容修改;順序修改;計時修改(延時和重放)
認證:僞裝
不可否認性:發送方否認;接收方否認
.
消息認證 對付完整性和認證的攻擊。

消息認證碼的要求

1、弱抗碰撞性
2、無法窮舉明文
3、算法對消息的任一部分的認證,都不應比其他部分弱(木桶原理)

. .