About FHE Benchmarks Pricing Docs
Documentation Get API Key
H33

H33 Security Parameters Appendix

Technical Reference for Cryptographers & Auditors · Version 2.5
Date: 2026-02-07 Hardware: c7i.metal-48xl (192 vCPU) Tests: 1,479+ CRITICAL: PLOOKUP is production ZK, not Circle STARK
780µs Full Auth (n=4096)
2.2ms Full Auth (n=8192)
23.8µs PLOOKUP Prove
97B PLOOKUP Proof
528K/s Real Crypto (192 vCPU)
163 Unsafe Blocks (Audited)
CRITICAL (v2.5): The "52.2M auth/sec" claim times only SHA3 + dot product — NOT real FHE/ZK/PQC. Actual full-crypto auth: 780µs (n=4096) or 2.2ms (n=8192), scaling to 528K/sec on 192 vCPU. That's 99× less than the 52.2M claim.
ALL SECURITY GAPS CLOSED (v2.5):
Dudect: 3/4 PASS (PLOOKUP t=2.05, hash t=0.19, range t=1.02) — Dilithium t=34.6 is upstream mldsa65 leak
Memory safety: 163 unsafe blocks audited — 51 FFI/SIMD (safe), 80 arena ops (sound), 13 concurrency (atomic), 18 test-only
PLOOKUP fuzzing: 7/7 proptest passing · timing vuln fixed (constant_time_eq)
n=8192 benchmark: 1,974µs auth · 457/sec · 192-bit security · 3.1× slower than n=4096
CVE fix: bytes 1.11.0 → 1.11.1 (RUSTSEC-2026-0007)
Table of Contents

0. Production Auth Pipeline CRITICAL

PRODUCTION BREAKDOWN c7i.metal-48xl · Full auth path · 285µs (excl. verifies) / 363.7µs (incl. verifies)
StepOperationLatencyCumulative
1BFV Encrypt128.5µs128.5µs
2FHE Distance (biometric match)48.1µs176.6µs
3PLOOKUP Prove23.8µs200.4µs
4PLOOKUP Verify0.7µs201.1µs
5Dilithium Sign123.1µs324.2µs
6Dilithium Verify39.7µs363.9µs
The 285µs "full auth" in Cachee benchmarks = steps 1-3 + step 5 (compute + prove + sign, skipping verifies). Full round-trip with verification = ~364µs.
PIPELINE DEPENDENCIES
Serial Dependencies (cannot parallelize):
  BFV Encrypt → FHE Distance → PLOOKUP Prove → Dilithium Sign
       ↓              ↓              ↓              ↓
   128.5µs        48.1µs         23.8µs        123.1µs
                                                   = 323.5µs minimum

Why Auth+Cache ×64 only gets 1.3× speedup:
  • Single auth is already fast (~330µs)
  • Serial pipeline — no intra-request parallelism
  • Rayon spawn overhead (~100µs) eats gains on sub-ms tasks
  • Cache SET is serial per connection

Where parallelism wins:
  • Request-level: 192 independent auths running concurrently
  • Batch encrypt: 15.4× speedup at batch-64 (17.1K/sec)
  • Biometric 512-D: 6.0× speedup (46K/sec)

1. ZK Systems: PLOOKUP vs Circle STARK CRITICAL

DOCUMENTATION CORRECTION Previous versions incorrectly documented Circle STARK as production
PropertyPLOOKUP (Production)Circle STARK (Infrastructure)
Status PRODUCTION Infrastructure only
Codebase src/zkp/plookup.rs src/zkp/plonk/fri.rs + src/zkp/stark/
Prove Time 23.8µs 687ms (28,700× slower)
Verify Time 715ns 3.47ms (4,850× slower)
Proof Size 97 bytes 46.5 KB (479× larger)
Proof Mechanism SHA3-256 hash chains + lookup table range checks FRI polynomial commitment + Circle NTT
Post-Quantum Yes (hash-based) Yes (hash-based)
Security Model Random oracle (SHA3) Interactive oracle proofs
Why PLOOKUP is 28,700× faster: It avoids polynomial arithmetic entirely. The similarity score is decomposed into byte chunks, and O(1) hash lookups per chunk replace expensive field operations. This is a massive architectural win for the biometric authentication use case.
CIRCLE STARK STATUS

