In Cryptography Engineering Bruce recommends using "rand IV CBC mode" but the copy of the book I have is from 2003 and I am unsure if this is still a recommended practice with all the recent attacks discovered on various CBC implementations.
Is there a better choice then CBC mode?
I am writing a program that will be using a block cipher to encrypt a file locally. This is for a personal academic project.
Assume the following
- The block Cipher I am using is Threefish512 so GCM is not viable as it is only defined for 128-bit block ciphers
- The block cipher I am using is not supported by any modern crypto libraries (I am aware of) so I will be implementing this mode of operation myself
- The file is relatively small and the encryption/decryption of it is only done periodically so security is preferred over speed and parallelization ability
- The computer doing the encryption has not been physically compromised
- I have access to truly random numbers for IV generation
- This encryption will not be part of direct network communications so an attacker will not have access to input whatever they want into the cipher.
- A mode that offers authentication is preferred
- The details required to implement this mode of operation are in the public domain and not encumbered by any software patents