Cryptography 使用一个密钥进行加密和HMAC

Cryptography 使用一个密钥进行加密和HMAC,cryptography,key,hmac,cbc-mac,Cryptography,Key,Hmac,Cbc Mac,我想知道是否可以使用两个客户端之间建立的共享密钥作为HMAC密钥 我发现当它被用作CBC-MAC时有一个问题,但我没有发现任何证据表明它对HMAC是不好的做法 谢谢, 弗拉基米尔(Vladimir)我认为它目前属于“似乎还可以,但为什么要冒险?” 最佳做法是让每一方从共享密钥生成两个新密钥: encryption-key := HMAC(shared-key, "Encryption Nonce") hmac-key := HMAC(shared-key, "Authenticity Nonce

我想知道是否可以使用两个客户端之间建立的共享密钥作为HMAC密钥

我发现当它被用作CBC-MAC时有一个问题,但我没有发现任何证据表明它对HMAC是不好的做法

谢谢,
弗拉基米尔(Vladimir)

我认为它目前属于“似乎还可以,但为什么要冒险?”

最佳做法是让每一方从共享密钥生成两个新密钥:

encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")

当咖啡馆躲开时。正确的方法之一是用一些额外的数据散列共享密钥

例如:

enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)
这样做的好处是不需要传输2个额外的nonce,并且易于实现

我不会在不同的功能中使用相同的键(enc+hmac)。这是自找麻烦和坏主意