implement CBC (cipher block chaining) cipher mode (tested)