Argon2 function and hardware platform optimizations for OpenSSL

Memory-hard password hashing function Argon2 has been adopted by applications and libraries alike, but it was as yet missing in OpenSSL library. Some of Argon2 users use OpenSSL. To remedy the need for an extra dependency or the need to maintain separate implementation maintenance, Argon2 is introduced into OpenSSL. As it is designed to be executed in parallel, threading support is also proposed for OpenSSL. Parts of Argon2 code are then optimized further for ARMv8.0-A architecture, in particular for the 64-bit Aarch64 execution state. This includes optimization of memory copying, preloading and optimization of the internal compression function. Performance oriented optimizations are then benchmarked on 5 different ARMv8.0-A machines, ranging from development boards to servers


Faculty of Informatics

Date of Completion

fall 2019



Milan Brož


Čestmír Kalina