ECB should not be used if encrypting more than one block of data with the same key.
CBC, OFB and CFB are similar, however OFB/CFB is better because
you only need encryption and not decryption, which can save code space.
CTR is used if you want good parallelization (ie. speed), instead of CBC/OFB/CFB.
XTS mode is the most common if you are encoding a random accessible data (like a hard disk or RAM).
OCB is by far the best mode, as it allows encryption and
authentication in a single pass. However there are patents on it in USA.
The only thing you really have to know is that ECB is not to be used
unless you are only encrypting 1 block. XTS should be used if you are
encrypting randomly accessed data and not a stream.
You should ALWAYS use unique IV's every time you encrypt, and they
should be random. If you cannot guarantee they are random, use OCB as it
only requires a nonce, not an IV, and there is a distinct difference. A
nonce does not drop security if people can guess the next one, an IV
can cause this problem Best of Luck
Jun 13th, 2015
Did you know? You can earn $20 for every friend you invite to Studypool!