Використання 5-незалежних хеш-функцій для лінійного зондування


14

У хеш-таблицях, які вирішують зіткнення за допомогою лінійного зондування, для забезпечення очікуваної продуктивності необхідно і достатньо, щоб хеш-функція була з 5-незалежної родини. (Достатня кількість: "Лінійне зондування з постійною незалежністю", Паг та ін. , Необхідність: "Про k-незалежність, необхідну для лінійного зондування і мінімальної незалежності", Pătraşcu і Thorup )O(1)

Наскільки я розумію, найшвидші відомі 5-незалежні сім’ї використовують табличну таблицю. Вибір функції з такої родини може бути дорогим, тому я хотів би мінімізувати кількість разів, коли я це роблю, в той же час запобігаючи алгоритмічним атакам складності, як описано в «Відмови в сервісі Кросбі та Уоллаха через атаки алгоритмічної складності» . Мене менше турбує атака на час (тобто противники з секундомірами). Які наслідки повторного використання тієї ж функції:

  1. При вирощуванні хеш-таблиці, який занадто повний?
  2. Коли ви стискаєте хеш-таблицю, яка недостатньо повна?
  3. Під час перебудови хеш-таблиці, у якій встановлено занадто багато "видалених" бітів?
  4. У різних різних хеш-таблиць, які можуть містити загальні ключі?k
  5. У різних різних хеш-таблиць, які не містять загальних ключів?k

Якщо це питання щодо практики ... правдоподібним прагматичним підходом є використання криптографічної хеш-функції з випадковою таємницею, включеною у вхід, замість використання схеми, заснованої на табуляції. Тоді менше тиску для повторного використання тієї ж хеш-функції; ви можете використовувати іншу таємницю для кожної хеш-таблиці (і змінити секрет і повторно переробити все, зменшуючи / зростаючи / відновлюючи хеш-таблицю).
DW

Я думаю, що навіть швидкі криптографічні хеш-функції на короткому вході, такі як SipHash-2-4, досить повільні порівняно навіть у порівнянні з 5-ти незалежними сім'ями, які використовують поліноми.
jbapple

Відповіді:


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.