Skip to content

Zero-Trust FHE Engine

SecurityEncryptionZero-TrustCompliance
Roadmap Planned · not yet usable · verify before relying on it

The Zero-Trust engine is a planned capability that lets you store selected columns as ciphertext and still run real queries against them. The goal: operations such as SUM, AVG, and vector similarity execute over the encrypted values, so the plaintext never materialises on the server. The client holds the keys and decrypts only the final result.

The aim is to let regulated workloads — healthcare records, financial positions, and similar — run analytics without granting the database operator any plaintext access. Encrypted columns are designed to sit alongside ordinary columns in the same table, so you can keep most columns plain (for fast filtering and joins) and reserve encryption for the values that must stay private.

flowchart LR
  classDef a fill:#1f2640,stroke:#7c5cff,color:#e8eaf0
  classDef b fill:#1f2640,stroke:#00d4ff,color:#e8eaf0
  classDef g fill:#1f2640,stroke:#4ade80,color:#4ade80

  Q[Client query]:::a --> R[Run over<br/>encrypted columns]:::b
  R --> O[Encrypted result]:::g
  O --> C[Client decrypts<br/>locally]:::g
  • Compute over ciphertext — the intended model runs aggregations, filters, and vector similarity without decrypting on the server.
  • Per-column encryption — choose which columns are encrypted and mix encrypted and plain columns in one table.
  • Operator gains no plaintext — even a database administrator role would see only ciphertext for protected columns.

The intended surface marks sensitive columns as encrypted in DDL; standard SQL then drives queries over them. (Syntax is illustrative and may change.)

-- Encrypted columns sit alongside ordinary columns.
CREATE TABLE patient_visits (
id BIGINT,
visit_date DATE,
diagnosis TEXT ENCRYPTED,
cost_usd DECIMAL(12,2) ENCRYPTED,
embedding TENSOR(768) ENCRYPTED
);
-- Aggregations are intended to execute on ciphertext; the server never
-- sees plaintext.
SELECT SUM(cost_usd) FROM patient_visits WHERE visit_date >= '2026-01-01';
-- Encrypted vector search — both the stored embedding and the query
-- vector stay encrypted end to end.
SELECT id
FROM patient_visits
ORDER BY cosine_distance(embedding, :query_vec_encrypted)
LIMIT 10;

The client decrypts the final result with its own key. The design intent is that the server only ever holds ciphertext for protected columns — even when summing or ranking by similarity.

TermMeaning
Encrypted columnA column whose values are stored as ciphertext rather than plaintext.
Encrypted vectorA tensor column kept encrypted, intended to enable private similarity search.
Client-side decryptionThe client, not the server, holds the keys and decrypts the final result.
Per-table encryption policyChoosing which columns in a table are encrypted, leaving others plain.