I have recently been studying up on the lorawan protocol for IoT devices.
LoraWAN has a handshake, and then communication can commense. Messages are encrypted and MAC'ed. When encryption and MAC's are made, the values FCntUp
and FCntDown
are mixed in. FCntUp
is used for Uplink messages, while FCntDown
is for downlink.
Both of the values start at 0, and increment with every message, and then reset every so often.
So, my question is about the usage of these incrementing values. So I guess one alternative to having this incrementing-counter approach, would be just using regular, random nonces for every message that you could send with the message.
But what are the pros and cons of using regular random nonces vs incrementing ones. Which security features do they provide us respectively? My guess would be that random nonces are sligthly safer, since an adversary can predict what the nonce will be in the future.