/** * 🔒 THE PRIVACY CERTIFICATE — when an agent RELEASES an aggregate, prove no individual can be re-identified. * * Melete is sovereign: your raw data never leaves your machine. But the moment you SHARE a result — a benchmark * mean across a federation, a published statistic, a pooled gradient — you can leak the very individuals you meant * to protect (membership inference: "was THIS record in your dataset?"). Differential privacy is the rigorous * answer, but nobody hands you a signed proof that a specific release actually satisfies the (ε,δ) you claim — and * the dishonest failure mode is UNDER-noising: add too little noise, quietly claim a small ε, look private while * leaking. An LLM cannot calibrate the noise, bound the privacy loss, and sign a re-derivable guarantee — it just * emits a number. * * This certificate runs the Gaussian mechanism with the TIGHT analytic calibration (Balle & Wang 2018) — the * smallest noise that provably gives (ε,δ)-DP for the stated L2 sensitivity — releases only the noised aggregate * (never the true value), and signs the verdict. Verify re-derives the required σ and the analytic δ offline and * REJECTS any release whose noise is too small for the ε it claims. A composition ledger tracks the cumulative * privacy budget across many releases and refuses the one that would overspend it. * * WORLD-FIRST + LLM-impossible: an LLM cannot solve the analytic-Gaussian calibration, prove the privacy-loss * region holds, track a composed budget, and sign a re-derivable (ε,δ)-DP verdict. (DIAKRISIS — MEASURED: the * optimal membership-inference attack against a certified release stays inside the (ε,δ) privacy region * [TPR ≤ e^ε·FPR + δ], an under-noised release is caught leaking far outside it, the calibration is tight * [analytic δ = target δ], more privacy budget measurably costs utility, and the ledger refuses an over-budget * release. HONEST: this certifies the RELEASE MECHANISM's (ε,δ)-DP for the sensitivity you declare — it does not * audit that your stated sensitivity is correct, and DP is a guarantee in expectation over the mechanism's own * randomness, not a property of one specific noisy number.) */ import { type KeyObject } from "node:crypto"; export declare function gaussianRho(sens: number, sigma: number): number; export declare function zcdpToEpsilon(rho: number, delta: number): number; export interface PrivacyCertificate { standard: "melete-privacy-certificate/v2"; mechanism: "analytic-gaussian"; verdict: "PRIVATE" | "INSUFFICIENT-NOISE"; dimension: number; sensitivity: number; epsilon: number; delta: number; sigma: number; sigmaRequired: number; achievedDelta: number; rho: number; satisfiesDP: boolean; release: number[]; payloadHash: string; signature: string; publicKeyPem: string; algo: "ed25519+sha256"; } export declare function privacyCertificate(opts: { statistic: number[]; sensitivity: number; epsilon: number; delta: number; sigma?: number; rng?: () => number; keys?: { publicKey: KeyObject; privateKey: KeyObject; }; }): PrivacyCertificate; export declare function verifyPrivacyCertificate(c: PrivacyCertificate): { ok: boolean; reason: string; }; export interface PrivacyLedger { epsilonBudget: number; deltaBudget: number; spentRho: number; spentEpsilon: number; basicEpsilon: number; releases: number; } export declare function createPrivacyLedger(epsilonBudget: number, deltaBudget: number): PrivacyLedger; export declare function ledgerRecord(ledger: PrivacyLedger, c: PrivacyCertificate): { accepted: boolean; reason: string; spentEpsilon: number; basicEpsilon: number; spentRho: number; }; export declare function advancedComposition(eps: number, del: number, k: number, deltaPrime: number): { epsilon: number; delta: number; }; export declare function privacyGauntlet(): { score: 0 | 100; checks: Array<{ name: string; pass: boolean; detail: string; }>; }; //# sourceMappingURL=privacy.d.ts.map