VAMPIRE

eBACS: ECRYPT Benchmarking of Cryptographic Systems


ECRYPT II
General information: Introduction eBASH eBASC eBAEAD eBATS SUPERCOP XBX Computers
How to submit new software: Tips Hash functions Stream ciphers Auth ciphers DH functions Public-key encryption Public-key signatures
List of primitives measured: SHA-3 finalists All hash functions Stream ciphers CAESAR candidates All auth ciphers DH functions Public-key encryption Public-key signatures
Measurements indexed by machine: SHA-3 finalists All hash functions Stream ciphers CAESAR candidates All auth ciphers DH functions Public-key encryption Public-key signatures

List of hash functions measured

eBASH (ECRYPT Benchmarking of All Submitted Hashes) is a project in ECRYPT's VAMPIRE lab to measure the performance of hash functions. This page lists the hash functions covered by VAMPIRE's benchmarking tool, SUPERCOP. 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.

Designers and implementors interested in submitting new hash functions and new implementations should read the call for submissions.

Which hash functions are measured?

PrimitiveDescriptionDesigners
atelopus32 ATELOPUS with 256-bit output George Anescu
atelopus64 ATELOPUS with 512-bit output George Anescu
bash256
bash384
bash512
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
bmw256 Blue Midnight Wish with 256-bit output Danilo Gligoroski
Vlastimil Klima
bmw512 Blue Midnight Wish with 512-bit output Danilo Gligoroski
Vlastimil Klima
cheetah256 Cheetah with 256-bit output Dmitry Khovratovich
Alex Biryukov
Ivica Nikolić
cheetah512 Cheetah with 512-bit output Dmitry Khovratovich
Alex Biryukov
Ivica Nikolić
cubehash81 CubeHash8/1 with 512-bit output Daniel J. Bernstein
cubehash82 CubeHash8/2 with 512-bit output Daniel J. Bernstein
cubehash84 CubeHash8/4 with 512-bit output Daniel J. Bernstein
cubehash88 CubeHash8/8 with 512-bit output Daniel J. Bernstein
cubehash161 CubeHash16/1 with 512-bit output Daniel J. Bernstein
cubehash162 CubeHash16/2 with 512-bit output Daniel J. Bernstein
cubehash164 CubeHash16/4 with 512-bit output Daniel J. Bernstein
cubehash168 CubeHash16/8 with 512-bit output Daniel J. Bernstein
cubehash512 CubeHash512 = CubeHash16+16/32+32-512 with 512-bit output Daniel J. Bernstein
cubehash816 CubeHash8/16 with 512-bit output Daniel J. Bernstein
cubehash832 CubeHash8/32 with 512-bit output Daniel J. Bernstein
cubehash1616 CubeHash16/16 with 512-bit output Daniel J. Bernstein
cubehash1632 CubeHash16/32 with 512-bit output Daniel J. Bernstein
echo256 ECHO with 256-bit output Ryad Benadjila
Olivier Billet
Henri Gilbert
Gilles Macario-Rat
Thomas Peyrin
Matt Robshaw
Yannick Seurin
echo512 ECHO with 512-bit output Ryad Benadjila
Olivier Billet
Henri Gilbert
Gilles Macario-Rat
Thomas Peyrin
Matt Robshaw
Yannick Seurin
echosp256 ECHO, single-pipe variant, with 256-bit output Ryad Benadjila
Olivier Billet
Henri Gilbert
Gilles Macario-Rat
Thomas Peyrin
Matt Robshaw
Yannick Seurin
echosp512 ECHO, single-pipe variant, with 512-bit output Ryad Benadjila
Olivier Billet
Henri Gilbert
Gilles Macario-Rat
Thomas Peyrin
Matt Robshaw
Yannick Seurin
edonr256 Edon-R with 256-bit output Danilo Gligoroski
edonr512 Edon-R with 512-bit output Danilo Gligoroski
essence224 Essence with 224-bit output Jason Worth Martin
essence256 Essence with 256-bit output Jason Worth Martin
essence384 Essence with 384-bit output Jason Worth Martin
essence512 Essence with 512-bit output Jason Worth Martin
fsb256 FSB with 256-bit output Daniel Augot
Matthieu Finiasz
Philippe Gaborit
Stéphane Manuel
Nicolas Sendrier
fsb512 FSB with 512-bit output Daniel Augot
Matthieu Finiasz
Philippe Gaborit
Stéphane Manuel
Nicolas Sendrier
fugue2 Fugue 2.0 with 256-bit output, aka fugue2.256 The specification for Fugue 2.0 can be found at http://researcher.ibm.com/view_project.php?id=3253 Charanjit Jutla
Shai Halevi
Eric Hall
fugue256 Fugue with 256-bit output Charanjit Jutla
Shai Halevi
Eric Hall
fugue384 Fugue with 384-bit output Charanjit Jutla
Shai Halevi
Eric Hall
fugue512 Fugue with 512-bit output Charanjit Jutla
Shai Halevi
Eric Hall
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
hamsi Hamsi with 256-bit output Özgül Kücük
hamsi512 Hamsi with 512-bit output Özgül Kücük
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
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
keccakc256 Keccak[r=1344,c=256,nr=24] with 1344-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
lane256 LANE with 256-bit output Sebastiaan Indesteege
Elena Andreeva
Christophe De Cannière
Orr Dunkelman
Emilia Käsper
Svetla Nikova
Bart Preneel
Elmar Tischhauser
lane512 LANE with 512-bit output Sebastiaan Indesteege
Elena Andreeva
Christophe De Cannière
Orr Dunkelman
Emilia Käsper
Svetla Nikova
Bart Preneel
Elmar Tischhauser
luffa256 Luffa with 256-bit output Christophe De Cannière
Hisayoshi Sato
Dai Watanabe
luffa384 Luffa with 384-bit output Christophe De Cannière
Hisayoshi Sato
Dai Watanabe
luffa512 Luffa with 512-bit output Christophe De Cannière
Hisayoshi Sato
Dai Watanabe
lux256 LUX with 256-bit output Ivica Nikolić
Alex Biryukov
Dmitry Khovratovich
lux512 LUX with 512-bit output Ivica Nikolić
Alex Biryukov
Dmitry Khovratovich
mcssha4 MCSSHA-4 with 512-bit output Mikhail Maslennikov
mcssha5 MCSSHA-5 with 512-bit output Mikhail Maslennikov
mcssha6 MCSSHA-6 with 512-bit output Mikhail Maslennikov
md2 MD2 with 128-bit output Ron Rivest
md4 MD4 with 128-bit output Ron Rivest
md5 MD5 with 128-bit output Ron Rivest
md6d224 MD6-224 with 224-bit output Ron Rivest et al.
md6d256 MD6-256 with 256-bit output Ron Rivest et al.
md6d384 MD6-384 with 384-bit output Ron Rivest et al.
md6d512 MD6-512 with 512-bit output Ron Rivest et al.
mgrostl256 Modified Groestl with 256-bit output Dhananjoy Dey
Gurpreet Kaur
SK Pal
Vidyavati Nayak
nasha256 NaSHA-256 with 256-bit output Smile Markovski
Aleksandra Mileva
nasha512 NaSHA-512 with 512-bit output Smile Markovski
Aleksandra Mileva
rfsb509 RFSB-509 using SHA-256 as an output filter Daniel J. Bernstein
Tanja Lange
Christiane Peters
Peter Schwabe
rhash
ripemd160 RIPEMD-160 with 160-bit output Hans Dobbertin
Antoon Bosselaers
Bart Preneel
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
sarmal256 Sarmal with 256-bit output Kerem Varıcı
Onur Özen
Çelebi Kocair
sarmal512 Sarmal with 512-bit output Kerem Varıcı
Onur Özen
Çelebi Kocair
sha1 SHA-1 with 160-bit output NSA
sha224 SHA-224 with 224-bit output NIST
sha256 SHA-256 with 256-bit output NSA
sha384 SHA-384 with 384-bit output NSA
sha512 SHA-512 with 512-bit output NSA
shabal256 SHABAL with 256-bit output Emmanuel Bresson
Anne Canteaut
Benoît Chevallier-Mames
Christophe Clavier
Thomas Fuhr
Aline Gouget
Thomas Icart
Jean-François Misarsky
Marìa Naya-Plasencia
Pascal Paillier
Thomas Pornin
Jean-René Reinhard
Céline Thuillet
Marion Videau
shabal512 SHABAL with 512-bit output Emmanuel Bresson
Anne Canteaut
Benoît Chevallier-Mames
Christophe Clavier
Thomas Fuhr
Aline Gouget
Thomas Icart
Jean-François Misarsky
Marìa Naya-Plasencia
Pascal Paillier
Thomas Pornin
Jean-René Reinhard
Céline Thuillet
Marion Videau
shake256
shavite3256 SHAvite-3 with 256-bit output (tweaked starting in supercop-20101012) Eli Biham
Orr Dunkelman
shavite3512 SHAvite-3 with 512-bit output (tweaked starting in supercop-20101012) Eli Biham
Orr Dunkelman
simd256 SIMD-256 with 256-bit output Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
simd512 SIMD-512 with 512-bit output Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
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
tiger Tiger with 192-bit output Ross Anderson
Eli Biham
whirlpool Whirlpool with 512-bit output Vincent Rijmen
Paulo S. L. M. Barreto

