Windows X64 AMD Ryzen 5 7600X Hash Benchmarks
Machine Profile
Machine Specification
The benchmarks were run on the following machine:
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
AMD Ryzen 5 7600X 4.70GHz, 1 CPU, 12 logical and 6 physical cores
.NET SDK 10.0.202
[Host] : .NET 10.0.6 (10.0.6, 10.0.626.17701), X64 RyuJIT x86-64-v4
.NET 10.0 : .NET 10.0.6 (10.0.6, 10.0.626.17701), X64 RyuJIT x86-64-v4
Method=TryComputeHash Job=.NET 10.0 Runtime=.NET 10.0
Toolchain=net10.0
Note: Results are machine-specific and may vary between systems. Run benchmarks locally for your specific hardware.
BenchmarkDotNet measurements for all hash algorithm implementations in CryptoHives.Foundation.Security.Cryptography. Each algorithm is benchmarked across representative payload sizes (128 bytes through 128 KiB) to capture both latency and throughput characteristics.
Implementations are compared against:
- OS — .NET's built-in
System.Security.Cryptography (backed by CNG/OpenSSL)
- BouncyCastle — BouncyCastle C# library
- Native — Platform-specific native libraries (e.g., blake3-dotnet)
- Managed — CryptoHives managed implementation (scalar)
- SIMD — CryptoHives SIMD variants (SSE2, SSSE3, AVX2, AVX-512F)
Highlights
| Family |
Leader |
Key Insight |
| SHA-2 |
OS (SHA-NI) |
Hardware SHA-NI gives OS ~4.5× advantage; managed outperforms BouncyCastle by ~13% |
| SHA-3/Keccak |
Managed |
Scalar Keccak outperforms OS by ~30% and SIMD variants by 25–35% |
| BLAKE2b/2s |
Managed AVX2 |
BLAKE2b AVX2 ~10% faster than BouncyCastle; BLAKE2s SIMD on parity with BouncyCastle |
| BLAKE3 |
Native (Rust) |
Rust interop ~1.4× faster at small inputs, ~12× at large due to multi-chunk parallelism; SSSE3 managed ~8–9× faster than BouncyCastle |
| Streebog |
Managed |
1.4–1.8× faster than OpenGost/BouncyCastle |
| Kupyna |
Managed |
T-table optimization ~30–45% faster than BouncyCastle |
| KMAC |
Managed |
~36–67% faster than OS and ~35–67% faster than BouncyCastle depending on payload size |
| Ascon |
Managed |
~33% faster than BouncyCastle across all input sizes |
SHA-2 Family
The OS SHA-256/SHA-512 implementations leverage SHA-NI hardware instructions (available on AMD Zen+ and Intel Ice Lake+), providing ~4.5× speedup over any software implementation. For pure managed code, CryptoHives outperforms BouncyCastle by approximately 13% through loop unrolling and hardcoded round constants.
Key observations:
- OS: Uses SHA-NI hardware acceleration
- Managed: Optimized scalar with unrolled rounds
- BouncyCastle: Reference scalar implementation
SHA-224
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA-224 · CryptoHives-Scalar |
128B |
474.7 ns |
1.48 ns |
1.31 ns |
- |
| TryComputeHash · SHA-224 · BouncyCastle |
128B |
553.1 ns |
2.74 ns |
2.29 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-224 · CryptoHives-Scalar |
137B |
475.5 ns |
1.38 ns |
1.15 ns |
- |
| TryComputeHash · SHA-224 · BouncyCastle |
137B |
555.3 ns |
2.78 ns |
2.60 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-224 · CryptoHives-Scalar |
1KB |
2,640.4 ns |
14.56 ns |
13.62 ns |
- |
| TryComputeHash · SHA-224 · BouncyCastle |
1KB |
3,075.8 ns |
13.73 ns |
12.84 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-224 · CryptoHives-Scalar |
1025B |
2,647.5 ns |
10.78 ns |
9.55 ns |
- |
| TryComputeHash · SHA-224 · BouncyCastle |
1025B |
3,077.8 ns |
13.97 ns |
12.38 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-224 · CryptoHives-Scalar |
8KB |
19,901.7 ns |
68.55 ns |
60.77 ns |
- |
| TryComputeHash · SHA-224 · BouncyCastle |
8KB |
23,252.6 ns |
97.27 ns |
86.23 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-224 · CryptoHives-Scalar |
128KB |
316,589.1 ns |
2,196.12 ns |
1,946.80 ns |
- |
| TryComputeHash · SHA-224 · BouncyCastle |
128KB |
369,038.1 ns |
1,868.64 ns |
1,747.92 ns |
- |
SHA-256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA-256 · OS Native |
128B |
106.2 ns |
0.25 ns |
0.23 ns |
- |
| TryComputeHash · SHA-256 · CryptoHives-Scalar |
128B |
474.5 ns |
2.14 ns |
1.78 ns |
- |
| TryComputeHash · SHA-256 · BouncyCastle |
128B |
554.0 ns |
2.54 ns |
2.25 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-256 · OS Native |
137B |
106.3 ns |
0.28 ns |
0.26 ns |
- |
| TryComputeHash · SHA-256 · CryptoHives-Scalar |
137B |
476.7 ns |
2.56 ns |
2.40 ns |
- |
| TryComputeHash · SHA-256 · BouncyCastle |
137B |
583.6 ns |
1.23 ns |
1.03 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-256 · OS Native |
1KB |
463.4 ns |
0.66 ns |
0.59 ns |
- |
| TryComputeHash · SHA-256 · CryptoHives-Scalar |
1KB |
2,640.9 ns |
13.29 ns |
12.43 ns |
- |
| TryComputeHash · SHA-256 · BouncyCastle |
1KB |
3,039.1 ns |
8.52 ns |
7.55 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-256 · OS Native |
1025B |
463.7 ns |
0.74 ns |
0.66 ns |
- |
| TryComputeHash · SHA-256 · CryptoHives-Scalar |
1025B |
2,649.5 ns |
15.33 ns |
14.34 ns |
- |
| TryComputeHash · SHA-256 · BouncyCastle |
1025B |
3,035.4 ns |
10.71 ns |
9.50 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-256 · OS Native |
8KB |
3,276.0 ns |
7.24 ns |
6.77 ns |
- |
| TryComputeHash · SHA-256 · CryptoHives-Scalar |
8KB |
20,058.6 ns |
223.86 ns |
209.39 ns |
- |
| TryComputeHash · SHA-256 · BouncyCastle |
8KB |
22,964.1 ns |
120.51 ns |
112.72 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-256 · OS Native |
128KB |
51,492.5 ns |
109.27 ns |
91.24 ns |
- |
| TryComputeHash · SHA-256 · CryptoHives-Scalar |
128KB |
316,993.3 ns |
1,838.70 ns |
1,629.96 ns |
- |
| TryComputeHash · SHA-256 · BouncyCastle |
128KB |
363,789.5 ns |
1,264.91 ns |
1,183.20 ns |
- |
SHA-384
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA-384 · OS Native |
128B |
351.7 ns |
1.46 ns |
1.30 ns |
- |
| TryComputeHash · SHA-384 · CryptoHives-Scalar |
128B |
407.1 ns |
1.37 ns |
1.14 ns |
- |
| TryComputeHash · SHA-384 · BouncyCastle |
128B |
482.6 ns |
1.75 ns |
1.64 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-384 · OS Native |
137B |
353.9 ns |
1.93 ns |
1.81 ns |
- |
| TryComputeHash · SHA-384 · CryptoHives-Scalar |
137B |
409.6 ns |
1.47 ns |
1.30 ns |
- |
| TryComputeHash · SHA-384 · BouncyCastle |
137B |
498.3 ns |
1.78 ns |
1.66 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-384 · OS Native |
1KB |
1,405.2 ns |
4.39 ns |
4.10 ns |
- |
| TryComputeHash · SHA-384 · CryptoHives-Scalar |
1KB |
1,803.4 ns |
6.75 ns |
6.32 ns |
- |
| TryComputeHash · SHA-384 · BouncyCastle |
1KB |
2,145.2 ns |
9.49 ns |
8.41 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-384 · OS Native |
1025B |
1,408.8 ns |
5.44 ns |
4.82 ns |
- |
| TryComputeHash · SHA-384 · CryptoHives-Scalar |
1025B |
1,810.8 ns |
8.21 ns |
7.68 ns |
- |
| TryComputeHash · SHA-384 · BouncyCastle |
1025B |
2,135.0 ns |
7.15 ns |
6.69 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-384 · OS Native |
8KB |
9,818.9 ns |
48.02 ns |
44.91 ns |
- |
| TryComputeHash · SHA-384 · CryptoHives-Scalar |
8KB |
13,073.9 ns |
65.11 ns |
57.72 ns |
- |
| TryComputeHash · SHA-384 · BouncyCastle |
8KB |
15,307.5 ns |
29.15 ns |
27.27 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-384 · OS Native |
128KB |
155,011.7 ns |
743.30 ns |
695.28 ns |
- |
| TryComputeHash · SHA-384 · CryptoHives-Scalar |
128KB |
205,995.8 ns |
1,173.90 ns |
980.26 ns |
- |
| TryComputeHash · SHA-384 · BouncyCastle |
128KB |
241,125.3 ns |
506.21 ns |
473.51 ns |
- |
SHA-512
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA-512 · OS Native |
128B |
344.4 ns |
1.39 ns |
1.23 ns |
- |
| TryComputeHash · SHA-512 · CryptoHives-Scalar |
128B |
408.0 ns |
1.62 ns |
1.51 ns |
- |
| TryComputeHash · SHA-512 · BouncyCastle |
128B |
480.8 ns |
2.76 ns |
2.59 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512 · OS Native |
137B |
344.8 ns |
1.55 ns |
1.45 ns |
- |
| TryComputeHash · SHA-512 · CryptoHives-Scalar |
137B |
404.4 ns |
1.68 ns |
1.49 ns |
- |
| TryComputeHash · SHA-512 · BouncyCastle |
137B |
485.3 ns |
2.92 ns |
2.73 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512 · OS Native |
1KB |
1,390.5 ns |
6.22 ns |
5.82 ns |
- |
| TryComputeHash · SHA-512 · CryptoHives-Scalar |
1KB |
1,780.3 ns |
7.24 ns |
6.77 ns |
- |
| TryComputeHash · SHA-512 · BouncyCastle |
1KB |
2,110.8 ns |
14.47 ns |
13.53 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512 · OS Native |
1025B |
1,384.1 ns |
5.23 ns |
4.37 ns |
- |
| TryComputeHash · SHA-512 · CryptoHives-Scalar |
1025B |
1,805.4 ns |
5.82 ns |
4.86 ns |
- |
| TryComputeHash · SHA-512 · BouncyCastle |
1025B |
2,112.5 ns |
14.46 ns |
13.53 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512 · OS Native |
8KB |
9,692.0 ns |
38.64 ns |
34.26 ns |
- |
| TryComputeHash · SHA-512 · CryptoHives-Scalar |
8KB |
12,937.2 ns |
31.58 ns |
26.37 ns |
- |
| TryComputeHash · SHA-512 · BouncyCastle |
8KB |
15,138.5 ns |
67.20 ns |
62.86 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512 · OS Native |
128KB |
152,027.2 ns |
433.78 ns |
384.53 ns |
- |
| TryComputeHash · SHA-512 · CryptoHives-Scalar |
128KB |
200,378.1 ns |
636.77 ns |
564.48 ns |
- |
| TryComputeHash · SHA-512 · BouncyCastle |
128KB |
237,933.7 ns |
1,063.56 ns |
994.85 ns |
- |
SHA-512/224
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA-512/224 · CryptoHives-Scalar |
128B |
407.1 ns |
2.05 ns |
1.81 ns |
- |
| TryComputeHash · SHA-512/224 · BouncyCastle |
128B |
494.3 ns |
1.58 ns |
1.40 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/224 · CryptoHives-Scalar |
137B |
408.2 ns |
1.03 ns |
0.97 ns |
- |
| TryComputeHash · SHA-512/224 · BouncyCastle |
137B |
499.7 ns |
0.61 ns |
0.51 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/224 · CryptoHives-Scalar |
1KB |
1,797.6 ns |
7.15 ns |
5.97 ns |
- |
| TryComputeHash · SHA-512/224 · BouncyCastle |
1KB |
2,153.7 ns |
9.63 ns |
8.53 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/224 · CryptoHives-Scalar |
1025B |
1,828.9 ns |
7.60 ns |
7.11 ns |
- |
| TryComputeHash · SHA-512/224 · BouncyCastle |
1025B |
2,159.0 ns |
9.67 ns |
7.55 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/224 · CryptoHives-Scalar |
8KB |
13,032.0 ns |
121.89 ns |
114.02 ns |
- |
| TryComputeHash · SHA-512/224 · BouncyCastle |
8KB |
15,476.4 ns |
25.61 ns |
21.39 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/224 · CryptoHives-Scalar |
128KB |
203,571.7 ns |
1,062.15 ns |
886.95 ns |
- |
| TryComputeHash · SHA-512/224 · BouncyCastle |
128KB |
243,230.4 ns |
1,406.86 ns |
1,315.97 ns |
- |
SHA-512/256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA-512/256 · CryptoHives-Scalar |
128B |
416.1 ns |
5.31 ns |
4.97 ns |
- |
| TryComputeHash · SHA-512/256 · BouncyCastle |
128B |
505.2 ns |
3.90 ns |
3.65 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/256 · CryptoHives-Scalar |
137B |
410.6 ns |
2.59 ns |
2.16 ns |
- |
| TryComputeHash · SHA-512/256 · BouncyCastle |
137B |
505.2 ns |
2.58 ns |
2.42 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/256 · CryptoHives-Scalar |
1KB |
1,802.2 ns |
7.63 ns |
6.37 ns |
- |
| TryComputeHash · SHA-512/256 · BouncyCastle |
1KB |
2,162.0 ns |
12.29 ns |
10.89 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/256 · CryptoHives-Scalar |
1025B |
1,796.8 ns |
8.02 ns |
7.50 ns |
- |
| TryComputeHash · SHA-512/256 · BouncyCastle |
1025B |
2,129.5 ns |
9.90 ns |
9.26 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/256 · CryptoHives-Scalar |
8KB |
12,883.5 ns |
32.01 ns |
26.73 ns |
- |
| TryComputeHash · SHA-512/256 · BouncyCastle |
8KB |
15,154.4 ns |
75.78 ns |
70.88 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-512/256 · CryptoHives-Scalar |
128KB |
200,709.1 ns |
612.81 ns |
511.72 ns |
- |
| TryComputeHash · SHA-512/256 · BouncyCastle |
128KB |
238,460.7 ns |
1,132.03 ns |
1,058.90 ns |
- |
Keccak-derived Families
The managed Keccak core uses an optimized scalar implementation that outperforms both the OS-provided SHA-3 and SIMD variants (AVX2/AVX-512F). This is unusual—typically SIMD accelerates cryptographic operations—but Keccak's irregular permutation structure doesn't map efficiently to SIMD lanes.
Key observations:
- Managed scalar is ~30% faster than OS SHA-3 and 25–35% faster than SIMD variants
- SIMD implementations (AVX2/AVX-512F) are provided but disabled by default
- All Keccak-derived algorithms (SHA-3, SHAKE, cSHAKE, TurboSHAKE, KT) share the same optimized core
SHA-3 Family
SHA3-224
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA3-224 · CryptoHives-Scalar |
128B |
208.3 ns |
1.13 ns |
1.05 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX2 |
128B |
278.8 ns |
0.54 ns |
0.48 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX512F |
128B |
288.7 ns |
0.68 ns |
0.64 ns |
- |
| TryComputeHash · SHA3-224 · BouncyCastle |
128B |
333.3 ns |
1.82 ns |
1.70 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-224 · CryptoHives-Scalar |
137B |
208.8 ns |
1.00 ns |
0.83 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX2 |
137B |
278.8 ns |
0.82 ns |
0.77 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX512F |
137B |
287.7 ns |
0.52 ns |
0.46 ns |
- |
| TryComputeHash · SHA3-224 · BouncyCastle |
137B |
333.9 ns |
2.53 ns |
2.25 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-224 · CryptoHives-Scalar |
1KB |
1,594.7 ns |
17.07 ns |
14.25 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX2 |
1KB |
2,161.8 ns |
7.45 ns |
6.97 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX512F |
1KB |
2,227.0 ns |
22.21 ns |
17.34 ns |
- |
| TryComputeHash · SHA3-224 · BouncyCastle |
1KB |
2,457.1 ns |
7.03 ns |
5.87 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-224 · CryptoHives-Scalar |
1025B |
1,591.9 ns |
5.94 ns |
4.96 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX2 |
1025B |
2,160.1 ns |
5.45 ns |
4.55 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX512F |
1025B |
2,223.8 ns |
6.95 ns |
6.50 ns |
- |
| TryComputeHash · SHA3-224 · BouncyCastle |
1025B |
2,466.6 ns |
13.44 ns |
12.57 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-224 · CryptoHives-Scalar |
8KB |
11,287.9 ns |
48.42 ns |
42.92 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX2 |
8KB |
15,355.3 ns |
41.49 ns |
34.65 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX512F |
8KB |
15,736.7 ns |
47.10 ns |
41.75 ns |
- |
| TryComputeHash · SHA3-224 · BouncyCastle |
8KB |
17,485.1 ns |
113.87 ns |
106.51 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-224 · CryptoHives-Scalar |
128KB |
180,536.4 ns |
1,189.28 ns |
1,112.46 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX2 |
128KB |
245,357.1 ns |
713.93 ns |
632.88 ns |
- |
| TryComputeHash · SHA3-224 · CryptoHives-AVX512F |
128KB |
251,644.1 ns |
355.56 ns |
332.59 ns |
- |
| TryComputeHash · SHA3-224 · BouncyCastle |
128KB |
278,583.9 ns |
1,059.15 ns |
884.44 ns |
- |
SHA3-256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA3-256 · CryptoHives-Scalar |
128B |
209.3 ns |
0.82 ns |
0.77 ns |
- |
| TryComputeHash · SHA3-256 · OS Native |
128B |
272.4 ns |
2.16 ns |
1.91 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX2 |
128B |
283.1 ns |
0.75 ns |
0.70 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX512F |
128B |
287.6 ns |
0.76 ns |
0.67 ns |
- |
| TryComputeHash · SHA3-256 · BouncyCastle |
128B |
333.5 ns |
2.17 ns |
1.93 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-256 · CryptoHives-Scalar |
137B |
404.0 ns |
2.40 ns |
2.25 ns |
- |
| TryComputeHash · SHA3-256 · OS Native |
137B |
504.0 ns |
4.60 ns |
4.30 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX2 |
137B |
547.2 ns |
1.65 ns |
1.38 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX512F |
137B |
566.9 ns |
1.95 ns |
1.52 ns |
- |
| TryComputeHash · SHA3-256 · BouncyCastle |
137B |
632.7 ns |
3.60 ns |
3.37 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-256 · CryptoHives-Scalar |
1KB |
1,587.3 ns |
7.36 ns |
6.15 ns |
- |
| TryComputeHash · SHA3-256 · OS Native |
1KB |
1,920.5 ns |
17.25 ns |
16.14 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX2 |
1KB |
2,163.6 ns |
5.12 ns |
4.28 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX512F |
1KB |
2,220.6 ns |
6.42 ns |
6.01 ns |
- |
| TryComputeHash · SHA3-256 · BouncyCastle |
1KB |
2,461.8 ns |
14.41 ns |
13.48 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-256 · CryptoHives-Scalar |
1025B |
1,586.1 ns |
7.93 ns |
7.03 ns |
- |
| TryComputeHash · SHA3-256 · OS Native |
1025B |
1,932.1 ns |
14.34 ns |
13.41 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX2 |
1025B |
2,163.0 ns |
5.92 ns |
5.53 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX512F |
1025B |
2,228.8 ns |
10.72 ns |
10.03 ns |
- |
| TryComputeHash · SHA3-256 · BouncyCastle |
1025B |
2,464.4 ns |
15.37 ns |
14.38 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-256 · CryptoHives-Scalar |
8KB |
12,066.3 ns |
62.73 ns |
52.39 ns |
- |
| TryComputeHash · SHA3-256 · OS Native |
8KB |
14,395.3 ns |
69.48 ns |
61.60 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX2 |
8KB |
16,481.3 ns |
55.37 ns |
51.79 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX512F |
8KB |
16,834.0 ns |
81.16 ns |
71.95 ns |
- |
| TryComputeHash · SHA3-256 · BouncyCastle |
8KB |
18,518.3 ns |
47.59 ns |
39.74 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-256 · CryptoHives-Scalar |
128KB |
189,859.5 ns |
1,430.20 ns |
1,194.28 ns |
- |
| TryComputeHash · SHA3-256 · OS Native |
128KB |
226,920.8 ns |
724.42 ns |
642.18 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX2 |
128KB |
259,405.8 ns |
1,073.17 ns |
951.34 ns |
- |
| TryComputeHash · SHA3-256 · CryptoHives-AVX512F |
128KB |
265,529.6 ns |
977.32 ns |
866.37 ns |
- |
| TryComputeHash · SHA3-256 · BouncyCastle |
128KB |
294,199.9 ns |
1,743.86 ns |
1,631.21 ns |
- |
SHA3-384
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA3-384 · CryptoHives-Scalar |
128B |
400.5 ns |
3.16 ns |
2.80 ns |
- |
| TryComputeHash · SHA3-384 · OS Native |
128B |
505.7 ns |
3.17 ns |
2.64 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX2 |
128B |
548.8 ns |
2.01 ns |
1.79 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX512F |
128B |
570.3 ns |
2.93 ns |
2.74 ns |
- |
| TryComputeHash · SHA3-384 · BouncyCastle |
128B |
627.3 ns |
2.18 ns |
1.93 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-384 · CryptoHives-Scalar |
137B |
400.7 ns |
2.61 ns |
2.44 ns |
- |
| TryComputeHash · SHA3-384 · OS Native |
137B |
507.9 ns |
3.87 ns |
3.43 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX2 |
137B |
549.3 ns |
1.82 ns |
1.61 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX512F |
137B |
573.4 ns |
2.58 ns |
2.41 ns |
- |
| TryComputeHash · SHA3-384 · BouncyCastle |
137B |
627.9 ns |
2.87 ns |
2.55 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-384 · CryptoHives-Scalar |
1KB |
1,965.3 ns |
12.23 ns |
10.84 ns |
- |
| TryComputeHash · SHA3-384 · OS Native |
1KB |
2,409.3 ns |
17.84 ns |
16.68 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX2 |
1KB |
2,692.5 ns |
5.22 ns |
4.63 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX512F |
1KB |
2,780.3 ns |
9.02 ns |
8.44 ns |
- |
| TryComputeHash · SHA3-384 · BouncyCastle |
1KB |
3,060.8 ns |
13.67 ns |
12.12 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-384 · CryptoHives-Scalar |
1025B |
1,966.1 ns |
13.83 ns |
12.93 ns |
- |
| TryComputeHash · SHA3-384 · OS Native |
1025B |
2,385.3 ns |
13.17 ns |
12.32 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX2 |
1025B |
2,694.5 ns |
6.65 ns |
5.89 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX512F |
1025B |
2,773.7 ns |
6.43 ns |
6.01 ns |
- |
| TryComputeHash · SHA3-384 · BouncyCastle |
1025B |
3,057.5 ns |
17.05 ns |
15.95 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-384 · CryptoHives-Scalar |
8KB |
15,455.6 ns |
88.04 ns |
78.04 ns |
- |
| TryComputeHash · SHA3-384 · OS Native |
8KB |
18,456.5 ns |
122.13 ns |
108.26 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX2 |
8KB |
21,104.2 ns |
35.65 ns |
29.77 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX512F |
8KB |
21,712.6 ns |
41.23 ns |
34.43 ns |
- |
| TryComputeHash · SHA3-384 · BouncyCastle |
8KB |
23,890.2 ns |
135.65 ns |
113.27 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-384 · CryptoHives-Scalar |
128KB |
246,663.2 ns |
1,369.74 ns |
1,143.80 ns |
- |
| TryComputeHash · SHA3-384 · OS Native |
128KB |
294,081.1 ns |
1,658.06 ns |
1,384.56 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX2 |
128KB |
337,639.6 ns |
386.10 ns |
342.27 ns |
- |
| TryComputeHash · SHA3-384 · CryptoHives-AVX512F |
128KB |
347,626.4 ns |
786.53 ns |
697.24 ns |
- |
| TryComputeHash · SHA3-384 · BouncyCastle |
128KB |
381,335.5 ns |
1,445.01 ns |
1,351.66 ns |
- |
SHA3-512
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA3-512 · CryptoHives-Scalar |
128B |
397.5 ns |
1.74 ns |
1.63 ns |
- |
| TryComputeHash · SHA3-512 · OS Native |
128B |
503.4 ns |
4.23 ns |
3.75 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX2 |
128B |
544.5 ns |
2.11 ns |
1.65 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX512F |
128B |
561.4 ns |
0.83 ns |
0.74 ns |
- |
| TryComputeHash · SHA3-512 · BouncyCastle |
128B |
628.4 ns |
3.32 ns |
3.10 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-512 · CryptoHives-Scalar |
137B |
397.5 ns |
1.86 ns |
1.65 ns |
- |
| TryComputeHash · SHA3-512 · OS Native |
137B |
503.7 ns |
3.34 ns |
2.78 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX2 |
137B |
543.4 ns |
1.65 ns |
1.55 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX512F |
137B |
563.0 ns |
1.97 ns |
1.84 ns |
- |
| TryComputeHash · SHA3-512 · BouncyCastle |
137B |
630.4 ns |
3.72 ns |
2.90 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-512 · CryptoHives-Scalar |
1KB |
2,930.4 ns |
19.11 ns |
16.94 ns |
- |
| TryComputeHash · SHA3-512 · OS Native |
1KB |
3,560.2 ns |
13.57 ns |
12.69 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX2 |
1KB |
4,005.6 ns |
7.96 ns |
7.44 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX512F |
1KB |
4,123.3 ns |
10.96 ns |
10.25 ns |
- |
| TryComputeHash · SHA3-512 · BouncyCastle |
1KB |
4,525.2 ns |
30.00 ns |
28.06 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-512 · CryptoHives-Scalar |
1025B |
3,011.3 ns |
58.95 ns |
60.54 ns |
- |
| TryComputeHash · SHA3-512 · OS Native |
1025B |
3,540.0 ns |
28.46 ns |
23.77 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX2 |
1025B |
4,009.7 ns |
7.87 ns |
7.36 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX512F |
1025B |
4,108.9 ns |
15.44 ns |
12.05 ns |
- |
| TryComputeHash · SHA3-512 · BouncyCastle |
1025B |
4,625.2 ns |
15.59 ns |
13.82 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-512 · CryptoHives-Scalar |
8KB |
22,688.6 ns |
117.75 ns |
104.39 ns |
- |
| TryComputeHash · SHA3-512 · OS Native |
8KB |
27,168.3 ns |
116.87 ns |
109.32 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX2 |
8KB |
30,874.1 ns |
553.56 ns |
568.47 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX512F |
8KB |
31,465.6 ns |
140.83 ns |
117.60 ns |
- |
| TryComputeHash · SHA3-512 · BouncyCastle |
8KB |
34,955.9 ns |
101.28 ns |
84.57 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA3-512 · CryptoHives-Scalar |
128KB |
361,595.1 ns |
1,332.76 ns |
1,181.46 ns |
- |
| TryComputeHash · SHA3-512 · OS Native |
128KB |
431,914.3 ns |
1,653.65 ns |
1,546.83 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX2 |
128KB |
488,040.2 ns |
1,170.30 ns |
1,094.70 ns |
- |
| TryComputeHash · SHA3-512 · CryptoHives-AVX512F |
128KB |
503,092.2 ns |
5,960.81 ns |
4,977.54 ns |
- |
| TryComputeHash · SHA3-512 · BouncyCastle |
128KB |
561,587.0 ns |
3,252.43 ns |
3,042.33 ns |
- |
Keccak Family
Keccak-256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Keccak-256 · CryptoHives-Scalar |
128B |
207.3 ns |
1.00 ns |
0.88 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX2 |
128B |
278.6 ns |
0.95 ns |
0.89 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX512F |
128B |
287.7 ns |
1.10 ns |
0.97 ns |
- |
| TryComputeHash · Keccak-256 · BouncyCastle |
128B |
330.7 ns |
1.15 ns |
0.96 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-256 · CryptoHives-Scalar |
137B |
404.1 ns |
1.75 ns |
1.64 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX2 |
137B |
547.3 ns |
1.67 ns |
1.39 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX512F |
137B |
568.8 ns |
1.17 ns |
1.10 ns |
- |
| TryComputeHash · Keccak-256 · BouncyCastle |
137B |
628.7 ns |
2.51 ns |
2.35 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-256 · CryptoHives-Scalar |
1KB |
1,588.9 ns |
8.10 ns |
7.58 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX2 |
1KB |
2,158.9 ns |
3.37 ns |
2.82 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX512F |
1KB |
2,220.1 ns |
5.94 ns |
5.27 ns |
- |
| TryComputeHash · Keccak-256 · BouncyCastle |
1KB |
2,466.2 ns |
16.58 ns |
15.51 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-256 · CryptoHives-Scalar |
1025B |
1,590.1 ns |
7.34 ns |
6.50 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX2 |
1025B |
2,159.4 ns |
6.35 ns |
5.94 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX512F |
1025B |
2,217.5 ns |
7.56 ns |
6.31 ns |
- |
| TryComputeHash · Keccak-256 · BouncyCastle |
1025B |
2,463.8 ns |
13.38 ns |
11.18 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-256 · CryptoHives-Scalar |
8KB |
12,088.7 ns |
80.06 ns |
74.89 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX2 |
8KB |
16,392.5 ns |
42.23 ns |
39.50 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX512F |
8KB |
16,825.6 ns |
41.71 ns |
39.02 ns |
- |
| TryComputeHash · Keccak-256 · BouncyCastle |
8KB |
18,612.4 ns |
91.00 ns |
85.12 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-256 · CryptoHives-Scalar |
128KB |
190,579.1 ns |
1,239.67 ns |
1,035.18 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX2 |
128KB |
259,048.9 ns |
601.92 ns |
563.03 ns |
- |
| TryComputeHash · Keccak-256 · CryptoHives-AVX512F |
128KB |
265,689.8 ns |
771.76 ns |
721.90 ns |
- |
| TryComputeHash · Keccak-256 · BouncyCastle |
128KB |
293,571.9 ns |
1,607.29 ns |
1,424.82 ns |
- |
Keccak-384
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Keccak-384 · CryptoHives-Scalar |
128B |
400.7 ns |
2.29 ns |
2.03 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX2 |
128B |
547.7 ns |
1.14 ns |
0.96 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX512F |
128B |
565.8 ns |
1.13 ns |
0.88 ns |
- |
| TryComputeHash · Keccak-384 · BouncyCastle |
128B |
627.7 ns |
3.96 ns |
3.71 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-384 · CryptoHives-Scalar |
137B |
400.0 ns |
1.08 ns |
0.84 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX2 |
137B |
549.2 ns |
1.54 ns |
1.36 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX512F |
137B |
563.6 ns |
2.29 ns |
2.14 ns |
- |
| TryComputeHash · Keccak-384 · BouncyCastle |
137B |
625.6 ns |
2.29 ns |
2.03 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-384 · CryptoHives-Scalar |
1KB |
1,966.6 ns |
10.57 ns |
9.88 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX2 |
1KB |
2,695.1 ns |
5.58 ns |
5.22 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX512F |
1KB |
2,760.5 ns |
7.78 ns |
6.90 ns |
- |
| TryComputeHash · Keccak-384 · BouncyCastle |
1KB |
3,045.1 ns |
14.42 ns |
13.49 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-384 · CryptoHives-Scalar |
1025B |
1,969.1 ns |
11.76 ns |
9.82 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX2 |
1025B |
2,694.6 ns |
5.51 ns |
4.89 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX512F |
1025B |
2,764.8 ns |
7.08 ns |
6.28 ns |
- |
| TryComputeHash · Keccak-384 · BouncyCastle |
1025B |
3,049.8 ns |
14.23 ns |
12.61 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-384 · CryptoHives-Scalar |
8KB |
15,463.0 ns |
62.33 ns |
52.05 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX2 |
8KB |
21,126.8 ns |
66.80 ns |
62.48 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX512F |
8KB |
21,779.2 ns |
49.21 ns |
46.03 ns |
- |
| TryComputeHash · Keccak-384 · BouncyCastle |
8KB |
24,081.4 ns |
366.22 ns |
342.56 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-384 · CryptoHives-Scalar |
128KB |
247,297.5 ns |
1,927.22 ns |
1,802.72 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX2 |
128KB |
337,419.3 ns |
845.70 ns |
791.07 ns |
- |
| TryComputeHash · Keccak-384 · CryptoHives-AVX512F |
128KB |
347,540.7 ns |
784.89 ns |
655.42 ns |
- |
| TryComputeHash · Keccak-384 · BouncyCastle |
128KB |
389,063.2 ns |
1,985.22 ns |
1,856.98 ns |
- |
Keccak-512
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Keccak-512 · CryptoHives-Scalar |
128B |
399.8 ns |
4.32 ns |
4.05 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX2 |
128B |
545.2 ns |
2.31 ns |
2.16 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX512F |
128B |
561.1 ns |
1.60 ns |
1.50 ns |
- |
| TryComputeHash · Keccak-512 · BouncyCastle |
128B |
625.8 ns |
3.32 ns |
3.10 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-512 · CryptoHives-Scalar |
137B |
398.1 ns |
2.33 ns |
2.06 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX2 |
137B |
544.5 ns |
2.18 ns |
1.93 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX512F |
137B |
563.0 ns |
2.05 ns |
1.92 ns |
- |
| TryComputeHash · Keccak-512 · BouncyCastle |
137B |
626.5 ns |
2.53 ns |
2.24 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-512 · CryptoHives-Scalar |
1KB |
2,938.9 ns |
19.36 ns |
18.11 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX2 |
1KB |
4,000.9 ns |
14.78 ns |
12.34 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX512F |
1KB |
4,121.2 ns |
10.57 ns |
9.37 ns |
- |
| TryComputeHash · Keccak-512 · BouncyCastle |
1KB |
4,524.9 ns |
21.00 ns |
18.62 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-512 · CryptoHives-Scalar |
1025B |
2,933.9 ns |
15.10 ns |
14.12 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX2 |
1025B |
4,011.6 ns |
14.13 ns |
12.53 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX512F |
1025B |
4,134.2 ns |
11.53 ns |
9.63 ns |
- |
| TryComputeHash · Keccak-512 · BouncyCastle |
1025B |
4,519.2 ns |
18.21 ns |
17.03 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-512 · CryptoHives-Scalar |
8KB |
22,180.5 ns |
150.53 ns |
125.70 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX2 |
8KB |
30,390.5 ns |
93.26 ns |
82.67 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX512F |
8KB |
31,171.7 ns |
96.00 ns |
89.80 ns |
- |
| TryComputeHash · Keccak-512 · BouncyCastle |
8KB |
34,416.4 ns |
196.80 ns |
174.46 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Keccak-512 · CryptoHives-Scalar |
128KB |
355,415.3 ns |
2,350.04 ns |
2,198.23 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX2 |
128KB |
484,546.4 ns |
949.76 ns |
841.93 ns |
- |
| TryComputeHash · Keccak-512 · CryptoHives-AVX512F |
128KB |
500,648.4 ns |
1,676.36 ns |
1,568.07 ns |
- |
| TryComputeHash · Keccak-512 · BouncyCastle |
128KB |
551,718.7 ns |
2,190.32 ns |
1,829.02 ns |
- |
SHAKE Family
SHAKE128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHAKE128 · CryptoHives-Scalar |
128B |
211.5 ns |
0.77 ns |
0.68 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX2 |
128B |
284.3 ns |
0.87 ns |
0.77 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX512F |
128B |
295.4 ns |
1.09 ns |
0.96 ns |
- |
| TryComputeHash · SHAKE128 · BouncyCastle |
128B |
334.7 ns |
2.04 ns |
1.90 ns |
- |
| TryComputeHash · SHAKE128 · OS Native |
128B |
372.0 ns |
2.15 ns |
1.90 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE128 · CryptoHives-Scalar |
137B |
212.5 ns |
0.83 ns |
0.74 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX2 |
137B |
283.9 ns |
0.78 ns |
0.73 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX512F |
137B |
294.8 ns |
0.60 ns |
0.57 ns |
- |
| TryComputeHash · SHAKE128 · BouncyCastle |
137B |
334.9 ns |
1.67 ns |
1.39 ns |
- |
| TryComputeHash · SHAKE128 · OS Native |
137B |
358.3 ns |
1.48 ns |
1.31 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE128 · CryptoHives-Scalar |
1KB |
1,409.0 ns |
8.41 ns |
7.46 ns |
- |
| TryComputeHash · SHAKE128 · OS Native |
1KB |
1,784.6 ns |
10.11 ns |
8.44 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX2 |
1KB |
1,911.5 ns |
4.55 ns |
4.26 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX512F |
1KB |
1,959.1 ns |
5.34 ns |
5.00 ns |
- |
| TryComputeHash · SHAKE128 · BouncyCastle |
1KB |
2,174.9 ns |
13.93 ns |
13.03 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE128 · CryptoHives-Scalar |
1025B |
1,412.8 ns |
12.84 ns |
11.38 ns |
- |
| TryComputeHash · SHAKE128 · OS Native |
1025B |
1,778.9 ns |
9.43 ns |
8.36 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX2 |
1025B |
1,911.1 ns |
7.77 ns |
6.88 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX512F |
1025B |
1,959.2 ns |
7.52 ns |
7.04 ns |
- |
| TryComputeHash · SHAKE128 · BouncyCastle |
1025B |
2,181.5 ns |
10.44 ns |
8.72 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE128 · CryptoHives-Scalar |
8KB |
9,781.8 ns |
74.87 ns |
62.52 ns |
- |
| TryComputeHash · SHAKE128 · OS Native |
8KB |
11,786.7 ns |
60.14 ns |
50.22 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX2 |
8KB |
13,256.4 ns |
34.45 ns |
30.54 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX512F |
8KB |
13,580.8 ns |
24.95 ns |
23.34 ns |
- |
| TryComputeHash · SHAKE128 · BouncyCastle |
8KB |
15,162.3 ns |
60.70 ns |
56.78 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE128 · CryptoHives-Scalar |
128KB |
155,749.8 ns |
653.10 ns |
578.96 ns |
- |
| TryComputeHash · SHAKE128 · OS Native |
128KB |
186,698.5 ns |
1,246.04 ns |
1,165.55 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX2 |
128KB |
211,225.6 ns |
346.73 ns |
289.53 ns |
- |
| TryComputeHash · SHAKE128 · CryptoHives-AVX512F |
128KB |
216,516.2 ns |
330.58 ns |
276.05 ns |
- |
| TryComputeHash · SHAKE128 · BouncyCastle |
128KB |
240,626.1 ns |
1,277.01 ns |
1,066.36 ns |
- |
SHAKE256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHAKE256 · CryptoHives-Scalar |
128B |
210.4 ns |
1.00 ns |
0.89 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX2 |
128B |
283.1 ns |
1.19 ns |
1.05 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX512F |
128B |
291.8 ns |
1.23 ns |
1.09 ns |
- |
| TryComputeHash · SHAKE256 · BouncyCastle |
128B |
334.8 ns |
1.40 ns |
1.24 ns |
- |
| TryComputeHash · SHAKE256 · OS Native |
128B |
358.7 ns |
1.65 ns |
1.54 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE256 · CryptoHives-Scalar |
137B |
414.0 ns |
1.82 ns |
1.61 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX2 |
137B |
552.0 ns |
1.66 ns |
1.39 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX512F |
137B |
574.9 ns |
1.67 ns |
1.48 ns |
- |
| TryComputeHash · SHAKE256 · OS Native |
137B |
593.8 ns |
2.00 ns |
1.77 ns |
- |
| TryComputeHash · SHAKE256 · BouncyCastle |
137B |
630.5 ns |
3.93 ns |
3.49 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE256 · CryptoHives-Scalar |
1KB |
1,594.5 ns |
8.95 ns |
7.48 ns |
- |
| TryComputeHash · SHAKE256 · OS Native |
1KB |
2,016.4 ns |
18.46 ns |
17.27 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX2 |
1KB |
2,162.6 ns |
5.45 ns |
4.83 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX512F |
1KB |
2,226.9 ns |
7.13 ns |
6.67 ns |
- |
| TryComputeHash · SHAKE256 · BouncyCastle |
1KB |
2,470.8 ns |
13.88 ns |
12.99 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE256 · CryptoHives-Scalar |
1025B |
1,594.0 ns |
3.29 ns |
2.57 ns |
- |
| TryComputeHash · SHAKE256 · OS Native |
1025B |
2,011.9 ns |
16.41 ns |
14.54 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX2 |
1025B |
2,166.6 ns |
7.58 ns |
7.09 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX512F |
1025B |
2,234.1 ns |
7.33 ns |
6.86 ns |
- |
| TryComputeHash · SHAKE256 · BouncyCastle |
1025B |
2,477.7 ns |
17.32 ns |
16.20 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE256 · CryptoHives-Scalar |
8KB |
12,088.1 ns |
63.53 ns |
53.05 ns |
- |
| TryComputeHash · SHAKE256 · OS Native |
8KB |
14,568.9 ns |
125.42 ns |
104.73 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX2 |
8KB |
16,425.4 ns |
46.99 ns |
36.69 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX512F |
8KB |
16,857.3 ns |
62.00 ns |
58.00 ns |
- |
| TryComputeHash · SHAKE256 · BouncyCastle |
8KB |
18,701.8 ns |
124.88 ns |
116.81 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHAKE256 · CryptoHives-Scalar |
128KB |
190,905.8 ns |
1,249.47 ns |
1,168.75 ns |
- |
| TryComputeHash · SHAKE256 · OS Native |
128KB |
228,440.6 ns |
1,289.09 ns |
1,205.82 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX2 |
128KB |
259,720.4 ns |
1,149.17 ns |
1,074.94 ns |
- |
| TryComputeHash · SHAKE256 · CryptoHives-AVX512F |
128KB |
266,703.3 ns |
703.89 ns |
658.42 ns |
- |
| TryComputeHash · SHAKE256 · BouncyCastle |
128KB |
294,674.4 ns |
1,641.42 ns |
1,535.38 ns |
- |
cSHAKE Family
cSHAKE128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · cSHAKE128 · CryptoHives-Scalar |
128B |
211.6 ns |
1.47 ns |
1.31 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX2 |
128B |
283.3 ns |
0.67 ns |
0.63 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX512F |
128B |
294.2 ns |
1.13 ns |
1.06 ns |
- |
| TryComputeHash · cSHAKE128 · BouncyCastle |
128B |
335.8 ns |
1.91 ns |
1.60 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE128 · CryptoHives-Scalar |
137B |
211.3 ns |
1.88 ns |
1.57 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX2 |
137B |
283.1 ns |
0.27 ns |
0.24 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX512F |
137B |
294.4 ns |
0.86 ns |
0.81 ns |
- |
| TryComputeHash · cSHAKE128 · BouncyCastle |
137B |
336.2 ns |
1.75 ns |
1.46 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE128 · CryptoHives-Scalar |
1KB |
1,409.3 ns |
7.17 ns |
6.71 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX2 |
1KB |
1,904.3 ns |
3.85 ns |
3.21 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX512F |
1KB |
1,955.7 ns |
6.22 ns |
5.20 ns |
- |
| TryComputeHash · cSHAKE128 · BouncyCastle |
1KB |
2,186.8 ns |
12.46 ns |
11.66 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE128 · CryptoHives-Scalar |
1025B |
1,405.4 ns |
5.10 ns |
4.26 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX2 |
1025B |
1,906.6 ns |
5.31 ns |
4.44 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX512F |
1025B |
1,957.2 ns |
9.93 ns |
9.29 ns |
- |
| TryComputeHash · cSHAKE128 · BouncyCastle |
1025B |
2,178.2 ns |
8.29 ns |
6.92 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE128 · CryptoHives-Scalar |
8KB |
9,778.7 ns |
48.74 ns |
43.20 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX2 |
8KB |
13,249.0 ns |
24.35 ns |
21.59 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX512F |
8KB |
13,579.4 ns |
21.48 ns |
20.09 ns |
- |
| TryComputeHash · cSHAKE128 · BouncyCastle |
8KB |
15,101.7 ns |
48.35 ns |
37.75 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE128 · CryptoHives-Scalar |
128KB |
156,207.9 ns |
1,016.70 ns |
848.99 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX2 |
128KB |
210,981.7 ns |
334.86 ns |
313.22 ns |
- |
| TryComputeHash · cSHAKE128 · CryptoHives-AVX512F |
128KB |
216,154.9 ns |
389.36 ns |
345.16 ns |
- |
| TryComputeHash · cSHAKE128 · BouncyCastle |
128KB |
239,817.8 ns |
1,081.52 ns |
1,011.66 ns |
- |
cSHAKE256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · cSHAKE256 · CryptoHives-Scalar |
128B |
210.6 ns |
1.84 ns |
1.72 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX2 |
128B |
282.2 ns |
0.66 ns |
0.61 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX512F |
128B |
293.1 ns |
2.26 ns |
1.89 ns |
- |
| TryComputeHash · cSHAKE256 · BouncyCastle |
128B |
334.1 ns |
1.90 ns |
1.68 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE256 · CryptoHives-Scalar |
137B |
407.2 ns |
1.97 ns |
1.75 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX2 |
137B |
551.6 ns |
1.37 ns |
1.29 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX512F |
137B |
574.2 ns |
2.45 ns |
2.29 ns |
- |
| TryComputeHash · cSHAKE256 · BouncyCastle |
137B |
631.3 ns |
2.01 ns |
1.78 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE256 · CryptoHives-Scalar |
1KB |
1,591.7 ns |
7.99 ns |
7.09 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX2 |
1KB |
2,163.6 ns |
9.04 ns |
8.46 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX512F |
1KB |
2,227.5 ns |
7.80 ns |
7.30 ns |
- |
| TryComputeHash · cSHAKE256 · BouncyCastle |
1KB |
2,473.7 ns |
11.22 ns |
10.49 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE256 · CryptoHives-Scalar |
1025B |
1,592.1 ns |
9.00 ns |
8.42 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX2 |
1025B |
2,163.4 ns |
8.64 ns |
7.66 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX512F |
1025B |
2,228.8 ns |
5.32 ns |
4.71 ns |
- |
| TryComputeHash · cSHAKE256 · BouncyCastle |
1025B |
2,470.1 ns |
14.35 ns |
12.72 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE256 · CryptoHives-Scalar |
8KB |
12,087.1 ns |
54.27 ns |
50.76 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX2 |
8KB |
16,412.3 ns |
65.03 ns |
60.83 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX512F |
8KB |
16,836.6 ns |
57.92 ns |
54.18 ns |
- |
| TryComputeHash · cSHAKE256 · BouncyCastle |
8KB |
18,640.7 ns |
68.80 ns |
60.99 ns |
- |
|
|
|
|
|
|
| TryComputeHash · cSHAKE256 · CryptoHives-Scalar |
128KB |
190,313.7 ns |
674.97 ns |
631.37 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX2 |
128KB |
259,853.9 ns |
1,113.65 ns |
1,041.71 ns |
- |
| TryComputeHash · cSHAKE256 · CryptoHives-AVX512F |
128KB |
266,000.8 ns |
1,088.10 ns |
1,017.81 ns |
- |
| TryComputeHash · cSHAKE256 · BouncyCastle |
128KB |
292,749.3 ns |
1,572.09 ns |
1,393.61 ns |
- |
KangarooTwelve Family
KT128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · KT128 · CryptoHives-Scalar |
128B |
129.6 ns |
0.41 ns |
0.34 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX2 |
128B |
160.6 ns |
0.30 ns |
0.28 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX512F |
128B |
167.7 ns |
0.59 ns |
0.53 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT128 · CryptoHives-Scalar |
137B |
127.0 ns |
0.82 ns |
0.73 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX2 |
137B |
160.2 ns |
0.51 ns |
0.48 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX512F |
137B |
169.0 ns |
0.44 ns |
0.39 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT128 · CryptoHives-Scalar |
1KB |
775.6 ns |
3.09 ns |
2.89 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX2 |
1KB |
1,014.0 ns |
4.93 ns |
4.62 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX512F |
1KB |
1,044.0 ns |
3.81 ns |
3.56 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT128 · CryptoHives-Scalar |
1025B |
775.7 ns |
2.80 ns |
2.48 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX2 |
1025B |
1,016.2 ns |
3.04 ns |
2.70 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX512F |
1025B |
1,046.8 ns |
2.45 ns |
2.18 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT128 · CryptoHives-Scalar |
8KB |
5,731.0 ns |
36.43 ns |
30.42 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX2 |
8KB |
7,471.6 ns |
11.61 ns |
10.86 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX512F |
8KB |
7,680.2 ns |
11.71 ns |
10.38 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT128 · CryptoHives-Scalar |
128KB |
88,219.0 ns |
558.99 ns |
522.88 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX2 |
128KB |
115,185.2 ns |
283.92 ns |
237.09 ns |
- |
| TryComputeHash · KT128 · CryptoHives-AVX512F |
128KB |
118,251.8 ns |
312.34 ns |
276.88 ns |
- |
KT256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · KT256 · CryptoHives-Scalar |
128B |
125.5 ns |
0.58 ns |
0.52 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX2 |
128B |
162.6 ns |
0.43 ns |
0.38 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX512F |
128B |
170.5 ns |
0.56 ns |
0.47 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT256 · CryptoHives-Scalar |
137B |
232.0 ns |
1.30 ns |
1.22 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX2 |
137B |
303.9 ns |
0.96 ns |
0.85 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX512F |
137B |
315.2 ns |
0.50 ns |
0.44 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT256 · CryptoHives-Scalar |
1KB |
871.2 ns |
4.91 ns |
4.59 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX2 |
1KB |
1,146.3 ns |
3.38 ns |
2.99 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX512F |
1KB |
1,182.6 ns |
3.84 ns |
3.41 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT256 · CryptoHives-Scalar |
1025B |
871.7 ns |
4.74 ns |
4.20 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX2 |
1025B |
1,147.2 ns |
5.51 ns |
5.15 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX512F |
1025B |
1,186.0 ns |
3.56 ns |
3.15 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT256 · CryptoHives-Scalar |
8KB |
6,826.9 ns |
27.66 ns |
25.87 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX2 |
8KB |
8,918.5 ns |
23.60 ns |
22.08 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX512F |
8KB |
9,238.1 ns |
21.63 ns |
18.06 ns |
- |
|
|
|
|
|
|
| TryComputeHash · KT256 · CryptoHives-Scalar |
128KB |
108,019.6 ns |
533.94 ns |
499.45 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX2 |
128KB |
141,199.3 ns |
443.54 ns |
393.19 ns |
- |
| TryComputeHash · KT256 · CryptoHives-AVX512F |
128KB |
145,618.3 ns |
330.90 ns |
293.33 ns |
- |
TurboSHAKE Family
TurboSHAKE128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-Scalar |
128B |
119.1 ns |
0.72 ns |
0.63 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX2 |
128B |
154.8 ns |
0.44 ns |
0.39 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX512F |
128B |
163.1 ns |
0.45 ns |
0.37 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-Scalar |
137B |
119.4 ns |
0.89 ns |
0.83 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX2 |
137B |
154.4 ns |
0.69 ns |
0.61 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX512F |
137B |
163.2 ns |
0.46 ns |
0.41 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-Scalar |
1KB |
762.8 ns |
5.62 ns |
4.98 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX2 |
1KB |
1,000.7 ns |
4.06 ns |
3.60 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX512F |
1KB |
1,038.3 ns |
3.47 ns |
2.90 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-Scalar |
1025B |
763.5 ns |
3.03 ns |
2.83 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX2 |
1025B |
1,002.0 ns |
5.25 ns |
4.38 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX512F |
1025B |
1,033.4 ns |
2.88 ns |
2.55 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-Scalar |
8KB |
5,289.0 ns |
29.19 ns |
27.30 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX2 |
8KB |
6,923.6 ns |
8.63 ns |
7.65 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX512F |
8KB |
7,105.6 ns |
15.76 ns |
13.97 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-Scalar |
128KB |
84,106.8 ns |
750.98 ns |
627.10 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX2 |
128KB |
110,095.9 ns |
203.00 ns |
189.88 ns |
- |
| TryComputeHash · TurboSHAKE128-32 · CryptoHives-AVX512F |
128KB |
112,980.3 ns |
293.98 ns |
274.99 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-Scalar |
128B |
119.9 ns |
0.84 ns |
0.70 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX2 |
128B |
155.3 ns |
0.27 ns |
0.25 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX512F |
128B |
164.3 ns |
0.47 ns |
0.44 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-Scalar |
137B |
120.6 ns |
0.93 ns |
0.87 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX2 |
137B |
155.9 ns |
0.65 ns |
0.54 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX512F |
137B |
162.8 ns |
0.51 ns |
0.43 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-Scalar |
1KB |
764.3 ns |
3.38 ns |
3.16 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX2 |
1KB |
1,016.8 ns |
2.50 ns |
2.34 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX512F |
1KB |
1,034.5 ns |
2.38 ns |
2.23 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-Scalar |
1025B |
768.2 ns |
8.98 ns |
7.50 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX2 |
1025B |
1,000.6 ns |
1.28 ns |
1.07 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX512F |
1025B |
1,034.6 ns |
2.25 ns |
2.11 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-Scalar |
8KB |
5,291.0 ns |
27.63 ns |
24.50 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX2 |
8KB |
6,940.7 ns |
18.42 ns |
15.38 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX512F |
8KB |
7,114.8 ns |
12.38 ns |
11.58 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-Scalar |
128KB |
84,065.2 ns |
286.24 ns |
267.75 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX2 |
128KB |
110,253.2 ns |
224.19 ns |
198.74 ns |
- |
| TryComputeHash · TurboSHAKE128-64 · CryptoHives-AVX512F |
128KB |
113,255.5 ns |
167.26 ns |
148.27 ns |
- |
TurboSHAKE256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · TurboSHAKE256 · CryptoHives-Scalar |
128B |
118.2 ns |
0.39 ns |
0.34 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX2 |
128B |
152.5 ns |
0.33 ns |
0.31 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX512F |
128B |
160.4 ns |
0.49 ns |
0.41 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE256 · CryptoHives-Scalar |
137B |
224.6 ns |
1.05 ns |
0.98 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX2 |
137B |
292.4 ns |
0.70 ns |
0.65 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX512F |
137B |
310.8 ns |
0.77 ns |
0.65 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE256 · CryptoHives-Scalar |
1KB |
861.5 ns |
3.24 ns |
3.03 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX2 |
1KB |
1,126.8 ns |
1.84 ns |
1.53 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX512F |
1KB |
1,173.7 ns |
3.68 ns |
3.44 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE256 · CryptoHives-Scalar |
1025B |
860.2 ns |
2.05 ns |
1.82 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX2 |
1025B |
1,128.6 ns |
2.92 ns |
2.44 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX512F |
1025B |
1,176.5 ns |
3.41 ns |
3.02 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE256 · CryptoHives-Scalar |
8KB |
6,501.0 ns |
31.46 ns |
29.43 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX2 |
8KB |
8,505.7 ns |
24.96 ns |
23.34 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX512F |
8KB |
8,812.6 ns |
16.56 ns |
14.68 ns |
- |
|
|
|
|
|
|
| TryComputeHash · TurboSHAKE256 · CryptoHives-Scalar |
128KB |
102,407.1 ns |
362.07 ns |
302.35 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX2 |
128KB |
134,221.3 ns |
386.34 ns |
342.48 ns |
- |
| TryComputeHash · TurboSHAKE256 · CryptoHives-AVX512F |
128KB |
139,002.7 ns |
356.00 ns |
315.59 ns |
- |
BLAKE2 Family
CryptoHives leads the BLAKE2b benchmarks on x86. The AVX2 path is ~10–15% faster than BouncyCastle across all payload sizes — 84 ns vs 98 ns at 128 B and 79 μs vs 89 μs at 128 KiB. Blake2Fast (a dedicated fast BLAKE2 library) is competitive with CryptoHives-AVX2 and BouncyCastle. For BLAKE2s, the SIMD implementation is on parity with BouncyCastle. The scalar fallback is ~1.5–1.6× slower than the SIMD paths.
Key observations:
- CryptoHives AVX2: Fastest overall — ~10–15% faster than BouncyCastle and
Blake2Fast for BLAKE2b
- BouncyCastle: Competitive but slower than AVX2 at all sizes; zero allocation for BLAKE2b at sizes ≤8 KiB
- Managed scalar: Fallback for non-SIMD platforms; ~1.5× slower than AVX2; zero allocation
- Konscious: Slowest option, allocates heavily (~130 KB per 128 KiB hash call)
BLAKE2b-256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · BLAKE2b-256 · CryptoHives-AVX2 |
128B |
84.13 ns |
0.231 ns |
0.216 ns |
- |
| TryComputeHash · BLAKE2b-256 · Blake2Fast |
128B |
95.14 ns |
0.235 ns |
0.220 ns |
- |
| TryComputeHash · BLAKE2b-256 · BouncyCastle |
128B |
98.38 ns |
0.237 ns |
0.222 ns |
- |
| TryComputeHash · BLAKE2b-256 · CryptoHives-Scalar |
128B |
125.63 ns |
0.368 ns |
0.326 ns |
- |
| TryComputeHash · BLAKE2b-256 · Konscious |
128B |
477.98 ns |
2.509 ns |
2.095 ns |
1120 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-256 · CryptoHives-AVX2 |
137B |
167.69 ns |
0.887 ns |
0.786 ns |
- |
| TryComputeHash · BLAKE2b-256 · Blake2Fast |
137B |
176.19 ns |
0.513 ns |
0.480 ns |
- |
| TryComputeHash · BLAKE2b-256 · BouncyCastle |
137B |
187.81 ns |
0.925 ns |
0.865 ns |
- |
| TryComputeHash · BLAKE2b-256 · CryptoHives-Scalar |
137B |
250.36 ns |
0.820 ns |
0.640 ns |
- |
| TryComputeHash · BLAKE2b-256 · Konscious |
137B |
893.34 ns |
2.880 ns |
2.694 ns |
1136 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-256 · CryptoHives-AVX2 |
1KB |
624.09 ns |
1.834 ns |
1.531 ns |
- |
| TryComputeHash · BLAKE2b-256 · Blake2Fast |
1KB |
648.11 ns |
1.603 ns |
1.421 ns |
- |
| TryComputeHash · BLAKE2b-256 · BouncyCastle |
1KB |
711.96 ns |
1.558 ns |
1.458 ns |
- |
| TryComputeHash · BLAKE2b-256 · CryptoHives-Scalar |
1KB |
974.45 ns |
1.498 ns |
1.328 ns |
- |
| TryComputeHash · BLAKE2b-256 · Konscious |
1KB |
3,001.37 ns |
12.792 ns |
11.966 ns |
2016 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-256 · CryptoHives-AVX2 |
1025B |
705.76 ns |
1.482 ns |
1.386 ns |
- |
| TryComputeHash · BLAKE2b-256 · Blake2Fast |
1025B |
725.73 ns |
2.113 ns |
1.764 ns |
- |
| TryComputeHash · BLAKE2b-256 · BouncyCastle |
1025B |
792.97 ns |
1.867 ns |
1.746 ns |
- |
| TryComputeHash · BLAKE2b-256 · CryptoHives-Scalar |
1025B |
1,099.43 ns |
5.725 ns |
5.075 ns |
- |
| TryComputeHash · BLAKE2b-256 · Konscious |
1025B |
3,418.95 ns |
13.789 ns |
12.898 ns |
2024 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-256 · CryptoHives-AVX2 |
8KB |
4,951.41 ns |
12.769 ns |
11.945 ns |
- |
| TryComputeHash · BLAKE2b-256 · Blake2Fast |
8KB |
5,045.12 ns |
14.065 ns |
12.468 ns |
- |
| TryComputeHash · BLAKE2b-256 · BouncyCastle |
8KB |
5,566.68 ns |
13.028 ns |
12.186 ns |
- |
| TryComputeHash · BLAKE2b-256 · CryptoHives-Scalar |
8KB |
7,761.69 ns |
17.765 ns |
15.748 ns |
- |
| TryComputeHash · BLAKE2b-256 · Konscious |
8KB |
23,117.83 ns |
77.921 ns |
72.887 ns |
9184 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-256 · CryptoHives-AVX2 |
128KB |
79,256.51 ns |
237.781 ns |
210.787 ns |
- |
| TryComputeHash · BLAKE2b-256 · Blake2Fast |
128KB |
80,655.84 ns |
470.832 ns |
417.381 ns |
- |
| TryComputeHash · BLAKE2b-256 · BouncyCastle |
128KB |
88,701.72 ns |
98.943 ns |
87.711 ns |
- |
| TryComputeHash · BLAKE2b-256 · CryptoHives-Scalar |
128KB |
122,577.99 ns |
358.781 ns |
318.050 ns |
- |
| TryComputeHash · BLAKE2b-256 · Konscious |
128KB |
393,151.26 ns |
1,067.332 ns |
998.383 ns |
132078 B |
BLAKE2b-512
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · BLAKE2b-512 · CryptoHives-AVX2 |
128B |
83.55 ns |
0.246 ns |
0.205 ns |
- |
| TryComputeHash · BLAKE2b-512 · Blake2Fast |
128B |
96.08 ns |
0.258 ns |
0.229 ns |
- |
| TryComputeHash · BLAKE2b-512 · BouncyCastle |
128B |
102.50 ns |
0.277 ns |
0.259 ns |
- |
| TryComputeHash · BLAKE2b-512 · CryptoHives-Scalar |
128B |
127.03 ns |
0.332 ns |
0.278 ns |
- |
| TryComputeHash · BLAKE2b-512 · Konscious |
128B |
500.22 ns |
1.819 ns |
1.613 ns |
1216 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-512 · CryptoHives-AVX2 |
137B |
168.30 ns |
0.420 ns |
0.393 ns |
- |
| TryComputeHash · BLAKE2b-512 · Blake2Fast |
137B |
176.58 ns |
0.364 ns |
0.304 ns |
- |
| TryComputeHash · BLAKE2b-512 · BouncyCastle |
137B |
188.88 ns |
1.610 ns |
1.506 ns |
- |
| TryComputeHash · BLAKE2b-512 · CryptoHives-Scalar |
137B |
250.73 ns |
1.781 ns |
1.487 ns |
- |
| TryComputeHash · BLAKE2b-512 · Konscious |
137B |
910.21 ns |
2.522 ns |
2.106 ns |
1232 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-512 · CryptoHives-AVX2 |
1KB |
623.14 ns |
1.473 ns |
1.378 ns |
- |
| TryComputeHash · BLAKE2b-512 · Blake2Fast |
1KB |
648.10 ns |
1.258 ns |
1.050 ns |
- |
| TryComputeHash · BLAKE2b-512 · BouncyCastle |
1KB |
713.05 ns |
1.679 ns |
1.571 ns |
- |
| TryComputeHash · BLAKE2b-512 · CryptoHives-Scalar |
1KB |
975.43 ns |
2.749 ns |
2.571 ns |
- |
| TryComputeHash · BLAKE2b-512 · Konscious |
1KB |
3,039.86 ns |
18.663 ns |
16.544 ns |
2112 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-512 · CryptoHives-AVX2 |
1025B |
709.10 ns |
1.395 ns |
1.305 ns |
- |
| TryComputeHash · BLAKE2b-512 · Blake2Fast |
1025B |
726.74 ns |
1.937 ns |
1.811 ns |
- |
| TryComputeHash · BLAKE2b-512 · BouncyCastle |
1025B |
803.67 ns |
1.483 ns |
1.388 ns |
- |
| TryComputeHash · BLAKE2b-512 · CryptoHives-Scalar |
1025B |
1,100.42 ns |
4.588 ns |
4.292 ns |
- |
| TryComputeHash · BLAKE2b-512 · Konscious |
1025B |
3,450.92 ns |
16.711 ns |
15.631 ns |
2120 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-512 · CryptoHives-AVX2 |
8KB |
4,960.94 ns |
8.272 ns |
6.908 ns |
- |
| TryComputeHash · BLAKE2b-512 · Blake2Fast |
8KB |
5,043.40 ns |
12.442 ns |
11.030 ns |
- |
| TryComputeHash · BLAKE2b-512 · BouncyCastle |
8KB |
5,560.84 ns |
15.159 ns |
13.438 ns |
- |
| TryComputeHash · BLAKE2b-512 · CryptoHives-Scalar |
8KB |
7,774.46 ns |
28.585 ns |
26.739 ns |
- |
| TryComputeHash · BLAKE2b-512 · Konscious |
8KB |
23,108.56 ns |
64.988 ns |
57.610 ns |
9280 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE2b-512 · CryptoHives-AVX2 |
128KB |
79,307.44 ns |
148.809 ns |
139.196 ns |
- |
| TryComputeHash · BLAKE2b-512 · Blake2Fast |
128KB |
80,579.10 ns |
231.713 ns |
205.408 ns |
- |
| TryComputeHash · BLAKE2b-512 · BouncyCastle |
128KB |
88,814.68 ns |
211.523 ns |
197.859 ns |
- |
| TryComputeHash · BLAKE2b-512 · CryptoHives-Scalar |
128KB |
124,896.52 ns |
354.125 ns |
313.923 ns |
- |
| TryComputeHash · BLAKE2b-512 · Konscious |
128KB |
393,971.05 ns |
1,732.514 ns |
1,535.829 ns |
132174 B |
BLAKE2s-128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · BLAKE2s-128 · Blake2Fast |
128B |
154.2 ns |
0.35 ns |
0.31 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-AVX2 |
128B |
154.3 ns |
0.30 ns |
0.26 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Ssse3 |
128B |
154.5 ns |
0.26 ns |
0.25 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Scalar |
128B |
156.3 ns |
1.14 ns |
1.01 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Sse2 |
128B |
157.9 ns |
0.20 ns |
0.19 ns |
- |
| TryComputeHash · BLAKE2s-128 · BouncyCastle |
128B |
158.3 ns |
0.79 ns |
0.74 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-128 · Blake2Fast |
137B |
226.7 ns |
0.39 ns |
0.34 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-AVX2 |
137B |
232.5 ns |
0.50 ns |
0.44 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Scalar |
137B |
232.7 ns |
2.02 ns |
1.79 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Ssse3 |
137B |
234.8 ns |
0.26 ns |
0.23 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Sse2 |
137B |
240.9 ns |
0.29 ns |
0.27 ns |
- |
| TryComputeHash · BLAKE2s-128 · BouncyCastle |
137B |
243.3 ns |
0.57 ns |
0.50 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-128 · Blake2Fast |
1KB |
1,140.3 ns |
2.48 ns |
2.32 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Scalar |
1KB |
1,198.9 ns |
3.96 ns |
3.71 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-AVX2 |
1KB |
1,204.9 ns |
3.53 ns |
2.94 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Ssse3 |
1KB |
1,217.5 ns |
1.85 ns |
1.64 ns |
- |
| TryComputeHash · BLAKE2s-128 · BouncyCastle |
1KB |
1,232.8 ns |
2.11 ns |
1.76 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Sse2 |
1KB |
1,238.4 ns |
1.74 ns |
1.63 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-128 · Blake2Fast |
1025B |
1,209.7 ns |
4.48 ns |
4.19 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Scalar |
1025B |
1,270.8 ns |
2.65 ns |
2.35 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-AVX2 |
1025B |
1,285.5 ns |
6.16 ns |
5.76 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Ssse3 |
1025B |
1,298.5 ns |
2.02 ns |
1.89 ns |
- |
| TryComputeHash · BLAKE2s-128 · BouncyCastle |
1025B |
1,304.3 ns |
3.94 ns |
3.68 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Sse2 |
1025B |
1,322.8 ns |
2.30 ns |
2.15 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-128 · Blake2Fast |
8KB |
8,997.8 ns |
34.02 ns |
28.41 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Scalar |
8KB |
9,545.7 ns |
41.42 ns |
36.72 ns |
- |
| TryComputeHash · BLAKE2s-128 · BouncyCastle |
8KB |
9,625.6 ns |
26.36 ns |
24.66 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-AVX2 |
8KB |
9,664.6 ns |
41.97 ns |
39.26 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Ssse3 |
8KB |
9,723.9 ns |
30.40 ns |
26.95 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Sse2 |
8KB |
9,906.8 ns |
11.56 ns |
10.81 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-128 · Blake2Fast |
128KB |
143,963.1 ns |
504.80 ns |
421.53 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Scalar |
128KB |
151,036.0 ns |
877.52 ns |
777.90 ns |
- |
| TryComputeHash · BLAKE2s-128 · BouncyCastle |
128KB |
153,887.3 ns |
325.87 ns |
272.12 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-AVX2 |
128KB |
154,442.2 ns |
637.63 ns |
532.45 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Ssse3 |
128KB |
155,460.5 ns |
235.08 ns |
219.90 ns |
- |
| TryComputeHash · BLAKE2s-128 · CryptoHives-Sse2 |
128KB |
158,448.0 ns |
186.15 ns |
174.12 ns |
- |
BLAKE2s-256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · BLAKE2s-256 · CryptoHives-AVX2 |
128B |
154.5 ns |
0.70 ns |
0.62 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Scalar |
128B |
154.7 ns |
0.36 ns |
0.30 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Ssse3 |
128B |
154.9 ns |
0.17 ns |
0.15 ns |
- |
| TryComputeHash · BLAKE2s-256 · Blake2Fast |
128B |
157.6 ns |
0.35 ns |
0.31 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Sse2 |
128B |
159.9 ns |
0.22 ns |
0.20 ns |
- |
| TryComputeHash · BLAKE2s-256 · BouncyCastle |
128B |
161.6 ns |
0.51 ns |
0.48 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-256 · CryptoHives-AVX2 |
137B |
233.4 ns |
0.84 ns |
0.79 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Scalar |
137B |
234.0 ns |
0.79 ns |
0.70 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Ssse3 |
137B |
234.8 ns |
0.14 ns |
0.13 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Sse2 |
137B |
240.3 ns |
0.32 ns |
0.30 ns |
- |
| TryComputeHash · BLAKE2s-256 · BouncyCastle |
137B |
245.1 ns |
1.31 ns |
1.23 ns |
- |
| TryComputeHash · BLAKE2s-256 · Blake2Fast |
137B |
250.8 ns |
0.58 ns |
0.54 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-256 · Blake2Fast |
1KB |
1,141.2 ns |
3.56 ns |
3.15 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Scalar |
1KB |
1,191.5 ns |
12.54 ns |
11.12 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-AVX2 |
1KB |
1,207.3 ns |
6.18 ns |
5.48 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Ssse3 |
1KB |
1,219.7 ns |
1.76 ns |
1.65 ns |
- |
| TryComputeHash · BLAKE2s-256 · BouncyCastle |
1KB |
1,233.9 ns |
3.43 ns |
2.86 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Sse2 |
1KB |
1,238.4 ns |
1.25 ns |
1.04 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-256 · Blake2Fast |
1025B |
1,210.1 ns |
3.16 ns |
2.80 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Scalar |
1025B |
1,274.9 ns |
5.81 ns |
5.15 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-AVX2 |
1025B |
1,291.2 ns |
5.66 ns |
5.29 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Ssse3 |
1025B |
1,297.6 ns |
2.69 ns |
2.51 ns |
- |
| TryComputeHash · BLAKE2s-256 · BouncyCastle |
1025B |
1,309.2 ns |
3.40 ns |
3.01 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Sse2 |
1025B |
1,320.1 ns |
1.97 ns |
1.84 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-256 · Blake2Fast |
8KB |
9,009.9 ns |
24.42 ns |
21.64 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Scalar |
8KB |
9,438.0 ns |
31.32 ns |
26.15 ns |
- |
| TryComputeHash · BLAKE2s-256 · BouncyCastle |
8KB |
9,632.5 ns |
30.54 ns |
28.57 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-AVX2 |
8KB |
9,648.3 ns |
41.08 ns |
38.42 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Ssse3 |
8KB |
9,714.1 ns |
24.31 ns |
22.74 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Sse2 |
8KB |
9,899.8 ns |
9.15 ns |
7.14 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE2s-256 · Blake2Fast |
128KB |
143,803.8 ns |
337.48 ns |
281.81 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Scalar |
128KB |
151,225.6 ns |
585.27 ns |
547.46 ns |
- |
| TryComputeHash · BLAKE2s-256 · BouncyCastle |
128KB |
153,660.5 ns |
440.59 ns |
412.13 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-AVX2 |
128KB |
154,723.6 ns |
1,340.80 ns |
1,188.59 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Ssse3 |
128KB |
154,973.5 ns |
268.47 ns |
251.13 ns |
- |
| TryComputeHash · BLAKE2s-256 · CryptoHives-Sse2 |
128KB |
158,363.6 ns |
389.87 ns |
364.69 ns |
- |
BLAKE3
BLAKE3 is a modern hash function designed for extreme parallelism and speed. It can leverage tree hashing to process multiple chunks simultaneously, making it ideal for hashing large files. The Native (Rust) variant uses blake3-dotnet, which wraps the official Rust implementation via P/Invoke—this is the fastest option and recommended when native dependencies are acceptable.
The managed CryptoHives implementation uses SSSE3 SIMD instructions with optimized state management. At small inputs (128 B–1 KB), the SSSE3 path is ~1.4× slower than the native Rust implementation and ~8–9× faster than BouncyCastle (154 ns vs 1,281 ns at 128 B). At large inputs (128 KB), the gap widens to ~12× between native and BouncyCastle because the native implementation parallelizes chunk compression across SIMD lanes (AVX2/AVX-512 hash_many), while the managed version processes chunks sequentially. The SSSE3 path remains ~8× faster than BouncyCastle at 128 KB (166 μs vs 1,370 μs).
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · BLAKE3 · Blake3Native |
128B |
99.67 ns |
1.253 ns |
1.172 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Ssse3 |
128B |
153.56 ns |
0.642 ns |
0.601 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Scalar |
128B |
593.99 ns |
1.881 ns |
1.760 ns |
- |
| TryComputeHash · BLAKE3 · BouncyCastle |
128B |
1,280.53 ns |
2.208 ns |
1.957 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE3 · Blake3Native |
137B |
150.99 ns |
0.547 ns |
0.485 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Ssse3 |
137B |
221.90 ns |
0.757 ns |
0.671 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Scalar |
137B |
878.13 ns |
2.261 ns |
2.004 ns |
- |
| TryComputeHash · BLAKE3 · BouncyCastle |
137B |
1,935.18 ns |
4.220 ns |
3.741 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE3 · Blake3Native |
1KB |
753.39 ns |
5.106 ns |
5.015 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Ssse3 |
1KB |
1,075.63 ns |
3.015 ns |
2.672 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Scalar |
1KB |
4,578.79 ns |
18.484 ns |
15.435 ns |
- |
| TryComputeHash · BLAKE3 · BouncyCastle |
1KB |
9,675.73 ns |
23.346 ns |
19.495 ns |
- |
|
|
|
|
|
|
| TryComputeHash · BLAKE3 · Blake3Native |
1025B |
850.73 ns |
2.275 ns |
1.776 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Ssse3 |
1025B |
1,229.09 ns |
3.371 ns |
3.153 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Scalar |
1025B |
5,197.38 ns |
22.377 ns |
20.931 ns |
- |
| TryComputeHash · BLAKE3 · BouncyCastle |
1025B |
10,760.39 ns |
21.098 ns |
17.618 ns |
56 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE3 · Blake3Native |
8KB |
1,171.02 ns |
2.191 ns |
1.942 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Ssse3 |
8KB |
10,147.28 ns |
115.494 ns |
108.033 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Scalar |
8KB |
38,745.23 ns |
133.595 ns |
111.558 ns |
- |
| TryComputeHash · BLAKE3 · BouncyCastle |
8KB |
81,347.98 ns |
228.671 ns |
202.711 ns |
392 B |
|
|
|
|
|
|
| TryComputeHash · BLAKE3 · Blake3Native |
128KB |
14,404.03 ns |
89.875 ns |
70.169 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Ssse3 |
128KB |
165,900.83 ns |
375.950 ns |
333.270 ns |
- |
| TryComputeHash · BLAKE3 · CryptoHives-Scalar |
128KB |
623,212.95 ns |
1,899.429 ns |
1,683.794 ns |
- |
| TryComputeHash · BLAKE3 · BouncyCastle |
128KB |
1,370,159.36 ns |
2,330.505 ns |
2,179.956 ns |
7112 B |
Ascon Family
Ascon is a lightweight authenticated encryption and hashing family, selected as the NIST Lightweight Cryptography standard in 2023. It is designed for constrained environments (IoT, embedded systems) where resources are limited but security is paramount.
The managed implementation is approximately 33% faster than BouncyCastle across all input sizes, with consistent zero-allocation behavior regardless of input size—ideal for memory-constrained environments.
Ascon-Hash256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Ascon-Hash256 · CryptoHives-Scalar |
128B |
564.7 ns |
3.13 ns |
2.61 ns |
- |
| TryComputeHash · Ascon-Hash256 · BouncyCastle |
128B |
764.3 ns |
6.30 ns |
5.90 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-Hash256 · CryptoHives-Scalar |
137B |
596.8 ns |
2.21 ns |
2.07 ns |
- |
| TryComputeHash · Ascon-Hash256 · BouncyCastle |
137B |
802.6 ns |
3.35 ns |
3.13 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-Hash256 · CryptoHives-Scalar |
1KB |
3,658.2 ns |
16.48 ns |
13.76 ns |
- |
| TryComputeHash · Ascon-Hash256 · BouncyCastle |
1KB |
4,951.2 ns |
16.97 ns |
15.04 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-Hash256 · CryptoHives-Scalar |
1025B |
3,662.0 ns |
11.72 ns |
10.39 ns |
- |
| TryComputeHash · Ascon-Hash256 · BouncyCastle |
1025B |
4,969.6 ns |
23.35 ns |
20.70 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-Hash256 · CryptoHives-Scalar |
8KB |
28,395.7 ns |
88.53 ns |
82.81 ns |
- |
| TryComputeHash · Ascon-Hash256 · BouncyCastle |
8KB |
38,488.8 ns |
161.04 ns |
134.47 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-Hash256 · CryptoHives-Scalar |
128KB |
470,123.1 ns |
1,795.60 ns |
1,401.89 ns |
- |
| TryComputeHash · Ascon-Hash256 · BouncyCastle |
128KB |
615,321.1 ns |
4,345.47 ns |
3,852.15 ns |
- |
Ascon-XOF128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Ascon-XOF128 · CryptoHives-Scalar |
128B |
574.7 ns |
1.80 ns |
1.51 ns |
- |
| TryComputeHash · Ascon-XOF128 · BouncyCastle |
128B |
762.7 ns |
5.09 ns |
4.52 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-XOF128 · CryptoHives-Scalar |
137B |
598.9 ns |
2.75 ns |
2.57 ns |
- |
| TryComputeHash · Ascon-XOF128 · BouncyCastle |
137B |
810.7 ns |
2.62 ns |
2.33 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-XOF128 · CryptoHives-Scalar |
1KB |
3,666.2 ns |
12.96 ns |
10.82 ns |
- |
| TryComputeHash · Ascon-XOF128 · BouncyCastle |
1KB |
4,925.3 ns |
24.94 ns |
23.32 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-XOF128 · CryptoHives-Scalar |
1025B |
3,669.2 ns |
13.18 ns |
11.68 ns |
- |
| TryComputeHash · Ascon-XOF128 · BouncyCastle |
1025B |
4,903.2 ns |
15.95 ns |
14.13 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-XOF128 · CryptoHives-Scalar |
8KB |
28,420.5 ns |
145.69 ns |
129.15 ns |
- |
| TryComputeHash · Ascon-XOF128 · BouncyCastle |
8KB |
38,031.2 ns |
147.00 ns |
122.75 ns |
- |
|
|
|
|
|
|
| TryComputeHash · Ascon-XOF128 · CryptoHives-Scalar |
128KB |
453,575.7 ns |
1,541.47 ns |
1,287.20 ns |
- |
| TryComputeHash · Ascon-XOF128 · BouncyCastle |
128KB |
610,509.3 ns |
4,523.18 ns |
4,009.68 ns |
- |
KMAC Family
KMAC (Keccak Message Authentication Code) is defined in NIST SP 800-185 and provides a Keccak-based keyed hash function. Like SHA-3, SHAKE, and cSHAKE, KMAC shares the same optimized Keccak permutation core, benefiting from the scalar optimizations described in the Keccak section above.
The managed CryptoHives implementation is the fastest at all input sizes. At 128 B, CryptoHives (639 ns) is ~36% faster than OS (1,000 ns) and ~67% faster than BouncyCastle (1,971 ns). At 128 KiB, it is ~30% faster than OS and ~36% faster than BouncyCastle. The per-call advantage is largest at small payloads where the OS incurs marshalling overhead and BouncyCastle incurs per-call allocation (256 B); the gap narrows at bulk sizes as the Keccak permutation throughput dominates.
KMAC128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · KMAC-128 · CryptoHives-Scalar |
128B |
639.3 ns |
4.43 ns |
4.15 ns |
- |
| TryComputeHash · KMAC-128 · OS Native |
128B |
999.7 ns |
6.60 ns |
5.85 ns |
184 B |
| TryComputeHash · KMAC-128 · BouncyCastle |
128B |
1,971.0 ns |
7.39 ns |
6.17 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-128 · CryptoHives-Scalar |
137B |
637.9 ns |
3.86 ns |
3.23 ns |
- |
| TryComputeHash · KMAC-128 · OS Native |
137B |
1,011.2 ns |
7.80 ns |
6.92 ns |
200 B |
| TryComputeHash · KMAC-128 · BouncyCastle |
137B |
1,994.4 ns |
12.68 ns |
11.86 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-128 · CryptoHives-Scalar |
1KB |
1,845.7 ns |
25.21 ns |
23.58 ns |
- |
| TryComputeHash · KMAC-128 · OS Native |
1KB |
2,500.8 ns |
22.71 ns |
21.25 ns |
1080 B |
| TryComputeHash · KMAC-128 · BouncyCastle |
1KB |
3,802.3 ns |
14.47 ns |
12.08 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-128 · CryptoHives-Scalar |
1025B |
1,831.1 ns |
11.22 ns |
10.50 ns |
- |
| TryComputeHash · KMAC-128 · OS Native |
1025B |
2,490.6 ns |
17.50 ns |
16.37 ns |
1088 B |
| TryComputeHash · KMAC-128 · BouncyCastle |
1025B |
3,805.8 ns |
14.19 ns |
12.58 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-128 · CryptoHives-Scalar |
8KB |
10,164.6 ns |
51.04 ns |
47.74 ns |
- |
| TryComputeHash · KMAC-128 · OS Native |
8KB |
12,849.2 ns |
54.87 ns |
45.82 ns |
8248 B |
| TryComputeHash · KMAC-128 · BouncyCastle |
8KB |
16,837.5 ns |
91.76 ns |
81.34 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-128 · CryptoHives-Scalar |
128KB |
155,699.8 ns |
1,005.02 ns |
940.10 ns |
- |
| TryComputeHash · KMAC-128 · OS Native |
128KB |
223,175.9 ns |
1,345.67 ns |
1,258.74 ns |
131151 B |
| TryComputeHash · KMAC-128 · BouncyCastle |
128KB |
241,935.6 ns |
1,192.39 ns |
1,057.02 ns |
256 B |
KMAC256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · KMAC-256 · CryptoHives-Scalar |
128B |
629.6 ns |
3.16 ns |
2.80 ns |
- |
| TryComputeHash · KMAC-256 · OS Native |
128B |
1,006.4 ns |
5.70 ns |
5.33 ns |
184 B |
| TryComputeHash · KMAC-256 · BouncyCastle |
128B |
1,952.9 ns |
15.74 ns |
14.73 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-256 · CryptoHives-Scalar |
137B |
826.2 ns |
4.23 ns |
3.30 ns |
- |
| TryComputeHash · KMAC-256 · OS Native |
137B |
1,257.4 ns |
6.32 ns |
5.61 ns |
200 B |
| TryComputeHash · KMAC-256 · BouncyCastle |
137B |
2,241.1 ns |
13.80 ns |
12.23 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-256 · CryptoHives-Scalar |
1KB |
2,012.7 ns |
12.28 ns |
11.49 ns |
- |
| TryComputeHash · KMAC-256 · OS Native |
1KB |
2,715.3 ns |
19.65 ns |
18.38 ns |
1080 B |
| TryComputeHash · KMAC-256 · BouncyCastle |
1KB |
4,091.3 ns |
15.59 ns |
13.02 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-256 · CryptoHives-Scalar |
1025B |
2,013.1 ns |
19.41 ns |
18.16 ns |
- |
| TryComputeHash · KMAC-256 · OS Native |
1025B |
2,714.8 ns |
16.76 ns |
14.86 ns |
1088 B |
| TryComputeHash · KMAC-256 · BouncyCastle |
1025B |
4,111.0 ns |
43.10 ns |
40.31 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-256 · CryptoHives-Scalar |
8KB |
12,476.3 ns |
62.15 ns |
58.14 ns |
- |
| TryComputeHash · KMAC-256 · OS Native |
8KB |
15,712.9 ns |
109.22 ns |
96.82 ns |
8248 B |
| TryComputeHash · KMAC-256 · BouncyCastle |
8KB |
20,277.5 ns |
125.13 ns |
110.93 ns |
256 B |
|
|
|
|
|
|
| TryComputeHash · KMAC-256 · CryptoHives-Scalar |
128KB |
190,673.8 ns |
958.36 ns |
849.56 ns |
- |
| TryComputeHash · KMAC-256 · OS Native |
128KB |
264,992.3 ns |
1,632.14 ns |
1,446.85 ns |
131151 B |
| TryComputeHash · KMAC-256 · BouncyCastle |
128KB |
294,836.4 ns |
1,281.56 ns |
1,198.77 ns |
256 B |
Legacy Algorithms
MD5 and SHA-1 are provided exclusively for backward compatibility with legacy protocols and file formats (e.g., verifying old checksums, interoperability with legacy systems). Both algorithms have known cryptographic weaknesses:
- MD5: Vulnerable to collision attacks since 2004; should not be used for security
- SHA-1: Collision attacks demonstrated in 2017 (SHAttered); deprecated by NIST
The OS implementations are fastest due to potential hardware acceleration. The managed implementations prioritize correctness and portability over optimization, as these algorithms should only be used for non-security purposes.
MD5
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · MD5 · OS Native |
128B |
268.4 ns |
0.57 ns |
0.54 ns |
- |
| TryComputeHash · MD5 · CryptoHives-Scalar |
128B |
309.1 ns |
3.11 ns |
2.91 ns |
- |
| TryComputeHash · MD5 · BouncyCastle |
128B |
368.9 ns |
0.49 ns |
0.46 ns |
- |
|
|
|
|
|
|
| TryComputeHash · MD5 · OS Native |
137B |
266.4 ns |
0.28 ns |
0.23 ns |
- |
| TryComputeHash · MD5 · CryptoHives-Scalar |
137B |
312.8 ns |
1.63 ns |
1.45 ns |
- |
| TryComputeHash · MD5 · BouncyCastle |
137B |
369.1 ns |
0.87 ns |
0.72 ns |
- |
|
|
|
|
|
|
| TryComputeHash · MD5 · OS Native |
1KB |
1,377.6 ns |
1.87 ns |
1.75 ns |
- |
| TryComputeHash · MD5 · CryptoHives-Scalar |
1KB |
1,713.9 ns |
10.44 ns |
9.25 ns |
- |
| TryComputeHash · MD5 · BouncyCastle |
1KB |
2,011.5 ns |
4.96 ns |
4.40 ns |
- |
|
|
|
|
|
|
| TryComputeHash · MD5 · OS Native |
1025B |
1,369.2 ns |
1.59 ns |
1.41 ns |
- |
| TryComputeHash · MD5 · CryptoHives-Scalar |
1025B |
1,715.1 ns |
8.07 ns |
7.55 ns |
- |
| TryComputeHash · MD5 · BouncyCastle |
1025B |
2,013.3 ns |
4.85 ns |
4.30 ns |
- |
|
|
|
|
|
|
| TryComputeHash · MD5 · OS Native |
8KB |
10,155.2 ns |
10.60 ns |
9.92 ns |
- |
| TryComputeHash · MD5 · CryptoHives-Scalar |
8KB |
12,895.3 ns |
76.00 ns |
67.38 ns |
- |
| TryComputeHash · MD5 · BouncyCastle |
8KB |
15,144.2 ns |
24.49 ns |
21.71 ns |
- |
|
|
|
|
|
|
| TryComputeHash · MD5 · OS Native |
128KB |
160,835.1 ns |
167.68 ns |
156.85 ns |
- |
| TryComputeHash · MD5 · CryptoHives-Scalar |
128KB |
204,922.0 ns |
896.17 ns |
838.28 ns |
- |
| TryComputeHash · MD5 · BouncyCastle |
128KB |
240,671.1 ns |
915.29 ns |
811.38 ns |
- |
SHA-1
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SHA-1 · OS Native |
128B |
229.0 ns |
0.78 ns |
0.69 ns |
- |
| TryComputeHash · SHA-1 · BouncyCastle |
128B |
434.3 ns |
1.70 ns |
1.59 ns |
- |
| TryComputeHash · SHA-1 · CryptoHives-Scalar |
128B |
455.1 ns |
2.96 ns |
2.63 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-1 · OS Native |
137B |
229.7 ns |
1.01 ns |
0.95 ns |
- |
| TryComputeHash · SHA-1 · BouncyCastle |
137B |
435.8 ns |
1.55 ns |
1.38 ns |
- |
| TryComputeHash · SHA-1 · CryptoHives-Scalar |
137B |
452.2 ns |
2.07 ns |
1.61 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-1 · OS Native |
1KB |
1,096.1 ns |
2.12 ns |
1.66 ns |
- |
| TryComputeHash · SHA-1 · BouncyCastle |
1KB |
2,420.6 ns |
7.26 ns |
6.44 ns |
- |
| TryComputeHash · SHA-1 · CryptoHives-Scalar |
1KB |
2,457.2 ns |
14.34 ns |
13.41 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-1 · OS Native |
1025B |
1,098.1 ns |
3.65 ns |
3.23 ns |
- |
| TryComputeHash · SHA-1 · BouncyCastle |
1025B |
2,416.6 ns |
7.45 ns |
5.82 ns |
- |
| TryComputeHash · SHA-1 · CryptoHives-Scalar |
1025B |
2,449.5 ns |
12.44 ns |
11.63 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-1 · OS Native |
8KB |
8,037.1 ns |
28.62 ns |
23.90 ns |
- |
| TryComputeHash · SHA-1 · BouncyCastle |
8KB |
18,224.4 ns |
66.77 ns |
59.19 ns |
- |
| TryComputeHash · SHA-1 · CryptoHives-Scalar |
8KB |
18,364.5 ns |
60.05 ns |
50.14 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SHA-1 · OS Native |
128KB |
127,098.6 ns |
155.43 ns |
129.79 ns |
- |
| TryComputeHash · SHA-1 · BouncyCastle |
128KB |
289,536.6 ns |
1,181.97 ns |
1,047.78 ns |
- |
| TryComputeHash · SHA-1 · CryptoHives-Scalar |
128KB |
291,638.8 ns |
1,352.95 ns |
1,265.55 ns |
- |
Regional Standards
These algorithms serve regulatory compliance requirements in specific jurisdictions. While not commonly used in Western applications, they are mandatory in their respective regions:
| Algorithm |
Region |
Use Case |
| SM3 |
China |
Required for Chinese government and financial systems (GB/T 32905-2016) |
| Streebog |
Russia |
Russian federal standard GOST R 34.11-2012, required for government communications |
| Kupyna |
Ukraine |
Ukrainian national standard DSTU 7564:2014, required for government systems |
| LSH |
South Korea |
Korean national standard KS X 3262, approved by KCMVP |
| Whirlpool |
ISO/NESSIE |
European cryptographic standard (ISO/IEC 10118-3) |
| RIPEMD-160 |
Europe/Crypto |
Used in Bitcoin address generation and some European standards |
The managed Streebog implementation is notably faster (1.4–1.8×) than reference implementations while using less memory—important for embedded systems in constrained environments. The managed Kupyna implementation uses T-table optimization (combining SubBytes, ShiftBytes, and MixColumns) to outperform BouncyCastle by 30–45%.
SM3
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · SM3 · CryptoHives-Scalar |
128B |
691.8 ns |
1.63 ns |
1.52 ns |
- |
| TryComputeHash · SM3 · BouncyCastle |
128B |
780.5 ns |
4.64 ns |
4.34 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SM3 · CryptoHives-Scalar |
137B |
695.5 ns |
2.23 ns |
2.09 ns |
- |
| TryComputeHash · SM3 · BouncyCastle |
137B |
781.5 ns |
3.03 ns |
2.83 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SM3 · CryptoHives-Scalar |
1KB |
3,870.8 ns |
13.02 ns |
11.54 ns |
- |
| TryComputeHash · SM3 · BouncyCastle |
1KB |
4,358.4 ns |
11.60 ns |
10.85 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SM3 · CryptoHives-Scalar |
1025B |
3,876.9 ns |
18.02 ns |
15.04 ns |
- |
| TryComputeHash · SM3 · BouncyCastle |
1025B |
4,366.9 ns |
16.04 ns |
13.40 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SM3 · CryptoHives-Scalar |
8KB |
29,200.2 ns |
166.39 ns |
155.64 ns |
- |
| TryComputeHash · SM3 · BouncyCastle |
8KB |
33,422.9 ns |
120.08 ns |
106.45 ns |
- |
|
|
|
|
|
|
| TryComputeHash · SM3 · CryptoHives-Scalar |
128KB |
462,994.6 ns |
1,390.99 ns |
1,233.08 ns |
- |
| TryComputeHash · SM3 · BouncyCastle |
128KB |
532,056.9 ns |
2,589.70 ns |
2,295.70 ns |
- |
Streebog-256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Streebog-256 · CryptoHives-Scalar |
128B |
2.377 μs |
0.0042 μs |
0.0037 μs |
- |
| TryComputeHash · Streebog-256 · OpenGost |
128B |
3.467 μs |
0.0319 μs |
0.0283 μs |
408 B |
| TryComputeHash · Streebog-256 · BouncyCastle |
128B |
4.329 μs |
0.0325 μs |
0.0288 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-256 · CryptoHives-Scalar |
137B |
2.410 μs |
0.0062 μs |
0.0055 μs |
- |
| TryComputeHash · Streebog-256 · OpenGost |
137B |
3.474 μs |
0.0428 μs |
0.0400 μs |
408 B |
| TryComputeHash · Streebog-256 · BouncyCastle |
137B |
4.289 μs |
0.0175 μs |
0.0164 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-256 · CryptoHives-Scalar |
1KB |
9.155 μs |
0.0312 μs |
0.0292 μs |
- |
| TryComputeHash · Streebog-256 · OpenGost |
1KB |
12.800 μs |
0.0952 μs |
0.0890 μs |
408 B |
| TryComputeHash · Streebog-256 · BouncyCastle |
1KB |
16.386 μs |
0.0905 μs |
0.0847 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-256 · CryptoHives-Scalar |
1025B |
9.154 μs |
0.0201 μs |
0.0167 μs |
- |
| TryComputeHash · Streebog-256 · OpenGost |
1025B |
12.823 μs |
0.0670 μs |
0.0594 μs |
408 B |
| TryComputeHash · Streebog-256 · BouncyCastle |
1025B |
16.240 μs |
0.0796 μs |
0.0706 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-256 · CryptoHives-Scalar |
8KB |
62.222 μs |
0.2465 μs |
0.2058 μs |
- |
| TryComputeHash · Streebog-256 · OpenGost |
8KB |
87.600 μs |
0.6162 μs |
0.5764 μs |
408 B |
| TryComputeHash · Streebog-256 · BouncyCastle |
8KB |
114.729 μs |
0.6431 μs |
0.5701 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-256 · CryptoHives-Scalar |
128KB |
997.488 μs |
3.9279 μs |
3.4820 μs |
- |
| TryComputeHash · Streebog-256 · OpenGost |
128KB |
1,371.904 μs |
6.9799 μs |
5.8285 μs |
408 B |
| TryComputeHash · Streebog-256 · BouncyCastle |
128KB |
1,754.677 μs |
9.3372 μs |
8.2771 μs |
- |
Streebog-512
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Streebog-512 · CryptoHives-Scalar |
128B |
2.390 μs |
0.0035 μs |
0.0029 μs |
- |
| TryComputeHash · Streebog-512 · OpenGost |
128B |
3.376 μs |
0.0190 μs |
0.0158 μs |
176 B |
| TryComputeHash · Streebog-512 · BouncyCastle |
128B |
4.256 μs |
0.0256 μs |
0.0227 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-512 · CryptoHives-Scalar |
137B |
2.421 μs |
0.0103 μs |
0.0091 μs |
- |
| TryComputeHash · Streebog-512 · OpenGost |
137B |
3.375 μs |
0.0242 μs |
0.0214 μs |
176 B |
| TryComputeHash · Streebog-512 · BouncyCastle |
137B |
4.289 μs |
0.0171 μs |
0.0143 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-512 · CryptoHives-Scalar |
1KB |
9.164 μs |
0.0256 μs |
0.0227 μs |
- |
| TryComputeHash · Streebog-512 · OpenGost |
1KB |
12.747 μs |
0.0955 μs |
0.0798 μs |
176 B |
| TryComputeHash · Streebog-512 · BouncyCastle |
1KB |
16.172 μs |
0.0685 μs |
0.0572 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-512 · CryptoHives-Scalar |
1025B |
9.142 μs |
0.0206 μs |
0.0182 μs |
- |
| TryComputeHash · Streebog-512 · OpenGost |
1025B |
12.743 μs |
0.0854 μs |
0.0799 μs |
176 B |
| TryComputeHash · Streebog-512 · BouncyCastle |
1025B |
16.312 μs |
0.1198 μs |
0.1121 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-512 · CryptoHives-Scalar |
8KB |
62.810 μs |
0.1245 μs |
0.1040 μs |
- |
| TryComputeHash · Streebog-512 · OpenGost |
8KB |
87.574 μs |
0.6647 μs |
0.6217 μs |
176 B |
| TryComputeHash · Streebog-512 · BouncyCastle |
8KB |
111.897 μs |
0.4154 μs |
0.3682 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Streebog-512 · CryptoHives-Scalar |
128KB |
988.685 μs |
4.5749 μs |
3.5718 μs |
- |
| TryComputeHash · Streebog-512 · OpenGost |
128KB |
1,374.754 μs |
7.6146 μs |
7.1227 μs |
176 B |
| TryComputeHash · Streebog-512 · BouncyCastle |
128KB |
1,759.552 μs |
8.0487 μs |
7.5287 μs |
- |
Whirlpool
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Whirlpool · CryptoHives-Scalar |
128B |
1.379 μs |
0.0061 μs |
0.0051 μs |
- |
| TryComputeHash · Whirlpool · Hashify .NET |
128B |
2.033 μs |
0.0197 μs |
0.0174 μs |
6336 B |
| TryComputeHash · Whirlpool · BouncyCastle |
128B |
5.086 μs |
0.0412 μs |
0.0344 μs |
56 B |
|
|
|
|
|
|
| TryComputeHash · Whirlpool · CryptoHives-Scalar |
137B |
1.348 μs |
0.0053 μs |
0.0044 μs |
- |
| TryComputeHash · Whirlpool · Hashify .NET |
137B |
2.026 μs |
0.0182 μs |
0.0161 μs |
6328 B |
| TryComputeHash · Whirlpool · BouncyCastle |
137B |
5.090 μs |
0.0509 μs |
0.0476 μs |
56 B |
|
|
|
|
|
|
| TryComputeHash · Whirlpool · CryptoHives-Scalar |
1KB |
7.629 μs |
0.0608 μs |
0.0569 μs |
- |
| TryComputeHash · Whirlpool · Hashify .NET |
1KB |
10.342 μs |
0.1014 μs |
0.0949 μs |
12032 B |
| TryComputeHash · Whirlpool · BouncyCastle |
1KB |
31.173 μs |
0.1905 μs |
0.1782 μs |
56 B |
|
|
|
|
|
|
| TryComputeHash · Whirlpool · CryptoHives-Scalar |
1025B |
7.522 μs |
0.0406 μs |
0.0380 μs |
- |
| TryComputeHash · Whirlpool · Hashify .NET |
1025B |
10.320 μs |
0.0812 μs |
0.0760 μs |
12040 B |
| TryComputeHash · Whirlpool · BouncyCastle |
1025B |
31.374 μs |
0.2503 μs |
0.2341 μs |
56 B |
|
|
|
|
|
|
| TryComputeHash · Whirlpool · CryptoHives-Scalar |
8KB |
56.757 μs |
0.2586 μs |
0.2292 μs |
- |
| TryComputeHash · Whirlpool · Hashify .NET |
8KB |
76.504 μs |
0.6803 μs |
0.6030 μs |
58624 B |
| TryComputeHash · Whirlpool · BouncyCastle |
8KB |
240.925 μs |
1.8231 μs |
1.7053 μs |
56 B |
|
|
|
|
|
|
| TryComputeHash · Whirlpool · CryptoHives-Scalar |
128KB |
909.667 μs |
2.7528 μs |
2.4403 μs |
- |
| TryComputeHash · Whirlpool · Hashify .NET |
128KB |
1,265.003 μs |
9.5233 μs |
8.4421 μs |
857372 B |
| TryComputeHash · Whirlpool · BouncyCastle |
128KB |
3,807.944 μs |
20.7161 μs |
19.3779 μs |
56 B |
RIPEMD-160
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · RIPEMD-160 · BouncyCastle |
128B |
638.8 ns |
1.59 ns |
1.41 ns |
- |
| TryComputeHash · RIPEMD-160 · CryptoHives-Scalar |
128B |
703.1 ns |
4.50 ns |
3.99 ns |
- |
|
|
|
|
|
|
| TryComputeHash · RIPEMD-160 · BouncyCastle |
137B |
639.3 ns |
2.85 ns |
2.53 ns |
- |
| TryComputeHash · RIPEMD-160 · CryptoHives-Scalar |
137B |
712.4 ns |
7.27 ns |
6.45 ns |
- |
|
|
|
|
|
|
| TryComputeHash · RIPEMD-160 · BouncyCastle |
1KB |
3,551.4 ns |
3.91 ns |
3.05 ns |
- |
| TryComputeHash · RIPEMD-160 · CryptoHives-Scalar |
1KB |
3,942.6 ns |
24.81 ns |
21.99 ns |
- |
|
|
|
|
|
|
| TryComputeHash · RIPEMD-160 · BouncyCastle |
1025B |
3,561.0 ns |
9.13 ns |
7.63 ns |
- |
| TryComputeHash · RIPEMD-160 · CryptoHives-Scalar |
1025B |
3,950.1 ns |
14.31 ns |
12.69 ns |
- |
|
|
|
|
|
|
| TryComputeHash · RIPEMD-160 · BouncyCastle |
8KB |
26,855.9 ns |
68.48 ns |
60.70 ns |
- |
| TryComputeHash · RIPEMD-160 · CryptoHives-Scalar |
8KB |
29,928.6 ns |
266.76 ns |
208.27 ns |
- |
|
|
|
|
|
|
| TryComputeHash · RIPEMD-160 · BouncyCastle |
128KB |
426,882.3 ns |
1,441.29 ns |
1,203.54 ns |
- |
| TryComputeHash · RIPEMD-160 · CryptoHives-Scalar |
128KB |
474,293.7 ns |
3,466.28 ns |
3,242.36 ns |
- |
Kupyna-256 (DSTU 7564)
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Kupyna-256 · CryptoHives-Scalar |
128B |
2.233 μs |
0.0185 μs |
0.0164 μs |
- |
| TryComputeHash · Kupyna-256 · BouncyCastle |
128B |
3.397 μs |
0.0132 μs |
0.0110 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-256 · CryptoHives-Scalar |
137B |
2.242 μs |
0.0163 μs |
0.0152 μs |
- |
| TryComputeHash · Kupyna-256 · BouncyCastle |
137B |
3.271 μs |
0.0167 μs |
0.0148 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-256 · CryptoHives-Scalar |
1KB |
11.081 μs |
0.0695 μs |
0.0616 μs |
- |
| TryComputeHash · Kupyna-256 · BouncyCastle |
1KB |
16.327 μs |
0.0748 μs |
0.0699 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-256 · CryptoHives-Scalar |
1025B |
11.060 μs |
0.0585 μs |
0.0519 μs |
- |
| TryComputeHash · Kupyna-256 · BouncyCastle |
1025B |
16.302 μs |
0.1060 μs |
0.0992 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-256 · CryptoHives-Scalar |
8KB |
83.084 μs |
1.2922 μs |
2.2633 μs |
- |
| TryComputeHash · Kupyna-256 · BouncyCastle |
8KB |
120.768 μs |
0.8643 μs |
0.8084 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-256 · CryptoHives-Scalar |
128KB |
1,294.659 μs |
6.5798 μs |
5.8329 μs |
- |
| TryComputeHash · Kupyna-256 · BouncyCastle |
128KB |
1,902.040 μs |
11.0804 μs |
10.3646 μs |
- |
Kupyna-384 (DSTU 7564)
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Kupyna-384 · CryptoHives-Scalar |
128B |
4.363 μs |
0.0329 μs |
0.0292 μs |
- |
| TryComputeHash · Kupyna-384 · BouncyCastle |
128B |
6.642 μs |
0.0350 μs |
0.0328 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-384 · CryptoHives-Scalar |
137B |
4.338 μs |
0.0215 μs |
0.0191 μs |
- |
| TryComputeHash · Kupyna-384 · BouncyCastle |
137B |
6.661 μs |
0.0327 μs |
0.0290 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-384 · CryptoHives-Scalar |
1KB |
16.417 μs |
0.1065 μs |
0.0996 μs |
- |
| TryComputeHash · Kupyna-384 · BouncyCastle |
1KB |
25.305 μs |
0.1567 μs |
0.1390 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-384 · CryptoHives-Scalar |
1025B |
16.438 μs |
0.1075 μs |
0.0953 μs |
- |
| TryComputeHash · Kupyna-384 · BouncyCastle |
1025B |
25.397 μs |
0.1346 μs |
0.1051 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-384 · CryptoHives-Scalar |
8KB |
112.927 μs |
0.5562 μs |
0.5203 μs |
- |
| TryComputeHash · Kupyna-384 · BouncyCastle |
8KB |
175.458 μs |
2.3004 μs |
2.1518 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-384 · CryptoHives-Scalar |
128KB |
1,770.080 μs |
7.9694 μs |
7.0646 μs |
- |
| TryComputeHash · Kupyna-384 · BouncyCastle |
128KB |
2,745.614 μs |
13.6668 μs |
12.7840 μs |
- |
Kupyna-512 (DSTU 7564)
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · Kupyna-512 · CryptoHives-Scalar |
128B |
4.337 μs |
0.0245 μs |
0.0217 μs |
- |
| TryComputeHash · Kupyna-512 · BouncyCastle |
128B |
6.707 μs |
0.0898 μs |
0.0840 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-512 · CryptoHives-Scalar |
137B |
4.350 μs |
0.0343 μs |
0.0321 μs |
- |
| TryComputeHash · Kupyna-512 · BouncyCastle |
137B |
6.650 μs |
0.0318 μs |
0.0265 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-512 · CryptoHives-Scalar |
1KB |
16.414 μs |
0.1396 μs |
0.1237 μs |
- |
| TryComputeHash · Kupyna-512 · BouncyCastle |
1KB |
25.350 μs |
0.0886 μs |
0.0785 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-512 · CryptoHives-Scalar |
1025B |
16.404 μs |
0.1286 μs |
0.1203 μs |
- |
| TryComputeHash · Kupyna-512 · BouncyCastle |
1025B |
25.351 μs |
0.1466 μs |
0.1299 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-512 · CryptoHives-Scalar |
8KB |
112.929 μs |
0.5714 μs |
0.5066 μs |
- |
| TryComputeHash · Kupyna-512 · BouncyCastle |
8KB |
174.499 μs |
0.8201 μs |
0.7270 μs |
- |
|
|
|
|
|
|
| TryComputeHash · Kupyna-512 · CryptoHives-Scalar |
128KB |
1,771.726 μs |
11.1152 μs |
9.8533 μs |
- |
| TryComputeHash · Kupyna-512 · BouncyCastle |
128KB |
2,741.613 μs |
13.1621 μs |
12.3118 μs |
- |
LSH-256-256 (KS X 3262)
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · LSH-256-256 · CryptoHives-Scalar |
128B |
1.848 μs |
0.0063 μs |
0.0059 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-256-256 · CryptoHives-Scalar |
137B |
1.861 μs |
0.0099 μs |
0.0082 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-256-256 · CryptoHives-Scalar |
1KB |
8.130 μs |
0.0335 μs |
0.0297 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-256-256 · CryptoHives-Scalar |
1025B |
8.163 μs |
0.0585 μs |
0.0547 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-256-256 · CryptoHives-Scalar |
8KB |
58.416 μs |
0.2323 μs |
0.2173 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-256-256 · CryptoHives-Scalar |
128KB |
918.406 μs |
3.1978 μs |
2.9912 μs |
- |
LSH-512-256 (KS X 3262)
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · LSH-512-256 · CryptoHives-Scalar |
128B |
1.044 μs |
0.0057 μs |
0.0053 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-256 · CryptoHives-Scalar |
137B |
1.039 μs |
0.0073 μs |
0.0065 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-256 · CryptoHives-Scalar |
1KB |
4.967 μs |
0.0311 μs |
0.0291 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-256 · CryptoHives-Scalar |
1025B |
4.973 μs |
0.0158 μs |
0.0140 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-256 · CryptoHives-Scalar |
8KB |
32.176 μs |
0.1356 μs |
0.1268 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-256 · CryptoHives-Scalar |
128KB |
501.782 μs |
4.0564 μs |
3.7944 μs |
- |
LSH-512-512 (KS X 3262)
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| TryComputeHash · LSH-512-512 · CryptoHives-Scalar |
128B |
1.045 μs |
0.0047 μs |
0.0044 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-512 · CryptoHives-Scalar |
137B |
1.044 μs |
0.0027 μs |
0.0024 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-512 · CryptoHives-Scalar |
1KB |
4.967 μs |
0.0212 μs |
0.0199 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-512 · CryptoHives-Scalar |
1025B |
4.983 μs |
0.0244 μs |
0.0217 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-512 · CryptoHives-Scalar |
8KB |
32.108 μs |
0.1955 μs |
0.1829 μs |
- |
|
|
|
|
|
|
| TryComputeHash · LSH-512-512 · CryptoHives-Scalar |
128KB |
541.612 μs |
1.5951 μs |
1.2454 μs |
- |
XOF Mode
XOF (Extendable Output Function) benchmarks measure the full absorb-then-squeeze cycle: the input is absorbed and an output of equal size is squeezed. The benchmark method is AbsorbSqueeze. All CryptoHives XOF implementations are zero-allocation regardless of output size. BouncyCastle's XOF implementations allocate an internal output buffer proportional to the squeezed length (e.g., ~150 KB for a 128 KiB squeeze), making them unsuitable for high-frequency streaming use.
Note
On Windows x64, the Managed Keccak scalar path outperforms BouncyCastle at small and medium sizes — the opposite of Apple M4, where BouncyCastle's Keccak is marginally faster due to pipelining characteristics of Apple Silicon. Windows CNG exposes a native SHAKE128, SHAKE256, KMAC128, and KMAC256 XOF interface; it does not expose cSHAKE as a standalone API.
SHAKE Family
SHAKE128 and SHAKE256 (FIPS 202) are variable-output-length extensions of the SHA-3 permutation with security strengths of 128 and 256 bits. SHAKE128 uses a 1344-bit rate (21 lanes) while SHAKE256 uses a 1088-bit rate — making SHAKE128 ~14% faster for the same output size.
On AMD Ryzen 5 7600X, CryptoHives Managed is the fastest at small inputs: ~47% faster than BouncyCastle at 128 B for SHAKE128, and ~49% faster for SHAKE256. At 8 KiB and beyond, OS Native (Windows CNG) takes the lead, presumably benefiting from a wider SIMD path in CNG's Keccak implementation. BouncyCastle is slowest across all sizes and allocates output-proportional buffers (~150 KB at 128 KiB squeeze).
Key observations:
- Managed: Fastest at ≤ 1 KiB (~47–49% faster than BC); zero-allocation
- OS Native: Fastest at ≥ 8 KiB; zero-allocation
- BouncyCastle: Slowest; allocates ~150 KB at 128 KiB squeeze; ~9% slower than Managed at 128 KiB
- SHAKE128 ~16% faster than SHAKE256 at 128 KiB due to wider rate
SHAKE128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · SHAKE128 · CryptoHives-Scalar |
128B |
2.614 μs |
0.0200 μs |
0.0187 μs |
- |
| AbsorbSqueeze · SHAKE128 · OS Native |
128B |
3.266 μs |
0.0343 μs |
0.0304 μs |
- |
| AbsorbSqueeze · SHAKE128 · BouncyCastle |
128B |
4.038 μs |
0.0191 μs |
0.0178 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · SHAKE128 · CryptoHives-Scalar |
1KB |
3.779 μs |
0.0222 μs |
0.0208 μs |
- |
| AbsorbSqueeze · SHAKE128 · OS Native |
1KB |
4.681 μs |
0.0289 μs |
0.0256 μs |
- |
| AbsorbSqueeze · SHAKE128 · BouncyCastle |
1KB |
5.980 μs |
0.0512 μs |
0.0428 μs |
1152 B |
|
|
|
|
|
|
| AbsorbSqueeze · SHAKE128 · CryptoHives-Scalar |
8KB |
11.886 μs |
0.0459 μs |
0.0407 μs |
- |
| AbsorbSqueeze · SHAKE128 · OS Native |
8KB |
14.797 μs |
0.1038 μs |
0.0920 μs |
- |
| AbsorbSqueeze · SHAKE128 · BouncyCastle |
8KB |
19.520 μs |
0.1391 μs |
0.1301 μs |
9216 B |
|
|
|
|
|
|
| AbsorbSqueeze · SHAKE128 · CryptoHives-Scalar |
128KB |
153.131 μs |
1.0075 μs |
0.8931 μs |
- |
| AbsorbSqueeze · SHAKE128 · OS Native |
128KB |
189.887 μs |
2.2975 μs |
2.0367 μs |
- |
| AbsorbSqueeze · SHAKE128 · BouncyCastle |
128KB |
255.651 μs |
1.5554 μs |
1.4549 μs |
149760 B |
SHAKE256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · SHAKE256 · CryptoHives-Scalar |
128B |
3.186 μs |
0.0215 μs |
0.0191 μs |
- |
| AbsorbSqueeze · SHAKE256 · OS Native |
128B |
3.944 μs |
0.0127 μs |
0.0099 μs |
- |
| AbsorbSqueeze · SHAKE256 · BouncyCastle |
128B |
4.901 μs |
0.0081 μs |
0.0067 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · SHAKE256 · CryptoHives-Scalar |
1KB |
4.524 μs |
0.0355 μs |
0.0314 μs |
- |
| AbsorbSqueeze · SHAKE256 · OS Native |
1KB |
5.571 μs |
0.0262 μs |
0.0232 μs |
- |
| AbsorbSqueeze · SHAKE256 · BouncyCastle |
1KB |
7.125 μs |
0.0222 μs |
0.0173 μs |
1120 B |
|
|
|
|
|
|
| AbsorbSqueeze · SHAKE256 · CryptoHives-Scalar |
8KB |
14.719 μs |
0.0980 μs |
0.0917 μs |
- |
| AbsorbSqueeze · SHAKE256 · OS Native |
8KB |
18.053 μs |
0.1019 μs |
0.0851 μs |
- |
| AbsorbSqueeze · SHAKE256 · BouncyCastle |
8KB |
24.047 μs |
0.0980 μs |
0.0819 μs |
9600 B |
|
|
|
|
|
|
| AbsorbSqueeze · SHAKE256 · CryptoHives-Scalar |
128KB |
188.333 μs |
1.0793 μs |
1.0096 μs |
- |
| AbsorbSqueeze · SHAKE256 · OS Native |
128KB |
231.843 μs |
0.9705 μs |
0.8104 μs |
- |
| AbsorbSqueeze · SHAKE256 · BouncyCastle |
128KB |
315.808 μs |
1.1781 μs |
0.9838 μs |
154080 B |
cSHAKE Family
cSHAKE128 and cSHAKE256 (NIST SP 800-185) add domain separation via function-name and customization strings on top of SHAKE. Windows CNG does not expose a cSHAKE XOF API, so only Managed and BouncyCastle are available here.
The CryptoHives Managed implementation leads at all sizes: ~47% faster than BouncyCastle at 128 B for cSHAKE128, and still ~9% faster at 128 KiB. The advantage at large sizes is distinct from the plain SHAKE results where OS Native overtook Managed — and shows the penalty of BouncyCastle's allocating XOF path. Both Managed and BouncyCastle are slightly slower than their plain SHAKE counterparts due to the encoding of customization strings during initialization.
Key observations:
- Managed: Fastest at all sizes; ~47% faster than BC at 128 B, ~9% at 128 KiB; zero-allocation
- BouncyCastle: Allocates ~150 KB at 128 KiB squeeze
- No OS Native available for cSHAKE on Windows
cSHAKE128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · cSHAKE128 · CryptoHives-Scalar |
128B |
2.607 μs |
0.0144 μs |
0.0135 μs |
- |
| AbsorbSqueeze · cSHAKE128 · BouncyCastle |
128B |
4.013 μs |
0.0173 μs |
0.0135 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · cSHAKE128 · CryptoHives-Scalar |
1KB |
3.763 μs |
0.0138 μs |
0.0115 μs |
- |
| AbsorbSqueeze · cSHAKE128 · BouncyCastle |
1KB |
5.939 μs |
0.0213 μs |
0.0178 μs |
1152 B |
|
|
|
|
|
|
| AbsorbSqueeze · cSHAKE128 · CryptoHives-Scalar |
8KB |
11.874 μs |
0.0497 μs |
0.0415 μs |
- |
| AbsorbSqueeze · cSHAKE128 · BouncyCastle |
8KB |
19.493 μs |
0.1138 μs |
0.1065 μs |
9216 B |
|
|
|
|
|
|
| AbsorbSqueeze · cSHAKE128 · CryptoHives-Scalar |
128KB |
152.646 μs |
0.5885 μs |
0.5217 μs |
- |
| AbsorbSqueeze · cSHAKE128 · BouncyCastle |
128KB |
253.871 μs |
0.5608 μs |
0.4379 μs |
149760 B |
cSHAKE256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · cSHAKE256 · CryptoHives-Scalar |
128B |
3.183 μs |
0.0157 μs |
0.0139 μs |
- |
| AbsorbSqueeze · cSHAKE256 · BouncyCastle |
128B |
4.908 μs |
0.0226 μs |
0.0211 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · cSHAKE256 · CryptoHives-Scalar |
1KB |
4.525 μs |
0.0328 μs |
0.0307 μs |
- |
| AbsorbSqueeze · cSHAKE256 · BouncyCastle |
1KB |
7.109 μs |
0.0296 μs |
0.0247 μs |
1120 B |
|
|
|
|
|
|
| AbsorbSqueeze · cSHAKE256 · CryptoHives-Scalar |
8KB |
14.678 μs |
0.0494 μs |
0.0462 μs |
- |
| AbsorbSqueeze · cSHAKE256 · BouncyCastle |
8KB |
24.327 μs |
0.0797 μs |
0.0665 μs |
9600 B |
|
|
|
|
|
|
| AbsorbSqueeze · cSHAKE256 · CryptoHives-Scalar |
128KB |
187.876 μs |
0.5233 μs |
0.4370 μs |
- |
| AbsorbSqueeze · cSHAKE256 · BouncyCastle |
128KB |
314.991 μs |
1.1409 μs |
1.0114 μs |
154080 B |
KMAC Family (XOF)
KMAC128 XOF and KMAC256 XOF (NIST SP 800-185) are keyed variable-length PRFs based on cSHAKE. Windows CNG exposes KMAC XOF natively; it allocates a fixed 32 B per call for the output descriptor.
Managed leads at small sizes: ~59% faster than BouncyCastle at 128 B for KMAC128, ~58% for KMAC256. OS Native displaces Managed at ≥ 8 KiB (~12% faster than Managed at that crossover point). BouncyCastle is slowest throughout and allocates ~150 KB at 128 KiB.
Key observations:
- Managed: Fastest at ≤ 1 KiB; zero-allocation
- OS Native: Fastest at ≥ 8 KiB; allocates a fixed 32 B per call
- BouncyCastle: Slowest; allocates 128 B at small sizes, ~150 KB at 128 KiB
KMAC128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · KMAC-128 · CryptoHives-Scalar |
128B |
3.022 μs |
0.0170 μs |
0.0159 μs |
- |
| AbsorbSqueeze · KMAC-128 · OS Native |
128B |
3.862 μs |
0.0205 μs |
0.0191 μs |
32 B |
| AbsorbSqueeze · KMAC-128 · BouncyCastle |
128B |
5.017 μs |
0.0343 μs |
0.0268 μs |
128 B |
|
|
|
|
|
|
| AbsorbSqueeze · KMAC-128 · CryptoHives-Scalar |
1KB |
4.181 μs |
0.0280 μs |
0.0262 μs |
- |
| AbsorbSqueeze · KMAC-128 · OS Native |
1KB |
5.284 μs |
0.0226 μs |
0.0200 μs |
32 B |
| AbsorbSqueeze · KMAC-128 · BouncyCastle |
1KB |
6.924 μs |
0.0334 μs |
0.0279 μs |
1280 B |
|
|
|
|
|
|
| AbsorbSqueeze · KMAC-128 · CryptoHives-Scalar |
8KB |
12.274 μs |
0.0641 μs |
0.0600 μs |
- |
| AbsorbSqueeze · KMAC-128 · OS Native |
8KB |
15.270 μs |
0.0874 μs |
0.0775 μs |
32 B |
| AbsorbSqueeze · KMAC-128 · BouncyCastle |
8KB |
20.427 μs |
0.1068 μs |
0.0946 μs |
9344 B |
|
|
|
|
|
|
| AbsorbSqueeze · KMAC-128 · CryptoHives-Scalar |
128KB |
152.990 μs |
0.5088 μs |
0.4249 μs |
- |
| AbsorbSqueeze · KMAC-128 · OS Native |
128KB |
189.590 μs |
1.5164 μs |
1.3443 μs |
32 B |
| AbsorbSqueeze · KMAC-128 · BouncyCastle |
128KB |
256.960 μs |
1.3968 μs |
1.3066 μs |
149888 B |
KMAC256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · KMAC-256 · CryptoHives-Scalar |
128B |
3.589 μs |
0.0173 μs |
0.0162 μs |
- |
| AbsorbSqueeze · KMAC-256 · OS Native |
128B |
4.552 μs |
0.0292 μs |
0.0273 μs |
32 B |
| AbsorbSqueeze · KMAC-256 · BouncyCastle |
128B |
5.860 μs |
0.0349 μs |
0.0291 μs |
128 B |
|
|
|
|
|
|
| AbsorbSqueeze · KMAC-256 · CryptoHives-Scalar |
1KB |
4.951 μs |
0.0415 μs |
0.0368 μs |
- |
| AbsorbSqueeze · KMAC-256 · OS Native |
1KB |
6.203 μs |
0.0586 μs |
0.0548 μs |
32 B |
| AbsorbSqueeze · KMAC-256 · BouncyCastle |
1KB |
8.091 μs |
0.0433 μs |
0.0384 μs |
1248 B |
|
|
|
|
|
|
| AbsorbSqueeze · KMAC-256 · CryptoHives-Scalar |
8KB |
15.154 μs |
0.0687 μs |
0.0574 μs |
- |
| AbsorbSqueeze · KMAC-256 · OS Native |
8KB |
18.749 μs |
0.1252 μs |
0.1171 μs |
32 B |
| AbsorbSqueeze · KMAC-256 · BouncyCastle |
8KB |
25.168 μs |
0.1201 μs |
0.1065 μs |
9728 B |
|
|
|
|
|
|
| AbsorbSqueeze · KMAC-256 · CryptoHives-Scalar |
128KB |
189.391 μs |
1.7310 μs |
1.4454 μs |
- |
| AbsorbSqueeze · KMAC-256 · OS Native |
128KB |
231.744 μs |
1.2464 μs |
1.1658 μs |
32 B |
| AbsorbSqueeze · KMAC-256 · BouncyCastle |
128KB |
317.308 μs |
1.1747 μs |
1.0414 μs |
154208 B |
KangarooTwelve Family (XOF)
KangarooTwelve (KT128 / KT256) are tree-hashing XOFs based on the Keccak permutation with 12 rounds (vs 24 for full SHA-3). The reduced-round design yields ~2× throughput over SHAKE128 while maintaining 128-bit security. No external competitor implementations are available for comparison.
On AMD Ryzen 5 7600X, KT128 XOF is ~75% faster than SHAKE128 Managed at 128 B, and ~45% faster at 128 KiB. The larger throughput advantage at bulk sizes reflects the 12-round saving being more impactful when the permutation dominates. KT256 uses the narrower cSHAKE256 rate and is slightly slower.
Key observations:
- KT128: ~75% faster than SHAKE128 Managed at 128 B; ~45% faster at 128 KiB
- KT256: ~19% slower than KT128 at 128 KiB due to narrower rate (1088-bit vs 1344-bit)
- Zero-allocation; no BouncyCastle or OS comparison available
KT128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · KT128 · CryptoHives-Scalar |
128B |
1.446 μs |
0.0102 μs |
0.0091 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · KT128 · CryptoHives-Scalar |
1KB |
2.052 μs |
0.0197 μs |
0.0165 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · KT128 · CryptoHives-Scalar |
8KB |
6.303 μs |
0.0305 μs |
0.0270 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · KT128 · CryptoHives-Scalar |
128KB |
80.207 μs |
0.4070 μs |
0.3608 μs |
- |
KT256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · KT256 · CryptoHives-Scalar |
128B |
1.740 μs |
0.0101 μs |
0.0090 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · KT256 · CryptoHives-Scalar |
1KB |
2.443 μs |
0.0137 μs |
0.0121 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · KT256 · CryptoHives-Scalar |
8KB |
7.772 μs |
0.0719 μs |
0.0673 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · KT256 · CryptoHives-Scalar |
128KB |
98.379 μs |
0.5654 μs |
0.5013 μs |
- |
TurboSHAKE Family (XOF)
TurboSHAKE128 and TurboSHAKE256 (IETF RFC 9562) use 12 Keccak rounds with a simplified padding scheme and a plain XOF interface with no tree-hashing overhead. They are the simplest and fastest Keccak-family XOFs available.
On AMD Ryzen 5 7600X, TurboSHAKE128 XOF and KT128 XOF perform nearly identically across all payload sizes — essentially the same throughput with TurboSHAKE having a slightly simpler API. TurboSHAKE128 is the fastest Keccak-based XOF on this platform.
Key observations:
- TurboSHAKE128 and KT128 deliver effectively equal throughput on x64
- Fastest Keccak XOF on this platform at both small and large sizes
- Zero-allocation; no OS or BouncyCastle comparison available
TurboSHAKE128
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · TurboSHAKE128 · CryptoHives-Scalar |
128B |
1.426 μs |
0.0107 μs |
0.0100 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · TurboSHAKE128 · CryptoHives-Scalar |
1KB |
2.034 μs |
0.0186 μs |
0.0164 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · TurboSHAKE128 · CryptoHives-Scalar |
8KB |
6.282 μs |
0.0429 μs |
0.0401 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · TurboSHAKE128 · CryptoHives-Scalar |
128KB |
80.315 μs |
0.4244 μs |
0.3763 μs |
- |
TurboSHAKE256
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · TurboSHAKE256 · CryptoHives-Scalar |
128B |
1.717 μs |
0.0097 μs |
0.0090 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · TurboSHAKE256 · CryptoHives-Scalar |
1KB |
2.430 μs |
0.0173 μs |
0.0162 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · TurboSHAKE256 · CryptoHives-Scalar |
8KB |
7.766 μs |
0.0752 μs |
0.0628 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · TurboSHAKE256 · CryptoHives-Scalar |
128KB |
98.384 μs |
0.4645 μs |
0.3879 μs |
- |
BLAKE3 (XOF)
BLAKE3 XOF produces output of arbitrary length using the same ChaCha-based compression function but extending the tree hashing to output-reader mode. On x64, CryptoHives ships three implementation tiers: Native (Rust via blake3-dotnet, uses AVX2/AVX-512 hash-many parallelism), Ssse3 (SSSE3-based parallel chunk generation), and Managed (scalar).
The Native Rust implementation dominates at all sizes: ~12× faster than Managed at 128 KiB, and ~15.7× faster than BouncyCastle. BouncyCastle's BLAKE3 XOF is extremely slow — it generates extended output sequentially without any tree parallelism and allocates only a fixed 56 B per call. Ssse3 provides a middle tier: ~4.3× faster than Managed at 128 KiB.
Key observations:
- Native: ~12× faster than Managed at 128 KiB; ~15.7× faster than BC; zero-allocation
- Ssse3: ~4.3× faster than Managed at 128 KiB; zero-allocation
- Managed: ~2.4× faster than BC at 128 KiB; zero-allocation
- BouncyCastle: Slowest by a large margin; allocates only 56 B (BC does not buffer large output slabs)
- Native tree hash-many exploits AVX-512 on capable CPUs; falls back to AVX2 on Ryzen 5 7600X
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · BLAKE3 · Blake3Native |
128B |
1.589 μs |
0.0025 μs |
0.0020 μs |
- |
| AbsorbSqueeze · BLAKE3 · CryptoHives-Ssse3 |
128B |
2.319 μs |
0.0134 μs |
0.0112 μs |
- |
| AbsorbSqueeze · BLAKE3 · CryptoHives-Scalar |
128B |
10.061 μs |
0.0372 μs |
0.0330 μs |
- |
| AbsorbSqueeze · BLAKE3 · BouncyCastle |
128B |
19.848 μs |
0.0409 μs |
0.0363 μs |
56 B |
|
|
|
|
|
|
| AbsorbSqueeze · BLAKE3 · Blake3Native |
1KB |
2.153 μs |
0.0076 μs |
0.0064 μs |
- |
| AbsorbSqueeze · BLAKE3 · CryptoHives-Ssse3 |
1KB |
3.173 μs |
0.0103 μs |
0.0086 μs |
- |
| AbsorbSqueeze · BLAKE3 · CryptoHives-Scalar |
1KB |
14.158 μs |
0.0395 μs |
0.0369 μs |
- |
| AbsorbSqueeze · BLAKE3 · BouncyCastle |
1KB |
28.901 μs |
0.0898 μs |
0.0796 μs |
56 B |
|
|
|
|
|
|
| AbsorbSqueeze · BLAKE3 · Blake3Native |
8KB |
6.659 μs |
0.0145 μs |
0.0121 μs |
- |
| AbsorbSqueeze · BLAKE3 · CryptoHives-Ssse3 |
8KB |
9.696 μs |
0.0301 μs |
0.0251 μs |
- |
| AbsorbSqueeze · BLAKE3 · CryptoHives-Scalar |
8KB |
46.804 μs |
0.1287 μs |
0.1141 μs |
- |
| AbsorbSqueeze · BLAKE3 · BouncyCastle |
8KB |
103.228 μs |
0.1771 μs |
0.1570 μs |
56 B |
|
|
|
|
|
|
| AbsorbSqueeze · BLAKE3 · Blake3Native |
128KB |
84.006 μs |
0.1822 μs |
0.1615 μs |
- |
| AbsorbSqueeze · BLAKE3 · CryptoHives-Ssse3 |
128KB |
123.646 μs |
0.3508 μs |
0.3281 μs |
- |
| AbsorbSqueeze · BLAKE3 · CryptoHives-Scalar |
128KB |
606.850 μs |
2.6969 μs |
2.3908 μs |
- |
| AbsorbSqueeze · BLAKE3 · BouncyCastle |
128KB |
1,369.993 μs |
3.2120 μs |
3.0045 μs |
56 B |
Ascon-XOF128
Ascon-XOF128 (NIST Lightweight Cryptography standard 2023) is the XOF variant of the Ascon family using the same 320-bit permutation as Ascon-Hash256. It requires a 12-round permutation call per 16 bytes of rate, making it inherently slower than SHAKE/BLAKE XOFs for large outputs.
On AMD Ryzen 5 7600X, the CryptoHives Managed implementation is ~33% faster than BouncyCastle across all sizes. Zero allocation on both paths.
Key observations:
- Managed: ~33% faster than BouncyCastle at all sizes; zero-allocation
- Throughput ~3× slower than SHAKE128 Managed at 128 KiB due to the narrow 128-bit rate
- Designed for memory-constrained environments, not bulk throughput
| Description |
TestDataSize |
Mean |
Error |
StdDev |
Allocated |
| AbsorbSqueeze · Ascon-XOF128 · CryptoHives-Scalar |
128B |
7.569 μs |
0.0377 μs |
0.0334 μs |
- |
| AbsorbSqueeze · Ascon-XOF128 · BouncyCastle |
128B |
10.106 μs |
0.0504 μs |
0.0471 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · Ascon-XOF128 · CryptoHives-Scalar |
1KB |
10.677 μs |
0.0357 μs |
0.0317 μs |
- |
| AbsorbSqueeze · Ascon-XOF128 · BouncyCastle |
1KB |
14.268 μs |
0.0549 μs |
0.0514 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · Ascon-XOF128 · CryptoHives-Scalar |
8KB |
35.436 μs |
0.1393 μs |
0.1163 μs |
- |
| AbsorbSqueeze · Ascon-XOF128 · BouncyCastle |
8KB |
47.829 μs |
0.5449 μs |
0.5097 μs |
- |
|
|
|
|
|
|
| AbsorbSqueeze · Ascon-XOF128 · CryptoHives-Scalar |
128KB |
461.761 μs |
2.5039 μs |
2.3421 μs |
- |
| AbsorbSqueeze · Ascon-XOF128 · BouncyCastle |
128KB |
617.427 μs |
2.5594 μs |
2.2689 μs |
- |