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.

Reply via email to