Robert,

On Jan 16, 2006, at 4:08 PM, Robert Sussland wrote:

When discussing key derivation functions, it's important to note that the resulting standard should be able to pass FIPS 140-2 certification, as this is a requirement for government customers, as well as many private sector customers.

Mart's proposal, or any KDF proposal, will not pass FIPS PUB 140-2, because in that standard:

1) A KDF may only be used as part of an asymmetric key establishment protocol, and in that case it must be a NIST KDF, OR

Does FIPS-140-2 actually put this restriction on a KDF? That's certainly an unneeded restriction, and also it is at odds with Section 3.1 of http://www.ietf.org/internet-drafts/draft-dang- nistkdf-00.txt, "(Key Derivation from) Secret Values Established out of band". So even if the current FIPS-140 docs have this restriction, it is clearly not the intended direction of NIST.


2) The key may be derived in accordance with FIPS PUB 171 -- which no one here wants to do, as this is a very prescriptive standard, OR

3) The key must be either generated from a NIST approved PRNG, or generated from another FIPS module and then loaded into encryption engine.

Therefore, whatever KDFs are being considered for deriving the various key components, I would leave them out of the standard, which would allow FIPS 140-2 compliant implementations as well as vendor specific implementations that do not need to be certified.

Well, it's not necessary to leave KDFs out of the specs in order to allow implementations to be FIPS-140 conformant. It is sufficient to not have a mandatory-to-use KDF that is not FIPS-140 conformant. The spec could mandate a KDF that didn't conform to FIPS-140, and it would still be possible to get a FIPS-140 validation, which would need to reference a security policy describing how to operate the cryptomodule in a manner that didn't use the non-coformant KDF.

David


Thanks,
Robert Sussland

On Jan 16, 2006, at 6:00 AM, Mart Sõmermaa wrote:

Suppose we have a key derivation function f, that, given a global key GK and sector index i, generates a unique sector key K_i
        f(GK, i) = K_i
that will be used to key e.g. LRW-AES.

In this case, LRW key scope is only a single sector (generally 32 blocks). Hence, the table based optimisation for multiplication in GF(2^128) do not work -- multiplication table (as described in LRW draft section 5.1) scope is also only 32 blocks. Also, the tweak increment optimisation (ibid. 5.2.1) is useless for the same reason.

Are there ways to optimize multiplication in GF(2^128) even when key scope is a single sector?

It has to be noted, that XEX as specified in
http://grouper.ieee.org/groups/1619/email/msg00610.html does not suffer these drawbacks and it seems that XEX is considerably more efficient than LRW in multiple key mode.

Reply via email to