我有一种情况需要在两台机器之间发送的消息的HMAC计算中添加一个随机数。我正在考虑使用无符号64位计数器作为随机数。
// key pre-shared between sender and receiver
HMAC(key, message || nonce)
我会在每条消息后递增计数器。接收机器将验证HMAC并增加其计数器。我在线搜索,我得知一个nonce不能重复,但我也读到一个计数器可以作为一个nonce。
由于64位值最终会回绕到零,这样的计数器可以被视为nonce吗?
答案 0 :(得分:1)
是强>
由于64位值最终会回绕到零,这样的计数器可以被视为nonce吗?
2^64 = 18446744073709551616
。这个数字非常大。如果您每秒发送一百万个消息,则必须发送数千年的消息,直到您的64位nonce包装为止。