Live demo · Query-private vector search
The database is public. Your question does not have to be. FHE lets a server calculate on encrypted data without decrypting it.
Loading the application. If this message stays visible, check that the local server is running and reload this page.
HTTPS protects the connection. FHE keeps the query encrypted during calculation too. Comparison only: no plaintext request is sent here.
Choose a group to generate a nearby sample vector. We will find the closest records in a seeded, synthetic database. This is not text search or a real customer database.
Search in English. This lightweight demo matches words, not meaning.
Cluster membership is synthetic metadata, not a guarantee of the nearest match.
No query sent yetReal ciphertext appears when you run the search.No response received yetThe reply is encrypted too.No receipt yet
Previews use real ciphertext, not generated animation. Fingerprints identify the first query and first score of the first batch; the server independently hashes those bytes. Compare the receipt in Network. This is a transport check, not a proof of correct computation or an independent security audit.
This small public catalog could also be searched entirely locally. The demo shows encrypted server computation, not a need for FHE at this size. Preset questions are public examples.
Only titles and short summaries are indexed, not full source pages. Opening a source visits an external website; your query is not included in the link.
Highest dot product after local decryption. Not a probability.
These timings overlap; do not add HTTP wait and server compute. Bytes exclude HTTP headers and the WASM download. Cancellation does not stop an in-flight server batch.
The API receives encrypted query vectors, not their plaintext values. This demo uses reproducible sample queries with public seeds; they are not secrets. A real application must supply private client-side input.
Random vectors are generated on the server (seeded) and stored in plaintext. Similarity = dot product.
Generated in your browser, normalized, packed into CKKS slots, encrypted, and sent to the server.
Server computes encrypted dot‑products with rotate‑sum and returns encrypted scores.
Browser decrypts scores locally and shows Top‑K results.