I'm trying to rebuild AES-CTR mode and have some questions concerning the generation of the nounce.
I've comonly seen the nonce be distributed like this $Nonce_{128\,bits} = IV_{64\,bits} \mathbin\Vert Counter_{64\,bits}$ where the IV is randomly generated foreach message and the Counter incremented foreach block of the message.
So, if the Nonce can be shared clearly on the network :
- is there a problem if the Nonce is predictible (never the same Nonce + Key but the adversary can predict them in advance) ?
- if not, why don't we use a simple $2^{128}$ counter starting at 0 and reset it every time we change the key ?
Thanks for your replies.
Update: so, according to your response, if I were to use a Linear Congruential Generator (which is not cryptographically secure) with the right parameters to get sufficient periodicity (superior to the number of messages I want to send) to get each and every nonce, It wouldn't compromise the security of the scheme ?