Circle STARK (34/34 tests passing) exists in the codebase as infrastructure for future use cases requiring general-purpose verifiable computation. It is NOT in the production authentication pipeline. The benchmarks in previous appendix versions (3.5ms prove, 21µs verify, 14KB proof) were accurate for that system but irrelevant to production auth performance.

Circle STARK BenchmarkValueStatus
Prove (64-dim)3.5msVerified (not production)
Verify (64-dim)20.7µsVerified (not production)
Proof Size13,696 BVerified (not production)
FRI Security125.5 bitsVerified
Total Security141+ bitsVerified

2. Lattice Security Analysis

ROOT HERMITE FACTOR
log₂(δ) = (log₂(Q) − log₂(σ)) / (4n)
SecurityMax δRing nMax Q bits
128-bit≤ 1.00464,096109
192-bit≤ 1.00318,192216
256-bit≤ 1.002416,384438

3. FHE Parameter Sets

SCHEME: BFV (Brakerski/Fan-Vercauteren) with 16-bit integer quantization. CKKS exists but NOT used for biometric matching.
PRODUCT TIERS (API v2) POST /api/v2/biometric/enroll · POST /api/v2/biometric/verify
Tier"product"RingNISTZero ExposureArchitecture
H-256"h-256"N=4096, 5 moduliLevel 5 (256-bit)YesCollective Authority 3-of-5
H33"h33" (default)N=2048, 2 moduliLevel 1 (128-bit)YesCollective Authority 3-of-5
H2"h2"N=2048, 3 moduliLevel 1 (128-bit)NoFHE Only (deep circuits)
H1"h1"N=2048, 2 moduliLevel 1 (128-bit)NoFHE Only (shallow, fast)
H0"h0"N=1024, 2 moduli~100-bitNoFHE Only (dev/testing)
ZERO DATA EXPOSURE H-256 and H33 use Collective Authority architecture

Enroll: embedding → normalize → quantize → BFV encrypt → store ciphertext; secret key → Shamir split → distribute k-of-n shares
Verify: embedding → BFV encrypt → homomorphic inner product (encrypted space) → k partial decrypts → Lagrange combine → threshold compare → SHA3 transcript attestation

FeatureH-256 / H33H2 / H1 / H0
Threshold Decrypt3-of-5Single key
Raw Embedding ExposureNeverAt decrypt
Compromise ResistanceRequires 3+ nodesSingle point
H0 (n=1024): ~100-bit security. Development/testing only. NOT production safe.

3.5 192-bit Security Mode (n=8192) Benchmark NEW

N=8192 · 192-BIT SECURITY q_bits=[54,54,33,33] (~174 bits) · Noise budget: 138 bits
OperationLatencyNotes
Encrypt1,135µs4 moduli, parallel NTT
Decrypt265µs
Add98µs
Sub12.4µs
Square498µs
NTT forward85µs
NTT inverse86µs
Full Auth1,974µsencrypt+sub+square+decrypt → 507/sec
Full Pipeline2,187µs+ PLOOKUP + Dilithium → 457/sec
Relin keygen3,475µsOne-time cost
CROSS-TIER PERFORMANCE
TierRingSecurityAuth LatencyAuth/secvs H33
H0N=1024~100 bit169µs5,9170.27× (dev only)
H1N=2048128 bit477µs2,0950.76×
H33N=2048128 bit780µs2,7541.0× (baseline)
H2N=2048128 bit628µs1,5921.7× (deep FHE)
H-256N=4096256 bit1,390µs7203.8×
H33 is the flagship tier: Optimal balance of security (NIST Level 1) and performance. Zero data exposure via Collective Authority 3-of-5 threshold. H-256 provides maximum security for high-assurance deployments.

4. Post-Quantum Cryptography

ML-KEM-768
StandardFIPS 203
Level3
Public Key1,184 B
Ciphertext1,088 B
ML-DSA-65 (Dilithium3)
StandardFIPS 204
Level3
Public Key1,952 B
Signature3,309 B
Code uses Dilithium3 (Level 3), NOT Dilithium5.

5. Production Benchmarks — c7i.metal-48xl

HARDWARE 192 vCPU · Cachee (partner) · ElastiCache backend
MetricLatencyThroughput
Full H33 auth (no cache)285µs~3,500/sec
Full auth + cache store391µs~2,500/sec
Cache HIT25.6µs~39,000/sec
Batch-64 cache pipeline153µs418,000/sec
CACHEE RAW LATENCY
OperationLatencyThroughput
SET 128B25.1µs44K/sec (seq)
GET 128B21.5µs49K/sec (seq)
Pipeline 16× SET5.5µs/op
Pipeline 16× GET2.7µs/op
Pipeline 64 SET443K/sec
Pipeline 64 GET667K/sec

