Home

TupleHash

TupleHash is a cryptographic hash function designed to produce a fixed-length digest from a sequence of input elements, or tuples. It is part of the Keccak family of hash functions and is described in NIST SP 800-185 as a tuple-oriented hashing primitive. The function operates on a list of data elements rather than a single byte string, making it convenient for hashing structured data such as records or multi-field messages. The underlying primitive is a sponge function, typically instantiated with a fixed digest length chosen by the user.

Input and encoding: TupleHash takes as input an ordered sequence of elements, each element being an arbitrary

Variants and usage: TupleHash supports different digest lengths by selecting the sponge’s output length, and it

Security and notes: As with other sponge-based hashes, TupleHash relies on the security properties of the Keccak

byte
string.
Each
element
is
encoded
with
a
length
field
and
a
separator
to
ensure
unambiguous
delimitation
between
elements.
The
resulting
encoded
sequence
is
absorbed
into
the
sponge,
and
a
digest
of
the
desired
length
is
squeezed
out.
A
domain
separation
prefix
distinguishes
TupleHash
from
other
Keccak-based
constructions,
helping
to
prevent
cross-function
collisions
with
functions
like
SHAKE
or
ParallelHash.
can
be
used
with
a
variety
of
element
sizes
because
of
its
length-prefix
encoding.
It
is
presented
alongside
ParallelHash
in
the
SP
800-185
framework,
where
both
functions
serve
as
flexible,
input-format-specific
hashing
options.
TupleHash
is
especially
suited
for
hashing
composite
data
structures,
lists
of
fields,
or
tuples
in
a
way
that
preserves
the
boundaries
between
elements.
permutation
and
on
correct
encoding
and
domain
separation.
Proper
implementation
of
the
input
encoding
rules
and
parameter
choices
is
essential
to
maintain
collision
and
preimage
resistance
for
the
selected
digest
length.