The FNV Non-Cryptographic Hash Algorithm
draft-eastlake-fnv-12

Document Type Active Internet-Draft (individual)
Last updated 2016-12-13
Stream (None)
Intended RFC status (None)
Formats plain text pdf html bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                       Glenn Fowler
INTERNET-DRAFT                                                    Google
Intended Status: Informational                          Landon Curt Noll
                                                           Cisco Systems
                                                           Kiem-Phong Vo
                                                                  Google
                                                         Donald Eastlake
                                                     Huawei Technologies
                                                             Tony Hansen
                                                       AT&T Laboratories
Expires: June 11, 2016                                 December 12, 2016

                The FNV Non-Cryptographic Hash Algorithm
                      <draft-eastlake-fnv-12.txt>

Abstract

   FNV (Fowler/Noll/Vo) is a fast, non-cryptographic hash algorithm with
   good dispersion. The purpose of this document is to make information
   on FNV and open source code performing FNV conveniently available to
   the Internet community.

Status of This Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Distribution of this document is unlimited. Comments should be sent
   to the authors.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html. The list of Internet-Draft
   Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

G. Fowler, L. Noll, K. Vo, et. al                               [Page 1]
INTERNET-DRAFT                                                       FNV

Table of Contents

      1. Introduction............................................3

      2. FNV Basics..............................................4
      2.1 FNV Primes.............................................4
      2.2 FNV offset_basis.......................................5
      2.3 FNV Endianism..........................................6

      3. Other Hash Sizes and XOR Folding........................7
      4. Hashing Multiple Values Together........................8
      5. FNV Constants...........................................9

      6. The Source Code........................................11
      6.1 FNV-1a C Code.........................................11
      6.1.1 FNV32 Code..........................................15
      6.1.2 FNV64 C Code........................................21
      6.1.3 FNV128 C Code.......................................32
      6.1.4 FNV256 C Code.......................................43
      6.1.5 FNV512 C Code.......................................55
      6.1.6 FNV1024 C Code......................................67
      6.2 FNV Test Code.........................................79

      7. Security Considerations................................93
      7.1 Why is FNV Non-Cryptographic?.........................93
      7.2 Inducing Collisions...................................94

      8. IANA Considerations....................................95
      Normative References......................................95
      Informative References....................................95
      Acknowledgements..........................................96

      Appendix A: Work Comparison with SHA-1....................97
      Appendix B: Previous IETF Reference to FNV................98
      Appendix C: A Few Test Vectors............................99

      Appendix Z: Change Summary...............................100
      From -00 to -01..........................................100
      From -01 to -02..........................................100
      From -02 to -03..........................................100
      From -03 to -04..........................................100
      From -04 to -05..........................................101
      From -05 to -06..........................................101
      From -06 to -07 to -08...................................101
      From -08 to -09..........................................101
      From -09 to -10..........................................101
      From -10 to -11..........................................102
      From -11 to -12..........................................102
Show full document text