Monthly Archives: May 2026

Benchmarking AES-256, SHA256 and CRC-64 on Apple Silicon

Just a quick one – I needed some numbers for crypto and hashing performance on Apple Silicon so I vibe coded something quick and dirty to establish some, hoping it is useful for someone out there.. I only have access to two Apple Silicon CPUs a M2 Macbook Air, and a M4 Pro Macmini. All numbers are warmed up and averaged across multiple runs

SHA-256

Using CC_SHA256 which provides hardware SHA2 acceleration.

Block sizeM2 Mac Book Air (GiB/Sec)M4 Pro Macmini (GiB/Sec)
4 KiB2.332.97
8 KiB2.453.13
16 KiB2.513.18
32 KiB2.543.21
64 KiB2.553.26
128 KiB2.563.27
256 KiB2.573.28
512 KiB2.573.28
1 MiB2.573.27
2 MiB2.573.27
4 MiB2.573.27
8 MiB2.573.28
16 MiB2.563.28

AES-256

Via CCCrypt, using ECB mode.

Block sizeM2 Mac Book Air (GiB/Sec)M4 Pro Macmini (GiB/Sec)
4 KiB6.438.66
8 KiB7.7310.89
16 KiB8.5912.45
32 KiB9.1213.46
64 KiB9.2113.84
128 KiB9.2814.32
256 KiB9.3514.56
512 KiB9.3914.53
1 MiB9.4014.63
2 MiB9.4114.66
4 MiB9.4314.70
8 MiB9.4214.66
16 MiB9.3714.49

CRC-64 PMULL

Since there is no specific support for CRC in CCCrypt, this is just hand-rolled using the ARM NEON PMULL instruction to accelerate the calculation (without it performance is in the hundreds of megabytes per second). This is using the ECMA constant 0x42F0E1EBA9EA3693.

Block sizeM2 Mac Book Air (GiB/Sec)M4 Pro Macmini (GiB/Sec)
4 KiB58.8967.50
8 KiB49.9861.30
16 KiB53.5263.76
32 KiB51.1763.15
64 KiB50.7463.09
128 KiB50.7962.95
256 KiB50.3562.50
512 KiB50..3661.72
1 MiB50.2857.87
2 MiB50.3461.36
4 MiB50.2761.58
8 MiB50.2961.38
16 MiB49.6761.01

Conclusion

Both the M2 and M4 Pro perform excellently here, worth noting that there is not a huge generational difference evident.