CTR is amenable to parallelization because you can split the message into chunks, each chunk having a range of counter values associated with it, and encrypt (or decrypt) each chunk independently. What I would like to know is if any other modes can do this?
My reason for wanting to know this is that I have a class with and
encrypt function, and if you encrypted two plaintexts with
CBC mode for example, it encrypts them from scratch. If I'm using a mode in which that doesn't matter,
CTR for example, then I won't raise an error if the user tries to encrypt another block.