cbc - why not like this? what's wrong? ok, well... first: it's a "just for fun" question. I don't have a project dealing with this... I've simply a bit time and would like to talk a bit about some (maybe stupid) possibilities and try to learn something...

I always thought (before I was looking at the algorithm) that algorithms like cbc provide security against modifications of the encrypted data (so the idea was -> if you can decrypt the last block, everything must be fine) ... obiousely that's not the case. And here are my questions:

a) why? ... why wasn't it designed like this? Today we need MAC's to confim the integrity. So, we need 2 different algorithms to achieve this goal... wouldn't it be easier if one algorithm would do all of it?

b) ... could CBC be modified in a way so that it would support it? In this case my "security Tag" could be ... well... don't know... maybe sending the first block again? If it matches, everything was fine? Or does it have a huge flaw I don't see right now? ... or, is it simply not practical because of the computational power it needs or... lack of parallelization... things like that...

(I modified the pictures from Wikipedia to show the first idea that crossed my mind)
why? ... why wasn't it designed like this? Today we need MAC's to confim the integrity. So, we need 2 different algorithms to achieve this goal... wouldn't it be easier if one algorithm would do all of it?


Yes, but the fact that a MAC is almost always required is simply an idea that surfaced later. MAC constructions themselves surfaced later than ciphers. Before them there was a focus on error propagation and cribs (checksum values also encrypted).


  ... could CBC be modified in a way so that it would support it? In this case my "security Tag" could be ... well... don't know... maybe sending the first block again? If it matches, everything was fine? Or does it have a huge flaw I don't see right now? ... or, is it simply not practical because of the computational power it needs or... lack of parallelization... things like that...


There are single pass algorithms such as OCB, but it is patented. GCM is another one which has a relatively cheap operation over all the blocks, so it is often called a 1,5 pass algorithm.

As you don't describe your algorithm well we cannot analyze it. Your altered CBC scheme obviously doesn't work. The way you XOR you can easily get repeat ciphertext for instance, leaking information about the plaintext. For instance, just encrypt all zero plaintext. A mode of encryption must be secure without any restrictions on the plaintext.

A MAC should be over all the data you need to protect (encrypted or not). I don't see that in your scheme (then again, I don't see any tag displayed in your scheme).