SSE2-enhanced parallel implementations of the Shabal hash functionsPosted on May 17th, 2010 No comments
This SSE2-enhanced parallel implementations of the Shabal hash functions runs up to four parallel instances of Shabal (on four input data messages of identical length).
This code was benched on an Intel x86 Core2 Q6600 system, clocked at 2.4 GHz and running Linux. The compiler is Intel C/C++ compiler version 11.1. Achieved speed (for long messages) is 631 MB/s (in 32-bit mode; 621 MB/s in 64-bit mode); this is the cumulative bandwidth of the four parallel instances (each instance is hashed with a bandwidth of about 158 MB/s). All of this is on a single CPU core.
See the mshabal.h header file for documentation on the API. The code itself should compile properly with GCC, the Intel C/C++ compiler, and Microsoft Visual C (this was tested with GCC 4.4.1 and Visual C 2005).
(c) 2010 SAPHIR project. This software is provided ‘as-is’, without any epxress or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to no restriction.
Technical remarks and questions can be addressed to:
<thomas.pornin at cryptolog.com>