Skip to content
uencoder

cSHAKE

cSHAKE is a Keccak variant defined in NIST SP 800-185 that accepts name and customization string parameters, serving as the construction base for KMAC and TupleHash.

Purpose

Provides context-customizable Keccak instances for derived functions like KMAC and TupleHash, separating output domains per purpose.

Mechanism

A name string N and customization string S are additionally encoded before the Keccak sponge (right_encode of length + content); otherwise identical to SHAKE. With N=S=empty it degrades to SHAKE.

Use cases

  • KMAC message authentication construction
  • TupleHash tuple hashing
  • Context-customized hashing

Related tools

References