序言:我对HMAC很新,所以如果问题有点愚蠢,请原谅我。
据我所知,HMAC用于确保消息未被篡改。所以基本上,它充当哈希码。但是,由于哈希算法已知,攻击者可以轻松地为消息的篡改版本计算新的哈希码。
这是HMAC试图解决的问题:它们提供的哈希不仅基于应被散列的消息,还基于加密密钥。这样就无法在不知道密钥的情况下计算消息的有效性。
到目前为止这是对的吗?
我现在的问题是:如果我们能够使用公钥签名实现相同的目标,我们需要什么样的HMAC? IIRC签名的工作原理完全相同:计算哈希值并对其进行签名,以确保没有人篡改消息或哈希值。
那么HMAC有什么意义呢?
答案 0 :(得分:5)
HMAC规模较小,计算和验证的CPU比用于可比安全级别的任何已知公钥操作少得多。