150 likes | 362 Views
第 六 章 訊息確認. 6-1 訊息確認簡介 6-2 完整性檢查 - ICV 6-3 訊息確認碼 – MAC 6-4 MAC-DES 演算法 6-5 HMAC 演算法 6-6 MAC 操作模式 6-7 MAC 演算法強度. 6-1 訊息確認簡介. Message Authentication (MA) 收到一份訊息時,須考慮的問題: 該訊息(或郵件)在傳遞當中是否遭受他人竄改。 該訊息果真是由對方所發送的? 『 完整性檢查 』(Integrity Check) 雜湊函數 訊息確認 : 秘密鑰匙系統 數位簽章 : 公開鑰匙系統
E N D
第六章 訊息確認 • 6-1訊息確認簡介 • 6-2 完整性檢查 - ICV • 6-3訊息確認碼 – MAC • 6-4 MAC-DES 演算法 • 6-5 HMAC 演算法 • 6-6 MAC操作模式 • 6-7 MAC 演算法強度
6-1訊息確認簡介 • Message Authentication (MA) • 收到一份訊息時,須考慮的問題: • 該訊息(或郵件)在傳遞當中是否遭受他人竄改。 • 該訊息果真是由對方所發送的? • 『完整性檢查』(Integrity Check) • 雜湊函數 • 訊息確認:秘密鑰匙系統 • 數位簽章:公開鑰匙系統 • 雜湊函數 • 加密或簽章演算法 (訊息確認演算法)
6-2完整性檢查 - ICV • Integrity Check Value (ICV) • 利用雜湊演算法: • MD5 • MD4 • SHA-1 • 6-2-1明文計算 ICV • 利用訊息明文計算出 ICV • 6-2-2密文計算 ICV • 利用訊息密文計算出 ICV
6-3訊息確認碼 - MAC • Message Authentication Code (MAC) • 演算法: • 雜湊演算法 • 鑰匙嵌入方法 • 運作程序:
MAC 演算法 MAC-DES 演算法 HMAC 演算法 MAC-DES 演算法 FIPS PUB-113 標準 ANSI X9.17 標準 Data Authentication Algorithm (DAA) Data Authentication Code (DAC) 運作程序: DES 區塊加密 區塊長度:64 bits 鑰匙長度:56 bits 6-4 MAC-DES 演算法
6-5 HMAC 演算法 • Hash Message Authentication Code (HMAC) • RFC 2104 標準 • 可嵌入多種雜湊演算法:MD4、MD5 與 SHA-1 • 加入『秘密鑰匙』
6-5-1 HMAC 設計概念 • 依照 RFC 2104 所述: • 能在不修改現有的雜湊演算法之下,將它嵌入 HMAC 演算法之內。 • 當需要更快速的雜湊演算法時、或是新的雜湊演算法被發展出來的時候,我們希望能容易地更新內嵌的雜湊演算法。 • 當雜湊演算法被嵌入 HMAC 演算法之內後,期望能維持它原來的執行速度,以免造成執行效能大幅滑落。 • 可以簡單的使用鑰匙。 • 希望所嵌入的雜湊演算法能滿足一些合理的條件,並且可以根據這些條件分析該 HMAC 的安全強度。
6-5-2 HMAC 架構 • HMAC 架構 • HMACK(M) = H [(K+⊕ opad) || H [(K+⊕ ipad) || M]] • 鑰匙 K 以 0 補滿 512 bits • ipad:將00110110 重複b/8 次 • opad:將01011100 重複b/8 次
6-5-3 HMAC 的安全性 • 可能攻擊方法: • 暴力攻擊法:強力搜尋出所植入的秘密鑰匙。 • 生日攻擊法:找出此雜湊函數的碰撞訊息。
6-5-4實現 HMAC-MD5 • 程式範例 - (請參考書本或隨書光碟)
6-6-1明文與 MAC 傳送 6-6-2明文與 MAC 加密後傳送 6-6 MAC 操作模式 (1)
6-6 MAC 操作模式 (2) • 6-6-3 密文與 MAC 傳送 • 6-6-4密文計算 MAC 後傳送
6-7 MAC 演算法強度 • MAC 強度 • 攻擊 MAC 的方法: • 暴力攻擊法 • 生日攻擊法
暴力攻擊法 嘗試找出『秘密鑰匙』之破解 MAC 演算法: MAC = CK(M) 其中: MAC: MAC 值,長度為 k 。 C: MAC 演算法。 K:秘密鑰匙,長度為 n ,如 n > k。 M:訊息。 可能出現的鑰匙為 2n 可能出現的 MAC 碼為 2k 兩者之間可能相符的機會為 2(n-k) 蒐集:({M1, MAC1}、{M2, MAC2}、{M3, MAC3}, …,) 使用已知的演算法,並測試鑰匙。 破解步驟如下: 第一回合: 給予:M1與MAC1 = CK(M1) 對所有2k支鑰匙測試MAC1 = Ci(M1),i = 1, 2, …, 2k 約有2(n-k)把鑰匙符合。 第二回合: 給予:M2與MAC2 = CK(M2) 測試2(n-k)支鑰匙MAC = Ci(M1),i = 1, 2, …, 2(n-k) 約有2(n-2k)把鑰匙符合。 6-7-1 MAC 暴力攻擊法
6-7-2生日攻擊法 • 生日攻擊法 • 不破解鑰匙,利用已知明文(M1),去偽造另一個明文(M2)。 • CK(M1) = CK(M2)