Evidence Integrity Calculator
Time a SHA-256 verification pass over an evidence set and check the hash algorithm still offers real collision resistance.
Inputs
≈500 MB/s per core with the SHA-NI extension, ≈150 MB/s without it.
NVMe reaches several GB/s; a network share or USB dock will be the real limit.
One at acquisition, one before analysis, one before disclosure.
Time for One Verification Pass
0.93hours
Effective Throughput
1,200MB/s
Time for All Passes
1.85hours
Minutes per Image
2.2minutes
Collision Resistance
128bits
Limiting Factor
Storage read speed — hashing capacity of 2000 MB/s is idle waiting on I/O
Algorithm Verdict
Sound — 128-bit collision resistance is beyond any practical attack
Step by step
Values used
Evidence to verify = 4 TB; Hash algorithm = SHA-256 — 256-bit digest; Hash throughput per core = 500 MB/s; Parallel hashing streams = 4 streams; Storage read ceiling = 1,200 MB/s; Verification passes = 2 passes; Images in the evidence set = 25 images
Evidence Integrity
Verification time = evidence bytes ÷ min(per-core throughput × streams, storage read ceiling), and total time multiplies by the number of passes.
Collision resistance
Collision resistance = digest length ÷ 2 bits, by the birthday bound — 128 bits for SHA-256.
Time for One Verification Pass
= 0.93 hours
Effective Throughput
= 1,200 MB/s
Time for All Passes
= 1.85 hours
Minutes per Image
= 2.2 minutes
Collision Resistance
= 128 bits
Limiting Factor
= Storage read speed — hashing capacity of 2000 MB/s is idle waiting on I/O
How it works
Hashing is embarrassingly parallel across separate images, so throughput scales with streams until the storage read rate saturates — which on anything other than local NVMe is usually the real limit. Collision resistance is half the digest length because of the birthday bound, which is why SHA-1's 80 bits is no longer defensible. The verification hash is what makes evidence admissible, and knowing that a full pass over four terabytes takes about an hour rather than a day is what stops verification being quietly skipped under deadline pressure.
Formulas
Evidence Integrity
Verification time = evidence bytes ÷ min(per-core throughput × streams, storage read ceiling), and total time multiplies by the number of passes.
- per-core throughput
- ≈500 MB/s with SHA-NI, ≈150 MB/s without
- streams
- Parallel hashing streams across images
- read ceiling
- Sustained read rate of the evidence storage
Collision resistance
Collision resistance = digest length ÷ 2 bits, by the birthday bound — 128 bits for SHA-256.
- digest length
- Hash output size in bits
- ÷ 2
- Birthday bound on collision search
Frequently Asked Questions
How is Evidence Integrity calculated?
Verification time = evidence bytes ÷ min(per-core throughput × streams, storage read ceiling), and total time multiplies by the number of passes. Hashing is embarrassingly parallel across separate images, so throughput scales with streams until the storage read rate saturates — which on anything other than local NVMe is usually the real limit. Collision resistance is half the digest length because of the birthday bound, which is why SHA-1's 80 bits is no longer defensible.
Why does Evidence Integrity matter?
The verification hash is what makes evidence admissible, and knowing that a full pass over four terabytes takes about an hour rather than a day is what stops verification being quietly skipped under deadline pressure.
What values do I need to enter?
This calculator takes 7 inputs: Evidence to verify, Hash algorithm, Hash throughput per core, Parallel hashing streams, Storage read ceiling, Verification passes, Images in the evidence set. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Is SHA-1 still acceptable for evidence?
No. Practical chosen-prefix collisions against SHA-1 have been demonstrated at modest cost, so an opposing expert can credibly challenge it. Use SHA-256, and if you must keep legacy SHA-1 values for continuity, record both.
Why hash more than once?
Each pass proves integrity at a different point in the custody chain: at acquisition to fix the baseline, before analysis to prove the working copy matches, and before disclosure to prove nothing changed while in your care. Each pass is a separate, timestamped custody record.