Implementing AES-CBC (Matasano Crypto Challenge 10) I am currently doing the Matasano Crypto Challenge to learn a bit about cryptography. In that specific challenge one had to implement AES in CBC mode. I did that and verified that encryption and decryption are working using these test vectors. I can't manage to decrypt the message given in the challenge though. I am not asking you to decrypt it, but when I thought about it a bit more I got a bit confused due to the used IV (which is 0x00 for each byte). Doesn't this IV have no effect at all since the decrypted message just get's XORed against the IV? Shouldn't decryption also be possible using simple AES-ECB?

EDIT:
Sourcecode in Java: http://pastebin.com/cX8YZjD0
I suppose you have removed the base64 decoding, so you are working on the raw data.

Then indeed the first block is decrypted as if we were in ECB-mode, because after decrypting the first block, we xor with the IV, which is all 0 and indeed has no effect. 

However, the IV for the next block will be the original previous ciphertext block. So after decrypting that block we have to xor with this new IV, so there we cannot suffice with just ECB mode. See also this picture from the comments: