Сохранение префикса хеш-функции
Я ищу хэш-функцию f()
чьи выходы могут сохранять префикс входов. Подробные требования заключаются в следующем.
f()
принимает битовые строки переменной длины в качестве входных и выходных битовых строк;- предполагать
a
а такжеb
битовые строки иa
подстрокаb
, затемf(a)
также подстрокаf(b)
; - длина строки выходного бита должна быть меньше строки входного бита.
Любая идея?
1 ответ
Не будет такой хеш-функции, которая соответствует вашему критерию.
Предположим, у вас есть такая хэш-функция Hash, которая сохраняет префикс, тогда ответьте на следующие вопросы:
(1) Хэш("а") =? Это может быть что угодно, верно?
(2) Как насчет Hash("xa")=? чтобы сохранить префикс, он должен быть |Hash("xa")-Hash("a")| + Хэш("а")
(3) Как насчет Hash("yxa")=? аналогично (2), это должно быть |Hash("yxa")-Hash("xa")| + |Хэш("xa")-Хэш("a")| + Hash("a") Таким образом, хэш всегда будет иметь большую длину, чем оригинал.