VAMPIRE

eBACS: ECRYPT Benchmarking of Cryptographic Systems


ECRYPT II
General information: Introduction eBASH eBASC eBAEAD eBATS SUPERCOP XBX Computers Arch
How to submit new software: Tips hash stream aead dh kem encrypt sign
List of primitives measured: lwc sha3 hash stream lwc caesar aead dh kem encrypt sign
Measurements indexed by machine: lwc sha3 hash stream lwc caesar aead dh kem encrypt sign
List of subroutines: verify decode encode sort core hashblocks scalarmult

List of SHA-3 finalists measured

eBASH (ECRYPT Benchmarking of All Submitted Hashes) is a project to measure the performance of hash functions. This page presents an excerpt from the full list of hash functions covered by SUPERCOP; the excerpt contains the SHA-3 finalists, including post-SHA-3 updates such as BLAKE2 and KangarooTwelve. The page then lists implementations of these hash functions.

There is a separate page that lists machines and, for each machine, the measurements of these hash functions.

Which hash functions are measured? (SHA-3 excerpt)

PrimitiveDescriptionDesigners
bblake256 BBLAKE-256: BLAKE-256(BLAKE-256(0,m0,m2,m4,...),BLAKE-256(1,m1,m3,m5,...)) where m0,m1,m2,... are 64-byte blocks BLAKE-256: see crypto_hash/blake256
Mindless 2-way tree mode: Daniel J. Bernstein
bblake512 BBLAKE-512: BLAKE-512(BLAKE-512(0,m0,m2,m4,...),BLAKE-512(1,m1,m3,m5,...)) where m0,m1,m2,... are 128-byte blocks BLAKE-512: see crypto_hash/blake512
blake32 BLAKE-32: BLAKE with 32-bit words, 10 rounds, and 256-bit output Jean-Philippe Aumasson
Luca Henzen
Willi Meier
Raphael C.-W. Phan
blake64 BLAKE-64: BLAKE with 64-bit words, 14 rounds, and 512-bit output Jean-Philippe Aumasson
Luca Henzen
Willi Meier
Raphael C.-W. Phan
blake256 BLAKE-256: BLAKE with 32-bit words, 14 rounds, and 256-bit output; BLAKE team's final submission for SHA-3-256 Jean-Philippe Aumasson
Luca Henzen
Willi Meier
Raphael C.-W. Phan
blake512 BLAKE-512: BLAKE with 64-bit words, 16 rounds, and 512-bit output; BLAKE team's final submission for SHA-3-512 Jean-Philippe Aumasson
Luca Henzen
Willi Meier
Raphael C.-W. Phan
blake2b BLAKE2b: BLAKE2 with 64-bit words, 12 rounds, and 512-bit output Jean-Philippe Aumasson
Samuel Neves
Zooko Wilcox-O'Hearn
Christian Winnerlein
blake2s BLAKE2s: BLAKE2 with 32-bit words, 10 rounds, and 256-bit output Jean-Philippe Aumasson
Samuel Neves
Zooko Wilcox-O'Hearn
Christian Winnerlein
groestl256 Grøstl with 256-bit output; round-3 version starting in supercop-20110426; Grøstl team's final submission for SHA-3-256 Praveen Gauravaram
Lars R. Knudsen
Krystian Matusiewicz
Florian Mendel
Christian Rechberger
Martin Schläffer
Søren S. Thomsen
groestl512 Grøstl with 512-bit output; round-3 version starting in supercop-20110426; Grøstl team's final submission for SHA-3-512 Praveen Gauravaram
Lars R. Knudsen
Krystian Matusiewicz
Florian Mendel
Christian Rechberger
Martin Schläffer
Søren S. Thomsen
jh224 JH with 35.5 rounds and 224-bit output; round-2 version Hongjun Wu
jh256 JH with 35.5 rounds and 256-bit output; round-2 version Hongjun Wu
jh384 JH with 35.5 rounds and 384-bit output; round-2 version Hongjun Wu
jh512 JH with 35.5 rounds and 512-bit output; round-2 version Hongjun Wu
k12
keccak Keccak[]=Keccak[r=1024,c=576,nr=24] with 1024-bit output; padding tweaked starting in supercop-20110426 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448 Keccak[r=1152,c=448,nr=24] with 224-bit output; padding tweaked starting in supercop-20110426; Keccak team's final submission for SHA-3-224 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512 Keccak[r=1088,c=512,nr=24] with 256-bit output; padding tweaked starting in supercop-20110426; Keccak team's final submission for SHA-3-256 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768 Keccak[r=832,c=768,nr=24] with 384-bit output; padding tweaked starting in supercop-20110426; Keccak team's final submission for SHA-3-384 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024 Keccak[r=576,c=1024,nr=24] with 512-bit output; padding tweaked starting in supercop-20110426; Keccak team's final submission for SHA-3-512 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256treed2 Tree hashing layer on top of Keccak[r=1344,c=256] with height H=1, leaf interleaving, block size B=64 bits, C=8*ceil(c/8)=256, D=2 leaves (see ePrint 2009/210 Section 7.2), and 1344-bit output Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512treed2 Tree hashing layer on top of Keccak[r=1088,c=512] with height H=1, leaf interleaving, block size B=64 bits, C=8*ceil(c/8)=512, D=2 leaves (see ePrint 2009/210 Section 7.2), and 1088-bit output Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
round3jh256 JH with 42 rounds and 256-bit output; JH team's final submission for SHA-3-256 Hongjun Wu
round3jh512 JH with 42 rounds and 512-bit output; JH team's final submission for SHA-3-512 Hongjun Wu
sha3224
sha3256
sha3384
sha3512
shake128
shake256
skein10241024 Skein-1024-1024 with 1024-bit output; round-3 version starting in supercop-20100924 Niels Ferguson
Stefan Lucks
Bruce Schneier
Doug Whiting
Mihir Bellare
Tadayoshi Kohno
Jon Callas
Jesse Walker
skein256256 Skein-256-256 with 256-bit output; round-3 version starting in supercop-20100924 Niels Ferguson
Stefan Lucks
Bruce Schneier
Doug Whiting
Mihir Bellare
Tadayoshi Kohno
Jon Callas
Jesse Walker
skein512256 Skein-512-256 with 256-bit output; round-3 version; Skein team's final submission for SHA-3-256 Niels Ferguson
Stefan Lucks
Bruce Schneier
Doug Whiting
Mihir Bellare
Tadayoshi Kohno
Jon Callas
Jesse Walker
skein512512 Skein-512-512 with 512-bit output; round-3 version starting in supercop-20100924; Skein team's final submission for SHA-3-512 Niels Ferguson
Stefan Lucks
Bruce Schneier
Doug Whiting
Mihir Bellare
Tadayoshi Kohno
Jon Callas
Jesse Walker

