Reproducible Benchmarks

Don't Trust Us.
Run It Yourself.

Every number on this page is reproducible. Clone the repo, launch an instance, and verify. Post-quantum authentication at 1.29M auth/sec with full FHE+ZKP+Dilithium pipeline.

Key Metrics

Sustained production numbers on AWS Graviton4

1,375µs
FHE Batch
Encrypt + inner-product (BFV, N=4096)
0.067µs
ZKP STARK Lookup
Verification time
240µs
Dilithium Attestation
ML-DSA sign + verify
32
Users / Ciphertext
SIMD batching (4096 slots / 128 dims)

Pipeline Breakdown

Single API call, fully post-quantum secure

Stage1

FHE Batch

BFV inner product (32 users/CT)

1,375µs
Lattice (PQ)
Stage2

ZKP

STARK Lookup verification

0.067µs
SHA3-256 (PQ)
Stage3

Attestation

Dilithium sign + verify

240µs
ML-DSA (PQ)
TotalΣ

32-User Batch

~50µs per authentication

~1,615µs
100% PQ

Hardware Environment

Production benchmark configuration

Instance c8g.metal-48xl
CPU AWS Graviton4 (Arm Neoverse V2)
vCPUs 192
Memory 377 GiB
Workers 96 (Rayon thread pool)
Allocator System (glibc) — NOT jemalloc
Rust 1.77+ nightly
NTT Montgomery radix-4, Harvey lazy reduction
FHE Mode biometric_fast() — N=4096, Q=56-bit, t=65537

Reproduce It

Three commands. That's it.

bash
# 1. Launch instance (~$2/hr spot)
aws ec2 run-instances --instance-type c8g.metal-48xl --image-id ami-0abcdef1234567890

# 2. Clone and build
git clone https://gitlab.com/digital-scif/scif-backend.git
cd scif-backend && cargo build --release

# 3. Run the benchmark
cargo run --release --example graviton4_bench

Methodology

How we measure

Criterion.rs

Statistical benchmarking framework with confidence intervals and outlier detection.

60-Second Runs

Sustained measurement windows to capture steady-state performance, not burst.

Pinned Cargo.lock

Exact dependency versions locked for bit-for-bit reproducibility.

System Allocator

glibc malloc, not jemalloc. jemalloc showed 8% regression on Graviton4.

Full Pipeline

All measurements include complete FHE + ZKP + attestation overhead. No cherry-picking.

Benchmark History

All runs on c8g.metal-48xl, 96 workers

Date Allocator NTT Mode Batch µs Auth/sec Notes
Feb 14, 2026 system standard 1,375 1,291,207 Production baseline
Feb 14, 2026 #2 jemalloc fused 1,372 1,183,803 jemalloc 8% regression
Feb 14, 2026 #3 system fused 1,399 1,210,820 L1 cache pollution