feat/reusable-fuzzy-extractor #1

Merged
hugooconnor merged 0 commits from refs/pull/1/head into main 2026-02-23 02:01:04 +00:00
hugooconnor commented 2026-02-23 02:00:50 +00:00 (Migrated from codeberg.org)

This branch adds a reusable fuzzy extractor for deterministic biometric commitments and deploys the web demo to Cloudflare Pages + Fly.io.

Reusable Fuzzy Extractor

  • Core crypto modules: GF(256) finite field arithmetic, Reed-Solomon error correction, and a Juels-Wattenberg fuzzy commitment scheme
    (core/src/crypto/{gf256.rs, reed_solomon.rs, fuzzy_commitment.rs})
  • Construction: Code-offset sketch + RS over GF(256) + SHA-256, with default params of t=40 per block (~75 correctable positions out of 512,
    2800-bit entropy)
  • Performance (release, Apple Silicon): Gen ~21us, Rep ~93us
  • Demo endpoints: POST /api/fuzzy/{enroll,verify,check-unique} with FuzzyCommitment enrollment mode opt-in

Web Demo Deployment

  • Backend on Fly.io: Hardened Dockerfile (nightly Rust, non-root user, multi-stage build), environment-based config (PORT, BIND_ADDRESS,
    ALLOWED_ORIGINS), health check at /api/health
  • Frontend on Cloudflare Pages: Static SPA deploy with VITE_API_URL pointing to Fly.io backend, wrangler.toml config
  • Custom domain: sable.anuna.io via Cloudflare CNAME

Other Improvements

  • Relaxed spatial liveness thresholds for 4-quadrant mode
  • Show flash pattern used during liveness on authentication screen
  • Architecture diagram (ABSM + fuzzy commitment)
  • Fixed webcam race condition where stopWebcam() could null the overlay canvas while async face detection was in-flight

Commits

3a8292b fix: relax spatial liveness thresholds for 4-quadrant mode
be12b3a feat: show flash pattern used during liveness on authentication screen
df548b2 feat: add deterministic fuzzy commitment and ABSM architecture diagram
d21629f feat: add fuzzy commitment mode to web demo enrollment UI
23e70c5 feat: add reusable fuzzy extractor for deterministic biometric commitments
e21d509 feat: deploy web demo to Cloudflare Pages + Fly.io

29 files changed, +4731 / -926

This branch adds a reusable fuzzy extractor for deterministic biometric commitments and deploys the web demo to Cloudflare Pages + Fly.io. Reusable Fuzzy Extractor - Core crypto modules: GF(256) finite field arithmetic, Reed-Solomon error correction, and a Juels-Wattenberg fuzzy commitment scheme (core/src/crypto/{gf256.rs, reed_solomon.rs, fuzzy_commitment.rs}) - Construction: Code-offset sketch + RS over GF(256) + SHA-256, with default params of t=40 per block (~75 correctable positions out of 512, 2800-bit entropy) - Performance (release, Apple Silicon): Gen ~21us, Rep ~93us - Demo endpoints: POST /api/fuzzy/{enroll,verify,check-unique} with FuzzyCommitment enrollment mode opt-in Web Demo Deployment - Backend on Fly.io: Hardened Dockerfile (nightly Rust, non-root user, multi-stage build), environment-based config (PORT, BIND_ADDRESS, ALLOWED_ORIGINS), health check at /api/health - Frontend on Cloudflare Pages: Static SPA deploy with VITE_API_URL pointing to Fly.io backend, wrangler.toml config - Custom domain: sable.anuna.io via Cloudflare CNAME Other Improvements - Relaxed spatial liveness thresholds for 4-quadrant mode - Show flash pattern used during liveness on authentication screen - Architecture diagram (ABSM + fuzzy commitment) - Fixed webcam race condition where stopWebcam() could null the overlay canvas while async face detection was in-flight Commits 3a8292b fix: relax spatial liveness thresholds for 4-quadrant mode be12b3a feat: show flash pattern used during liveness on authentication screen df548b2 feat: add deterministic fuzzy commitment and ABSM architecture diagram d21629f feat: add fuzzy commitment mode to web demo enrollment UI 23e70c5 feat: add reusable fuzzy extractor for deterministic biometric commitments e21d509 feat: deploy web demo to Cloudflare Pages + Fly.io 29 files changed, +4731 / -926
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
anuna-research/sable!1
No description provided.