Implementations

PrimitiveImplementationAuthors
bblake256bswap based on: regs
bblake256regs based on: blake256/regs
tree mode: Daniel J. Bernstein
bblake256sandy based on: bswap
bblake256sse2 based on: blake256/sse2
tree mode: Daniel J. Bernstein
bblake256ssse3 based on: bblake256/sse2, blake256/ssse3
bblake512xop Jean-Philippe Aumasson
Samuel Neves
blake32ref Jean-Philippe Aumasson
blake32sphlib Thomas Pornin
blake32sphlib-small Thomas Pornin
blake32sse2 Jean-Philippe Aumasson
Peter Schwabe
blake32ssse3 Jean-Philippe Aumasson
Peter Schwabe
Samuel Neves
blake64ref Jean-Philippe Aumasson
blake64sphlib Thomas Pornin
blake64sphlib-small Thomas Pornin
blake64sse2 Jean-Philippe Aumasson
Peter Schwabe
blake64ssse3 Jean-Philippe Aumasson
Peter Schwabe
Samuel Neves
blake256arm11 Peter Schwabe
Bo-Yin Yang
Shang-Yi Yang
blake256arm_thumb2 Peter Schwabe
Bo-Yin Yang
Shang-Yi Yang
Christian Wenzel-Benner
blake256avxs Jean-Philippe Aumasson
Samuel Neves
blake256bswap based on: regs
blake256ref Jean-Philippe Aumasson
blake256regs based on: ref
unrolling: Daniel J. Bernstein
blake256sandy based on: bswap
blake256sphlib Thomas Pornin
blake256sphlib-small Thomas Pornin
blake256sse2-2 based on: sse2
latency-oriented tweaks: Daniel J. Bernstein
blake256sse2 Jean-Philippe Aumasson
Shawn Kirst
Peter Schwabe
blake256sse41-2 Jean-Philippe Aumasson
Samuel Neves
blake256sse41 Jean-Philippe Aumasson
Peter Schwabe
Samuel Neves
blake256ssse3 Jean-Philippe Aumasson
Peter Schwabe
Samuel Neves
blake256vect128-neon Gaëtan Leurent
blake256xop Jean-Philippe Aumasson
Samuel Neves
blake512bswap based on: regs
blake512ref Jean-Philippe Aumasson
blake512regs based on: ref, blake256/regs
blake512sandy based on: bswap
blake512sphlib Thomas Pornin
blake512sphlib-small Thomas Pornin
blake512sse2 Jean-Philippe Aumasson
Shawn Kirst
Peter Schwabe
blake512sse2s Jean-Philippe Aumasson
Peter Schwabe
Samuel Neves
blake512sse41 Jean-Philippe Aumasson
Samuel Neves
blake512ssse3 Jean-Philippe Aumasson
Peter Schwabe
Samuel Neves
blake512vect128-neon Gaëtan Leurent
blake512xop-2 Jean-Philippe Aumasson
Samuel Neves
blake512xop Jean-Philippe Aumasson
Samuel Neves
blake2bavx2-1 Samuel Neves
blake2bavx2-2 Samuel Neves
blake2bavx2-3 Samuel Neves
blake2bavxicc Samuel Neves
blake2bmoon/armv6/32 Andrew Moon
blake2bmoon/avx2/32 Andrew Moon
blake2bmoon/avx2/64 Andrew Moon
blake2bmoon/avx/32 Andrew Moon
blake2bmoon/avx/64 Andrew Moon
blake2bmoon/neon/32 Andrew Moon
blake2bmoon/sse2/32 Andrew Moon
blake2bmoon/ssse3/32 Andrew Moon
blake2bmoon/xop/32 Andrew Moon
blake2bmoon/xop/64 Andrew Moon
blake2bref Samuel Neves
blake2bregs Samuel Neves
blake2bxmm Samuel Neves
blake2bymm Samuel Neves
blake2savxicc Samuel Neves
blake2smoon/armv6/32 Andrew Moon
blake2smoon/avx/32 Andrew Moon
blake2smoon/avx/64 Andrew Moon
blake2smoon/sse2/32 Andrew Moon
blake2smoon/sse2/64 Andrew Moon
blake2smoon/ssse3/32 Andrew Moon
blake2smoon/ssse3/64 Andrew Moon
blake2smoon/xop/32 Andrew Moon
blake2smoon/xop/64 Andrew Moon
blake2sref Samuel Neves
blake2sregs Samuel Neves
blake2sxmm Samuel Neves
groestl25632bit-2ktable Thomas Krinninger
groestl25632bit-bytesliced-c-fast Thomas Krinninger
groestl25632bit-bytesliced-c-small Martin Schläffer
groestl2568bit_c
groestl256aesni Krystian Matusiewicz
Günther A. Roland
Martin Schläffer
groestl256aesni-intr Krystian Matusiewicz
Günther A. Roland
Martin Schläffer
groestl256arm11 Peter Schwabe
Bo-Yin Yang
Shang-Yi Yang
groestl256arm32 Wolfgang Wieser
groestl256avr8asm/balanced Johannes Feichtner
groestl256avr8asm/highspeed Johannes Feichtner
groestl256avr8asm/lowram128 Johannes Feichtner
groestl256avr8asm/lowram192a Johannes Feichtner
groestl256avr8asm/lowram192b Johannes Feichtner
groestl256avr8asm/lowram256 Johannes Feichtner
groestl256avx Krystian Matusiewicz
Günther A. Roland
Martin Schläffer
groestl256avx-intr Krystian Matusiewicz
Günther A. Roland
Martin Schläffer
groestl256core2duo Krystian Matusiewicz
groestl256mmx Søren S. Thomsen
groestl256neon-bitslice Martin Schläffer
Peter Schwabe
Wolfgang Wieser
groestl256neon-table Martin Schläffer
Peter Schwabe
David Seywald
groestl256neon-vperm Severin Holzer-Graf
groestl256opt32 Søren S. Thomsen
groestl256opt64 Søren S. Thomsen
Krystian Matusiewicz
groestl256opteron Krystian Matusiewicz
Søren S. Thomsen
groestl256opteron-unrolled Krystian Matusiewicz
Søren S. Thomsen
groestl256sphlib-adapted Thomas Pornin
groestl256sphlib Thomas Pornin
groestl256sphlib-small Thomas Pornin
groestl256thumb-asm-fast Thomas Krinninger
groestl256thumb-asm-small Thomas Krinninger
groestl256vperm Günther A. Roland
Martin Schläffer
groestl256vperm-intr Günther A. Roland
Martin Schläffer
groestl51232bit-bytesliced-c-small Martin Schläffer
groestl512aesni Krystian Matusiewicz
Günther A. Roland
Martin Schläffer
groestl512aesni-intr Krystian Matusiewicz
Günther A. Roland
Martin Schläffer
groestl512arm32 Wolfgang Wieser
groestl512avx Krystian Matusiewicz
Günther A. Roland
Martin Schläffer
groestl512avx-intr Krystian Matusiewicz
Günther A. Roland
Martin Schläffer
groestl512core2duo Krystian Matusiewicz
groestl512mmx Søren S. Thomsen
groestl512neon-table Martin Schläffer
Peter Schwabe
David Seywald
groestl512opt32 Søren S. Thomsen
groestl512opt64 Søren S. Thomsen
Krystian Matusiewicz
groestl512opteron Krystian Matusiewicz
Søren S. Thomsen
groestl512sphlib-adapted Thomas Pornin
groestl512sphlib Thomas Pornin
groestl512sphlib-small Thomas Pornin
groestl512vperm Günther A. Roland
Martin Schläffer
groestl512vperm-intr Günther A. Roland
Martin Schläffer
jh224bitslice_opt32 Hongjun Wu
jh224bitslice_opt64 Hongjun Wu
jh224bitslice_ref32 Hongjun Wu
jh224bitslice_ref64 Hongjun Wu
jh224bitslice_sse2_opt32 Hongjun Wu
jh224bitslice_sse2_opt64 Hongjun Wu
jh224simple based on: jh256/simple
jh256bitslice_opt32 Hongjun Wu
jh256bitslice_opt64 Hongjun Wu
jh256bitslice_ref32 Hongjun Wu
jh256bitslice_ref64 Hongjun Wu
jh256bitslice_sse2_opt32 Hongjun Wu
jh256bitslice_sse2_opt64 Hongjun Wu
jh256simple based on: bitslice_opt64
streamlining: Daniel J. Bernstein
jh384bitslice_opt32 Hongjun Wu
jh384bitslice_opt64 Hongjun Wu
jh384bitslice_ref32 Hongjun Wu
jh384bitslice_ref64 Hongjun Wu
jh384bitslice_sse2_opt32 Hongjun Wu
jh384bitslice_sse2_opt64 Hongjun Wu
jh384simple based on: jh256/simple
jh512bitslice_opt32 Hongjun Wu
jh512bitslice_opt64 Hongjun Wu
jh512bitslice_ref32 Hongjun Wu
jh512bitslice_ref64 Hongjun Wu
jh512bitslice_sse2_opt32 Hongjun Wu
jh512bitslice_sse2_opt64 Hongjun Wu
jh512simple based on: jh256/simple
k12kcp/compact1600
k12kcp/compact1600AVR8
k12kcp/inplace1600ARMv6M
k12kcp/inplace1600ARMv7A
k12kcp/inplace1600ARMv7M
k12kcp/inplace1600bi
k12kcp/optimized1600ARMv6Mu1
k12kcp/optimized1600ARMv6Mu2
k12kcp/optimized1600ARMv7A
k12kcp/optimized1600ARMv8A
k12kcp/optimized1600AsmX86-64
k12kcp/optimized1600AsmX86-64Apple
k12kcp/optimized1600AsmX86-64shld
k12kcp/optimized1600AVR8
k12kcp/optimized1600AVX2
k12kcp/optimized1600AVX512
k12kcp/optimized1600lcu6
k12kcp/optimized1600lcufull
k12kcp/optimized1600lcufullshld
k12kcp/optimized1600u6
k12kcp/optimized1600ufull
k12kcp/optimized1600XOPu6
k12kcp/optimized1600XOPufull
k12kcp/reference1600-32bits
k12kcp/reference1600
keccakarm11 Peter Schwabe
Bo-Yin Yang
Shang-Yi Yang
keccakavr8 Ronny Van Keer
keccakavr8asmc Ronny Van Keer
keccakavr8asmf Ronny Van Keer
keccakcompact8 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakcompact Ronny Van Keer
keccakinplace32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakinplace32bi-armv6m Ronny Van Keer
keccakinplace32bi-armv7a Ronny Van Keer
keccakinplace32bi-armv7m Ronny Van Keer
keccakinplace Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakinplace-armv7a-neon Ronny Van Keer
keccakmmxu1 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakopt32bi-rvku2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakopt32bi-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakopt32biT-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakopt64lcu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakopt64lcu24shld Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakopt64lcu6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakopt64u6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccaksimple32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccaksimple Ronny Van Keer
keccaksseu2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakx86_64_asm Ronny Van Keer
keccakx86_64_shld Ronny Van Keer
keccakxopu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448avr8 Ronny Van Keer
keccakc448avr8asmc Ronny Van Keer
keccakc448avr8asmf Ronny Van Keer
keccakc448compact8 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc448compact Ronny Van Keer
keccakc448inplace32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc448inplace32bi-armv6m Ronny Van Keer
keccakc448inplace32bi-armv7a Ronny Van Keer
keccakc448inplace32bi-armv7m Ronny Van Keer
keccakc448inplace Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc448mmxu1 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448opt32bi-rvku2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc448opt32bi-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448opt32biT-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448opt64lcu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448opt64lcu24shld Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448opt64lcu6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448opt64u6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448simple32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc448simple Ronny Van Keer
keccakc448sseu2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc448x86_64_asm Ronny Van Keer
keccakc448x86_64_shld Ronny Van Keer
keccakc448xopu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512avr8 Ronny Van Keer
keccakc512avr8asmc Ronny Van Keer
keccakc512avr8asmf Ronny Van Keer
keccakc512compact8 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc512compact Ronny Van Keer
keccakc512gil/singlefile David Leon Gil
keccakc512gil/singlefile_unrolled David Leon Gil
keccakc512inplace32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc512inplace32bi-armv6m Ronny Van Keer
keccakc512inplace32bi-armv7a Ronny Van Keer
keccakc512inplace32bi-armv7m Ronny Van Keer
keccakc512inplace Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc512inplace-armv7a-neon Ronny Van Keer
keccakc512mmxu1 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512opt32bi-rvku2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc512opt32bi-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512opt32biT-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512opt64lcu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512opt64lcu24shld Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512opt64lcu6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512opt64u6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512simple32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc512simple Ronny Van Keer
keccakc512sphlib Thomas Pornin
keccakc512sphlib-small Thomas Pornin
keccakc512sseu2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512x86_64_asm Ronny Van Keer
keccakc512x86_64_shld Ronny Van Keer
keccakc512xopu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768avr8 Ronny Van Keer
keccakc768avr8asmc Ronny Van Keer
keccakc768avr8asmf Ronny Van Keer
keccakc768compact8 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc768compact Ronny Van Keer
keccakc768inplace32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc768inplace32bi-armv6m Ronny Van Keer
keccakc768inplace32bi-armv7a Ronny Van Keer
keccakc768inplace32bi-armv7m Ronny Van Keer
keccakc768inplace Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc768mmxu1 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768opt32bi-rvku2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc768opt32bi-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768opt32biT-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768opt64lcu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768opt64lcu24shld Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768opt64lcu6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768opt64u6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768simple32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc768simple Ronny Van Keer
keccakc768sseu2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc768x86_64_asm Ronny Van Keer
keccakc768x86_64_shld Ronny Van Keer
keccakc768xopu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024avr8 Ronny Van Keer
keccakc1024avr8asmc Ronny Van Keer
keccakc1024avr8asmf Ronny Van Keer
keccakc1024compact8 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc1024compact Ronny Van Keer
keccakc1024inplace32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc1024inplace32bi-armv6m Ronny Van Keer
keccakc1024inplace32bi-armv7a Ronny Van Keer
keccakc1024inplace32bi-armv7m Ronny Van Keer
keccakc1024inplace Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc1024inplace-armv7a-neon Ronny Van Keer
keccakc1024mmxu1 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024opt32bi-rvku2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc1024opt32bi-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024opt32biT-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024opt64lcu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024opt64lcu24shld Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024opt64lcu6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024opt64u6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024simple32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc1024simple Ronny Van Keer
keccakc1024sphlib Thomas Pornin
keccakc1024sphlib-small Thomas Pornin
keccakc1024sseu2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc1024x86_64_asm Ronny Van Keer
keccakc1024x86_64_shld Ronny Van Keer
keccakc1024xopu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256treed2sseu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256treed2sseu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256treed2xopu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512treed2sseu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512treed2sseu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc512treed2xopu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
round3jh256arm11 Peter Schwabe
Bo-Yin Yang
Shang-Yi Yang
round3jh256neon2 based on: neon
qhasm conversion: Daniel J. Bernstein
round3jh256neon based on: ssse3
switching to NEON intrinsics: Daniel J. Bernstein
round3jh256simple based on: jh256/simple
round3jh256sphlib Thomas Pornin
round3jh256sphlib-small Thomas Pornin
round3jh256sse2 based on: simple
based on: jh256/bitslice_sse2_opt64
round3jh256ssse3 based on: sse2
SSSE3 tweaks from: Daniel J. Bernstein
round3jh512neon2 based on: round3jh256/neon2
round3jh512neon based on: round3jh256/neon
round3jh512simple based on: round3jh256/simple
round3jh512sphlib Thomas Pornin
round3jh512sphlib-small Thomas Pornin
round3jh512sse2 based on: round3jh256/sse2
round3jh512ssse3 based on: round3jh256/ssse3
sha3224kcp/compact1600AVR8
sha3224kcp/optimized1600ARMv7A
sha3224kcp/optimized1600ARMv8A
sha3224kcp/optimized1600AVR8
sha3224kcp/optimized1600AVX2
sha3224kcp/optimized1600AVX512
sha3224oncore32bits
sha3224oncore64bits
sha3224openssl
sha3256compact original source: https://twitter.com/tweetfips202 from Daniel J. Bernstein, Peter Schwabe, Gilles Van Assche
changes for libmceliece/crypto_xof/shake256: djb
changes for supercop/crypto_hash/sha3256/compact: djb
sha3256kcp/compact1600AVR8
sha3256kcp/optimized1600ARMv7A
sha3256kcp/optimized1600ARMv8A
sha3256kcp/optimized1600AVR8
sha3256kcp/optimized1600AVX2
sha3256kcp/optimized1600AVX512
sha3256oncore32bits
sha3256oncore64bits
sha3256openssl
sha3384kcp/compact1600AVR8
sha3384kcp/optimized1600ARMv7A
sha3384kcp/optimized1600ARMv8A
sha3384kcp/optimized1600AVR8
sha3384kcp/optimized1600AVX2
sha3384kcp/optimized1600AVX512
sha3384oncore32bits
sha3384oncore64bits
sha3384openssl
sha3512kcp/compact1600AVR8
sha3512kcp/optimized1600ARMv7A
sha3512kcp/optimized1600ARMv8A
sha3512kcp/optimized1600AVR8
sha3512kcp/optimized1600AVX2
sha3512kcp/optimized1600AVX512
sha3512oncore32bits
sha3512oncore64bits
sha3512openssl
shake128cryptopp D. J. Bernstein (imitating sha512/cryptopp)
shake128kcp/compact1600AVR8
shake128kcp/optimized1600ARMv7A
shake128kcp/optimized1600ARMv8A
shake128kcp/optimized1600AVR8
shake128kcp/optimized1600AVX2
shake128kcp/optimized1600AVX512
shake128oncore32bits
shake128oncore64bits
shake128openssl
shake256cryptopp D. J. Bernstein (imitating sha512/cryptopp)
shake256gil/singlefile David Leon Gil
shake256gil/singlefile_unrolled David Leon Gil
shake256kcp/compact1600AVR8
shake256kcp/optimized1600ARMv7A
shake256kcp/optimized1600ARMv8A
shake256kcp/optimized1600AVR8
shake256kcp/optimized1600AVX2
shake256kcp/optimized1600AVX512
shake256oncore32bits
shake256oncore64bits
shake256openssl
shake256usekcp
skein10241024arm_neon Håkon Haugdal Hitland
Doug Whiting
skein10241024opt Doug Whiting
skein10241024x64 Doug Whiting
skein10241024xmm Doug Whiting
skein256256arm Håkon Haugdal Hitland
Doug Whiting
skein256256arm_neon Håkon Haugdal Hitland
Doug Whiting
skein256256arm_thumb Håkon Haugdal Hitland
Doug Whiting
skein256256opt Doug Whiting
skein256256x64 Doug Whiting
skein256256xmm Doug Whiting
skein512256arm11 Peter Schwabe
Bo-Yin Yang
lead: Shang-Yi Yang
skein512256arm Håkon Haugdal Hitland
Doug Whiting
skein512256arm_neon Håkon Haugdal Hitland
Doug Whiting
skein512256arm_thumb Håkon Haugdal Hitland
Doug Whiting
skein512256little based on: simple
tweaks: Daniel J. Bernstein
skein512256mmx based on: little
conversion to MMX: Daniel J. Bernstein
skein512256opt Doug Whiting
skein512256sandy based on: little
tweaks (using shld): Daniel J. Bernstein
skein512256simple based on: opt
streamlining: Daniel J. Bernstein
skein512256sphlib Thomas Pornin
skein512256sphlib-small Thomas Pornin
skein512256x64 Doug Whiting
skein512256xmm Doug Whiting
skein512512arm Håkon Haugdal Hitland
Doug Whiting
skein512512arm_neon Håkon Haugdal Hitland
Doug Whiting
skein512512arm_thumb Håkon Haugdal Hitland
Doug Whiting
skein512512little based on: simple
tweaks: Daniel J. Bernstein
skein512512mmx based on: little
conversion to MMX: Daniel J. Bernstein
skein512512opt Doug Whiting
skein512512sandy based on: little
tweaks (using shld): Daniel J. Bernstein
skein512512simple based on: opt
streamlining: Daniel J. Bernstein
skein512512sphlib Thomas Pornin
skein512512sphlib-small Thomas Pornin
skein512512x64 Doug Whiting
skein512512xmm Doug Whiting

Version

This is version 2024.04.26 of the primitives-sha3.html web page. This web page is in the public domain.