I am building file encryption based on AES, which should be able to work in random access mode (access to any part of the file). For example, you can use AES in Counter, but it is well known that we need a unique sequence that has never been used twice. Is it possible to use the simplified Fortuna PRNG in this case (encryption of the counter with a randomly selected unique key specific to a specific file)? Are there any flaws in this approach?
Thus, encryption / decryption may look like this:
Block encryption at offset:
rndsubseq = AESEnc(Offset, FileUniqueKey) xoredplaintext = plaintext xor rndsubseq ciphertext = AESEnc(xoredplaintext, PasswordBasedKey)
Decoding of the block at offset:
rndsubseq = AESEnc(Offset, FileUniqueKey) xoredplaintext = AESDec(ciphertext, PasswordBasedKey) plaintext = xoredplaintext xor rndsubseq
One observation. I came up with the idea used in Fortune, and undoubtedly later discovered that it was already invented. But since I read everywhere, the key point is security, but there is another good point: it is a large random number random number generator, so to speak (in a simplified form). So PRNG, which not only produces a very good sequence (I tested it with Ent and Die Hard), but also allows you to access any subsequence if you know the step number. So is it okay to use Fortuna as a "random access PRNG" in security applications?
EDIT:
In other words, I suggest using Fortuna PRNG as a setting to create a neat AES cipher with random access capability. I read the work of Liskov, Rivest and Wagner, but I could not understand what is the main difference between a cipher in operating mode and an encrypted cipher. They said that they suggested using this approach from the highest level inside the cipher itself, but, for example, in my case, xoring is plain text with a setting, is it a setting or not?