Secure Multi-Party Computation for Intelligence Sharing: When You Need the Answer But Can't Show Your Work
T. HoltIntelligence sharing is a problem that predates computers. You want the answer, does this entity appear in both our datasets?, but you can't hand over your list without burning sources, and neither can the other party. Historically, this was solved with liaison officers, memoranda of understanding, and a lot of friction. None of those scale.
Photo by Brett Sayles on Pexels.
Secure multi-party computation (SMPC) offers a different path. It lets two or more parties jointly compute a function over their private inputs without any party learning anything about the other's raw data, only the result. If that sounds like magic, the math is about forty years old. What's changed is that it's finally becoming practical enough to wire into operational pipelines.
What SMPC Actually Does (And Doesn't Do)
Private set intersection (PSI) is the most immediately useful SMPC primitive for intelligence work. Two organizations each hold a set of identifiers, hashed selectors, entity IDs, infrastructure fingerprints, whatever, and PSI tells them which elements appear in both sets. Neither party sees the other's full list. Neither learns anything about non-intersecting elements.
This is not a theoretical exercise. Financial intelligence units use PSI variants to screen transactions against partner watchlists without sharing the lists themselves. The same approach applies when two signals collection programs need to deconflict targeting, or when two national CERTs want to know whether they're tracking the same intrusion set without exposing their full sensor coverage.
What SMPC does not do: it doesn't protect you from a compromised endpoint, a coerced participant, or your own poor key management. The cryptography is sound; the operational security surrounding it is your problem.
graph TD
A[Party A Dataset] --> C{PSI Protocol}
B[Party B Dataset] --> C
C --> D[Intersection Result Only]
D --> E(Party A receives result)
D --> F(Party B receives result)
A -.->|Raw data never leaves| A
B -.->|Raw data never leaves| B
The Engineering Reality
Running SMPC at operational tempo isn't just a matter of importing a library. Three things will hurt you.
Latency. Most SMPC protocols require multiple rounds of communication between parties. Each round adds network latency. For a batch job running nightly against a partner's threat feed, this is manageable. For anything approaching real-time enrichment, you need to be realistic about what the protocol costs, and PSI implementations on datasets of a few million records can take minutes, not milliseconds.
Input integrity. The computation is only as good as the data going in. If one party is feeding in unvalidated, poorly normalized identifiers, the intersection will miss matches that should be there. Garbage in, garbage out, but worse, you won't know the garbage was there. Standardizing on a shared hashing scheme and normalization pipeline before you start is not optional.
Trust establishment. SMPC removes the need to share raw data, but it doesn't remove the need to trust that the other party isn't running a malicious protocol implementation designed to leak information through query patterns. You need a verified software build on both ends and some agreement about who audits it. That's a supply chain problem, not a crypto problem.
Libraries worth knowing: Microsoft SEAL for homomorphic encryption use cases, OpenMined's PySyft for federated learning adjacent workflows, and the MP-SPDZ framework for more general MPC. None of them are drop-in solutions. All of them require someone on your team who understands what they're doing.
Where This Fits in an Intel Pipeline
The most defensible place to insert SMPC is the enrichment layer, specifically, any enrichment step that requires querying a dataset you don't own and can't be granted full access to. Instead of requesting a bulk export of a partner's IOC database (which creates a data custody problem and a classification headache), you run PSI against it on a scheduled basis and receive only the matches.
Paired with differential privacy on aggregate analytics, so that statistical queries over combined datasets don't leak individual records through repeated queries, you get something that starts to resemble a principled approach to collaborative intelligence without the mutual exposure.
That pairing matters. PSI alone tells you what intersects. Differential privacy protects against an adversary who runs hundreds of slightly-varied queries to reconstruct what didn't intersect. Both are necessary if the threat model includes a sophisticated partner who might, under different circumstances, be an adversary.
The Organizational Problem
Here's the honest assessment: most intelligence sharing failures aren't technical. They're organizational. Two teams can't agree on who owns the shared infrastructure. Legal can't get comfortable with a protocol they don't understand. The MOU takes eighteen months.
But having the technical capability built and demonstrated matters. It's easier to get organizational buy-in for a sharing arrangement when the answer to "what does the other party see?" is "provably nothing except the intersection" rather than "we trust them not to look."
Trust, but verify, except now the cryptography does the verifying.
Get Intel DevOps in your inbox
New posts delivered directly. No spam.
No spam. Unsubscribe anytime.