- 我不确定我是否做对了:消息计数器可以用作/代替随机数?
我的意思是这样的消息:
标头(2 字节)|计数器(8字节)|正文(n 字节加密) | HMAC-SHA1
计数器= 1(63位= 0)可以吗?
- 我知道我不应该两次使用相同的密钥和相同的随机数。
当新的连接启动并且计数器再次从1开始时我该怎么办?
我知道我不应该两次使用相同的密钥和相同的随机数。当新的连接启动并且计数器再次从1开始时我该怎么办?
如果您重复使用具有相同密钥的随机数,有时候是这样的 https://crypto.stackexchange.com/a/108/13022。您应该将用作随机数的计数器存储在客户端的某个位置,为您发送的每条消息递增该计数器,并在发送该消息之前将其写回到存储中。这很重要,因为如果您未能将其写回,但发送了消息,则下一条消息将使用相同的计数器。如果您无法写回计数器,您确实不应该发送该消息。
If you cannot store something like a counter on the client, then you can randomly generate the nonce. 64 bit does not provide much space for good collision resistance. You should expect to get the first nonce collision after 232 messages with the same key. If you have much much fewer messages than this, then you can simply generate a random nonce and be fairly sure that there won't be a collision. If you want to be extra sure, use XSalsa20, which uses a 192 bit IV/nonce.
我不确定我是否做对了:消息计数器可以用作/代替随机数?
Nonce means 使用过一次的号码。如果您总是递增计数器,那么您将始终使用不同的数字once。所以,是的,计数器可以用作随机数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)