Implementations

PrimitiveImplementationAuthors
atelopus32ref George Anescu
atelopus64ref George Anescu
bash256avx2
bash256ref
bash384avx2
bash384ref
bash512avx2
bash512ref
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
blake256avxicc Jean-Philippe Aumasson
Samuel Neves
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 Gaëtan Leurent
blake256vect128-mmxhack Gaëtan Leurent
blake256vect128-neon Gaëtan Leurent
blake256xop Jean-Philippe Aumasson
Samuel Neves
blake512avxicc 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 Gaëtan Leurent
blake512vect128-inplace Gaëtan Leurent
blake512vect128-neon Gaëtan Leurent
blake512vect128-xop Gaëtan Leurent
Jean-Philippe Aumasson
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
bmw256amd_k10/x86-64/sse2 Rune E. Jensen
bmw256amd_k8/x86-64/noSSE Rune E. Jensen
bmw256core_2_45nm/x86-64/sse4_v1 Rune E. Jensen
bmw256core_2_45nm/x86/ssse3_v1 Rune E. Jensen
bmw256core_2_65nm/x86-64/ssse3_v1 Rune E. Jensen
bmw256core_2_65nm/x86/ssse3_v1 Rune E. Jensen
bmw256core_i7_45nm/x86-64/sse4_v1 Rune E. Jensen
bmw256core_i7_45nm/x86/ssse3_v1 Rune E. Jensen
bmw256opt24ssse3_asm32 Rune E. Jensen
bmw256opt29_v5_ssse3_asm64 Rune E. Jensen
bmw256opt31ssse3_asm32 Rune E. Jensen
bmw256opt31ssse3_asm64 Rune E. Jensen
bmw256optabe Jorn Amundsen
bmw256optbbe Jorn Amundsen
bmw256optbgbe Daniel Otte
Jorn Amundsen
bmw256optc01 Danilo Gligoroski
bmw256optc02 Rune E. Jensen
bmw256optc03 Rune E. Jensen
bmw256optc04 Rune E. Jensen
bmw256optc31ssse3 Rune E. Jensen
bmw256ref Danilo Gligoroski
bmw256sphlib Thomas Pornin
bmw256sphlib-small Thomas Pornin
bmw512arm/neon/SSEmap_v1 Rune E. Jensen
bmw512opt008_asm64 Rune E. Jensen
bmw512optabe Jorn Amundsen
bmw512optbbe Jorn Amundsen
bmw512optbgbe Daniel Otte
Jorn Amundsen
bmw512optc01 Danilo Gligoroski
bmw512optc02 Danilo Gligoroski
bmw512optc03 Rune E. Jensen
bmw512optc04 Rune E. Jensen
bmw512optx86sse2 Rune E. Jensen
bmw512ref Danilo Gligoroski
bmw512sphlib Thomas Pornin
bmw512sphlib-small Thomas Pornin
cheetah256asm64 Ivica Nikolić
cheetah256asm Ivica Nikolić
cheetah512asm32 Ivica Nikolić
cheetah512asm64 Ivica Nikolić
cheetah512asm Ivica Nikolić
cubehash81emmintrin2 Daniel J. Bernstein
cubehash81emmintrin3 Daniel J. Bernstein
cubehash81emmintrin4 Daniel J. Bernstein
cubehash81emmintrin Daniel J. Bernstein
cubehash81simple Daniel J. Bernstein
cubehash81spec Daniel J. Bernstein
cubehash81unrolled Daniel J. Bernstein
cubehash82emmintrin3 Daniel J. Bernstein
cubehash82emmintrin4 Daniel J. Bernstein
cubehash82simple Daniel J. Bernstein
cubehash82spec Daniel J. Bernstein
cubehash82unrolled Daniel J. Bernstein
cubehash84emmintrin3 Daniel J. Bernstein
cubehash84emmintrin4 Daniel J. Bernstein
cubehash84simple Daniel J. Bernstein
cubehash84spec Daniel J. Bernstein
cubehash84unrolled Daniel J. Bernstein
cubehash88emmintrin3 Daniel J. Bernstein
cubehash88emmintrin4 Daniel J. Bernstein
cubehash88simple Daniel J. Bernstein
cubehash88spec Daniel J. Bernstein
cubehash88unrolled Daniel J. Bernstein
cubehash161emmintrin4 Daniel J. Bernstein
cubehash161simple Daniel J. Bernstein
cubehash161spec Daniel J. Bernstein
cubehash161unrolled Daniel J. Bernstein
cubehash162emmintrin4 Daniel J. Bernstein
cubehash162simple Daniel J. Bernstein
cubehash162spec Daniel J. Bernstein
cubehash162unrolled Daniel J. Bernstein
cubehash164emmintrin4 Daniel J. Bernstein
cubehash164simple Daniel J. Bernstein
cubehash164spec Daniel J. Bernstein
cubehash164unrolled Daniel J. Bernstein
cubehash168emmintrin4 Daniel J. Bernstein
cubehash168simple Daniel J. Bernstein
cubehash168spec Daniel J. Bernstein
cubehash168unrolled Daniel J. Bernstein
cubehash512amd64-2 Daniel J. Bernstein
cubehash512amd64-32 Daniel J. Bernstein
cubehash512amd64 Daniel J. Bernstein
cubehash512amd64avx Daniel J. Bernstein
cubehash512arm Daniel J. Bernstein
cubehash512armneon Daniel J. Bernstein
cubehash512bitsliced Daniel J. Bernstein
cubehash512cellspu Daniel J. Bernstein
cubehash512emmintrin4 Daniel J. Bernstein
cubehash512emmintrin5 Daniel J. Bernstein
cubehash512hardware16 Daniel J. Bernstein
cubehash512hardware2 Daniel J. Bernstein
cubehash512hardware32 Daniel J. Bernstein
cubehash512hardware4 Daniel J. Bernstein
cubehash512hardware8 Daniel J. Bernstein
cubehash512mips64 Daniel J. Bernstein
cubehash512mipso32 Daniel J. Bernstein
cubehash512mmintrin Daniel J. Bernstein
cubehash512ppc32 Daniel J. Bernstein
cubehash512ppc64aix Daniel J. Bernstein
cubehash512ppc64 Daniel J. Bernstein
cubehash512ppcaltivec Daniel J. Bernstein
cubehash512precompiled/ia64 Daniel J. Bernstein
cubehash512simple Daniel J. Bernstein
cubehash512sparcv9 Daniel J. Bernstein
cubehash512spec Daniel J. Bernstein
cubehash512unrolled2 Daniel J. Bernstein
cubehash512unrolled3 Daniel J. Bernstein
cubehash512unrolled4 Daniel J. Bernstein
cubehash512unrolled5 Daniel J. Bernstein
cubehash512unrolled Daniel J. Bernstein
cubehash512x86 Daniel J. Bernstein
cubehash512x86xmm Daniel J. Bernstein
cubehash816emmintrin3 Daniel J. Bernstein
cubehash816emmintrin4 Daniel J. Bernstein
cubehash816simple Daniel J. Bernstein
cubehash816spec Daniel J. Bernstein
cubehash816unrolled Daniel J. Bernstein
cubehash832emmintrin3 Daniel J. Bernstein
cubehash832emmintrin4 Daniel J. Bernstein
cubehash832simple Daniel J. Bernstein
cubehash832spec Daniel J. Bernstein
cubehash832unrolled Daniel J. Bernstein
cubehash1616emmintrin4 Daniel J. Bernstein
cubehash1616simple Daniel J. Bernstein
cubehash1616spec Daniel J. Bernstein
cubehash1616unrolled Daniel J. Bernstein
cubehash1632amd64-2 Daniel J. Bernstein
cubehash1632amd64-32 Daniel J. Bernstein
cubehash1632amd64 Daniel J. Bernstein
cubehash1632amd64avx Daniel J. Bernstein
cubehash1632arm Daniel J. Bernstein
cubehash1632armneon Daniel J. Bernstein
cubehash1632bitsliced Daniel J. Bernstein
cubehash1632cellspu Daniel J. Bernstein
cubehash1632emmintrin4 Daniel J. Bernstein
cubehash1632emmintrin5 Daniel J. Bernstein
cubehash1632hardware16 Daniel J. Bernstein
cubehash1632hardware2 Daniel J. Bernstein
cubehash1632hardware4 Daniel J. Bernstein
cubehash1632hardware8 Daniel J. Bernstein
cubehash1632mips64 Daniel J. Bernstein
cubehash1632mipso32 Daniel J. Bernstein
cubehash1632mmintrin Daniel J. Bernstein
cubehash1632ppc32 Daniel J. Bernstein
cubehash1632ppc64aix Daniel J. Bernstein
cubehash1632ppc64 Daniel J. Bernstein
cubehash1632ppcaltivec Daniel J. Bernstein
cubehash1632precompiled/ia64 Daniel J. Bernstein
cubehash1632simple Daniel J. Bernstein
cubehash1632sparcv9 Daniel J. Bernstein
cubehash1632spec Daniel J. Bernstein
cubehash1632sphlib Thomas Pornin
cubehash1632sphlib-small Thomas Pornin
cubehash1632unrolled2 Daniel J. Bernstein
cubehash1632unrolled3 Daniel J. Bernstein
cubehash1632unrolled4 Daniel J. Bernstein
cubehash1632unrolled5 Daniel J. Bernstein
cubehash1632unrolled Daniel J. Bernstein
cubehash1632x86 Daniel J. Bernstein
cubehash1632x86xmm Daniel J. Bernstein
echo256aes/aes32 Ryad Benadjila
Olivier Billet
echo256aes/aes64 Ryad Benadjila
Olivier Billet
echo256athlon/athlon64 Ryad Benadjila
Olivier Billet
echo256ccalik/aesni Çağdaş Çalık
echo256ccalik/bitsliced Çağdaş Çalık
echo256ccalik/vperm Çağdaş Çalık
echo256core2/core2 Ryad Benadjila
Olivier Billet
echo256core2/core2v64 Ryad Benadjila
Olivier Billet
echo256generic/opt32 Ryad Benadjila
Olivier Billet
echo256generic/opt64 Ryad Benadjila
Olivier Billet
echo256pentium/pentium4 Ryad Benadjila
Olivier Billet
echo256pentium/pentium4v64v1 Ryad Benadjila
Olivier Billet
echo256pentium/pentium4v64v2 Ryad Benadjila
Olivier Billet
echo256pentium/pentiummmx Ryad Benadjila
Olivier Billet
echo256pentium/pentiumvnommx Ryad Benadjila
Olivier Billet
echo256powerpc/altivec Ryad Benadjila
Olivier Billet
echo256powerpc/pp32cv1 Ryad Benadjila
Olivier Billet
echo256powerpc/pp32cv2 Ryad Benadjila
Olivier Billet
echo256sphlib Thomas Pornin
echo256sphlib-small Thomas Pornin
echo512aes/aes32 Ryad Benadjila
Olivier Billet
echo512aes/aes64 Ryad Benadjila
Olivier Billet
echo512athlon/athlon64 Ryad Benadjila
Olivier Billet
echo512ccalik/aesni Çağdaş Çalık
echo512ccalik/bitsliced Çağdaş Çalık
echo512ccalik/vperm Çağdaş Çalık
echo512core2/core2 Ryad Benadjila
Olivier Billet
echo512core2/core2v64 Ryad Benadjila
Olivier Billet
echo512generic/opt32 Ryad Benadjila
Olivier Billet
echo512generic/opt64 Ryad Benadjila
Olivier Billet
echo512pentium/pentium4 Ryad Benadjila
Olivier Billet
echo512pentium/pentium4v64v1 Ryad Benadjila
Olivier Billet
echo512pentium/pentium4v64v2 Ryad Benadjila
Olivier Billet
echo512pentium/pentiummmx Ryad Benadjila
Olivier Billet
echo512pentium/pentiumvnommx Ryad Benadjila
Olivier Billet
echo512powerpc/altivec Ryad Benadjila
Olivier Billet
echo512powerpc/pp32cv1 Ryad Benadjila
Olivier Billet
echo512powerpc/pp32cv2 Ryad Benadjila
Olivier Billet
echo512sphlib Thomas Pornin
echo512sphlib-small Thomas Pornin
echosp256aes/aes32 Ryad Benadjila
Olivier Billet
echosp256aes/aes64 Ryad Benadjila
Olivier Billet
echosp256athlon/athlon64 Ryad Benadjila
Olivier Billet
echosp256core2/core2 Ryad Benadjila
Olivier Billet
echosp256core2/core2v64 Ryad Benadjila
Olivier Billet
echosp256generic/opt32 Ryad Benadjila
Olivier Billet
echosp256generic/opt64 Ryad Benadjila
Olivier Billet
echosp256pentium/pentium4 Ryad Benadjila
Olivier Billet
echosp256pentium/pentium4v64v1 Ryad Benadjila
Olivier Billet
echosp256pentium/pentium4v64v2 Ryad Benadjila
Olivier Billet
echosp256pentium/pentiummmx Ryad Benadjila
Olivier Billet
echosp256pentium/pentiumvnommx Ryad Benadjila
Olivier Billet
echosp256powerpc/altivec Ryad Benadjila
Olivier Billet
echosp256powerpc/pp32cv1 Ryad Benadjila
Olivier Billet
echosp256powerpc/pp32cv2 Ryad Benadjila
Olivier Billet
echosp512aes/aes32 Ryad Benadjila
Olivier Billet
echosp512aes/aes64 Ryad Benadjila
Olivier Billet
echosp512athlon/athlon64 Ryad Benadjila
Olivier Billet
echosp512core2/core2 Ryad Benadjila
Olivier Billet
echosp512core2/core2v64 Ryad Benadjila
Olivier Billet
echosp512generic/opt32 Ryad Benadjila
Olivier Billet
echosp512generic/opt64 Ryad Benadjila
Olivier Billet
echosp512pentium/pentium4 Ryad Benadjila
Olivier Billet
echosp512pentium/pentium4v64v1 Ryad Benadjila
Olivier Billet
echosp512pentium/pentium4v64v2 Ryad Benadjila
Olivier Billet
echosp512pentium/pentiummmx Ryad Benadjila
Olivier Billet
echosp512pentium/pentiumvnommx Ryad Benadjila
Olivier Billet
echosp512powerpc/altivec Ryad Benadjila
Olivier Billet
echosp512powerpc/pp32cv1 Ryad Benadjila
Olivier Billet
echosp512powerpc/pp32cv2 Ryad Benadjila
Olivier Billet
edonr256optc Jorn Amundsen
edonr256swpbe Jorn Amundsen
edonr512optc Jorn Amundsen
edonr512swpbe Jorn Amundsen
essence224gcc Jason Worth Martin
essence256gcc Jason Worth Martin
essence384gcc Jason Worth Martin
essence512gcc Jason Worth Martin
fsb256clean Peter Schwabe
fsb256ref Daniel Augot
Matthieu Finiasz
Philippe Gaborit
Stéphane Manuel
Nicolas Sendrier
fsb512ref Daniel Augot
Matthieu Finiasz
Philippe Gaborit
Stéphane Manuel
Nicolas Sendrier
fugue2cop_opt32 Charanjit S. Jutla
fugue256ANSI_opt32 Charanjit S. Jutla
fugue256ANSI_opt64 Charanjit S. Jutla
fugue256ccalik/aesni Çağdaş Çalık
fugue256ccalik/vperm Çağdaş Çalık
fugue256sphlib Thomas Pornin
fugue256SSE4.1 Charanjit S. Jutla
fugue256SSSE3 Charanjit S. Jutla
fugue384ccalik/aesni Çağdaş Çalık
fugue384ccalik/vperm Çağdaş Çalık
fugue512ccalik/aesni Çağdaş Çalık
fugue512ccalik/vperm Çağdaş Çalık
fugue512sphlib Thomas Pornin
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
hamsibernstein/small-simd-2 Daniel J. Bernstein (based on hamsi/simd-2)
hamsisimd-1 Özgül Kücük
hamsisimd-2 Özgül Kücük
hamsisphlib Thomas Pornin
hamsisphlib-small Thomas Pornin
hamsi512sphlib Thomas Pornin
hamsi512sphlib-small Thomas Pornin
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
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
keccakc256avr8 Ronny Van Keer
keccakc256avr8asmc Ronny Van Keer
keccakc256avr8asmf Ronny Van Keer
keccakc256compact8 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc256compact Ronny Van Keer
keccakc256inplace32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc256inplace32bi-armv6m Ronny Van Keer
keccakc256inplace32bi-armv7a Ronny Van Keer
keccakc256inplace32bi-armv7m Ronny Van Keer
keccakc256inplace Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc256mmxu1 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256opt32bi-rvku2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc256opt32bi-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256opt32biT-s2lcu4 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256opt64lcu24 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256opt64lcu24shld Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256opt64lcu6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256opt64u6 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256simple32bi Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Ronny Van Keer
keccakc256simple Ronny Van Keer
keccakc256sseu2 Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
keccakc256x86_64_asm Ronny Van Keer
keccakc256x86_64_shld Ronny Van Keer
keccakc256xopu24 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
lane256bitslice Emilia Käsper
lane256c Sebastiaan Indesteege
lane256mmx Sebastiaan Indesteege
lane512c Sebastiaan Indesteege
luffa256arm Hitachi
luffa256asm-PS-v2-FP
luffa256avr Hitachi
luffa256opt32 Hitachi
luffa256sphlib Thomas Pornin
luffa256sse2 Hitachi
luffa256sse2_x64asm-2 Hitachi
luffa256sse2_x64asm Hitachi
luffa256sse2_x86asm-2 Hitachi
luffa256sse2_x86asm Hitachi
luffa256ssse3_x64asm-2 Hitachi
luffa256ssse3_x64asm Hitachi
luffa256ssse3_x64asm-PS-2
luffa256ssse3_x64asm-PS
luffa256thomaz/asm-PS Thomaz Oliveira
Julio Lopez
luffa256thomaz/asm-PSPar-v2-FP Thomaz Oliveira
Julio Lopez
luffa256thomaz/asm-PSPar-v2-INT Thomaz Oliveira
Julio Lopez
luffa256thomaz/asm-PS-v2-FP Thomaz Oliveira
Julio Lopez
luffa256thomaz/asm-PS-v2-INT Thomaz Oliveira
Julio Lopez
luffa256thomaz/basic Thomaz Oliveira
Julio Lopez
luffa384arm Hitachi
luffa384avr Hitachi
luffa384opt32 Hitachi
luffa384sse2 Hitachi
luffa384sse2_x64asm-2 Hitachi
luffa384sse2_x64asm Hitachi
luffa384sse2_x86asm-2 Hitachi
luffa384sse2_x86asm Hitachi
luffa384ssse3_x64asm-2 Hitachi
luffa384ssse3_x64asm Hitachi
luffa384ssse3_x64asm-PS-2
luffa384ssse3_x64asm-PS
luffa384ssse3_x86 Hitachi
luffa384thomaz/asm-PS Thomaz Oliveira
Julio Lopez
luffa384thomaz/asm-PSPar-v2-FP Thomaz Oliveira
Julio Lopez
luffa384thomaz/asm-PSPar-v2-INT Thomaz Oliveira
Julio Lopez
luffa384thomaz/asm-PS-v2-FP Thomaz Oliveira
Julio Lopez
luffa384thomaz/asm-PS-v2-INT Thomaz Oliveira
Julio Lopez
luffa512arm Hitachi
luffa512avr Hitachi
luffa512opt32 Hitachi
luffa512sphlib Thomas Pornin
luffa512sse2 Hitachi
luffa512sse2_x64asm-2 Hitachi
luffa512sse2_x64asm Hitachi
luffa512sse2_x86asm-2 Hitachi
luffa512sse2_x86asm Hitachi
luffa512ssse3_x64asm-2 Hitachi
luffa512ssse3_x64asm Hitachi
luffa512ssse3_x64asm-PS-2
luffa512ssse3_x64asm-PS
luffa512ssse3_x86 Hitachi
luffa512thomaz/asm-PS Thomaz Oliveira
Julio Lopez
luffa512thomaz/asm-PSPar-v2-FP Thomaz Oliveira
Julio Lopez
luffa512thomaz/asm-PSPar-v2-INT Thomaz Oliveira
Julio Lopez
luffa512thomaz/asm-PS-v2-FP Thomaz Oliveira
Julio Lopez
luffa512thomaz/asm-PS-v2-INT Thomaz Oliveira
Julio Lopez
lux256asm Ivica Nikolić
lux512asm Ivica Nikolić
mcssha4ref Mikhail Maslennikov
mcssha5ref Mikhail Maslennikov
mcssha6ref Mikhail Maslennikov
md2openssl Daniel J. Bernstein (wrapper around OpenSSL)
md4openssl Daniel J. Bernstein (wrapper around OpenSSL)
md5openssl Daniel J. Bernstein (wrapper around OpenSSL)
md5ref Daniel J. Bernstein (wrapper around crypto_hashblocks/md5)
md6d224ref Jayant Krishnamurthy
md6d256ref Jayant Krishnamurthy
md6d384ref Jayant Krishnamurthy
md6d512ref Jayant Krishnamurthy
mgrostl256opt-32 Gurpreet Kaur
mgrostl256opt-64 Gurpreet Kaur
mgrostl256ref Gurpreet Kaur
nasha256opt Aleksandra Mileva
nasha256opt_v4 Aleksandra Mileva
Boro Jakimovski
nasha512opt Aleksandra Mileva
nasha512opt_v4 Aleksandra Mileva
Boro Jakimovski
rfsb509ref Daniel J. Bernstein
Peter Schwabe
rhashref
ripemd160openssl Daniel J. Bernstein (wrapper around OpenSSL)
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
sarmal256asm64 Çelebi Kocair
sarmal256opt64 Çelebi Kocair
sarmal512asm64 Çelebi Kocair
sarmal512opt64 Çelebi Kocair
sha1openssl Daniel J. Bernstein (wrapper around OpenSSL)
sha224openssl Daniel J. Bernstein (wrapper around OpenSSL)
sha256cryptopp Wei Dai (wrapper around Crypto++)
sha256openssl Daniel J. Bernstein (wrapper around OpenSSL)
sha256ref Daniel J. Bernstein (wrapper around crypto_hashblocks/sha256)
sha256sphlib Thomas Pornin
sha256sphlib-small Thomas Pornin
sha384openssl Daniel J. Bernstein (wrapper around OpenSSL)
sha512cryptopp Wei Dai (wrapper around Crypto++)
sha512openssl Daniel J. Bernstein (wrapper around OpenSSL)
sha512ref Daniel J. Bernstein (wrapper around crypto_hashblocks/sha512)
sha512sphlib Thomas Pornin
sha512sphlib-small Thomas Pornin
shabal256amd64 Thomas Pornin
shabal256i386 Thomas Pornin
shabal256i386sse2 Thomas Pornin
shabal256ppc32eb Thomas Pornin
shabal256ppc64eb Thomas Pornin
shabal256sphlib Thomas Pornin
shabal512amd64 Thomas Pornin
shabal512i386 Thomas Pornin
shabal512i386sse2 Thomas Pornin
shabal512ppc32eb Thomas Pornin
shabal512ppc64eb Thomas Pornin
shabal512ref SAPHIR project
shabal512sphlib Thomas Pornin
shake256gil/singlefile David Leon Gil
shake256gil/singlefile_unrolled David Leon Gil
shavite32568-bit Eli Biham
Orr Dunkelman
shavite3256aes-instruct Ryad Benadjila
Olivier Billet
Eli Biham
Orr Dunkelman
shavite3256lower-mem Eli Biham
Orr Dunkelman
shavite3256low-mem Eli Biham
Orr Dunkelman
shavite3256new-aes-round Eli Biham
Orr Dunkelman
shavite3256no-salt Eli Biham
Orr Dunkelman
shavite3256sphlib Thomas Pornin
shavite3256sphlib-small Thomas Pornin
shavite35128-bit Eli Biham
Orr Dunkelman
shavite3512aes-instruct Ryad Benadjila
Olivier Billet
Eli Biham
Orr Dunkelman
shavite3512different-order Eli Biham
Orr Dunkelman
shavite3512IntelL1Cache Eli Biham
Orr Dunkelman
shavite3512lower-mem Eli Biham
Orr Dunkelman
shavite3512low-mem Eli Biham
Orr Dunkelman
shavite3512new-aes-round Eli Biham
Orr Dunkelman
shavite3512no-salt Eli Biham
Orr Dunkelman
shavite3512sphlib Thomas Pornin
shavite3512sphlib-small Thomas Pornin
simd256opt Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
simd256ref Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
simd256sphlib Thomas Pornin
simd256sphlib-small Thomas Pornin
simd256vect128 Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
simd256vectarm Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
simd512opt Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
simd512ref Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
simd512sphlib Thomas Pornin
simd512sphlib-small Thomas Pornin
simd512vect128 Gaëtan Leurent
Charles Bouillaguet
Pierre-Alain Fouque
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
tigercryptopp Wei Dai (wrapper around Crypto++)
whirlpoolcryptopp Wei Dai (wrapper around Crypto++)
whirlpoolref Daniel J. Bernstein (wrapper around reference implementation)

hashblocks implementations

Some crypto_hash implementations build crypto_hash on top of crypto_hashblocks. Here is a list of crypto_hashblocks implementations.
PrimitiveImplementationAuthors
md5amd64-1 Daniel J. Bernstein
md5little-1 Daniel J. Bernstein
md5ref Daniel J. Bernstein
md5x86-1 Daniel J. Bernstein
rfsb509amd64-1 Daniel J. Bernstein
Peter Schwabe
rfsb509amd64-2 Daniel J. Bernstein
Peter Schwabe
rfsb509amd64-3 Daniel J. Bernstein
Peter Schwabe
rfsb509core2 Daniel J. Bernstein
Peter Schwabe
rfsb509ref Peter Schwabe
rfsb509xmm1 Daniel J. Bernstein
Peter Schwabe
rfsb509xmm1reg Daniel J. Bernstein
Peter Schwabe
rfsb509xmm2 Daniel J. Bernstein
Peter Schwabe
rfsb509xmm4 Daniel J. Bernstein
Peter Schwabe
sha256arm11 Peter Schwabe
Bo-Yin Yang
lead: Shang-Yi Yang
sha256dolbeau/amd64-sha Romain Dolbeau
sha256dolbeau/armv8crypto Romain Dolbeau
sha256inplace Daniel J. Bernstein
sha256ref Daniel J. Bernstein
sha512dolbeau/intelavx2rorxasm Romain Dolbeau (wrapper around Intel ASM)
sha512dolbeau/intelavxasm Romain Dolbeau (wrapper around Intel ASM)
sha512dolbeau/intelsse4asm Romain Dolbeau (wrapper around Intel ASM)
sha512inplace Daniel J. Bernstein
sha512ref Daniel J. Bernstein

Version

This is version 2017.07.26 of the primitives-hash.html web page. This web page is in the public domain.