ArticleslgStudy

computer science

Universal hashing

Universal hashing is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Universal hashing rather than just read about it. In short: In mathematics and computing, universal hashing (in a randomized algorithm or data structure) refers to selecting a hash function at random from a family of hash functions with a certain mathematical property (see definition below). This guarantees a low number of collisions in expectation, even if the data is chosen by an adversary.

Key takeaways

  • Universal hashing belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Universal hashing to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Universal hashing from memory before moving on to harder problems.

Reference excerpt

In mathematics and computing, universal hashing (in a randomized algorithm or data structure) refers to selecting a hash function at random from a family of hash functions with a certain mathematical property (see definition below). This guarantees a low number of collisions in expectation, even if the data is chosen by an adversary. Many universal families are known (for hashing integers, vectors, strings), and their evaluation is often very efficient. Universal hashing has numerous uses in computer science, for example in implementations of hash tables, randomized algorithms, and cryptography.

Introduction

Assume we want to map keys from some universe U {\displaystyle U} into m {\displaystyle m} bins (labelled [ m ] = { 0 , … , m − 1 } {\displaystyle [m]=\{0,\dots ,m-1\}} ). The algorithm will have to handle some data set S ⊆ U {\displaystyle S\subseteq U} of | S | = n {\displaystyle |S|=n} keys, which is not known in advance. Usually, the goal of hashing is to obtain a low number of collisions (keys from S {\displaystyle S} that land in the same bin). A deterministic hash function cannot offer any guarantee in an adversarial setting if | U | > m ⋅ n {\displaystyle |U|>m\cdot n} , since the adversary may choose S {\displaystyle S} to be precisely the preimage of a bin. This means that all data keys land in the same bin, making hashing useless. Furthermore, a deterministic hash function does not allow for rehashing: sometimes the input data turns out to be bad for the hash function (e.g. there are too many collisions), so one would like to change the hash function. The solution to these problems is to pick a function randomly from a family of hash functions. A family of functions H = { h : U → [ m ] } {\displaystyle H=\{h:U\to [m]\}} is called a universal family if, ∀ 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}}} . In other words, any two different keys of the universe collide with probability at most 1 / m {\displaystyle 1/m} when the hash function h {\displaystyle h} is drawn uniformly at random from H {\displaystyle H} . This is exactly the probability of collision we would expect if the hash function assigned truly random hash codes to every key. Sometimes, the definition is relaxed by a constant factor, only requiring collision probability O ( 1 / m ) {\displaystyle O(1/m)} rather than ≤ 1 / m {\displaystyle \leq 1/m} . This concept was introduced by Carter and Wegman in 1977, and has found numerous applications in computer science (see, for example). If we have an upper bound of ϵ < 1 {\displaystyle \epsilon <1} on the collision probability, we say that we have ϵ {\displaystyle \epsilon } -almost universality. So for example, a universal family has 1 / m {\displaystyle 1/m} -almost universality. Many, but not all, universal families have the following stronger uniform difference property:

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Universal hashing

Start with the simplest possible case. Write down what Universal hashing claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Universal hashing before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Universal hashing ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Universal hashing

In research
Universal hashing appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Universal hashing in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Universal hashing is common in secondary-school and first-year university syllabi. It links to neighbouring topics Computational complexity theory, Cryptographic hash functions, Hashing, so understanding it makes those chapters shorter.
In everyday life
Look for Universal hashing outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Universal hashing in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Universal hashing means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Universal hashing out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Universal hashing in simple terms?

In mathematics and computing, universal hashing (in a randomized algorithm or data structure) refers to selecting a hash function at random from a family of hash functions with a certain mathematical property (see definition below). This guarantees a low number of collisions in expectation, even if…

Why does Universal hashing matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Universal hashing?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Universal hashing.

Tags

  • Computational complexity theory
  • Cryptographic hash functions
  • Hashing
  • Search algorithms

Keep exploring