JIS  Vol.3 No.4 , October 2012
Simultaneous Hashing of Multiple Messages
Abstract: We describe a method for efficiently hashing multiple messages of different lengths. Such computations occur in various scenarios, and one of them is when an operating system checks the integrity of its components during boot time. These tasks can gain performance by parallelizing the computations and using SIMD architectures. For such scenarios, we compare the performance of a new 4-buffers SHA-256 S-HASH implementation, to that of the standard serial hashing. Our results are measured on the 2nd Generation Intel? CoreTM Processor, and demonstrate SHA-256 processing at effectively ~5.2 Cycles per Byte, when hashing from any of the three cache levels, or from the system memory. This represents speedup by a factor of 3.42x compared to OpenSSL (1.0.1), and by 2.25x compared to the recent and faster n-SMS method. For hashing from a disk, we show an effective rate of ~6.73 Cycles/Byte, which is almost 3 times faster than OpenSSL (1.0.1) under the same conditions. These results indicate that for some usage models, SHA-256 is significantly faster than commonly perceived.
Cite this paper: S. Gueron and V. Krasnov, "Simultaneous Hashing of Multiple Messages," Journal of Information Security, Vol. 3 No. 4, 2012, pp. 319-325. doi: 10.4236/jis.2012.34039.

[1]   NIST, “Cryptographic Hash Algorithm Competition,”

[2]   S. Gueron and V. Krasnov, “Parallelizing Message Schedules to Accelerate the Computations of Hash Functions,” 2012.

[3]   S. Gueron and V. Krasnov, “[PATCH] Efficient Implementations of SHA256 and SHA512, Using the Simultaneous Message Scheduling method,” 2012.

[4]   The Chromium Project, “Verified Boot,”

[5]   C. Y. Liu, Y. P. Lu, C. H. Shi, G. L. Lu, D. H. C. Du and D.-S. Wang, “ADMAD: Application-Driven Metadata Aware De-duplication Archival Storage System,” Fifth IEEE International Workshop on Storage Network Architecture and Parallel I/Os, 22 September 2008, pp. 29-35.

[6]   O. Aciicmez, “Fast Hashing on Pentium SIMD Architecture,” M.S. Thesis, School of Electrical Engineering and Computer Science, Oregon State University, 2004.

[7]   D. Gaudet, “SHA1 Using SIMD Techniques,”

[8]   M. Locktyukhin, “Improving the Performance of the Secure Hash Algorithm (SHA-1),” 2010.

[9]   “Federal Information Processing Standards Publication 180-2: Secure Hash Standard,”

[10]   Intel, “Intel Advanced Vector Extensions Programming Reference,”

[11]   Intel (M. Buxton), “Haswell New Instruction Descriptions Now Available,” 2011.

[12]   Linux Manual, “Hdparm,”

[13]   Intel, “2nd Generation Intel? CoreTM Processor Family Desktop Datasheet,”

[14]   OpenSSL, “The Open Source Toolkit for SSL/TLS,”

[15]   LinuxMM, “Drop Caches,”