第12章 哈希算法和MAC算法MD5(精简) 联系客服

发布时间 : 星期二 文章第12章 哈希算法和MAC算法MD5(精简)更新完毕开始阅读a0eb6b04a6c30c2259019ef9

谭文学信息安全与保密教案 第45/67页:4/21/2013 11:34 AM

PADh表示Hash算法填充。 16. HMAC的过程

谭文学信息安全与保密教案 第46/67页:4/21/2013 11:34 AM

见图(P52图3-7)

MD5和SHA的用块都是64Bytes.设密钥为K0,

谭文学信息安全与保密教案 第47/67页:4/21/2013 11:34 AM

1K0→K;得到K(有三种情况)

++

1).|k|=64直接赋值, K=k, |K|=64下一步2; 2).|k|>64哈希赋值k0=h0=H(k),|k|=16,左边补48

++

个0以产生一个hash用块K, |K|=64, 下一步2, 3)|k|<64;对密钥K左边补64-|k|个0以产生一个

++

hash用块K, |K|=64, 下一步2, ++2.K与ipad(00110110)作XOR以产生Si= K⊕PADi.

+

3).对(Si||M)进行哈希,即:h1=Hash[K⊕PADi||M].

++4).K与opad(01011010)作XOR以产生So= K⊕

++

谭文学信息安全与保密教案 第48/67页:4/21/2013 11:34 AM

PADo;

5).So添加在步骤3所得哈希的左边,记为: So||h1,作为哈希的输入,哈希输出值为MAC。 即:HMAC= h2= Hash [

++

K⊕PADo || Hash[K⊕PADi||M|| PADh] || PADh]

算法过程:最多有3次哈希;最小有两次。 例子:m=”abc”;k=”123”求其HMAC值(哈希算法用MD5)? 解:

char message[]=\