Re: and now for something completely different.




Antony Clements wrote:
Except for the pointless addition of the previous ciphertext byte this
is a stream cipher.

i know it is a stream cipher, that was not the question. the addition of the
previous ciphertext byte, with my limited understanding of such matters, is
not pointless because each cipher byte is 'fed back' into the loop to become
the next cipher byte which is then fed back in etc as what happens in CFB
mode. granted i'm probably wrong yet again because i'm not a cryptographer.

You're not much of a programmer, either ;-) Notice that C_i is
initially undefined for both encryption and decryption, thus making
your creation undecipherable. You can't just gloss-over details like
this.

It turns out that it's the nature of XOR that you don't achieve
anything by doing this:

C_j = P_j XOR K_j XOR C_i

because you can replace K_j with X_j = K_j XOR C_i and then you're left
with

C_j = P_j XOR X_j

which is, as Kristian pointed-out, is an ordinary stream cipher. Now
here's what he didn't say: if K_j is a secure key stream, then X_j is
no more or less secure than K_j because if K_j is unpredictable
(therefore secure) then X_j is also unpredictable (therefore secure).
"Unpredictable" is like "pregnant": either you are, or you aren't; you
can't be just a little bit of either.

.