CBC-MAC是什麼?
04-01
> 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的過程如下圖所示。![](http://g.hiphotos.baidu.com/zhidao/wh%3D450%2C600/sign=895530fe8b26cffc697fb7b68c3166a6/241f95cad1c8a786f7070c696e09c93d70cf50a3.jpg)- 填充和分組:對消息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的方法,構造方法簡單,且底層的加密演算法具有黑盒性質,可以方便的進行替換。**推薦閱讀:
※什麼樣的頭像才是你喜歡的頭像呢?
※失戀的我很痛,怎麼學會愛一個人?
※好先生中的心理學--阿茲海默(老年痴呆)
※怎樣看待幸災樂禍的心理?
※無論發什麼都很期待別人點贊,如果贊數很少還會有些失望,該如何處理或是緩解?