HMAC与简单的MD5哈希

use*_*949 46 security md5 hmac

任何人都可以指出使用的优点HM?C是什么?

例如,如果我有文本T和密钥K,我可以使用任一HMAC-MD5算法或Md5(T + K)获取签名.

Bab*_*san 38

HMAC不易受长度延长攻击.

md5(T + K)应该适用于大多数用途,除非你的对手有动机篡改你的信息并具有非常好的计算能力.只要您控制T,生日攻击就不适用,您只有暴力攻击.但是要注意这些局限性是很好的.如果你想采用这种方法,你可能需要使用SHA1(T + K)而不是MD5.

md5(T + K)肯定比md5(K + T)更好,攻击者可以在其中附加文本并生成另一个有效的MAC.

对于md5(T + K),问题是如果攻击者能够找到与T2的冲突,使得md5(T)= md5(T2),则md5(T + K)= md5(T2 + K).但这需要蛮力攻击.

注意:我说" 只要你控制T ",因为如果可以对T进行更改(以这种方式不明显),可以尝试生成2条消息T1和T2,其中T1可以传递给T和md5 (T1)= md5(T2).现在这相对容易多了(我们说的是2 ^ 64而不是2 ^ 128),原因是所谓的生日悖论或生日攻击.

注意: HMAC的设计是为了避免这种类型的扩展攻击.没有已知的针对HMAC的攻击.


Eva*_*n M 28

关于HMAC维基百科文章给出了很好的解释.

在同一篇文章的安全部分,它继续说:

与单独的基础哈希算法相比,HMAC受冲突的影响要小得多.

因此,将HMAC添加到MD5哈希将使通过彩虹表突破变得更加困难.


Zed*_*Zed 5

我建议阅读Bellare,Canetti和Krawczyk 的HMAC论文.