CBC-MAC

MAC全稱爲Message Authentication Code(消息認證碼)。MAC是用來保證數據完整性的一種工具。數據完整性是信息安全的一項基本要求,它可以防止數據未經授權被篡改。隨着網絡技術的不斷進步,尤其是電子商務的不斷髮展,保證信息的完整性變得越來越重要,特別是雙方在一個不安全的信道上通信時,就需要有一種方法保證一方所發送的數據能夠被另一方驗證是正確的、未經篡改的。

用數學的語言來描述,MAC實際上是將雙方共享的密鑰k和消息m作爲輸入函數,如將函數值記爲MACk(m),這個函數值就是一個認證標記,這裏用δ表示。攻擊者發起攻擊的時候,能得到的是消息和標記的序列對(m1,δ1), (m2,δ2),…(mq,δq)(其中δi= MACk(mi))。如果攻擊者可以找到一個消息m,m不在m1, m2,…, mq中,並且能夠得到正確的認證標記δ= MACk(m)就說明攻擊成功了。攻擊者成功的概率就是其攻破MAC的概率。其實就是hash函數的概念再述。

CBC-MAC

CBC-MAC是最爲廣泛使用的消息認證算法之一,同時它也是一個ANSI標準(X9.17)。CBC-MAC實際上就是對消息使用CBC模式進行加密,取密文的最後一塊作爲認證碼。

當取AES作爲加密的分組密碼時,稱爲基於AES的CBC-MAC,若需要產生認證碼的消息爲x,加密的AES密鑰爲k,則生成MAC的過程如下圖所示。
這裏寫圖片描述

  • 填充和分組:對消息x進行填充,將填充得到的消息分成t個n比特的分組,記爲x1, x2,…, xt。
  • 密碼分組鏈接:令Ek表示以k爲密鑰的加密算法AES,用以下方式計算Hi:
    H1←Ek(x1)
    Hi←Ek(Hi-1+xi),2≤i≤t
    則Ht就是x的消息認證碼。

CBC-MAC是一種經典的構造MAC的方法,構造方法簡單,且底層的加密算法具有黑盒性質,可以方便的進行替換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章