[Cfrg] Fwd: Hash-Based Key Derivation

David Wagner <daw@cs.berkeley.edu> Tue, 25 October 2005 21:47 UTC

Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1EUWdh-000490-TE; Tue, 25 Oct 2005 17:47:25 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1EUWdg-00048r-7I for cfrg@megatron.ietf.org; Tue, 25 Oct 2005 17:47:24 -0400
Received: from ietf-mx.ietf.org (ietf-mx [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id RAA16811 for <cfrg@ietf.org>; Tue, 25 Oct 2005 17:47:08 -0400 (EDT)
Received: from taverner.cs.berkeley.edu ([128.32.168.222]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1EUWqi-0003Fn-G7 for cfrg@ietf.org; Tue, 25 Oct 2005 18:00:52 -0400
Received: from taverner.CS.Berkeley.EDU (localhost.localdomain [127.0.0.1]) by taverner.CS.Berkeley.EDU (8.13.1/8.13.1) with ESMTP id j9PLlCbm021726 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 25 Oct 2005 14:47:12 -0700
Received: (from daw@localhost) by taverner.CS.Berkeley.EDU (8.13.1/8.13.1/Submit) id j9PLlCVO021722; Tue, 25 Oct 2005 14:47:12 -0700
From: David Wagner <daw@cs.berkeley.edu>
Message-Id: <200510252147.j9PLlCVO021722@taverner.CS.Berkeley.EDU>
Subject: [Cfrg] Fwd: Hash-Based Key Derivation
To: cfrg@ietf.org
Date: Tue, 25 Oct 2005 14:47:12 -0700
Secret-Bounce-Tag: 9a029cbee41caf2ca77a77efa3c13981
X-Mailer: ELM [version 2.5 PL6]
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 52e1467c2184c31006318542db5614d5
Content-Transfer-Encoding: 7bit
X-BeenThere: cfrg@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: David Wagner <daw-usenet@taverner.CS.Berkeley.EDU>
List-Id: Crypto Forum Research Group <cfrg.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/cfrg>, <mailto:cfrg-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:cfrg@ietf.org>
List-Help: <mailto:cfrg-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/cfrg>, <mailto:cfrg-request@ietf.org?subject=subscribe>
Sender: cfrg-bounces@ietf.org
Errors-To: cfrg-bounces@ietf.org

Simon Blake-Wilson writes:
>Thanks David ... interesting stuff. You clearly have a clear idea of what
>you think a KDF does in terms of security, but I guess I'd still like to
>see a convincing formal defintion.

For me, a KDF is a function that takes a secret input S and some auxiliary
input X.  The security requirement is that KDF(S,X) should act as a
pseudorandom function: in other words, an attacker should not be able
to distinguish KDF(S,.) from R(.), where R is a uniformly random function.

Achieving this security requirement will require some assumptions on the
distribution on S.  Thus, we can talk about a particular scheme being
a good KDF for some particular distribution on S (e.g., the uniform
distribution), or being a good KDF for some class of distributions
(e.g., distributions with high min-entropy).  Standard PRFs suffice if
the secret S is known to be uniformly distributed (or pseudorandom).
In the random oracle model, pre-hashing followed by a PRF suffices if
the secret S is known to have high min-entropy and is generated by an
efficient procedure that is independent of the random oracle.

>Also if making random oracle model assumptions is OK, then the definition
>in the I-D is also likely to be good, isn't it? For example, won't H(S|X)
>also be a good KDF if H is assumed to be a random oracle?

Yes, both H(S||X) and F(H(S),X) are good KDFs in the random oracle model.
However, I prefer the latter, because it minimizes the use of the
random oracle assumption.  The former assumes that the hash function
remains secure even if the adversary can specify many X-values and learn
H(S||X) for each such X (with the same S throughout).  This is a strong
assumption, which our hash functions weren't necessarily designed for.
The latter scheme makes a weaker assumption: that the hash function works
when the attacker does not have this extra ability to specify X-inputs.
Therefore, F(H(S),X) reduces our reliance on the hash function.  This is
admittedly a subtle point.  Still, as I remember Mihir Bellare and Phil
Rogaway putting it once, the weaker the assumptions you start from,
the less likely the scheme is to disappoint.

_______________________________________________
Cfrg mailing list
Cfrg@ietf.org
https://www1.ietf.org/mailman/listinfo/cfrg