消息認證概述

在網絡環境中的攻擊類型算法

  消息保密性範疇:    一、泄密  二、傳輸分析  安全

  消息認證/數字簽名:     三、假裝  四、內容修改 插入/刪除/轉換/修改(消息內容) 五、順序修改 插入/刪除/重排(以消息爲單位) 六、計時修改  延時/重播網絡

  數字簽名:         七、發送方否定  八、接收方否定函數

消息認證函數加密

  該函數用來產生認證符,可分紅三類spa

  一、Hash函數--以Hash值爲認證符blog

  二、消息加密--以整個信息加密後的密文做爲認證符圖片

  三、消息認證符(MAC)--以消息和密鑰做輸入,產生定長值做爲認證符數學

 消息加密io

  一、對稱加密

    

    可行性:既提供了保密性,又提供了認證。保密性源自加密和密鑰共享,認證則來自於密鑰共享。

    不足:若明文合法性難以斷定(如圖片或二進制文件等),則僅知足保密性,卻沒法認證。根源在於沒有可以識別的結構對明文合法性進行驗證。

    解決辦法:由於進行傳輸前只有發送方A知道明文M,A用函數F計算M生成錯誤檢測碼FCS,附在M後,而後一塊兒加密發送給B。第三方在不能破解密文狀況下不知道明文M,所以也就沒法僞造出符合條件的FCS,而接收方也就可以根據FCS進行身份認證。

    

  二、公鑰加密

    

     A用B的公鑰加密,B用本身的私鑰解密。因爲任何人都能獲取B的公鑰,僅此沒法判斷消息是從哪裏發過來的,即沒法認證。

 

    

     A用本身的私鑰加密或者簽名,因爲B只能用A的公鑰解密(約定明文合法性),所以有認證和簽名的功能。因爲任何人均可以獲得A的公鑰,所以不具備保密性。

    

    A用本身的私鑰簽名,而後再用B的公鑰加密。因爲只有B可以用本身的私鑰解密,所以保證了保密性。而又只有A的公鑰可以驗證簽名,所以還有認證和簽名的功能。

 

消息認證碼(MAC)   Message Authentication Codes

  MAC = C(K , M)

  M是輸入消息;C是MAC函數;K是共享密鑰;

  A計算出MAC後,將之附在不加密的明文M後面一塊兒發送給B。B根據K和M從新計算MAC進行比對認證。

  MAC有如下三種基本模式:

  

  MAC函數與加密的區別:MAC算法不要求可逆,而加密算法必須可逆。

  MAC函數與Hash函數的區別:MAC算法的輸入包含密鑰,而Hash不包含。

  因爲MAC基於共享密鑰,所以不能提供數字簽名。

  使用MAC的優勢:

    一、MAC將加密性與認證分離開來,能夠知足只須要認證不須要加密的需求。同時MAC使得層次結構更加靈活,如能夠在傳輸的不一樣的層次來分別完成加密和認證。

    二、MAC不影響明文的讀取,能夠一直附在明文後面,在須要的時候靈活認證。也能夠延長對消息的保護時間,而不只僅只是在傳輸的時候。也正是基於這一點,上圖b方案比c方案要更好一些。

  MAC的安全性:

  因爲認證函數的數學性質,與加密相比,認證函數更不易被攻破。

  由於MAC函數是一種多對一的函數,在窮舉攻擊下,給定明文和MAC值,攻擊者須遍歷全部可能的K以重現MAC值。因爲可能有許多K均可以重現MAC值,於是並不能肯定具體的認證密鑰,還必須再用新的明文MAC對再作驗證,直到K只剩下一種可能。

  MAC函數應具備的性質:

    一、攻擊者在已知M和MAC值以及MAC函數的狀況下,要構造知足MAC(K , M') = MAC(K , M)的消息M'在計算上不可行

      該要求是防止攻擊者不知道密鑰的狀況下也可以構造出與給定MAC匹配的新消息。

    二、對隨機的消息M和M',MAC(K , M) = MAC(K , M')的機率是2-n,其中n是MAC的位數

      該要求是使MAC函數具備均勻分佈的特色,對於選擇明文的窮舉攻擊平均都須要2n-1步才能找到具備給定MAC的消息

    三、設M' = f(M),例如f多是將M的一位或者多位取反,要求Pr[MAC(K , M) = MAC(K , M')] = 2-n

      該要求是認證算法不該對消息的某些部位比其餘部位的處理不均勻。

  常見的MAC函數實現:

    一、基於Hash函數的MAC--HMAC

    二、基於分組密碼的MAC--DAA和CMAC

    三、認證加密:CCM和GCM

相關文章
相關標籤/搜索