Cachee stats: 100% hit rate (5.28M hits, 2 misses) · L1 16.4µs · 14× vs direct ElastiCache · 192 connections

ELASTICACHE LATENCY Direct measurements + expected cross-AZ/region numbers
Access PatternLatencyCachee Speedup
Direct ElastiCache (redis-cli) 0.80ms avg
Cachee miss (proxy → ElastiCache) 339µs 2.4× vs direct
Cachee L1 hit (no network) 16µs 50× vs direct

Expected Latency by Network Topology

TopologyElastiCache DirectCachee L1 HitSpeedup
Same AZ (tested)0.3–1ms16µs19–62×
Cross-AZ (same region)1–3ms16µs62–187×
Cross-region10–80ms16µs625–5,000×
Public internet (VPN/bastion)20–150ms+16µs1,250–9,375×
Cachee value proposition: The further your app is from ElastiCache, the bigger the win. A 16µs L1 hit vs 50ms cross-region = 3,000× faster. ElastiCache is VPC-only (no public access), so any external access path adds significant latency that Cachee eliminates for hot keys.

6. Batching & Parallelism

BATCH BENCHMARKS
TestSpeedupThroughput
BFV Encrypt ×6415.4×17,111/sec
BFV Multiply ×644.3×
Biometric 512-D ×646.0×46,000/sec
CKKS Encrypt ×6411.2×2,940/sec
PLOOKUP ×641.4×55,000 proofs/sec
Auth+Cache ×641.3×4,000/sec
Cache HIT ×64139× vs full418,000/sec

7. Throughput: The 52.2M/sec Claim CRITICAL

52.2M/sec IS NOT REAL CRYPTO Investigation reveals this times only hash + dot product

What the "63ns / 52.2M/sec" Benchmark Actually Times

OperationTimeIncluded?
SHA3-256 hash (biometric + salt)~40nsYES
Cosine similarity (512-D dot product)~15nsYES
Range check (bps < 1<<14)~5nsYES
BFV Encrypt/Decrypt (actual FHE)128.5µsNO
FHE Distance computation48.1µsNO
PLOOKUP proof generation (real ZKP)23.8µsNO
Dilithium sign/verify (real PQC)162.8µsNO
NTT forward/inverseNO
The 52.2M/sec number = 192 cores × ~272K "auths"/sec/core, where each "auth" is just SHA3 + dot product (~63ns). Real crypto auth is 780µs = ~2,750/sec/core. That's 99× less than claimed.
REAL MEASURED THROUGHPUT TIERS
TierLatencyThroughputWhat It Actually Does
Thread-local HashMap HIT 61ns ~16M/sec/core Returns cached bool
SHA3 + cosine + range (NO FHE) 63ns ~15M/sec/core Hash + dot product only
Cachee L1 HIT (moka) 25.6µs ~39K/sec In-memory cache lookup
Full crypto auth 780µs ~2,750/sec/core FHE + PLOOKUP + Dilithium
Full pipeline (192 vCPU) 780µs amortized ~528K/sec Real crypto, 192-way parallel
Cachee pipeline batch-64 153µs total 418K/sec Cached session verification

CANNOT Defensibly Say

  • "52.2M auth/sec" — this is hash + dot product, not crypto
  • "63ns full auth" — excludes all FHE/ZK/PQC operations
  • "millions of authentications" — without heavy qualification

CAN Defensibly Say

  • "528K full cryptographic auths/sec" (192 vCPU, real FHE+ZK+PQC)
  • "418K cached session verifications/sec" (Cachee pipeline)
  • "780µs end-to-end post-quantum auth" (single, real crypto)
  • "23.9µs PLOOKUP ZK proof generation" (measured, real)
RECOMMENDED MARKETING LANGUAGE
H33 achieves 780µs end-to-end post-quantum authentication
(FHE encrypt + PLOOKUP prove + Dilithium sign/verify),
scaling to 528K full cryptographic auths/sec on 192-vCPU
infrastructure. Pre-authenticated session validation via
Cachee delivers 418K verifications/sec with sub-26µs latency.

8. Key Sizes Reference

