Re: [Cfrg] Adopting "AES-GCM-SIV: Nonce Misuse-Resistant Authenticated Encryption" as a CFRG document

"Dan Harkins" <dharkins@lounge.org> Thu, 31 March 2016 06:23 UTC

Return-Path: <dharkins@lounge.org>
X-Original-To: cfrg@ietfa.amsl.com
Delivered-To: cfrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4D7D712D0AE for <cfrg@ietfa.amsl.com>; Wed, 30 Mar 2016 23:23:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dUjGrIlNbPkV for <cfrg@ietfa.amsl.com>; Wed, 30 Mar 2016 23:23:32 -0700 (PDT)
Received: from colo.trepanning.net (colo.trepanning.net [69.55.226.174]) by ietfa.amsl.com (Postfix) with ESMTP id C7F2912D51E for <cfrg@irtf.org>; Wed, 30 Mar 2016 23:23:32 -0700 (PDT)
Received: from www.trepanning.net (localhost [127.0.0.1]) by colo.trepanning.net (Postfix) with ESMTP id 6C07A1022400A; Wed, 30 Mar 2016 23:23:32 -0700 (PDT)
Received: from 69.12.173.8 (SquirrelMail authenticated user dharkins@lounge.org) by www.trepanning.net with HTTP; Wed, 30 Mar 2016 23:23:32 -0700 (PDT)
Message-ID: <c9ad857d6d00c45036836553ffcd6dad.squirrel@www.trepanning.net>
In-Reply-To: <20048027-CB56-4FBB-ADF4-75CAFD4CE015@gmail.com>
References: <1893951588-3704@skroderider.denisbider.com> <CAHOTMVJOQRgTKQViYQu2qxzK4q9SrvdBZnGPmoeUyKO40aCdhg@mail.gmail.com> <541C676F-162B-49D5-9DD6-F9F0BA6DA513@gmail.com> <81b4ebaa8011b127a72168ef67afdec6.squirrel@www.trepanning.net> <20048027-CB56-4FBB-ADF4-75CAFD4CE015@gmail.com>
Date: Wed, 30 Mar 2016 23:23:32 -0700
From: Dan Harkins <dharkins@lounge.org>
To: Yoav Nir <ynir.ietf@gmail.com>
User-Agent: SquirrelMail/1.4.14 [SVN]
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Archived-At: <http://mailarchive.ietf.org/arch/msg/cfrg/rK7ISnMkbwIp1QN_Fikka0BUzsw>
Cc: Yehuda Lindell <yehuda.lindell@biu.ac.il>, "cfrg@irtf.org" <cfrg@irtf.org>, Adam Langley <agl@google.com>
Subject: Re: [Cfrg] Adopting "AES-GCM-SIV: Nonce Misuse-Resistant Authenticated Encryption" as a CFRG document
X-BeenThere: cfrg@irtf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/cfrg>, <mailto:cfrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cfrg/>
List-Post: <mailto:cfrg@irtf.org>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/cfrg>, <mailto:cfrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 31 Mar 2016 06:23:34 -0000


On Wed, March 30, 2016 11:01 pm, Yoav Nir wrote:
>
>> On 31 Mar 2016, at 8:38 AM, Dan Harkins <dharkins@lounge.org> wrote:
>>
>> On Wed, March 30, 2016 9:13 pm, Yoav Nir wrote:
>>> Hi, Tony
>>>
>>>> On 31 Mar 2016, at 6:40 AM, Tony Arcieri <bascule@gmail.com> wrote:
>>>>
>>>> On Wed, Mar 30, 2016 at 6:56 PM, denis bider <ietf-cfrg@denisbider.com
>>>> <mailto:ietf-cfrg@denisbider.com>> wrote:
>>>> I believe Dan's point was that AES256-GCM-SIV uses a 128-bit tag to
>>>> derive the final encryption key.
>>>>
>>>> No?
>>>> 4.  Encryption
>>>>
>>>>   AES-GCM-SIV encryption takes a 16-byte authentication key, a 16- or
>>>>   32-byte AES key, a 128-bit nonce, and arbitrary-length plaintext and
>>>>   additional data inputs.  It outputs an authenticated ciphertext that
>>>>   will be 16 bytes longer than the plaintext.
>>>
>>> I think the relevant section is the next paragraph where the record
>>> encryption key is defined. That too is defined to be the same length as
>>> the input key:
>>>
>>>   If the AES key is 16 bytes long then define the _record-encryption
>>>   key_ as the encryption of the nonce using the AES key.  If AES-256 is
>>>   being used then this is insufficient as 256 bits of key material are
>>>   needed.  Therefore the record-encryption key in this case is the
>>>   concatenation of the result of encrypting, using the AES key, the
>>>   nonce with the least-significant bit of the first byte set to zero
>>>   and then to one.
>>
>>  It's not the length, it's the number of values possible in that
>> length. Because this cipher mode is using AES-256-ECB as a 128-bit
>> PRP it is generating two distinct 128-bit blobs and concatenating
>> them. That means that there can only be 2^128 possible values of
>> that 256-bit key.
>
> Actually it’s 2^127, because the least significant bit of the first byte
> is set first to zero and then to one, rather than for example setting it
> to the original value first and flipping it for the second.

  The key is a concatenation of the output of two runs of AES-256-ECB.
It doesn't matter that one bit was set or cleared.

> But it is 2^127 possibilities for a record encryption key that is used
> either once or a very few times, and despite knowing that there are only
> 2^127 possibilities, I don’t see how you could iterate on them without
> either breaking AES-256 or iterating over the entire 2^256 space.

  As Watson pointed out, the number of values is 2^256 - 2^128.
You don't need to iterate over the entire 2^256 space to know which
values won't be possible keys, it's all 2^128 of them where the first
128 bits match the second 128 bits.

> I guess it would be nice to explain why they chose not to use a 256-bit
> nonce, but enlarging the nonce is not free.

  The nonce has to be the same size as the field that POLYVAL operates
on, and that's 2^128 bits.

  regards,

  Dan.