我想知道我是否也可以使用在两个客户端之间建立的共享密钥作为HMAC密钥。使用一个密钥进行加密和HMAC
我看到当它被用作CBC-MAC时存在问题,但是我还没有发现任何证据表明这对于HMAC是不好的做法。
感谢, 弗拉基米尔
我想知道我是否也可以使用在两个客户端之间建立的共享密钥作为HMAC密钥。使用一个密钥进行加密和HMAC
我看到当它被用作CBC-MAC时存在问题,但是我还没有发现任何证据表明这对于HMAC是不好的做法。
感谢, 弗拉基米尔
我相信它是目前在类别“似乎大概OK,但为什么要冒险呢?”。
最佳做法是让每个侧生成共享密钥两个新按键:
encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")
由于CAF躲避到。正确的做法之一是对共享密钥加上一些额外的数据。
例如:
enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)
这具有不需要传递2个额外的随机数,以及易于实现的利益。
我不会在不同的函数(enc + hmac)中使用相同的密钥。这是要求麻烦和一个坏主意。