> >>if you need several keys, make them all independent (or derive 
> >>them using a strong pseudo-random generator).
> You did not comment on my real proposal of using AES keys K1, K1+K2,
> K1+K2^2,..., if you want to differentiate between disk drives.

Why do that? What's wrong with AES(K; 0), AES(K; 1), ...
as different keys?

> K2^k looks strong enough pseudorandom. 

Maybe, but then again maybe not. This is highly non-standard, so why
use it?

> >>an extension to EME that works on arbitrary-size strings...
> Could you compare it to XCB or ABL? 

Not of the top of my head (and I don't have enough time right now to
look into it carefully). Let's get the current standards out and then
go back to dealing with the other modes. 

> Also, I might have missed the licensing status. Could you update us?

The short answer is "don't know". What I do know is that neither I not
IBM have any IP claims on it. As for the rest of the world, your guess
is as good as mine.

> >>more or less random access to compartments, but sequential access to
> >>blocks within a compartment
> The drive index is a constant ID, 

If it really is a constant then why do you need it? I thought that someone
mentioned a RAID environment where there were many disks, each with its
own disk index (maybe Colin?)

> >>if you have two of them, you can do different processing to the 
> >>sequential index and the random-access index
> You can do different processing for each part of the I field, as well.

How?

> For notebook drives, an extra 128-bit key and an extra Galois
> multiplication for each LBA access could be prohibitive.

You don't have an extra multiplication for an LBA. There is just one real
multiplication per LBA, namely K2a * LBA-index. The other multiplication
(K2b * 2^{block-index)) is just K2b for the first block, 2*K2b for the
second, 4*K2b for the 3rd, etc. Computing this is just one shift and one
conditional xor per block.

The only additional cost is keeping 16 more bytes of key. I will be (very)
surprised if this turns out to be a significant cost (even for digital
cameras, let alone laptops).

Bottom line, the tradeoff is keeping 16 more bytes of key vs. doing the
carry-bit processing that is needed to go from K2*i to K2*(i+1). I don't
have a strong feeling either way, we just need to pick one of them.

-- Shai

Reply via email to