I want to understand the issue here. I understand the bounds issue with CBC and ECB, and as such are not relevant to this discussion other than for history. The remainder is regarding LRW mode only...

My first statement is that I am not at all opposed to a statement that this should only be used to write 2^64 blocks (listening scenario) and to store 2^64 blocks (loss scenario) since most modes leak after the birthday bounds. Stating the bounds in the standard document helps the implementor since they can not not worry so much about how long to use a key. What I have not heard is the clear answer to the following passive attack (listening or loss) scenario...

Consider a single keyed space (partition if you like) that uses the same key (K1 and K2). c = ciphertext, m= message, s = tweak. LRW encryption is m=e(s,m)

First case, c1 == c2, s1==s2, we now have a dictionary entry since we now know that m1==m2. This is important but well discussed listening scenario.

Second case, c1 == c2, s1 != s2, can m1==m2? Aren't we dealing which three permutations, (think an entire partition of the same m), this can not happen, right?

Third case, c1 == c2, m1 != m2, s1 != s2. Does this case leak information about K1, K2, m1 or m2? Might all we know is that m1 != m2?

        Jim


On Jan 4, 2006, at 3:47 AM, Shai Halevi wrote:

(I will spare you the back-of-an-envelope
calculation of how long does it take to send 2^64 blocks over
a 100 Gbit/sec link.)

I think this argument is not very relivant. There was a time when 2^32 block was considered huge and 2^48 blocks was and impossibly large size.

ok, so I will not spare you the calculation: it takes roughly 550 years to send 2^64 blocks over a 128 Gbit/sec link. This says nothing about the
time to compute things or protocol overhead, just the time to move the
raw bits over the link.

(2^64 * 16 * 8 bits) / (128 * 2^30 bits/sec) =2^34 seconds =544.77 years

-- Shai

Reply via email to