Создает ли добавление двух значений хеша правильный хеш? - PullRequest
2 голосов
/ 04 апреля 2011

Создает ли 2 хеш-значения еще одно действительное хеш-значение? Другими словами, будет ли этот хеш (a) + хеш (b)! = Хеш (c) + хеш (d) всегда быть верным? Я не думаю, что это будет, но имеет ли это значение? Сохраняются ли основные свойства хеш-функции при добавлении?

Ответы [ 5 ]

3 голосов
/ 04 апреля 2011

Поскольку несколько значений могут иметь один и тот же хеш, может быть, что хеш (а) = хеш (b) = хеш (с) = хеш (d), поэтому также хеш (а) + хеш (b) = хеш c) + hash (d).

1 голос
/ 04 апреля 2011

Хэш, по теореме о пиджоне, не может быть свободным от столкновений. Таким образом, hash (a) + hash (b) == hash (c) + hash (d) для некоторых значений a, b, c и d. Добавление хеш-функций по-прежнему дает вам хорошие качества хешей, которые вы добавили вместе, но это не улучшит результат лучше, чем лучшее из двух. (Вы не увеличиваете свое хэш-пространство.)

Если подумать, результат будет только таким же, как и худший хеш, который вы добавили.

0 голосов
/ 04 апреля 2011

Ваш вопрос на английском языке не соответствует выражению, которое вы даете. Хотите знать, если:

  hash(a) + hash(b) != hash(c)

всегда будет правдой?

Ответ - нет. Любое значение может быть допустимым значением хеш-функции.

0 голосов
/ 04 апреля 2011

Я работаю в предположении, что когда вы говорите «хеш», вы ссылаетесь на криптографический, такой как MD5 или SHA1, если вы говорите о чем-то еще ... игнорируйте меня.

Добавление хешей было бы странным процессом, XOR их может иметь больше смысла ... иш.

Это возможно для hash (a) + hash (b) == hash (c) + hash (d), но невероятно маловероятно. Объединяя два хэша, вы создаете возможность (хотя есть вероятность, что хеш (a) == hash (c) с лодки, он просто тонкий). Хэширование идентичных элементов явно приведет к равенству.

0 голосов
/ 04 апреля 2011

Это зависит от вашего алгоритма хеширования, и в целом это не будет правдой. Учитывая конечную хеш-таблицу, любые два хеш-ключа в конце таблицы, если сложить их вместе, явно дадут вам хеш-ключ, превышающий предел ваших допустимых хеш-значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...