消息驗證碼
稱爲密碼學校驗或密鑰的哈希函數,提供消息完整性和消息驗證。MAC是對稱密鑰方案,它也不提供不可否認性。速度比數字簽名快
- k:密鑰
- x:爲消息
所有基於哈希的消息驗證碼的基本思想就是,將密鑰和消息一起進行哈希
構建方式和攻擊方式
構建 | 計算公式 | 攻擊 | 攻擊原理 |
---|---|---|---|
m=h(k||x) | m=h(k||x1,x2…x3) | 添加額外xn+1 | 計算額外消息分組對應的MAC所需的輸入爲前一個哈希輸出xn+1,而不需要密鑰k, 前一個哈希輸出等於m |
m=h(x||k) | m=h(x||k) | 用x0替換x | 生日悖論攻擊 |
HMAC
由內部哈希和外部哈希組成
CBC-MAC
使用分組密碼來構建MAC
MAC生成
消息分組xi,其中i=1…n。使用私鑰k和初始值IV
y1=ek(x1^IV)
yi=ek(ei^yi-1)
m=MACk(x)=yn