Re: [IPsec] PAKE selection: PACE

Dennis Kügler <dennis.kuegler@bsi.bund.de> Tue, 01 June 2010 13:20 UTC

Return-Path: <dennis.kuegler@bsi.bund.de>
X-Original-To: ipsec@core3.amsl.com
Delivered-To: ipsec@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8F8CC3A687A for <ipsec@core3.amsl.com>; Tue, 1 Jun 2010 06:20:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.548
X-Spam-Level:
X-Spam-Status: No, score=-2.548 tagged_above=-999 required=5 tests=[AWL=-0.400, BAYES_50=0.001, HELO_EQ_DE=0.35, J_CHICKENPOX_31=0.6, J_CHICKENPOX_93=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-4, UNPARSEABLE_RELAY=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MV8ihpYrf10C for <ipsec@core3.amsl.com>; Tue, 1 Jun 2010 06:20:18 -0700 (PDT)
Received: from m3-bn.bund.de (m3-bn.bund.de [77.87.228.75]) by core3.amsl.com (Postfix) with ESMTP id D9A513A67CC for <ipsec@ietf.org>; Tue, 1 Jun 2010 06:20:16 -0700 (PDT)
Received: from m3.mfw.bn.ivbb.bund.de (localhost [127.0.0.1]) by m3-bn.bund.de (8.13.8/8.13.8) with ESMTP id o51DK3uH019990 for <ipsec@ietf.org>; Tue, 1 Jun 2010 15:20:03 +0200 (CEST)
Received: (from localhost) by m3.mfw.bn.ivbb.bund.de (MSCAN) id 4/m3.mfw.bn.ivbb.bund.de/smtp-gw/mscan; Tue Jun 1 15:20:03 2010
X-Virus-Scanned: by amavisd-new at bsi.bund.de
From: Dennis Kügler <dennis.kuegler@bsi.bund.de>
Organization: BSI Bonn
To: Dan Harkins <dharkins@lounge.org>
Date: Tue, 01 Jun 2010 15:19:36 +0200
User-Agent: KMail/1.9.10 (enterprise35 20100401.1112527)
References: <201005261337.14090.dennis.kuegler@bsi.bund.de> <8a7891f3e8674b766ae45a2c51ed1578.squirrel@www.trepanning.net>
In-Reply-To: <8a7891f3e8674b766ae45a2c51ed1578.squirrel@www.trepanning.net>
X-KMail-QuotePrefix: >
MIME-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Message-Id: <201006011519.36069.dennis.kuegler@bsi.bund.de>
X-AntiVirus: checked by Avira MailGate (version: 3.1.2; AVE: 8.2.1.242; VDF: 7.10.7.208; host: sgasmtp2.bsi.de); id=32268-nHgTnT
Cc: ipsec@ietf.org
Subject: Re: [IPsec] PAKE selection: PACE
X-BeenThere: ipsec@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Discussion of IPsec protocols <ipsec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ipsec>, <mailto:ipsec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ipsec>
List-Post: <mailto:ipsec@ietf.org>
List-Help: <mailto:ipsec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipsec>, <mailto:ipsec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 01 Jun 2010 13:20:19 -0000

Hi Dan,
>   Hi Dennis,
>
>   I have read the PACE submission. I believe claim 1 of the SPEKE patent,
> US 6,792,533, covers this protocol. If you do think otherwise, please
> explain why.

This is very simple. The password is only temporarily used to protect a nonce 
sent to the other party. The key derivation step is completely independent of 
the password.

>
>   Also, in PACE you compute CIPH=E(Pwd, s) where E() is the encryption
> function of some block cipher and Pwd is the shared password. You don't
> mention the block cipher but some block ciphers have weak keys and most
> take a fixed-length key. 

Pwd is a key derived from the password, so length constrainst are no problem. 
The block cipher is used as a permutation mapping random input to random 
output. The strength of the password-derived key is not very important as the 
entropy of the key is at most the entropy of the password - which is rather 
low.

> For a general specification like this I suggest 
> strengthening it by removing any kind of dependencies and also to bind
> the parties to the exchange. I suggest using an "extraction" function with
> the shared password and the identities of the two peers to distill the
> entropy from the password, bind the identities, and derive a key with
> which to do the encryption:
>
>    k = Extractor(Pwd | max(ID-A, ID-B) | min(ID-A, ID-B))
>    CIPH = E(k, s)
>
> where max(x,y) and min(x,y) output an ordering their inputs in some
> deterministic fashion, ID-A and ID-B are the identities of the two parties
> to the exchange, and "|" is concatenation.

I don't see the point of binding the key to identities, but I might miss 
something here.

Best regards,

Dennis