Re: [TLS] New Cached info draft

Stefan Santesson <stefan@aaa-sec.com> Mon, 29 March 2010 09:43 UTC

Return-Path: <stefan@aaa-sec.com>
X-Original-To: tls@core3.amsl.com
Delivered-To: tls@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 247F13A691A for <tls@core3.amsl.com>; Mon, 29 Mar 2010 02:43:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.819
X-Spam-Level:
X-Spam-Status: No, score=-0.819 tagged_above=-999 required=5 tests=[AWL=1.300, BAYES_00=-2.599, DNS_FROM_OPENWHOIS=1.13, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_LOW=-1]
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 pjMuihBBGP6A for <tls@core3.amsl.com>; Mon, 29 Mar 2010 02:43:36 -0700 (PDT)
Received: from s87.loopia.se (s87.loopia.se [194.9.95.115]) by core3.amsl.com (Postfix) with ESMTP id 377793A6846 for <tls@ietf.org>; Mon, 29 Mar 2010 02:43:31 -0700 (PDT)
Received: from s29.loopia.se (s34.loopia.se [194.9.94.70]) by s87.loopia.se (Postfix) with ESMTP id 6BC862DB7F0 for <tls@ietf.org>; Mon, 29 Mar 2010 11:37:12 +0200 (CEST)
Received: (qmail 24203 invoked from network); 29 Mar 2010 09:36:56 -0000
Received: from unknown (HELO [192.168.1.3]) (stefan@fiddler.nu@[85.235.2.114]) (envelope-sender <stefan@aaa-sec.com>) by s29.loopia.se (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for <marsh@extendedsubset.com>; 29 Mar 2010 09:36:56 -0000
User-Agent: Microsoft-Entourage/12.24.0.100205
Date: Mon, 29 Mar 2010 11:36:54 +0100
From: Stefan Santesson <stefan@aaa-sec.com>
To: Marsh Ray <marsh@extendedsubset.com>
Message-ID: <C7D64156.9AB0%stefan@aaa-sec.com>
Thread-Topic: [TLS] New Cached info draft
Thread-Index: AcrPI13r2ywwzD6ccEytbfPiB9cyOQ==
In-Reply-To: <4BACFF25.3040109@extendedsubset.com>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Cc: Adam Langley <agl@imperialviolet.org>, "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] New Cached info draft
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Mar 2010 09:43:37 -0000

Marsh and all,

I would like to switch to FNV-1a.
The reason being that FNV-1 has the downside that the last octet only flips
bits in the lowest 8 bits of the digest value, while FNV-1a influence all 64
bits (by changing the order of multiplication and XOR).

See also:
http://sites.google.com/site/murmurhash/avalanche

The pseudocode for FNV-1a is:

      digest = FNV_offset_basis
      for each octet_of_data to be digested {
             digest = digest XOR octet_of_data
             digest = digest * FNV_prime }
      return digest

Could you run some test vectors also for FNV-1a?


/Stefan



On 10-03-26 11:38 AM, "Marsh Ray" <marsh@extendedsubset.com> wrote:

> On 3/26/2010 9:36 AM, Stefan Santesson wrote:
>> I have submitted a 05 version of cached info draft that fixes the recorded
>> errors and problems.
>> 
>> http://tools.ietf.org/rfcdiff?url2=draft-ietf-tls-cached-info-05.txt
> 
> Cool.
> 
> As a check, I implemented the FNV-1 64 algorithm directly from the
> pseudocode in the draft, and without reference to any other docs.
> 
> Then I tried a few test vectors from
> http://isthe.com/chongo/src/fnv/test_fnv.c
> 
> The results look good:
> 
> For input data:
> 0 bytes
> Digest is: CB F2 9C E4 84 22 23 25
> 
> For input data:
> 0000  61                                                a
> 1 bytes
> Digest is: AF 63 BD 4C 86 01 B7 BE
> 
> For input data:
> 0000  FF 00 00 01                                       ....
> 4 bytes
> Digest is: D6 B2 B1 7B F4 B7 12 61
> 
> For input data:
> 0000  68 74 74 70 3A 2F 2F 65 6E 2E 77 69 6B 69 70 65   http://en.wikipe
> 0010  64 69 61 2E 6F 72 67 2F 77 69 6B 69 2F 46 6F 77   dia.org/wiki/Fow
> 0020  6C 65 72 5F 4E 6F 6C 6C 5F 56 6F 5F 68 61 73 68   ler_Noll_Vo_hash
> 48 bytes
> Digest is: 26 CA F8 8B CB EF 2D 19
> 
> 
> Minor suggestions:
> 
> It might help to mention that this is FNV-1 and not the FNV-1a variant.
> 
> The pseudocode relies on indentation for correct interpretation.
> Whitespace seems to sometimes get whacked around a bit in these docs. A
> pair of curlys might prevent a (trivial) ambiguity.
> 
> Including a few of these test vectors might in the document could be
> useful, especially because there's not a solid normative ref for FNV-1.
> Feel free to use my text. I printed the digest as individual bytes to
> emphasize that they are a network sequence rather than a host integer.
> 
> - Marsh