【正文】
( , ( ) )f I V K ip a d? ?和 ( , ( ) )f I V K o p a d? ?HMAC Security ? know that the security of HMAC relates to that of the underlying hash algorithm ? attacking HMAC requires either: – brute force attack on key used – birthday attack (but since keyed would need to observe a very large number of messages) ? choose hash function used based on speed verses security constraints MAC 操作模式 (1) ? 明文 與 MAC傳送 MAC M MAC MAC 消息 M 消息 M K 1 MAC = ? 發(fā)送端 接收端 MAC MAC39。 K 1 M MAC 操作模式 (2) ? 明文 與 MAC 加密 后傳送 MAC 算法 M MAC MAC 消息 M 消息 M K 2 = ? 加密 K 1 E K1 [M || MAC] 解密 M MAC 算法 MAC MAC39。 K 1 K 2 MAC 操作模式 (3) – 密文 與 MAC傳送 M 消息 M MAC MAC 消 息 E K1 [M] K 1 K 2 加密 MAC 算法 解密 MAC 算法 = K 1 K 2 E K1 [M] ? MAC39。 MAC M MAC 操作模式 (4) – 密文 計(jì)算 MAC 后傳送 M MAC 消息 M MAC 消 息 K 2 K 1 E K1 [M] 加密 MAC 算法 MAC 算法 解密 K 1 = ? K 2 M MAC MAC39。 E K1 [M] E K1 [M] MAC 算法強(qiáng)度 ? MAC 強(qiáng)度 – 攻擊 MAC 的方法: ? 暴力 攻擊 法 ? 生日 攻擊 法 MAC 暴力 攻擊 法 ? 暴力 攻擊 法 – 嘗試 找出 『 秘密 密鑰 』 的 破解 辦法 – MAC 演算法: ? MAC = CK(M) ? 其中: MAC: MAC 值, 長(zhǎng)度為 k 。 C: MAC 算法。 K:秘密 密鑰 , 長(zhǎng)度為 n , 如 n k。 M: 消息 。 ? 可能出現(xiàn)的 密鑰 為 2n ? 可能出現(xiàn)的 MAC 碼為 2k ? 兩者 之間 可能相符的 機(jī)會(huì)為 2(nk) ? 集:( {M1, MAC1}、 {M2, MAC2}、{M3, MAC3}, …, ) ? 使用已知的算法,並 測(cè)試密鑰 。 ? 破解 步驟 如下: – 第一回合: ? 給予: M1 與 MAC1 = CK(M1) ? 對(duì) 所有 2k 支 密鑰測(cè)試 MAC1 = Ci(M1), i = 1, 2, …, 2 k ? 約有 2(nk) 把 密鑰 符合。 – 第二回合: ? 給予: M2 與 MAC2 = CK(M2) ? 測(cè)試 2(nk) 支 密鑰 MAC = Ci(M1), i = 1, 2, …, 2 (nk) ? 約 有 2(n2k) 把 密鑰 符合。 生日 攻擊 法 ? 生日 攻擊 法 – 不破解 密鑰 , 利 用已知明文( M1),去偽造 另一 個(gè) 明文( M2)。 – CK(M1) = CK(M2)