For more information on hash function goodness tests, check out https://github.com/demerphq/smhasher
Damian On Tuesday, February 12, 2019 at 5:23:39 AM UTC-8, Serhat Şevki Dinçer wrote: > > On Saturday, February 9, 2019 at 5:23:14 PM UTC+3, Serhat Şevki Dinçer > wrote: >> >> On Fri, Feb 8, 2019 at 7:42 PM Michael Jones wrote: >> > clustering: >> > https://www.cs.cornell.edu/courses/cs3110/2014fa/lectures/13/lec13.html >> > >> > careful hash functions often treat short inputs specially. >> > >> > iterated shift-xor alone is weak in expanding the "changed bits(s)" >> signal, at least by comparison to a) large prime multiply, b) good s-boxes, >> c) introduction of keyed material. >> Hm, thanks. I would like to try a particular version of this prime >> multiplication idea wih utf8 strings. >> I wrote for loops to find collisions (attached). It takes 3 seconds >> and finds no collision for strings with length < 4. >> The next step (including length=4, commented in the code) will take >> 13+ min and 32+ gb ram, so I appreciate if anyone with sufficient RAM >> could try that and report the result ;P >> Thanks.. >> > > I got access to a server with 64 gb ram. On it, using a Go map did not > work, so I used a list and sorted it for identifying collisions. > It turned out both prime and shift versions (attached) of the simple hash > turned out to be really good for small inputs. No collisions for > 7_918_845_952 inputs. > This required 59 GiB of ram. For a 64-bit cryptographic hash output, the > probability of a collision for that many inputs is about %82. > > What I am curious about next is > - How further can this test be taken ? When are the first collisions for > these simple hashes with the given code ? > - What are their "minimum sum of colliding inputs lengths" ? > - Is there a (smooth) trade-off between being cryptographic / > good-bit-mixing *and* being nice on small inputs / high minimum sum of > colliding inputs lengths ? Assume that we dont treat small inputs > differently, and there is one general algorithm for all inputs.. > - Can a cryptographic hash function have high minimum sum of colliding > inputs lengths, or be nice on small inputs ? > > Thanks.. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.