У математиці та обчислювальній техніці універсальне гешування (у рандомізованому алгоритмі чи структурі даних) означає випадковий вибір геш-функції з сімейства геш-функцій із певною математичною властивістю (див. визначення нижче). Це гарантує низьку кількість колізій в очікуванні, навіть якщо дані вибирає зловмисник. Відомо багато універсальних сімейств (для гешування цілих чисел, векторів, рядків), і їх оцінка часто дуже ефективна. Універсальне гешування має численні застосування в інформатиці, наприклад у реалізації геш-таблиць, рандомізованих алгоритмів і криптографії.
Вступ
Припустимо, ми хочемо відобразити ключі з якогось універсуму в кошиків (позначених ). Алгоритм повинен буде обробляти певний набір даних з ключів, про які заздалегідь не відомо. Зазвичай метою гешування є отримання невеликої кількості колізій (ключів з які потрапляють в один кошик). Детермінована геш-функція не може запропонувати жодних гарантій у ситуації змагання, якщо , оскільки противник може вибрати , яке є саме прообразом кошика. Це означає, що всі ключі даних потрапляють в один кошик, що робить гешування марним. Крім того, детермінована геш-функція не допускає повторного гешування: іноді вхідні дані виявляються поганими для геш-функції (наприклад, забагато колізій), тому можна змінити геш-функцію.
Рішення цих проблем полягає у випадковому виборі геш-функції з сімейства геш-функцій. Сімейство геш-функцій називається універсальним, якщо
Іншими словами, будь-які два різні ключі універсуму утворюють колізію з максимальною ймовірністю коли геш-функція обирається рівноімовірно випадковим чином із . Це саме та ймовірність колізії, яку ми очікували б, якби геш-функція призначала справді випадкові геш-коди кожному ключу.
Іноді визначення пом'якшується постійним множником, коли вимагається лише ймовірність колізії а не . Ця концепція була введена Картером і Вегманом у 1977 році та знайшла численні застосування в інформатиці (див., приклад) .
Якщо верхня межа ймовірності колізії , говорять про -майже універсальність. Так, наприклад, універсальне сімейство є -майже універсальним.
Багато, але не всі універсальні родини мають наступну сильнішу властивість рівномірної різниці:
- , коли вибирається випадковим чином із сімейства , різниця рівномірно розподілена в .
Слід зауважити, що визначення універсальності стосується лише випадку , по якому підраховуються колізії. Властивість рівномірної різниці сильніша.
Аналогічно універсальне сімейство може бути XOR-універсальним, якщо для значення рівномірно розподілене в , де — операція побітового виключного АБО. Це можливо тільки якщо є степенем двійки.
Ще сильнішою умовою є [en]: коли , то ймовірність, що гешування відобразить у будь-яку пару геш-значень ніби вони абсолютно випадкові: . Попарну незалежність іноді називають сильною універсальністю.
Ще одна властивість — однорідність. Кажуть, що сімейство однорідне, якщо всі геш-значення однаково імовірні: для будь-якого геш-значення . Універсальність не означає однорідності. Однак сильна універсальність передбачає однорідність.
Маючи сімейство з властивістю рівномірної відстані, можна створити попарно незалежне або сильно універсальне геш-сімейство шляхом додавання рівномірно розподіленої випадкової константи зі значеннями з до геш-функцій. (Так само, якщо є степенем двійки, ми можемо досягти попарної незалежності від XOR-універсального геш-сімейства за допомогою операції XOR з рівномірно розподіленою випадковою константою.) Оскільки зсув на константу іноді нерелевантний у програмах (наприклад, геш-таблиці), ретельне розрізнення між властивістю рівномірної відстані та попарною незалежністю іноді не робиться.
Для деяких застосувань (таких як геш-таблиці) важливо, щоб молодші біти геш-значень також були універсальними. Коли сімейство сильно універсальне, це гарантовано: якщо є сильно універсальним сімейством з , то сімейство, що складається з функцій для усіх , також є універсальним для . На жаль, це не стосується (просто) універсальних сімейств. Наприклад, сімейство з функції ідентичності є однозначно універсальним, але сімейство, яке складається з функції , не може бути універсальним.
[en] і [en], а також кілька інших алгоритмів кодів автентифікації повідомлень базуються на універсальному гешуванні. У таких застосуваннях програмне забезпечення вибирає нову геш-функцію для кожного повідомлення на основі унікального довільного числа для цього повідомлення.
Кілька реалізацій геш-таблиць засновані на універсальному гешуванні. У таких застосуваннях зазвичай програмне забезпечення вибирає нову геш-функцію лише після того, як помічає, що «забагато» ключів утворюють колізії; до того часу та сама геш-функція продовжує використовуватися знову і знову. (Деякі схеми вирішення колізій, такі як [en], вибирають нову геш-функцію кожного разу, коли виникає колізія. Інші схеми вирішення колізій, такі як зозулине гешування та [en], допускають кілька колізій перед вибором нової геш-функції). Огляд найшвидших відомих універсальних і сильно універсальних геш-функцій для цілих чисел, векторів і рядків можна знайти в джерелі.
Математичні гарантії
Для будь-якого фіксованого набору з ключів, використання універсального сімейства гарантує такі властивості.
- Для будь-якого фіксованого у очікуване число ключів у кошику дорівнює . При реалізації геш-таблиць методом ланцюжків це число пропорційне очікуваному часу роботи по ключу (наприклад запиту, вставляння чи видалення).
- Очікуване число пар ключів у з , які утворюють колізію () обмежене зверху , що є порядком . Коли число кошиків обране лінійно в (тобто визначене функцією у ), очікуване число колізій становить . При гешуванні у кошиків з імовірністю не менше 0.5 не існує колізій взагалі.
- Очікуване число ключів , які утворюють щонайменше колізій, обмежене зверху як . Таким чином, якщо ємність кожного кошика обмежена потрійним середнім розміром (), загальна кількість ключів у переповнених кошиках не більше . Це справедливо лише для геш-сімейства, ймовірність колізії якого обмежена згори . Якщо використовується слабше визначення з обмеженням імовірності колізій , результат перестає бути істинним.
Оскільки наведені вище гарантії справедливі для будь-якого фіксованого набору , вони зберігаються, якщо набір даних вибрано противником. Однак противник повинен зробити цей вибір до (або незалежно від) випадкового вибору алгоритму геш-функції. Якщо зловмисник може спостерігати за випадковим вибором алгоритму, випадковість не має сенсу, і ситуація така ж, як і з детермінованим гешуванням.
Друга і третя гарантія зазвичай використовуються в поєднанні з [en]. Наприклад, може бути підготовлений рандомізований алгоритм для обробки деякої кількості колізій. Якщо він спостерігає занадто багато колізій, він вибирає іншу випадкову з родини і повторює гешування. Універсальність гарантує, що кількість повторень є геометричною випадковою величиною.
Конструкції
Оскільки будь-які комп'ютерні дані можуть бути представлені як одне або більше машинних слів, зазвичай потрібні геш-функції для трьох типів доменів: машинні слова («цілі числа»); вектори машинних слів фіксованої довжини; і вектори змінної довжини («рядки»).
Гешування цілих чисел
У цьому розділі розглядається випадок гешування цілих чисел, які вписуються в машинні слова; таким чином, такі операції, як множення, додавання, ділення тощо, є дешевими машинними інструкціями. Нехай універсум, що гешується .
Початкова пропозиція Картера і Вегмана полягала у виборі простого числа і визначенні
де випадково вибрані цілі числа за модулем з . (Це одна ітерація лінійного конгруентного генератора.)
Щоб побачити, що є універсальним сімейством, слід зауважити, що виконується лише коли
для деякого цілого числа між і . Оскільки , якщо їх різниця не дорівнює нулю і має оберенене за модулем число. Розв'язання для
- .
Існує можливих варіантів для (оскільки виключається) і, варіюючи в допустимому діапазоні, можливо отримати ненульових значень для правої частини. Таким чином, ймовірність колізії дорівнює
- .
Інший спосіб побачити, що є універсальним сімейством використовує поняття [en]. Різницю можна переписати як
- .
Оскільки не дорівнює нулю і рівномірно розподіляється в , з цього випливає, що по модулю також рівномірно розподіляється в . Розподіл таким чином є майже рівномірним, аж до різниці в ймовірності між зразками. У результаті статистична відстань до однорідної родини становить , яка стає незначною, коли .
Сімейство простіших геш-функцій
є лише приблизно універсальним: для усіх . Крім того, цей аналіз є майже строгим; Картер і Вегман показують що будь-коли .
Уникнення модульної арифметики
Найсучаснішим для гешування цілих чисел є схема множення-зсуву, описана Діцфельбінгером та ін. у 1997 р. Завдяки уникненню модульної арифметики цей метод набагато легше реалізувати, а також він працює значно швидше на практиці (зазвичай щонайменше в чотири рази). Схема припускає, що кількість кошиків є ступенем двійки, . Нехай буде кількістю бітів у машинному слові. Потім геш-функції параметризуються над непарними додатними цілими числами (що вписується в одне -бітове слово). Щоб оцінити , слід помножити на по модулю а потім зберегти старші бітів як геш-код. У математичній нотації це
Ця схема не задовольняє властивості рівномірної різниці і є єдиною -майже універсальною; для будь-якого , .
Щоб зрозуміти поведінку геш-функції, зауважимо, що якщо і мають однакові старші M бітів, тоді має всі одиниці або всі нулі у старших M бітах (залежно від того, що більше: чи ). Припустимо, що набір молодших бітів з'являється на позиції . Через те, що є випадковим непарним цілим числом, а непарні цілі числа мають обернені значення у кільці , слідує, що буде рівномірно розподілено серед -бітових цілих чисел з молодшим установленим бітом на позиції . Таким чином, імовірність того, що всі ці біти складаються з 0 або 1, не перевищує .
З іншого боку, якщо , тоді старші M бітів містять і 0, і 1, тому . Насамкінець, якщо то біт значення є 1, і тоді і тільки тоді, коли біти також є 1, що відбувається з імовірністю .
Цей аналіз є строгим, як можна показати на прикладі і . Щоб отримати дійсно «універсальну» геш-функцію, можна використати схему множення-додавання-зсуву, яка вибирає старші біти
де є випадковим натуральним числом з і є випадковим невід'ємним цілим числом з . Для цього потрібно виконувати арифметику -розрядних беззнакових цілих чисел. Ця версія множинного зсуву належить Діцфельбінгеру, а пізніше була більш точно проаналізована Вельфелем.
Гешування векторів
Цей розділ стосується гешування вектора машинних слів фіксованої довжини. Вхідні дані інтерпретуються як вектор з машинних слів (цілі числа по бітів кожне). Якщо є універсальним сімейством з властивістю рівномірної різниці, наступне сімейство (походить від Картера і Вегмана) також має властивість рівномірної різниці (і, отже, є універсальним):
- .
Якщо є степенем двійки, підсумовування можна замінити виключним або.
На практиці, якщо доступна арифметика подвійної точності, вона створюється за допомогою сімейства геш-функцій із множним зсувом. Якщо ніціалізувати геш-функцію вектором випадкових непарних цілих чисел по бітів кожне, тоді, якщо кількість кошиків дорівнює для :
- .
Можна вдвічі зменшити кількість множень, що на практиці приблизно означає подвійне прискорення. Якщо ніціалізувати геш-функцію вектором випадкових непарних цілих чисел на біти кожне, то наступне сімейство геш-функцій є універсальним:
- .
Якщо операції подвійної точності недоступні, можна інтерпретувати вхідні дані як вектор півслів ( -розрядні цілі числа). Далі буде використовуватися алгоритм множення, де — кількість півслів у векторі. Таким чином, алгоритм працює зі швидкістю одного множення на вхідне слово.
Цю ж схему також можна використовувати для гешування цілих чисел, інтерпретуючи їхні біти як вектори байтів. У цьому варіанті векторна техніка відома як [en] та забезпечує практичну альтернативу універсальним схемам гешування на основі множення.
Також можлива сильна універсальність на високій швидкості. Потрібно ініціалізувати геш-функцію вектором випадкових цілих чисел на бітів. Обчислити
- .
Результат сильно універсальний на бітах. Експериментально було встановлено, що він працює на швидкості на 0,2 цикла процесора на байт на останніх процесорах Intel для .
Гешування рядків
Це стосується гешування вектора машинних слів змінного розміру. Якщо довжину рядка можна обмежити невеликим числом, найкраще використовувати векторне рішення зверху (концептуально доповнюючи вектор нулями до верхньої межі). Потрібний простір — це максимальна довжина рядка, але час для оцінки це просто довжина . Поки нулі заборонені в рядку, доповнення нулями можна ігнорувати під час оцінювання геш-функції без впливу на універсальність. Слід зауважити, що якщо в рядку дозволені нулі, тоді, можливо, найкраще буде додати фіктивний ненульовий символ (наприклад, 1) до всіх рядків перед доповненням: це гарантує, що це не вплине на універсальність.
Тепер припустимо, що ми хочемо гешувати , де гарна межа апріорі невідома. Універсальне сімейство, запропоноване, розглядає рядок як коефіцієнти полінома за модулем великого простого числа. Якщо , прийняти просте число і визначити:
- , де є рівномірно випадковим і вибирається випадковим чином із універсального сімейства, що відображає: цілі числа .
Використовуючи властивості модульної арифметики, наведене вище можна обчислити без отримання великих чисел для великих рядків, як показано нижче:
uint hash(String x, int a, int p) uint h = INITIAL_VALUE for (uint i=0 ; i < x.length ; ++i) h = ((h*a) + x[i]) mod p return h
Цей коткий геш Рабіна-Карпа базується на лінійному конгруентному генераторі. Наведений вище алгоритм також відомий як мультиплікативна геш-функція. На практиці оператора mod і параметра p можна взагалі уникнути, просто дозволивши цілочисельне переповнення, оскільки це еквівалентно mod (Max-Int-Value + 1) у багатьох мовах програмування. У таблиці нижче показано значення, вибрані для ініціалізації h і a для деяких популярних реалізацій.
Реалізація | Початкове значення | a |
---|---|---|
геш-функція Бернштайна djb2 | 5381 | 33 |
STLPort 4.6.2 | 0 | 5 |
геш-функція Кернігана та Річі | 0 | 31 |
java.lang.String.hashCode() | 0 | 31 |
Розглянемо два рядки і нехай бути довжиною довшого; для аналізу коротший рядок концептуально доповнюється нулями до довжини . Колізія при застосуванні означає, що є коренем многочлена з коефіцієнтами . Цей многочлен має не більше коренів по модулю , тому ймовірність колізії не більше . Імовірність колізії через випадковість доводить загальну ймовірність колізії до . Таким чином, якщо просте є достатньо великим порівняно з довжиною гешованих рядків, сімейство дуже близько до універсального (за статистичною відстанню).
Інші універсальні сімейства геш-функцій, які використовуються для гешування рядків невідомої довжини до геш-значень фіксованої довжини, включають відбиток Рабіна та Бужаш.
Уникнення модульної арифметики
Щоб пом'якшити обчислювальні витрати від модульної арифметики, на практиці використовуються три прийоми:
- Обирається просте , близьке до степеня двійки, наприклад [en]. Це дозволяє арифметику по модулю реалізувати без ділення (з використанням швидших операцій, таких як додавання та зсув). Наприклад, на сучасних архітектурах можна працювати з , поки є 32-розрядними значеннями.
- До блоків можна застосувати векторне гешування. Наприклад, можна застосувати гешування векторів до кожного блоку з 16 слів рядка, а також застосувати гешування рядка до результатів. Оскільки повільніше гешування рядків застосовується до значно меншого вектора, загальна швидкість, по суті, буде така ж, як і швидкість гешування векторів.
- Дільником вибирається ступінь двійки, що дозволяє виконувати арифметичні дії за модулем без ділення (з використанням швидших операцій маскування бітів). [en] використовує цей підхід.
Див. також
- [en]
- Коткий геш
- [en]
- [en]
- [en]
- Послідовність із низькою розбіжністю
- [en]
Примітки
- Carter, Larry; (1979). Universal Classes of Hash Functions. Journal of Computer and System Sciences. 18 (2): 143—154. doi:10.1016/0022-0000(79)90044-8. Conference version in STOC'77.
- Miltersen, Peter Bro. Universal Hashing (PDF). Архів оригіналу (PDF) за 24 травня 2011. Процитовано 24 червня 2009.
{{}}
: Проігноровано невідомий параметр|df=
() - Motwani, Rajeev; Raghavan, Prabhakar (1995). Randomized Algorithms. Cambridge University Press. с. 221. ISBN .
- David Wagner, ed. «Advances in Cryptology — CRYPTO 2008». p. 145.
- Jean-Philippe Aumasson, Willi Meier, Raphael Phan, Luca Henzen. «The Hash Function BLAKE». 2014. p. 10.
- (2015). High Speed Hashing for Integers and Strings. arXiv:1504.06804 [cs.DS].
- Baran, Ilya; Demaine, Erik D.; (2008). Subquadratic Algorithms for 3SUM (PDF). Algorithmica. 50 (4): 584—596. doi:10.1007/s00453-007-9036-3.
- Dietzfelbinger, Martin; Hagerup, Torben; Katajainen, Jyrki; Penttonen, Martti (1997). A Reliable Randomized Algorithm for the Closest-Pair Problem (Postscript). Journal of Algorithms. 25 (1): 19—51. doi:10.1006/jagm.1997.0873. Процитовано 10 лютого 2011.
- (18 грудня 2009). Text-book algorithms at SODA.
- Woelfel, Philipp (1999). Efficient Strongly Universal and Optimally Universal Hashing. Mathematical Foundations of Computer Science 1999. LNCS. Т. 1672. с. 262—272. doi:10.1007/3-540-48340-3_24.
- . ISBN .
{{}}
: Пропущений або порожній|title=
(), section 5.3 - Dietzfelbinger, Martin; Gil, Joseph; Matias, Yossi; Pippenger, Nicholas (1992). Polynomial Hash Functions Are Reliable (Extended Abstract). Proc. 19th International Colloquium on Automata, Languages and Programming (ICALP). с. 235—246.
- Black, J.; Halevi, S.; Krawczyk, H.; Krovetz, T. (1999). UMAC: Fast and Secure Message Authentication (PDF). Advances in Cryptology (CRYPTO '99)., Equation 1
- . ISBN .
{{}}
: Пропущений або порожній|title=
() - Kaser, Owen; Lemire, Daniel (2013). Strongly universal string hashing is fast. Computer Journal. Oxford University Press. 57 (11): 1624—1638. arXiv:1202.4961. doi:10.1093/comjnl/bxt070.
- Dietzfelbinger, Martin; Gil, Joseph; Matias, Yossi; Pippenger, Nicholas (1992). Polynomial Hash Functions Are Reliable (Extended Abstract). Proc. 19th International Colloquium on Automata, Languages and Programming (ICALP). с. 235—246.
- Hebrew University Course Slides (PDF).
- Robert Uzgalis. «Library Hash Functions». 1996.
- Kankowsk, Peter. Hash functions: An empirical comparison.
- Yigit, Ozan. String hash functions.
- Kernighan; Ritchie (1988). 6. The C Programming Language (вид. 2nd). Prentice Hall. с. 118. ISBN .
- String (Java Platform SE 6). docs.oracle.com. Процитовано 10 червня 2015.
Подальше читання
- Knuth, Donald Ervin (1998). The Art of Computer Programming, Vol. III: Sorting and Searching (вид. 3rd). Reading, Mass; London: Addison-Wesley. ISBN .
Посилання
- Відкриті структури даних — Розділ 5.1.1 — Мультиплікативне гешування, [en]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U matematici ta obchislyuvalnij tehnici universalne geshuvannya u randomizovanomu algoritmi chi strukturi danih oznachaye vipadkovij vibir gesh funkciyi z simejstva gesh funkcij iz pevnoyu matematichnoyu vlastivistyu div viznachennya nizhche Ce garantuye nizku kilkist kolizij v ochikuvanni navit yaksho dani vibiraye zlovmisnik Vidomo bagato universalnih simejstv dlya geshuvannya cilih chisel vektoriv ryadkiv i yih ocinka chasto duzhe efektivna Universalne geshuvannya maye chislenni zastosuvannya v informatici napriklad u realizaciyi gesh tablic randomizovanih algoritmiv i kriptografiyi Zmist 1 Vstup 2 Matematichni garantiyi 3 Konstrukciyi 3 1 Geshuvannya cilih chisel 3 1 1 Uniknennya modulnoyi arifmetiki 3 2 Geshuvannya vektoriv 3 3 Geshuvannya ryadkiv 3 3 1 Uniknennya modulnoyi arifmetiki 4 Div takozh 5 Primitki 6 Podalshe chitannya 7 PosilannyaVstupred Pripustimo mi hochemo vidobraziti klyuchi z yakogos universumu U displaystyle U nbsp v m displaystyle m nbsp koshikiv poznachenih m 0 m 1 displaystyle m 0 dots m 1 nbsp Algoritm povinen bude obroblyati pevnij nabir danih S U displaystyle S subseteq U nbsp z S n displaystyle S n nbsp klyuchiv pro yaki zazdalegid ne vidomo Zazvichaj metoyu geshuvannya ye otrimannya nevelikoyi kilkosti kolizij klyuchiv z S displaystyle S nbsp yaki potraplyayut v odin koshik Determinovana gesh funkciya ne mozhe zaproponuvati zhodnih garantij u situaciyi zmagannya yaksho U gt m n displaystyle U gt m cdot n nbsp oskilki protivnik mozhe vibrati S displaystyle S nbsp yake ye same proobrazom koshika Ce oznachaye sho vsi klyuchi danih potraplyayut v odin koshik sho robit geshuvannya marnim Krim togo determinovana gesh funkciya ne dopuskaye povtornogo geshuvannya inodi vhidni dani viyavlyayutsya poganimi dlya gesh funkciyi napriklad zabagato kolizij tomu mozhna zminiti gesh funkciyu Rishennya cih problem polyagaye u vipadkovomu vibori gesh funkciyi z simejstva gesh funkcij Simejstvo gesh funkcij H h U m displaystyle H h U to m nbsp nazivayetsya universalnim yaksho x y U x y h H h x h y H m displaystyle forall x y in U x neq y h in H h x h y leq frac H m nbsp Inshimi slovami bud yaki dva rizni klyuchi universumu utvoryuyut koliziyu z maksimalnoyu jmovirnistyu 1 m displaystyle 1 m nbsp koli gesh funkciya h displaystyle h nbsp obirayetsya rivnoimovirno vipadkovim chinom iz H displaystyle H nbsp Ce same ta jmovirnist koliziyi yaku mi ochikuvali b yakbi gesh funkciya priznachala spravdi vipadkovi gesh kodi kozhnomu klyuchu Inodi viznachennya pom yakshuyetsya postijnim mnozhnikom koli vimagayetsya lishe jmovirnist koliziyi O 1 m displaystyle O 1 m nbsp a ne 1 m displaystyle leq 1 m nbsp Cya koncepciya bula vvedena Karterom i Vegmanom 1 u 1977 roci ta znajshla chislenni zastosuvannya v informatici div priklad 2 Yaksho verhnya mezha jmovirnosti koliziyi ϵ lt 1 displaystyle epsilon lt 1 nbsp govoryat pro ϵ displaystyle epsilon nbsp majzhe universalnist Tak napriklad universalne simejstvo ye 1 m displaystyle 1 m nbsp majzhe universalnim Bagato ale ne vsi universalni rodini mayut nastupnu silnishu vlastivist rivnomirnoyi riznici x y U x y displaystyle forall x y in U x neq y nbsp koli h displaystyle h nbsp vibirayetsya vipadkovim chinom iz simejstva H displaystyle H nbsp riznicya h x h y mod m displaystyle h x h y bmod m nbsp rivnomirno rozpodilena v m displaystyle m nbsp Slid zauvazhiti sho viznachennya universalnosti stosuyetsya lishe vipadku h x h y 0 displaystyle h x h y 0 nbsp po yakomu pidrahovuyutsya koliziyi Vlastivist rivnomirnoyi riznici silnisha Analogichno universalne simejstvo mozhe buti XOR universalnim yaksho dlya x y U x y displaystyle forall x y in U x neq y nbsp znachennya h x h y mod m displaystyle h x oplus h y bmod m nbsp rivnomirno rozpodilene v m displaystyle m nbsp de displaystyle oplus nbsp operaciya pobitovogo viklyuchnogo ABO Ce mozhlivo tilki yaksho m displaystyle m nbsp ye stepenem dvijki She silnishoyu umovoyu ye poparna nezalezhnist en koli x y U x y displaystyle forall x y in U x neq y nbsp to jmovirnist sho geshuvannya vidobrazit x y displaystyle x y nbsp u bud yaku paru gesh znachen z 1 z 2 displaystyle z 1 z 2 nbsp nibi voni absolyutno vipadkovi P h x z 1 h y z 2 1 m 2 displaystyle P h x z 1 land h y z 2 1 m 2 nbsp Poparnu nezalezhnist inodi nazivayut silnoyu universalnistyu She odna vlastivist odnoridnist Kazhut sho simejstvo odnoridne yaksho vsi gesh znachennya odnakovo imovirni P h x z 1 m displaystyle P h x z 1 m nbsp dlya bud yakogo gesh znachennya z displaystyle z nbsp Universalnist ne oznachaye odnoridnosti Odnak silna universalnist peredbachaye odnoridnist Mayuchi simejstvo z vlastivistyu rivnomirnoyi vidstani mozhna stvoriti poparno nezalezhne abo silno universalne gesh simejstvo shlyahom dodavannya rivnomirno rozpodilenoyi vipadkovoyi konstanti zi znachennyami z m displaystyle m nbsp do gesh funkcij Tak samo yaksho m displaystyle m nbsp ye stepenem dvijki mi mozhemo dosyagti poparnoyi nezalezhnosti vid XOR universalnogo gesh simejstva za dopomogoyu operaciyi XOR z rivnomirno rozpodilenoyu vipadkovoyu konstantoyu Oskilki zsuv na konstantu inodi nerelevantnij u programah napriklad gesh tablici retelne rozriznennya mizh vlastivistyu rivnomirnoyi vidstani ta poparnoyu nezalezhnistyu inodi ne robitsya 3 Dlya deyakih zastosuvan takih yak gesh tablici vazhlivo shob molodshi biti gesh znachen takozh buli universalnimi Koli simejstvo silno universalne ce garantovano yaksho H displaystyle H nbsp ye silno universalnim simejstvom z m 2 L displaystyle m 2 L nbsp to simejstvo sho skladayetsya z funkcij h mod 2 L displaystyle h bmod 2 L nbsp dlya usih h H displaystyle h in H nbsp takozh ye universalnim dlya L L displaystyle L leq L nbsp Na zhal ce ne stosuyetsya prosto universalnih simejstv Napriklad simejstvo z funkciyi identichnosti h x x displaystyle h x x nbsp ye odnoznachno universalnim ale simejstvo yake skladayetsya z funkciyi h x x mod 2 L displaystyle h x x bmod 2 L nbsp ne mozhe buti universalnim UMAC en i Poly1305 AES en a takozh kilka inshih algoritmiv kodiv avtentifikaciyi povidomlen bazuyutsya na universalnomu geshuvanni 4 5 U takih zastosuvannyah programne zabezpechennya vibiraye novu gesh funkciyu dlya kozhnogo povidomlennya na osnovi unikalnogo dovilnogo chisla dlya cogo povidomlennya Kilka realizacij gesh tablic zasnovani na universalnomu geshuvanni U takih zastosuvannyah zazvichaj programne zabezpechennya vibiraye novu gesh funkciyu lishe pislya togo yak pomichaye sho zabagato klyuchiv utvoryuyut koliziyi do togo chasu ta sama gesh funkciya prodovzhuye vikoristovuvatisya znovu i znovu Deyaki shemi virishennya kolizij taki yak dinamichne idealne geshuvannya en vibirayut novu gesh funkciyu kozhnogo razu koli vinikaye koliziya Inshi shemi virishennya kolizij taki yak zozuline geshuvannya ta geshuvannya z dvoma variantami en dopuskayut kilka kolizij pered viborom novoyi gesh funkciyi Oglyad najshvidshih vidomih universalnih i silno universalnih gesh funkcij dlya cilih chisel vektoriv i ryadkiv mozhna znajti v dzhereli 6 Matematichni garantiyired Dlya bud yakogo fiksovanogo naboru S displaystyle S nbsp z n displaystyle n nbsp klyuchiv vikoristannya universalnogo simejstva garantuye taki vlastivosti Dlya bud yakogo fiksovanogo x displaystyle x nbsp u S displaystyle S nbsp ochikuvane chislo klyuchiv u koshiku h x displaystyle h x nbsp dorivnyuye n m displaystyle n m nbsp Pri realizaciyi gesh tablic metodom lancyuzhkiv ce chislo proporcijne ochikuvanomu chasu roboti po klyuchu x displaystyle x nbsp napriklad zapitu vstavlyannya chi vidalennya Ochikuvane chislo par klyuchiv x y displaystyle x y nbsp u S displaystyle S nbsp z x y displaystyle x neq y nbsp yaki utvoryuyut koliziyu h x h y displaystyle h x h y nbsp obmezhene zverhu n n 1 2 m displaystyle n n 1 2m nbsp sho ye poryadkom O n 2 m displaystyle O n 2 m nbsp Koli chislo koshikiv m displaystyle m nbsp obrane linijno v n displaystyle n nbsp tobto viznachene funkciyeyu u W n displaystyle Omega n nbsp ochikuvane chislo kolizij stanovit O n displaystyle O n nbsp Pri geshuvanni u n 2 displaystyle n 2 nbsp koshikiv z imovirnistyu ne menshe 0 5 ne isnuye kolizij vzagali Ochikuvane chislo klyuchiv x S displaystyle x in S nbsp yaki utvoryuyut shonajmenshe t displaystyle t nbsp kolizij obmezhene zverhu yak 2 n t 2 n m 1 displaystyle 2n t 2 n m 1 nbsp 7 Takim chinom yaksho yemnist kozhnogo koshika obmezhena potrijnim serednim rozmirom t 3 n m displaystyle t 3n m nbsp zagalna kilkist klyuchiv u perepovnenih koshikah ne bilshe O m displaystyle O m nbsp Ce spravedlivo lishe dlya gesh simejstva jmovirnist koliziyi yakogo obmezhena zgori 1 m displaystyle 1 m nbsp Yaksho vikoristovuyetsya slabshe viznachennya z obmezhennyam imovirnosti kolizij O 1 m displaystyle O 1 m nbsp rezultat perestaye buti istinnim 7 Oskilki navedeni vishe garantiyi spravedlivi dlya bud yakogo fiksovanogo naboru S displaystyle S nbsp voni zberigayutsya yaksho nabir danih vibrano protivnikom Odnak protivnik povinen zrobiti cej vibir do abo nezalezhno vid vipadkovogo viboru algoritmu gesh funkciyi Yaksho zlovmisnik mozhe sposterigati za vipadkovim viborom algoritmu vipadkovist ne maye sensu i situaciya taka zh yak i z determinovanim geshuvannyam Druga i tretya garantiya zazvichaj vikoristovuyutsya v poyednanni z peregeshuvannyam en Napriklad mozhe buti pidgotovlenij randomizovanij algoritm dlya obrobki deyakoyi kilkosti O n displaystyle O n nbsp kolizij Yaksho vin sposterigaye zanadto bagato kolizij vin vibiraye inshu vipadkovu h displaystyle h nbsp z rodini i povtoryuye geshuvannya Universalnist garantuye sho kilkist povtoren ye geometrichnoyu vipadkovoyu velichinoyu Konstrukciyired Oskilki bud yaki komp yuterni dani mozhut buti predstavleni yak odne abo bilshe mashinnih sliv zazvichaj potribni gesh funkciyi dlya troh tipiv domeniv mashinni slova cili chisla vektori mashinnih sliv fiksovanoyi dovzhini i vektori zminnoyi dovzhini ryadki Geshuvannya cilih chiselred U comu rozdili rozglyadayetsya vipadok geshuvannya cilih chisel yaki vpisuyutsya v mashinni slova takim chinom taki operaciyi yak mnozhennya dodavannya dilennya tosho ye deshevimi mashinnimi instrukciyami Nehaj universum sho geshuyetsya 0 U 1 displaystyle 0 dots U 1 nbsp Pochatkova propoziciya Kartera i Vegmana 1 polyagala u vibori prostogo chisla p U displaystyle p geq U nbsp i viznachenni h a b x a x b mod p mod m displaystyle h a b x ax b bmod p bmod m nbsp de a b displaystyle a b nbsp vipadkovo vibrani cili chisla za modulem p displaystyle p nbsp z a 0 displaystyle a neq 0 nbsp Ce odna iteraciya linijnogo kongruentnogo generatora Shob pobachiti sho H h a b displaystyle H h a b nbsp ye universalnim simejstvom slid zauvazhiti sho h x h y displaystyle h x h y nbsp vikonuyetsya lishe koli a x b a y b i m mod p displaystyle ax b equiv ay b i cdot m pmod p nbsp dlya deyakogo cilogo chisla i displaystyle i nbsp mizh 0 displaystyle 0 nbsp i p 1 m displaystyle p 1 m nbsp Oskilki p U displaystyle p geq U nbsp yaksho x y displaystyle x neq y nbsp yih riznicya x y displaystyle x y nbsp ne dorivnyuye nulyu i maye oberenene za modulem p displaystyle p nbsp chislo Rozv yazannya dlya a displaystyle a nbsp a i m x y 1 mod p displaystyle a equiv i cdot m cdot x y 1 pmod p nbsp Isnuye p 1 displaystyle p 1 nbsp mozhlivih variantiv dlya a displaystyle a nbsp oskilki a 0 displaystyle a 0 nbsp viklyuchayetsya i variyuyuchi i displaystyle i nbsp v dopustimomu diapazoni mozhlivo otrimati p 1 m displaystyle lfloor p 1 m rfloor nbsp nenulovih znachen dlya pravoyi chastini Takim chinom jmovirnist koliziyi dorivnyuye p 1 m p 1 p 1 m p 1 1 m displaystyle lfloor p 1 m rfloor p 1 leq p 1 m p 1 1 m nbsp Inshij sposib pobachiti sho H displaystyle H nbsp ye universalnim simejstvom vikoristovuye ponyattya statistichnoyi vidstani en Riznicyu h x h y displaystyle h x h y nbsp mozhna perepisati yak h x h y a x y mod p mod m displaystyle h x h y equiv a x y bmod p pmod m nbsp Oskilki x y displaystyle x y nbsp ne dorivnyuye nulyu i a displaystyle a nbsp rivnomirno rozpodilyayetsya v 1 p 1 displaystyle 1 dots p 1 nbsp z cogo viplivaye sho a x y displaystyle a x y nbsp po modulyu p displaystyle p nbsp takozh rivnomirno rozpodilyayetsya v 1 p 1 displaystyle 1 dots p 1 nbsp Rozpodil h x h y mod m displaystyle h x h y bmod m nbsp takim chinom ye majzhe rivnomirnim azh do riznici v jmovirnosti 1 p displaystyle pm 1 p nbsp mizh zrazkami U rezultati statistichna vidstan do odnoridnoyi rodini stanovit O m p displaystyle O m p nbsp yaka staye neznachnoyu koli p m displaystyle p gg m nbsp Simejstvo prostishih gesh funkcij h a x a x mod p mod m displaystyle h a x ax bmod p bmod m nbsp ye lishe priblizno universalnim Pr h a x h a y 2 m displaystyle Pr h a x h a y leq 2 m nbsp dlya usih x y displaystyle x neq y nbsp 1 Krim togo cej analiz ye majzhe strogim Karter i Vegman 1 pokazuyut sho Pr h a 1 h a m 1 2 m 1 displaystyle Pr h a 1 h a m 1 geq 2 m 1 nbsp bud koli p 1 mod m 1 displaystyle p 1 bmod m 1 nbsp Uniknennya modulnoyi arifmetikired Najsuchasnishim dlya geshuvannya cilih chisel ye shema mnozhennya zsuvu opisana Dicfelbingerom ta in u 1997 r 8 Zavdyaki uniknennyu modulnoyi arifmetiki cej metod nabagato legshe realizuvati a takozh vin pracyuye znachno shvidshe na praktici zazvichaj shonajmenshe v chotiri razi 9 Shema pripuskaye sho kilkist koshikiv ye stupenem dvijki m 2 M displaystyle m 2 M nbsp Nehaj w displaystyle w nbsp bude kilkistyu bitiv u mashinnomu slovi Potim gesh funkciyi parametrizuyutsya nad neparnimi dodatnimi cilimi chislami a lt 2 w displaystyle a lt 2 w nbsp sho vpisuyetsya v odne w displaystyle w nbsp bitove slovo Shob ociniti h a x displaystyle h a x nbsp slid pomnozhiti x displaystyle x nbsp na a displaystyle a nbsp po modulyu 2 w displaystyle 2 w nbsp a potim zberegti starshi M displaystyle M nbsp bitiv yak gesh kod U matematichnij notaciyi ce h a x a x mod 2 w d i v 2 w M displaystyle h a x a cdot x bmod 2 w mathrm div 2 w M nbsp Cya shema ne zadovolnyaye vlastivosti rivnomirnoyi riznici i ye yedinoyu 2 m displaystyle 2 m nbsp majzhe universalnoyu dlya bud yakogo x y displaystyle x neq y nbsp Pr h a x h a y 2 m displaystyle Pr h a x h a y leq 2 m nbsp Shob zrozumiti povedinku gesh funkciyi zauvazhimo sho yaksho a x mod 2 w displaystyle ax bmod 2 w nbsp i a y mod 2 w displaystyle ay bmod 2 w nbsp mayut odnakovi starshi M bitiv todi a x y mod 2 w displaystyle a x y bmod 2 w nbsp maye vsi odinici abo vsi nuli u starshih M bitah zalezhno vid togo sho bilshe a x mod 2 w displaystyle ax bmod 2 w nbsp chi a y mod 2 w displaystyle ay bmod 2 w nbsp Pripustimo sho nabir molodshih bitiv x y displaystyle x y nbsp z yavlyayetsya na poziciyi w c displaystyle w c nbsp Cherez te sho a displaystyle a nbsp ye vipadkovim neparnim cilim chislom a neparni cili chisla mayut oberneni znachennya u kilci Z 2 w displaystyle Z 2 w nbsp sliduye sho a x y mod 2 w displaystyle a x y bmod 2 w nbsp bude rivnomirno rozpodileno sered w displaystyle w nbsp bitovih cilih chisel z molodshim ustanovlenim bitom na poziciyi w c displaystyle w c nbsp Takim chinom imovirnist togo sho vsi ci biti skladayutsya z 0 abo 1 ne perevishuye 2 2 M 2 m displaystyle 2 2 M 2 m nbsp Z inshogo boku yaksho c lt M displaystyle c lt M nbsp todi starshi M bitiv a x y mod 2 w displaystyle a x y bmod 2 w nbsp mistyat i 0 i 1 tomu h x h y displaystyle h x neq h y nbsp Nasamkinec yaksho c M displaystyle c M nbsp to bit w M displaystyle w M nbsp znachennya a x y mod 2 w displaystyle a x y bmod 2 w nbsp ye 1 i h a x h a y displaystyle h a x h a y nbsp todi i tilki todi koli biti w 1 w M 1 displaystyle w 1 ldots w M 1 nbsp takozh ye 1 sho vidbuvayetsya z imovirnistyu 1 2 M 1 2 m displaystyle 1 2 M 1 2 m nbsp Cej analiz ye strogim yak mozhna pokazati na prikladi x 2 w M 2 displaystyle x 2 w M 2 nbsp i y 3 x displaystyle y 3x nbsp Shob otrimati dijsno universalnu gesh funkciyu mozhna vikoristati shemu mnozhennya dodavannya zsuvu yaka vibiraye starshi biti h a b x a x b mod 2 w M d i v 2 w displaystyle h a b x ax b bmod 2 w M mathrm div 2 w nbsp de a displaystyle a nbsp ye vipadkovim naturalnim chislom z a lt 2 2 w displaystyle a lt 2 2w nbsp i b displaystyle b nbsp ye vipadkovim nevid yemnim cilim chislom z b lt 2 2 w displaystyle b lt 2 2w nbsp Dlya cogo potribno vikonuvati arifmetiku 2 w displaystyle 2w nbsp rozryadnih bezznakovih cilih chisel Cya versiya mnozhinnogo zsuvu nalezhit Dicfelbingeru a piznishe bula bilsh tochno proanalizovana Velfelem 10 Geshuvannya vektorivred Cej rozdil stosuyetsya geshuvannya vektora mashinnih sliv fiksovanoyi dovzhini Vhidni dani interpretuyutsya yak vektor x x 0 x k 1 displaystyle bar x x 0 dots x k 1 nbsp z k displaystyle k nbsp mashinnih sliv cili chisla po w displaystyle w nbsp bitiv kozhne Yaksho H displaystyle H nbsp ye universalnim simejstvom z vlastivistyu rivnomirnoyi riznici nastupne simejstvo pohodit vid Kartera i Vegmana 1 takozh maye vlastivist rivnomirnoyi riznici i otzhe ye universalnim h a x i 0 k 1 x i a i mod 2 2 w d i v 2 2 w M displaystyle h bar a bar x left big sum i 0 k 1 x i cdot a i big bmod 2 2w right mathrm div 2 2w M nbsp Yaksho m displaystyle m nbsp ye stepenem dvijki pidsumovuvannya mozhna zaminiti viklyuchnim abo 11 Na praktici yaksho dostupna arifmetika podvijnoyi tochnosti vona stvoryuyetsya za dopomogoyu simejstva gesh funkcij iz mnozhnim zsuvom 12 Yaksho nicializuvati gesh funkciyu vektorom a a 0 a k 1 displaystyle bar a a 0 dots a k 1 nbsp vipadkovih neparnih cilih chisel po 2 w displaystyle 2w nbsp bitiv kozhne todi yaksho kilkist koshikiv dorivnyuye m 2 M displaystyle m 2 M nbsp dlya M w displaystyle M leq w nbsp h a x i 0 k 2 x 2 i a 2 i x 2 i 1 a 2 i 1 mod 2 2 w d i v 2 2 w M displaystyle h bar a bar x left Big sum i 0 lceil k 2 rceil x 2i a 2i cdot x 2i 1 a 2i 1 Big bmod 2 2w right mathrm div 2 2w M nbsp Mozhna vdvichi zmenshiti kilkist mnozhen sho na praktici priblizno oznachaye podvijne priskorennya 11 Yaksho nicializuvati gesh funkciyu vektorom a a 0 a k 1 displaystyle bar a a 0 dots a k 1 nbsp vipadkovih neparnih cilih chisel na 2 w displaystyle 2w nbsp biti kozhne to nastupne simejstvo gesh funkcij ye universalnim 13 h a x s t r o n g a 0 i 0 k 1 a i 1 x i mod 2 2 w d i v 2 w displaystyle h bar a bar x mathrm strong a 0 sum i 0 k 1 a i 1 x i bmod 2 2w mathrm div 2 w nbsp Yaksho operaciyi podvijnoyi tochnosti nedostupni mozhna interpretuvati vhidni dani yak vektor pivsliv w 2 displaystyle w 2 nbsp rozryadni cili chisla Dali bude vikoristovuvatisya algoritm k 2 displaystyle lceil k 2 rceil nbsp mnozhennya de k displaystyle k nbsp kilkist pivsliv u vektori Takim chinom algoritm pracyuye zi shvidkistyu odnogo mnozhennya na vhidne slovo Cyu zh shemu takozh mozhna vikoristovuvati dlya geshuvannya cilih chisel interpretuyuchi yihni biti yak vektori bajtiv U comu varianti vektorna tehnika vidoma yak tabulyacijne geshuvannya en ta zabezpechuye praktichnu alternativu universalnim shemam geshuvannya na osnovi mnozhennya 14 Takozh mozhliva silna universalnist na visokij shvidkosti 15 Potribno inicializuvati gesh funkciyu vektorom a a 0 a k displaystyle bar a a 0 dots a k nbsp vipadkovih cilih chisel na 2 w displaystyle 2w nbsp bitiv Obchisliti h a x s t r o n g a 0 i 0 k 1 a i 1 x i mod 2 2 w d i v 2 w displaystyle h bar a bar x mathrm strong a 0 sum i 0 k 1 a i 1 x i bmod 2 2w mathrm div 2 w nbsp Rezultat silno universalnij na w displaystyle w nbsp bitah Eksperimentalno bulo vstanovleno sho vin pracyuye na shvidkosti na 0 2 cikla procesora na bajt na ostannih procesorah Intel dlya w 32 displaystyle w 32 nbsp Geshuvannya ryadkivred Ce stosuyetsya geshuvannya vektora mashinnih sliv zminnogo rozmiru Yaksho dovzhinu ryadka mozhna obmezhiti nevelikim chislom najkrashe vikoristovuvati vektorne rishennya zverhu konceptualno dopovnyuyuchi vektor nulyami do verhnoyi mezhi Potribnij prostir ce maksimalna dovzhina ryadka ale chas dlya ocinki h s displaystyle h s nbsp ce prosto dovzhina s displaystyle s nbsp Poki nuli zaboroneni v ryadku dopovnennya nulyami mozhna ignoruvati pid chas ocinyuvannya gesh funkciyi bez vplivu na universalnist 11 Slid zauvazhiti sho yaksho v ryadku dozvoleni nuli todi mozhlivo najkrashe bude dodati fiktivnij nenulovij simvol napriklad 1 do vsih ryadkiv pered dopovnennyam ce garantuye sho ce ne vpline na universalnist 15 Teper pripustimo sho mi hochemo geshuvati x x 0 x ℓ displaystyle bar x x 0 dots x ell nbsp de garna mezha ℓ displaystyle ell nbsp apriori nevidoma Universalne simejstvo zaproponovane 16 rozglyadaye ryadok x displaystyle x nbsp yak koeficiyenti polinoma za modulem velikogo prostogo chisla Yaksho x i u displaystyle x i in u nbsp prijnyati proste chislo p max u m displaystyle p geq max u m nbsp i viznachiti h a x h i n t i 0 ℓ x i a ℓ i mod p displaystyle h a bar x h mathrm int left big sum i 0 ell x i cdot a ell i big bmod p right nbsp de a p displaystyle a in p nbsp ye rivnomirno vipadkovim i h i n t displaystyle h mathrm int nbsp vibirayetsya vipadkovim chinom iz universalnogo simejstva sho vidobrazhaye cili chisla p m displaystyle p mapsto m nbsp Vikoristovuyuchi vlastivosti modulnoyi arifmetiki navedene vishe mozhna obchisliti bez otrimannya velikih chisel dlya velikih ryadkiv yak pokazano nizhche 17 uint hash String x int a int p uint h INITIAL VALUE for uint i 0 i lt x length i h h a x i mod p return h Cej kotkij gesh Rabina Karpa bazuyetsya na linijnomu kongruentnomu generatori 18 Navedenij vishe algoritm takozh vidomij yak multiplikativna gesh funkciya 19 Na praktici operatora mod i parametra p mozhna vzagali uniknuti prosto dozvolivshi cilochiselne perepovnennya oskilki ce ekvivalentno mod Max Int Value 1 u bagatoh movah programuvannya U tablici nizhche pokazano znachennya vibrani dlya inicializaciyi h i a dlya deyakih populyarnih realizacij Realizaciya Pochatkove znachennya a gesh funkciya Bernshtajna djb2 20 5381 33 STLPort 4 6 2 0 5 gesh funkciya Kernigana ta Richi 21 0 31 java lang String hashCode 22 0 31 Rozglyanemo dva ryadki x y displaystyle bar x bar y nbsp i nehaj ℓ displaystyle ell nbsp buti dovzhinoyu dovshogo dlya analizu korotshij ryadok konceptualno dopovnyuyetsya nulyami do dovzhini ℓ displaystyle ell nbsp Koliziya pri zastosuvanni h i n t displaystyle h mathrm int nbsp oznachaye sho a displaystyle a nbsp ye korenem mnogochlena z koeficiyentami x y displaystyle bar x bar y nbsp Cej mnogochlen maye ne bilshe ℓ displaystyle ell nbsp koreniv po modulyu p displaystyle p nbsp tomu jmovirnist koliziyi ne bilshe ℓ p displaystyle ell p nbsp Imovirnist koliziyi cherez vipadkovist h i n t displaystyle h mathrm int nbsp dovodit zagalnu jmovirnist koliziyi do 1 m ℓ p displaystyle frac 1 m frac ell p nbsp Takim chinom yaksho proste p displaystyle p nbsp ye dostatno velikim porivnyano z dovzhinoyu geshovanih ryadkiv simejstvo duzhe blizko do universalnogo za statistichnoyu vidstannyu Inshi universalni simejstva gesh funkcij yaki vikoristovuyutsya dlya geshuvannya ryadkiv nevidomoyi dovzhini do gesh znachen fiksovanoyi dovzhini vklyuchayut vidbitok Rabina ta Buzhash Uniknennya modulnoyi arifmetikired Shob pom yakshiti obchislyuvalni vitrati vid modulnoyi arifmetiki na praktici vikoristovuyutsya tri prijomi 11 Obirayetsya proste p displaystyle p nbsp blizke do stepenya dvijki napriklad proste chislo Mersenna en Ce dozvolyaye arifmetiku po modulyu p displaystyle p nbsp realizuvati bez dilennya z vikoristannyam shvidshih operacij takih yak dodavannya ta zsuv Napriklad na suchasnih arhitekturah mozhna pracyuvati z p 2 61 1 displaystyle p 2 61 1 nbsp poki x i displaystyle x i nbsp ye 32 rozryadnimi znachennyami Do blokiv mozhna zastosuvati vektorne geshuvannya Napriklad mozhna zastosuvati geshuvannya vektoriv do kozhnogo bloku z 16 sliv ryadka a takozh zastosuvati geshuvannya ryadka do k 16 displaystyle lceil k 16 rceil nbsp rezultativ Oskilki povilnishe geshuvannya ryadkiv zastosovuyetsya do znachno menshogo vektora zagalna shvidkist po suti bude taka zh yak i shvidkist geshuvannya vektoriv Dilnikom vibirayetsya stupin dvijki sho dozvolyaye vikonuvati arifmetichni diyi za modulem 2 w displaystyle 2 w nbsp bez dilennya z vikoristannyam shvidshih operacij maskuvannya bitiv Simejstvo gesh funkcij NH en vikoristovuye cej pidhid Div takozhred K independent hashing en Kotkij gesh Tabulation hashing en Min wise independence en Universal one way hash function en Poslidovnist iz nizkoyu rozbizhnistyu Perfect hashing en Primitkired a b v g d Carter Larry Wegman Mark N 1979 Universal Classes of Hash Functions Journal of Computer and System Sciences 18 2 143 154 doi 10 1016 0022 0000 79 90044 8 Conference version in STOC 77 Miltersen Peter Bro Universal Hashing PDF Arhiv originalu PDF za 24 travnya 2011 Procitovano 24 chervnya 2009 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr df dovidka Motwani Rajeev Raghavan Prabhakar 1995 Randomized Algorithms Cambridge University Press s 221 ISBN 0 521 47465 5 David Wagner ed Advances in Cryptology CRYPTO 2008 p 145 Jean Philippe Aumasson Willi Meier Raphael Phan Luca Henzen The Hash Function BLAKE 2014 p 10 Thorup Mikkel 2015 High Speed Hashing for Integers and Strings arXiv 1504 06804 cs DS a b Baran Ilya Demaine Erik D Pătrascu Mihai 2008 Subquadratic Algorithms for 3SUM PDF Algorithmica 50 4 584 596 doi 10 1007 s00453 007 9036 3 Dietzfelbinger Martin Hagerup Torben Katajainen Jyrki Penttonen Martti 1997 A Reliable Randomized Algorithm for the Closest Pair Problem Postscript Journal of Algorithms 25 1 19 51 doi 10 1006 jagm 1997 0873 Procitovano 10 lyutogo 2011 Thorup Mikkel 18 grudnya 2009 Text book algorithms at SODA Woelfel Philipp 1999 Efficient Strongly Universal and Optimally Universal Hashing Mathematical Foundations of Computer Science 1999 LNCS T 1672 s 262 272 doi 10 1007 3 540 48340 3 24 a b v g ISBN 978 0 89871 680 1 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite conference title Shablon Cite conference cite conference a Propushenij abo porozhnij title dovidka section 5 3 Dietzfelbinger Martin Gil Joseph Matias Yossi Pippenger Nicholas 1992 Polynomial Hash Functions Are Reliable Extended Abstract Proc 19th International Colloquium on Automata Languages and Programming ICALP s 235 246 Black J Halevi S Krawczyk H Krovetz T 1999 UMAC Fast and Secure Message Authentication PDF Advances in Cryptology CRYPTO 99 Equation 1 ISBN 9781450306911 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite conference title Shablon Cite conference cite conference a Propushenij abo porozhnij title dovidka a b Kaser Owen Lemire Daniel 2013 Strongly universal string hashing is fast Computer Journal Oxford University Press 57 11 1624 1638 arXiv 1202 4961 doi 10 1093 comjnl bxt070 Dietzfelbinger Martin Gil Joseph Matias Yossi Pippenger Nicholas 1992 Polynomial Hash Functions Are Reliable Extended Abstract Proc 19th International Colloquium on Automata Languages and Programming ICALP s 235 246 Hebrew University Course Slides PDF Robert Uzgalis Library Hash Functions 1996 Kankowsk Peter Hash functions An empirical comparison Yigit Ozan String hash functions Kernighan Ritchie 1988 6 The C Programming Language vid 2nd Prentice Hall s 118 ISBN 0 13 110362 8 String Java Platform SE 6 docs oracle com Procitovano 10 chervnya 2015 Podalshe chitannyared Knuth Donald Ervin 1998 The Art of Computer Programming Vol III Sorting and Searching vid 3rd Reading Mass London Addison Wesley ISBN 0 201 89685 0 Posilannyared Vidkriti strukturi danih Rozdil 5 1 1 Multiplikativne geshuvannya Pet Morin en Otrimano z https uk wikipedia org w index php title Universalne geshuvannya amp oldid 43385003