Assume I have a block of data consisting of three segments A, B and C. With "segments" I mean a particular section of a bit stream, so if the whole binary data was simply 00 01 02 ... FF
, A
might be 00 ... 5C
, B
could be 5D ... 72
and C
would then be 73 ... FF
.
K1
and K2
are 128 bit AES keys that were securely exchanged such that Alice has K1
and Bob has K2
.
- Alice gets data segments
ABC
encrypted withK1
. - Bob gets only data segment
B
encrypted withK2
.
My question is: if Bob got to know Alice's full cipher text for ABC
(that was encrypted with K1
), what could he deduce from the information he already has? Are there any circumstances under which Bob could decrypt segments A
and/or C
as well?
This is question is very similar to Vulnerabilities if encrypting the same data with 2 different keys, but not quite; I'm not asking about what Eve can deduce, but Bob.
I'm fairly new to encryption, and it was my understanding that AES is mostly XOR operations. For strict XOR operations, I think if you know any two a
, b
or c
where a ^ b = c
, you can calculate the third variable using XOR on the other two, as I think this was how parity bits for RAID systems work.
I keep finding hints as to AES is not just XOR, like How is XOR used for encryption? which in turn links to Why do block ciphers need a non-linear component (like an S-box)?. But I'm not sure I'm understanding the implications of the answers given there.
I think what the answers to those questions say is that for AES, K1
and K2
are just used to continuously generate a pseudo random bit stream, and only that is then XOR'ed with the data. So all Bob could deduce was the pseudo random bit stream section that has been used for Alice's B
, but the generator function is such that this doesn't give Bob a clue about K1
or the bits generated earlier for A
or later for C
.
Is this universally true? Or, as I have seen often mentioned, are there limitations as to how many bits B
may have to keep a 128 bit K1
, A
and C
reasonably secret from Bob?