Similarly: BLAKE2s (32-bit words) - 554 MiB/s BLAKE2b (64-bit words) - 890 MiB/s (source: https://blake2.net/ ) The difference is also clear in pure JavaScript implementations — JS doesn't have native 64-bit integer operations yet, so SHA-512 is slower there: SHA-256 - 103.17 MiB/s SHA-512 - 34.29 MiB/s Note that since SHA-512 eats 128-byte blocks, while SHA-256 64-byte blocks, hashing very short strings may be faste…
> in pure JavaScript implementations Is not JS cryptography a bad idea?
SHA-512 is 1.5x faster than SHA-256 on 64-bit platforms
11–15 of 15 posts
No JS per se. In browser client side crypto though...
Re: SHA-512 is 1.5x faster than SHA-256 on 64-bit platforms
#12I would be curious to see this compared with SHA-384, and across multiple languages.
SHA 224/384 are just truncated forms of the same algorithm as SHA 256/512, respectively. (With different initial constants, as well, but that doesn't matter for this.)
Re: SHA-512 is 1.5x faster than SHA-256 on 64-bit platforms
#13"... amortized per byte."
SHA-512 is in fact slower per iteration, but uses twice the block size as SHA-256. For hashing e.g. files, the per-byte number is what matters. But when doing hash trees, for example, the per-iteration performance is what matters and SHA-256 wins out there.
Re: SHA-512 is 1.5x faster than SHA-256 on 64-bit platforms
#14Earlier quoted context omitted.
> in pure JavaScript implementations Is not JS cryptography a bad idea?
No JS per se. In browser client side crypto though...
Harder to defend against timing attacks in JS, which are exactly some of the strongest attacks against modern cryptosystems.
Re: SHA-512 is 1.5x faster than SHA-256 on 64-bit platforms
#15Earlier quoted context omitted.
No JS per se. In browser client side crypto though...
Harder to defend against timing attacks in JS, which are exactly some of the strongest attacks against modern cryptosystems.
Do you mean because of the lack of low level control/bit manipulation, vs C/asm, or something else? I would have guessed it was about the same as any interpreted/jitted higher level language (python/php/c#/java).