Software implementation of SHA-3 family using AVX2
ResumoThe Keccak algorithm was the winner of the competition organized by NIST to choose the new standard hash algorithm, called SHA-3. In this work, we present the details of our software implementation in conformity with draft FIPS 202. We follow two approaches for the implementation of SHA-3, the first one computes the digest for a single message, and the other one computes in parallel four digests from four different messages. The performance for the single implementation was accelerated using vector instructions of 128/256 bits, and it is as fast as the best implementation optimized for 64 bits published on eBASH. The parallel implementation is about 2.5 faster than the single message implementation. The cryptographic primitive extendable-output functions, which is part of the draft FIPS 202, were also implemented.
Bertoni, G., Daemen, J., Peeters, M., and Van Assche, G. (2007). Sponge functions. In ECRYPT hash workshop, volume 2007. Citeseer.
Bertoni, G., Daemen, J., Peeters, M., and Van Assche, G. (2008). Keccak specifications. Submission to NIST, 42.
Biham, E., Chen, R., Joux, A., Carribault, P., Lemuet, C., and Jalby, W. (2005). Collisions of sha-0 and reduced sha-1. In Advances in Cryptology–EUROCRYPT 2005, pages 36– 57. Springer.
FIPS, P. (2008). 180-3. Secure Hash Standard.
FIPS, P. (2014). 202. SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions.
Indesteege, S., Mendel, F., Preneel, B., and Rechberger, C. (2009). Collisions and other non-random properties for step-reduced sha-256. In Selected Areas in Cryptography, pages 276–293. Springer.
NIST (2007). The sha-3 cryptographic hash algorithm competition.
Rijmen, V. and Oswald, E. (2005). Update on sha-1. In Topics in Cryptology–CT-RSA 2005, pages 58–71. Springer.
Wang, X., Yin, Y. L., and Yu, H. (2005). Finding collisions in the full sha-1. In Advances in Cryptology–CRYPTO 2005, pages 17–36. Springer.