Thanks Matt for this excellent analysis - it's more than just hand-waving. I 
was wondering at the
start about the probablility of collisions but then the penny dropped and it 
does all make sense.

> Concerning LRW mode:
> There is a possible security problem if Key2 is poorly chosen.
> The problem is especially bad if Key2 is a relatively short ASCII password.

Agreed entirely. Crypto keys should never normally be chosen like this. Ideally 
they are derived
using a True-RNG or a strong Psuedo-RNG seeded with a hashed password. This 
should be made VERY
clear in the LRW spec.

> Recovering Key2 in LRW:
> Frequently, (I1 + I2) will result in the same value, so it should be possible
> to precompute all the most common values, making a software-based attack 
> feasible.

In fact, for consecutive I1+I2 there are only 128 distinct values 
(1,3,7,15,...all-ones) and
provided that these can be inverted in the specified GF field (sometimes there 
is no inverse) this
can be done completely up-front, today, and the only "hacking" work is doing 
the multiplies in:

        Compute (C1 + C2) * some_possible_constants = K2

and waiting for the collisions. You can even extend this to use blocks spaced 
2,4,8 etc apart which
half the time will have only a single bit of difference in I1+I2 (more likely 
to be invertible?) and
get even more block pairs to work with.

> Covert Channel with LRW:

More worrying is the possibility that an attacker could write plaintext blocks 
which are
differentially encoded in a particular manner to deliberately reveal K2 more 
quickly?

> It might even be possible to encode K1 in this manner, causing a total loss 
> of security.

Yes, if they knew K1...

> Notes on alternative mode:
> I've attached a picture for a slightly different tweak mode that replaces the 
> Galois
> multiplier with a second AES engine.  Has anyone seen a mode like this?  In 
> particular,
> is there any known IP claims to this mode? (I do not make any claims myself)
> - It is possible to implement this using less hardware by reusing the AES 
> engine.  The
> throughput would be half as much, but this may not matter with laptop hard 
> disks.

I've not seen anything like this proposed before. It is well worth considering.

Implementation-wise it is rather nice because of re-use possibilities and 
parallelizability,
although it will be higher logic area for equivalent throughput.

Colin.

Reply via email to