[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Cfrg] soliciting feedback on HKDF
Hi there.
We've been considering using HKDF in the Tahoe-LAFS project [1].
Here are some our notes on the topic: [2, 3, 4, 5]
I have a few questions.
One is, which parts of the security arguments in the full paper
depend on "any good MAC" and which parts depend specifically on
HMAC? The full paper nicely names and cites all the properties that
its arguments are predicated on, but unfortunately it does not always
mention whether those properties (are believed to) hold of HMAC
specifically or of a larger class of algorithms.
Another question is: suppose we want to derive a key which is >= 1
and < order of an ECDSA group. Should we use HKDF for the smallest
number of bytes that are enough, check whether it is < the group
order, and then if not get more bytes? Or should we get more bytes
up to some integral multiple of the group order, divide by that
integral multiple, and then check whether it is < group order? Or what?
Another question is: suppose we're doing one of these algorithms
above, and we want to "get some more bytes" from HKDF . Should we
just read more bytes, or should we change the INFO field, for example
changing it to "Try number 2", and then read the first few bytes from
this new instance?
Another question is: suppose we're doing one of these algorithms, and
we want to spend more CPU power during the initial key generation in
order to spend less CPU power during subsequent re-generation of that
key. Then could we iteratively pick an IKM, check whether it would
produce a fitting key (>= 1 and < group order) in a single try, and
if not start over and pick a different random IKM?
Another question is: should we really include the "extract" step even
when the IKM is (believed by us) to be high-quality strong crypto
keys, or should we "optimize out" the extract step and just use the
expand step in this case?
Thank you very much!
Regards,
Zooko Wilcox-O'Hearn
[1] http://allmydata.com
[2] http://allmydata.org/trac/pycryptopp/ticket/2
[3] http://allmydata.org/pipermail/tahoe-dev/2009-August/002598.html
[4] http://groups.google.com/group/cryptopp-users/msg/01a2620f684a70bd
[5] http://groups.google.com/group/cryptopp-users/browse_thread/
thread/f30427601a5884f6