Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0006366OCamlOCaml standard librarypublic2014-04-12 08:372014-07-16 16:02
Reportergasche 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product Version4.02.0+dev 
Target VersionFixed in Version 
Summary0006366: [github patch] Switch to the (more collision-resilient?) SipHash function
Descriptionhttps://github.com/ocaml/ocaml/pull/24 [^]

The patchset changes the C API exposed in hash.h to make it digest-agnostic
(so as to make future changes simpler) and switches the hash function to
SipHash-2-4.

SipHash is a familly of cryptographically-strong hash functions which are
competitive (performance-wise) with MurmurHash, the hash function currently used. SipHash-2-4 ( https://131002.net/siphash/ [^] ) is the recommended version of SipHash.

Preliminary benchmarks look good. However, they were done using the functorized
version of Hashtbl, and this specific proposal hasn't been benchmarked yet.

Caveats:

- The testsuite hasn't been fixed yet (expected values changed for hashes)
Commits expected to change the behaviour of the hash function are nbraud@28bde97 ( https://github.com/nbraud/ocaml/commit/28bde97b8 [^] ) and nbraud@7dde207 ( https://github.com/nbraud/ocaml/commit/7dde207fe [^] )

- This patchset doesn't change the bit-width of the key and output (32 bits).
This weakens the hash function, compared to SipHash-2-4 as specified by its authors, but isn't fixable without breaking the API.
Tagsgithub, patch
Attached Files

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2014-04-12 08:37 gasche New Issue
2014-04-12 08:38 gasche Tag Attached: patch
2014-04-12 08:38 gasche Tag Attached: github
2014-04-12 08:43 gasche Severity minor => feature
2014-07-16 16:02 doligez Status new => acknowledged


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker