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.

Attachment: txt2int2.go
Description: Binary data

Reply via email to