Skip to content
Daniel King edited this page Jul 2, 2016 · 1 revision

What is libkeccak?

libkeccak is a collection of cryptographic constructions based on the Keccak permutation, such as the SHA-3 hash function. The library is designed to be modular and configurable, allowing many configurations of constructions to be built.

libkeccak implements the following constructions:

  • The Keccak-p permutation for state sizes of 25, 50, 100, 200, 400, 800, and 1600 bits (see [1] and [2]).
  • The Sponge construction
  • The Duplex construction
  • Hash functions based on the Sponge construction
  • eXtendable Output Functions (XOF) based on the Sponge construction

libkeccak also provides concrete implementations for the hash functions and XOFs described in NIST FIPS 202 (see [1]):

  • Hash functions:
    • SHA3-224
    • SHA3-256
    • SHA3-384
    • SHA3-512
  • XOFs:
    • SHAKE128
    • SHAKE256
    • RawSHAKE128
    • RawSHAKE256

Hash function configurations are also provided for the hash functions defined by the Keccak team which were submitted in the SHA-3 competition:

  • Keccak-224
  • Keccak-256
  • Keccak-384
  • Keccak-512

These hash functions differ from the final SHA-3 hash functions only in that the SHA-3 functions append two additional bits to each message, whereas the Keccak hash functions do not.

Clone this wiki locally