Encrypted machine learning

Can an AI keep
its memory private?

We’re building systems that learn and answer questions while their memory stays encrypted, with cryptographic proofs that let others check the work.

What we’re working on

18 projects and experiments

Encrypted learning

A learner that keeps learning

88 seconds

to answer across eight categories

The latest prototype sorts software issues into categories. You can teach it new examples, ask questions, and restart it without losing its memory. Each category keeps its eight most recent examples. A complete nine-category run included 18 teachings, three questions and two old examples being replaced; the encrypted scores matched the ordinary calculation throughout.

Read more
Proof systems

Faster proofs for encrypted learning

10m 38s

for 12 teachings, four questions and a restart

Encryption and proof systems often use different arithmetic, which makes checking the work expensive. We built a proof system using the same arithmetic as the encryption. It completes a two-category learning session with 3,200 proofs checked. Verification is still slower than simply repeating this small encrypted computation.

Read more
Proof systems

Checking every step of an encrypted calculation

116 proofs

for one complete nonlinear calculation

We repaired a bug that left the final row of a calculation unchecked. The corrected version proves a complete encrypted similarity calculation, including multiplication and rescaling. A more compact way to check number ranges reduces proof size by 8.19%; total proving time improves by 1.69%, with higher memory use.

Read more
Private AI

Adding memories can also expose them

One proposed design gave the software a key for adding new memories. Our calculation showed that combining that key with the answer keys would reveal all 576 changing coordinates of the model. That design needs a different way to add memories before it can protect them from its host.

Read more
Proof systems

Connecting the proof verifier to its mathematics

A verifier checks a large computation by sampling parts of a mathematical encoding. We connected its batching and folding calculations to a Lean theorem about the probability of accepting an invalid proof. The theorem assumes fresh independent randomness; connecting that assumption to the implemented hash-based transcript is further work.

Read more
Proof systems

Proving the learner’s arithmetic in Lean

The proposed Lean package covers learning arithmetic, execution schedules and parts of the cryptographic verifier across 72 modules. Lean checks the mathematical proofs mechanically. The package is available as a patch for the companion proof-system repository; connecting these theorems to the full native implementation remains work to do.

Read more
Proof systems

How often could a false proof pass?

The verifier samples a mathematical encoding instead of checking every step. Its chance of missing an error depends on the number of samples and the error-correcting model. The technical note compares those models and explains why an earlier security estimate was withdrawn.

Read more
Private AI

Planning several private steps in advance

2 steps

in a functional-encryption design

Functional encryption can let a key reveal a selected result without revealing the input. We use it in a two-step design where each private computation prepares an encrypted state for the next. The steps are set up backwards, so each knows how to encrypt for its successor. This requires the future steps to be planned and the setup secrets erased.

Read more
Proof systems

What a post-quantum design would cost

84 MB

per ciphertext in one sizing calculation

We studied a lattice-based functional-encryption design intended to resist quantum attacks. One sizing calculation gives about 84 MB per encrypted input and 86 GB of public matrices. Those estimates depend on unresolved construction constants; they show where the storage cost comes from and what needs to shrink before implementation.

Read more

Explore a topic

Who has the key?

Our current encrypted learner still has a key that can decrypt its whole memory. The application checks proofs before using that key, but the person holding it can bypass the application.

We want to replace that key with the ability to learn and answer only. That would let an AI keep private internal state even from the person running its computer. Finding a practical way to do this is a central part of the project.