I need to establish potentially infinite secure streams of data between many remote devices with very few resources. Chacha20 is lightweight enough, but I do not trust myself to implement a reliable nonce agreement protocol between devices.
One option is to use XChacha20 and random nonces, but I can not afford the performance reduction. Other option, the object of this question, is to generate a random 128 bits nonce and use it as both the conventional 64 bits nonce and the 64 bits counter.
Is there any references about the security of such a construction?
- All devices use same secret key.
- Public key cryptography is not an option due processing power and memory constrains.
- Devices are mobile, so any connection can fail at any time, requiring to reconnect again.