Viewing a single comment thread. View all comments

PerturbedHamster t1_je6o4i2 wrote

The way modern encryption works is that the receiver has a private key (say two very large numbers) and they send out a public key (say the product of those two numbers). You can encrypt the message with the public key, but to decrypt it you need the private key. This works because it's trivial to multiply two large numbers together, but it's enormously expensive to factor the product of two large primes (until quantum computers come into their own).

If Alice wants to send a message to Bob, Bob can send her his public key. Alice can then encrypt whatever she wants to say to Bob and send it back. Alice may have to send her message through lots of people, but they can't read it without Bob's private key. This is end-to-end encryption - nobody along the way can read it.

Of course, maybe facetergram is sitting between Alice and Bob, and the message goes through them. Facetergram may say "hey, use my public key", then Alice sends a message to facetergram, then facetergram decrypts it, then re-encrypts it with Bob's public key and sends it off. In this world, Alice doesn't need to know Bob's key (convenient!), but facetergram can now read Alice's message if they want to. This is not end-to-end, since the message gets read in the middle.

Incidentally, this is why I think a lot of the law enforcement efforts are colossally stupid. If I'm a criminal, I'll just call up Bob and say "hey, Bob, what's your public key?" Then nobody in the middle can read the message. The software to do this isn't hard - I had to do it for a single homework assignment as an undergraduate. Letting facetergram decrypt your messages is an enormous security hole (what happens if they get hacked?), but if I'm a criminal I'd send messages in a way that they couldn't read. So, only legitimate users (or really dumb criminals) can have their messages read, at the price of potentially disastrous leaks.

1