Proxy re-encryption, explained from zero
No cryptography background assumed. Six diagrams, three of them step-through, that take you from "the relay sees everything" to "the relay can't see anything, and seizing it proves nothing."
The trusted-relay problem
Every widely used command-and-control framework concentrates trust, and therefore evidence, in its relay server.
Text equivalent
- The operator sends commands to a central team server; the beacon collects them and returns results the same way.
- The server terminates encryption, so it holds the plaintext queue, session keys, and complete traffic history.
- When that server is seized or monitored, its blast radius covers everything: every command, key, and result it ever relayed.
Key insight
TLS does not fix this. TLS protects traffic from outside observers, but the relay itself terminates the encryption, so the relay can still read everything. The trust problem lives inside the encrypted channel.
First, ordinary public-key encryption
The vocabulary for everything after: public key pk, secret key sk, ciphertext.
Text equivalent
- Alice takes Bob's public key, which Bob publishes openly, and encrypts her message with it.
- The result is a ciphertext: readable by no one who lacks the matching secret key.
- Bob, and only Bob, opens it with his secret key.
Key insight
Public-key encryption removes the need to share secrets, but it locks each ciphertext to exactly one recipient. What if the recipient changes mid-route?
The core trick: re-encryption
Alice hands a semi-trusted proxy a special key that transforms ciphertexts without decrypting them. Step through it.
Text equivalent
- Alice encrypts a message under her own public key.
- She derives a re-encryption key from her secret key and Bob's public key, and delegates it to a semi-trusted proxy.
- The proxy uses that key to transform the ciphertext into one addressed to Bob; it never sees plaintext and holds no decryption key.
- Bob decrypts with his own secret key.
Key insight
The proxy is doing real cryptographic work, not copying plaintext. Re-encryption changes who can open a ciphertext without opening it. A compromised proxy exposes neither the message nor the keys.
Threshold splitting: no single point of seizure
One proxy is still one target. So the re-encryption key is split into fragments: any m of n suffice, and fewer than m reveal nothing.
Text equivalent
- The re-encryption key is split into five fragments called k-frags, one held by each of five workers.
- The threshold is set at three: any three k-frags suffice to re-encrypt a ciphertext.
- Grey out (seize, block, or lose) any two workers: the remaining three still complete every re-encryption.
- The two seized fragments, below threshold, reveal nothing about the key or the traffic.
Key insight
This is the property that breaks takedown economics. There is no server whose seizure is decisive, and replacement workers cost minutes and near-zero dollars, as the simulation demonstrates.
Applied to command infrastructure
Map the roles and the whole model becomes the Novich0k research track: operator is Alice, beacon is Bob, edge workers are the proxies.
Text equivalent
- Operator = Alice: encrypts commands and delegates re-encryption rights.
- Edge worker pool = threshold proxies: each worker holds one k-frag, any m suffice.
- Beacon = Bob: the only party that can decrypt.
- Commands flow down through the blind pool; results flow up the same way.
- The relay's entire holdings (k-frags plus ciphertext blobs) are indistinguishable from random data.
What the defender still sees
Blind relays remove content. They do not remove physics. These residual signals are the bridge to the detection work.
Text equivalent
- Timing: when requests arrive and leave each relay.
- Byte counts: request and response sizes, even when contents are unreadable.
- Cadence: the rhythm of check-ins against human and machine baselines.
- TLS fingerprint: the client library signature, which differs from browsers.
- Relay churn: how often edge hostnames appear and vanish.
- DNS patterns: the shape of disposable-worker name resolution.
Detection note
Every one of these signals is developed into a hunting hypothesis with a confidence rating on the Vileblood page, the defensive payload of this research.
Notation used on this site
| Symbol | Meaning |
|---|---|
pk / sk | Public key / secret key of a party (A = operator, B = beacon) |
rk(A→B) | Re-encryption key: transforms ciphertexts addressed to A into ciphertexts addressed to B |
k-frag | One threshold fragment of a re-encryption key, held by a single worker |
ct | Ciphertext: the encrypted payload (shown hatched in diagrams) |
m-of-n | Threshold: any m of n fragments suffice; fewer reveal nothing |
capsule / cFrag | Umbral library terms: the packaged ciphertext, and a worker's re-encrypted fragment of it |
Cryptography: Umbral proxy re-encryption on the secp256k1 curve: published, peer-adjacent, and library-available.
FURTHER READING · There Is No Handshake · Stateless Routing with HMAC