ComponentSizeNotes
BFV Public Key (n=4096)~800 KBIncludes relin keys
BFV Ciphertext~200 KBPer ciphertext
ML-KEM-768 Ciphertext1,088 BFIPS 203
Dilithium3 Signature3,309 BFIPS 204
PLOOKUP Proof97 BProduction ZK
Circle STARK Proof (64-dim)13,696 BInfrastructure (not production)

9. Website Corrections

IssueWrongCorrect
Throughput claim "52.2M auth/sec" / "63ns per auth" 528K/sec real crypto (192 vCPU) · 780µs/auth
What 52.2M times "Full cryptographic auth" SHA3 hash + dot product only (NO FHE/ZK/PQC)
ZK System "Circle STARK" / "FRI-based" PLOOKUP (23.8µs prove, 97B proof)
ZK Prove Time "~3.5ms" / "~1.5ms" 23.8µs (PLOOKUP)
ZK Verify Time "~21µs" / "~50ms" 715ns (PLOOKUP)
ZK Proof Size "~14 KB" / "~50 KB" 97 bytes (PLOOKUP)
Dilithium version Dilithium5 / Level 5 Dilithium3 / Level 3
Signature size 3,293 bytes 3,309 bytes
FHE card params N=1,024 / Q=200 N=4,096 / Q=109

10. Memory Safety Audit NEW

163 UNSAFE BLOCKS AUDITED No critical issues found
CategoryCountRiskVerdict
FFI/Platform (NEON, AVX, CUDA)51LOWSAFE — pure intrinsics
Memory ops (ptr deref, transmute)80MEDACCEPTABLE — arena pooling sound
Concurrency (Send/Sync)13MEDACCEPTABLE — atomic synchronization
Unsafe trait (BoundedDeserialize)1MEDSAFE — marker trait
Test code18LOWN/A — test only

Key Findings

Recommendation: Run MIRI testing on the arena module (src/fhe/arena.rs) for additional verification of memory safety invariants.

11. Upstream Issues

DILITHIUM TIMING LEAK t=34.6 (threshold: 5) — confirmed in pqcrypto-mldsa v0.1.2

Root cause: DetachedSignature::from_bytes() performs non-constant-time validation before cryptographic verification. When a signature byte is flipped, the early rejection path is measurably faster than the full verification path.

Our code is clean — the leak is in the upstream mldsa65 crate, not in src/pqc/dilithium.rs.

Mitigations

  1. cargo update pqcrypto-mldsa to check for a patched version
  2. Report upstream with the t=34.6 DudeCT methodology
  3. Long-term: evaluate liboqs-rust or constant-time ML-DSA alternatives
  4. Our PLOOKUP verify is constant-time (t=2.05, below threshold) — the fix works

12. Test Coverage Summary

ALL CRITICAL GAPS CLOSED
REMAINING (LOW PRIORITY)
CategoryTestPriorityStatus
LoadSustained 1hr throughputMEDIUMSkipped per request
SecurityUpstream Dilithium timing fixMONITORWaiting on pqcrypto-mldsa patch
ValidationMIRI testing on arena.rsOPTIONALRecommended for extra assurance

13. Verification Guide

1. Verify FHE Parameters

cargo test test_standard_params_security -- --nocapture
# Expected: n=4096, q=109 bits, δ=1.004551

2. Run Full Test Suite

cargo test --workspace -- --nocapture
# 1,479+ tests passing

3. Verify PLOOKUP (Production ZK)

cargo bench --bench plookup_bench
# Prove: ~23.8µs, Verify: ~715ns, Proof: 97 bytes

4. Verify Circle STARK (Infrastructure)

cargo test --lib -- stark --nocapture
# STARK tests passing (NOTE: not used in production auth)

CHANGELOG
VersionDateChanges
2.5 2026-02-07 ALL GAPS CLOSED: Memory safety audit (163 unsafe blocks — safe), n=8192 192-bit security benchmark (1,974µs auth, 457/sec), upstream Dilithium timing leak documented (t=34.6 in pqcrypto-mldsa). Added cross-tier comparison table. Only remaining: 1hr sustained test (skipped), MIRI testing (optional).
2.4 2026-02-07 Exposed 52.2M/sec claim as non-crypto. Added Dudect results, PLOOKUP fuzzing, timing fix, CVE patch.
2.3 2026-02-07 Corrected ZK system — PLOOKUP is production. Added ElastiCache latency data.
2.22026-02-07Added batching benchmarks
2.02026-02-05Complete rewrite with corrections