Had an idea - looking for a math buff to tell me if it's possible
hj1980 at gmail.com
Thu May 19 02:42:55 UTC 2011
> My point here is it IS possible to transfer just a hash and counter value
> and effectively generate identical data at the remote end.
Nope. Let's use phone numbers as an example. I want to send you the phone
> number 540-231-6000. The hash function is "number mod 17 plus 5". So
> 5402316000 mod 17 plus 5 is '7'.
> OK. counter = 0. Hash that, we got 5. increment and hash, we get 6.
> and hash, we got 7. If we keep incrementing and hashing, we'll also get 7
> 19, 36, 53, 70, and roughly 317,783,289 other numbers before you get to my
> phone number.
> Now if I send you 2 and 7, how do you get that phone number back out, and
> sure you wanted *that* phone number and not 212-555-3488, which *also* ends
> with a hash of 7, so you'd send a counter of 2?
The correct values I would send for that hash function are 7 and the
approximate 317783289, the counter is incremented each time a data value is
reached with a matching hash to the data that is to be communicated, *not
hashing of the counter*..
I want to send you the number
The MD5 hash of this is f59a3651eafa7c4dbbb547dd7d6b41d7.
I generate data 0,1,2,3,4,5.. all the way up
observing the hash value of the data just generated each time. Whenever the
hash matches f59a3651eafa7c4dbbb547dd7d6b41d7 , I increment a counter.
Once I have reached the number I want to send you, I send the hash value and
the counter value.
You perform the same function starting at 0 and working your way up until
you have a matching counter value. The number of collisions in the range 0
-> target is represented by the counter value, and as long as both sides are
performing the same sequence this will work.
Obviously this is completely crazy and would never happen with current
processing power... It's just theoretical nonsense, but answers the OP's
More information about the NANOG