Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: [P1619-2] Question: Should we only allow one data unit size within a key scope?



Matt,

The P1619 and P1619.2 algorithms are designed for transparent encryption modules, to be inserted anywhere in the data path. The parameter setup of these modules is not specified in the standards, but it is an important issue: the keys, the key scopes and the data unit size have to be transferred to the encryption module.

The crypto algorithms see data blocks, individually (random access), and there is nothing in the standard that prevents changing the parameters as often as the user wants. It means that variable block size is possible even now, by dynamically loading parameters. It is outside the scope of the standard (which describes only the encryption of single data units).

Laszlo

Inactive hide details for Matt Ball <matt.ball@xxxxxxxx>Matt Ball <matt.ball@xxxxxxxx>


          Matt Ball <matt.ball@xxxxxxxx>
          No Phone Info Available

          10/25/2009 03:27 PM
          Please respond to
          Matt Ball <matt.ball@xxxxxxxx>


To

P1619-2@xxxxxxxxxxxxxxxxx

cc


Subject

Re: [P1619-2] Question: Should we only allow one data unit size within a key scope?

Hi David,

Thank you for your responses. 

[Just as a clarification, I made a minor typo below concerning 1619 vs. 1619.1:  IEEE Std 1619-2007 standardizes XTS-AES, which requires fix data unit sizes within a keyscope.  IEEE Std 1619.1-2007 standardizes the authenticated encryption modes of CCM, GCM, CBC-HMAC-SHA and XTS-HMAC-SHA, all of which can have variable data unit sizes within a key scope (using 1619 terminology).  I had incorrectly said 1619 instead of 1619.1 for the authenticated encryption modes.]

Overall, I think it's possible to allow differently sized data units within a key scope, but we'll need to be careful about correctly crafting the language.  I prefer to keep the data units the same size (because it's simpler), but if there is a need for allowing variable-length data units, here is some proposed text to append to P1619.2/D11, page 4, starting after line 14:


Feel free to suggest any changes to this text.  I'd like to use a 'shall' in this text instead of a 'should', but I'm having difficulty determining how to verify or enforce such a fuzzy requirement.
 

See comments below:

On Sun, Oct 25, 2009 at 7:27 AM, David McGrew wrote: (See clarification above concerning 1619 vs 1619.1: 1619.1 does have the property of allowing variable block sizes; 1619 does not, within a key scope).  Allowing blocks of differing lengths is an advantage only if used securely.  But I do understand that there's only so much you can do as a block cipher mode designer to prevent the users from abusing the mode.
 
There are no 'compatibility' issues between 1619 and 1619.2, only consistency issues.  That said, we can always change things to suit new requirements.
 

I think this is the case we're trying to avoid or at least discourage.  If these two hard disks are part of the same system, it's potentially secure to use the same key to encrypt both (if the tweak values are uniquely maintained), but if these two hard disks are independent, then you have the problem of potentially reusing tweak values in the two different contexts.  I think it would be much better in this example to use different keys for each hard disk, or to derive them from a master key.
 

From the perspective of the XCB transform as an isolated black box, this is true.  However, from a system perspective, using XCB within several consecutive variable-length blocks could lend itself to attacks where the attacker changes the meaning of the data by changing its geometry.  Valid data units could be truncated or extended with random data.
 
We can probably address this issue with such a statement, but will need to be careful in crafting the requirements so that they are verifiable (see top). Here again, I would argue that it is not a good idea to use the same key to encrypt data on two different disks, unless these disks also coordinate the tweak values (a.k.a. associated data).  That said, such systems can be secure, so we'll need to find a way to allow them without allowing blatantly insecure systems.
 



--
Thanks!

Matt Ball, Chair, IEEE P1619 Security in Storage Working Group
Staff Engineer, Sun Microsystems, Inc.
500 Eldorado Blvd, Bldg #5 BRM05-212, Broomfield, CO 80021
Work: 303-272-7580, Cell: 303-717-2717

GIF image