Is it safe to use the same IV for multiple encryptions in AES CBC mode when you are always encrypting random bytes? I am generating random bytes (16 or 32 bytes at a time), and I want to encrypt them using a 128 bit AES key in CBC mode. Am I really weakening this horribly if I am reusing the same IV and key each time I encrypt a set of random bytes, given that there is no structure at all in the data I am encrypting?

We can add a nonce to our scheme and change the IV each time, I am just trying to understand why (if) it is really required when encrypting data with no structure?
No, you're not weakening your data in that case. You could even use ECB in to encrypt random data. Symmetric key wrapping often just uses ECB. But beware that it depends on how many bytes you encrypt.

You may want to make sure all bytes are random (if you know the plaintext size in advance). Think about encrypting a single random byte and filling the rest with zero's or PKCS#7 compatible padding. Identical values would be easily detected.

You may want to very clearly document what you're doing though, because if you add context / structure to your random bytes it would be pretty easy to mess things up.



You could use SIV if you want to have secure, authenticated key wrapping for your random bytes. You would not need to generate a random IV and SIV would handle additional structure well. You would need to have an implementation of SIV and room for the synthetic IV (which is also the authentication tag) though.