Hash Lab

Keyed cryptographic (MAC)

UMAC & VMAC

Two universal-hash-based MACs from the early 2000s. UMAC by Black, Halevi, Krawczyk, Krovetz, and Rogaway (RFC 4418, 2006); VMAC by Krovetz and Dai (2007). When CPUs hit 32-bit and 64-bit multiply-add instructions, UMAC / VMAC briefly held the “fastest MAC in the world” crown. Today Poly1305 (portable) and GHASH (with CLMUL hardware) have taken that throne, and UMAC / VMAC live on mostly in legacy protocols.

How they differ

At a glance

DesignersUMAC: Black, Halevi, Krawczyk, Krovetz, Rogaway (2000-2006). VMAC: Krovetz, Dai (2007)
StandardUMAC: RFC 4418. VMAC: Internet-draft only.
StatusMature, secure; outclassed by Poly1305 and GHASH on modern hardware

Where they show up today

vs Poly1305 / GHASH

All three are Carter-Wegman style: a fast universal hash combined with a per-nonce key from a block cipher / stream cipher. Poly1305 beats UMAC on portable code (no hardware needed). GHASH beats everything on CPUs with CLMUL (since 2010 Intel SSE4.2 / AES-NI Westmere). UMAC / VMAC are the historical bridge.

References

Quick quiz

Test yourself on umac-vmac

10 multiple-choice questions. Pick an answer for each, then submit to see explanations.

  1. Q1.Which RFC specifies UMAC?

  2. Q2.VMAC was published by:

  3. Q3.Both UMAC and VMAC are:

  4. Q4.UMAC output sizes:

  5. Q5.VMAC is tuned for:

  6. Q6.Which protocol uses umac-64@openssh.com or umac-128@openssh.com?

  7. Q7.vs Poly1305 today:

  8. Q8.VMAC's modulus:

  9. Q9.Are UMAC / VMAC standardized in NIST?

  10. Q10.Are UMAC / VMAC vulnerable to length-extension?

0 of 10 answered