nanog mailing list archives

Re: Had an idea - looking for a math buff to tell me if it's possible


From: Heath Jones <hj1980 () gmail com>
Date: Thu, 19 May 2011 03:42:55 +0100

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.
Increment
and hash, we got 7.  If we keep incrementing and hashing, we'll also get 7
for
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
be
sure you wanted *that* phone number and not 212-555-3488, which *also* ends
up
 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*..

Example:
I want to send you the number
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000.
The MD5 hash of this is f59a3651eafa7c4dbbb547dd7d6b41d7.
I generate data 0,1,2,3,4,5.. all the way up
to 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
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
question.


Current thread: