| rfc9923v8.txt | rfc9923.txt | |||
|---|---|---|---|---|
| Independent Submission G. Fowler | Independent Submission L. Noll | |||
| Request for Comments: 9923 Google | Request for Comments: 9923 | |||
| Category: Informational L. Noll | Category: Informational K. Vo | |||
| ISSN: 2070-1721 | ISSN: 2070-1721 Google | |||
| K. Vo | ||||
| D. Eastlake 3rd | D. Eastlake 3rd | |||
| Independent | Independent | |||
| T. Hansen | T. Hansen | |||
| AT&T | AT&T | |||
| January 2026 | February 2026 | |||
| The FNV Non-Cryptographic Hash Algorithm | The FNV Non-Cryptographic Hash Algorithm | |||
| Abstract | Abstract | |||
| FNV (Fowler/Noll/Vo) is a fast, non-cryptographic hash algorithm with | FNV (Fowler/Noll/Vo) is a fast, non-cryptographic hash algorithm with | |||
| good dispersion that has been widely used and is referenced in a | good dispersion that has been widely used and is referenced in a | |||
| number of standards documents. The purpose of this document is to | number of standards documents. The purpose of this document is to | |||
| make information on FNV and open-source code performing all specified | make information on FNV and open-source code performing all specified | |||
| sizes of FNV conveniently available to the Internet community. | sizes of FNV conveniently available to the Internet community. | |||
| skipping to change at line 222 ¶ | skipping to change at line 220 ¶ | |||
| standards documents: [RFC7357], [RFC7873], and [IEEE8021Q-2022]. | standards documents: [RFC7357], [RFC7873], and [IEEE8021Q-2022]. | |||
| A study has recommended FNV in connection with the IPv6 flow label | A study has recommended FNV in connection with the IPv6 flow label | |||
| value [IPv6flow]. Additionally, there was a proposal to use FNV for | value [IPv6flow]. Additionally, there was a proposal to use FNV for | |||
| Bidirectional Forwarding Detection (BFD) sequence number generation | Bidirectional Forwarding Detection (BFD) sequence number generation | |||
| [BFDseq]. [NCHF] discusses criteria for evaluating non-cryptographic | [BFDseq]. [NCHF] discusses criteria for evaluating non-cryptographic | |||
| hash functions. | hash functions. | |||
| If you use an FNV function in an application, you are kindly | If you use an FNV function in an application, you are kindly | |||
| requested to send a note via the process outlined at | requested to send a note via the process outlined at | |||
| <http://www.isthe.com/chongo/tech/comp/fnv/index.html#history>. | <http://www.isthe.com/chongo/tech/comp/fnv/index.html#address>. | |||
| 1.4. Why Is FNV Non-Cryptographic? | 1.4. Why Is FNV Non-Cryptographic? | |||
| A full discussion of cryptographic hash requirements and strength is | A full discussion of cryptographic hash requirements and strength is | |||
| beyond the scope of this document. However, here are three | beyond the scope of this document. However, here are three | |||
| characteristics of FNV that would generally be considered to make it | characteristics of FNV that would generally be considered to make it | |||
| non-cryptographic: | non-cryptographic: | |||
| 1. Sticky State - A cryptographic hash should not have a state in | 1. Sticky State - A cryptographic hash should not have a state in | |||
| which it can stick for a plausible input pattern. But in the | which it can stick for a plausible input pattern. But in the | |||
| skipping to change at line 6241 ¶ | skipping to change at line 6239 ¶ | |||
| digest = digest.multiply(fnvPrime).mod(m); | digest = digest.multiply(fnvPrime).mod(m); | |||
| } | } | |||
| return (digest); | return (digest); | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| Acknowledgements | Acknowledgements | |||
| Significant contributions were made by Glenn S. Fowler. | ||||
| The contributions of the following, listed in alphabetical order, are | The contributions of the following, listed in alphabetical order, are | |||
| gratefully acknowledged: | gratefully acknowledged: | |||
| Roman Donchenko, Frank Ellermann, Stephen Farrell, Tony Finch, Paul | Roman Donchenko, Frank Ellermann, Stephen Farrell, Tony Finch, Paul | |||
| Hoffman, Charlie Kaufman, Eliot Lear, Bob Moskowitz, Gayle Noble, | Hoffman, Charlie Kaufman, Eliot Lear, Bob Moskowitz, Gayle Noble, | |||
| Stefan Santesson, Mukund Sivaraman, and Paul Wouters. | Stefan Santesson, Mukund Sivaraman, and Paul Wouters. | |||
| Authors' Addresses | Authors' Addresses | |||
| Glenn S. Fowler | ||||
| Email: glenn.s.fowler@gmail.com | ||||
| Landon Curt Noll | Landon Curt Noll | |||
| Email: fnv-ietf8-mail@asthe.com | Email: fnv-ietf8-mail@asthe.com | |||
| URI: http://www.isthe.com/chongo | URI: http://www.isthe.com/chongo | |||
| Kiem-Phong Vo | Kiem-Phong Vo | |||
| Email: phongvo@gmail.com | Email: phongvo@gmail.com | |||
| Donald E. Eastlake 3rd | Donald E. Eastlake 3rd | |||
| Independent | Independent | |||
| End of changes. 5 change blocks. | ||||
| 12 lines changed or deleted | 8 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||