# Is it possible to encrypt a message's destination as well as its content?

I have imagined a way to break through any kind of censorship but since I don't have enough professional knowledge of cryptography I don't know whether it is feasible or not.

If there is a method that can only enables the recipient to know this message is for him, and when others catch this message they don't even know who will receive that, then no one can block a certain site unless he can decrypt it.

I hope some professionals can respond to this question and tell me if this is possible.

• I'm not sure which of these things you're asking about. $\;$ – user991 Jun 4 '15 at 3:28
• Your second paragraph is incorrect. With communication that only makes the receiver anonymous, it becomes harder to block communication out to a specific target (but not impossible, since you can just block all communication of that type). However, getting through censorship means you have to protect communications from a blocked source as well, and receiver-anonymous communications don't necessarily let you do that. For that, you need to mask the sender. – cpast Jun 4 '15 at 3:36
• sounds like a DDOS nightmare – Richie Frame Jun 4 '15 at 4:31
• Similar things can be done. You can use layered encryption line in Tor and I2P. You can use HMAC tags with a shared secret. But most methods will have performance penalties with larger amounts of traffic. – Natanael Jun 4 '15 at 9:08
• Bitmessage may be worth a look for you. – SEJPM Jun 4 '15 at 21:09

Any peer to peer mesh network would be sufficient. If peers pass messages on to other peers then no peer can no for certain which peer a message is intended for. It would be possible to determine (with some degree of confidence) the source of the message.

The real difficulty is handling all the other problems. How do you deal with malicious nodes, denial of service attacks, and who pays for the network as peers are anonymous. That is just the tip of the iceberg.

As a real world example the Bitcoin network uses similar system for connecting peers and passing messages. Transactions are simply messages shared peer to peer in an adhoc fashion (your node tells all your peers who tells all their peers who tells are their peer .... and the recipient is one of them). Bitcoin solves a lot of those "bad node" problems because the messages (transactions) have a cost in term of fees taken out of the transaction. They are low but they do prevent things like some attacker just creating a bunch of nodes and telling them to make a trillion messages to cripple the network.

• in fact, for e-mail style transmissions, bitmessage does the exact thing you describe (I think) – SEJPM Jun 4 '15 at 21:18

First, forget about the idea to use this approach for web-browsing.

If you want to circumvent censorship while browsing TOR is your way, but can't provide full censorship-freedom.
TOR works by establishing a tunnel through the internet (changed evey 10min) via three servers where the first received triple-encrypted contenet, the second double-encrypted and the last "only" single encrypted. The last one forwards the request to the clearnet.
Expect latencies for this around 500ms+ (Haven't done tests).

In fact, if you look for something like E-Mail-Style communication, there's a solution for you. Bitmessage. It works as follows:

1. Obtain the address of the recipient, which is a public EC key.
2. Encrypt the message using his public key and sign the message before using your private key (which is bound to your address).
3. Send the message into the P2P network. It will stay there for 2-30 days.
4. Every client will download your message and try to decrypt it using their private keys. If decryption fails, the message is considered "not for them" and discarded. Only the valid recipient can learn the message.

Now some notes to this: The sender by default isn't fully anonymous, as the message may be traced back, but TOR and dedicated address generation provides a high degree of privacy.
If you're interested in this, IIRC bitmessage uses ECIES + ECDSA on P-256.
And to address the DDoS issue raised in another answer, bitmessage is inspired by bitcoin and uses a proof-of-work system to prevent flooding of the network and to get a "message lifetime" (more PoW -> more lifetime).

Pretty much TLS can do this - by encrypting the link to the recipient's mailserver, any intercept would be unable to see the header info (and hence, which user of the mailserver is receiving the mail)

Onionskin routing is better at hiding who is sending an email, but usually does not conceal the recipient (as the last hop is normal SMTP)