Matt & all,

Although I have no problems with having the this discussion on the
mailing list, I will object to having it in the standard itself.
Standards are not an appropriate medium for this type of discussion.
Counting "how many bits are leaked after 2^64 blocks" may be an amusing
past-time, but in my view it is utterly irrelevant for anyone wanting to
actually use the standard. (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.)

> [...] CBC mode will on average leak about 128 bits of plaintext after
> 2^64 blocks [...]
> From looking at LRW mode, it looks like it will probably leak
> less information than ECB mode, but will likely leak more
> information than CTR mode, and possibly even more information
> than CBC mode.
> [...]
> As outlined in my previous e-mail, LRW mode will leak 128 bits of
> plaintext for every detected collision.

This answer your question, doesn't it?

> Theoretically, the birthday limit could even be reduced with a
> perfectly random K2, a certain percentage of the time.  For
> example, there is a 1 in 2^16 (1 in 65536) chance that the most
> significant 16 bits will be zero for a perfect random number.  In
> this situation, the birthday limit could be reduced by as much as
> 8 bits (from 2^64 to 2^56) depending on the characteristics of
> the data on disk.

I don't understand what you are trying to say here. It is trivial to
prove that for (X,I) != (X',I'), when you pick K2 at random and compute
Y = X xor K2*I and Y' = X' xor K2*I' then you get Y=Y' with probability
exactly 1/2^128.

Using the union bound, it then follows that if you have N such pairs
(X_i,I_i), the probability that you have even a single collision is no
more than (N choose 2)/2^128. (The actual probability is of course a bit
lower and it depends on the exact structure of these (X,I) pairs, but
the term above is an upper bound and usually a fairly accurate one.)

If this is not the answer you are looking for, can you rephrase the
question so I can understand what is it that you are asking?

> Writing K2 to Disk
> ------------------
> There is another security concern that should be outlined in the
> 1619 spec: Writing K2 to the disk.

I could not understand the point of this discussion. Why would you
ever write your crypto key to disk? And why do you talk about K2?
>From the point of view of the application that uses LRW there is no
K1 and K2, only a single LRW key.


> Modification attack with K2
> ---------------------------
> The 1619 spec should probably mention some of the exploits
> possible if the attacker acquires K2.

Why? Why not specify what the attacker can do with K1? Or with the data
which is encrypted with these keys? Again, we are trying to produce a
standard, not a free-form discussion document.

And again, there is no K1 and K2, this is just one key that the internal
LRW algorithm uses.


> Keeping IVs Different Across Different Vendors
> ----------------------------------------------

This discussion is relevant to the tape standard, but I don't see why
it would be relevant here.

> There was some talk about using
> a unique vendor ID, along with a drive serial number.

This was raised in the context of 1619.1, not 1619.

> More Comments on the LRW Alternative Mode (LRW-ECT)
> ---------------------------------------------------
> I wanted to revisit the alternative LRW mode and propose it as a
> stronger alternative to the current LRW mode, assuming that a
> user wants a stronger security level.

I disagree with the "stronger". The provable bounds that you get are
the same, and the exploits if the keys are guessable are almost the
same.

> However, I believe it is not statistically
> possible for an attacker to identify such a collision,

Of course there is. A collision is just as fatal, no matter what you
use to process the I component.

> However, if there was a need to encrypt highly
> sensitive information, and extra hardware is not a problem, then
> the LRW-ECT mode would provide a provably higher security level.

That's very wrong. In fact, no LRW derivative will ever buy you an "adequate
level of security" because it is length-preserving (and therefore cannot be
randomized and cannot have an authentication tag). LRW and all the other
variants give you pretty much the best you can get with length-preserving
encryption. For anything more, you need length-increasing encryption (which
will probably be done at the application layer, but maybe can also be done
at lower levels). I didn't see any real problem in any of Matt's posts (but
I also didn't understand parts of these posts), and I do not see any real
difference between the security of the LRW variants.

-- Shai

Reply via email to