The NSA’s National Security Operations Center, via
Like many people, on first blush I thought the new NSA story partly involved actual cracking of the mathematical methods that people use to encrypt their data. But on Twitter, Cory Doctorow helpfully corrected this impression:
All the headlines saying “#NSA breaks encryption” are wrong; correct phrase is “NSA works with vendors to sabotage security technology”
Or as Bruce Schneier puts it: “Basically, the NSA is able to decrypt most of the Internet. They’re doing it primarily by cheating, not by mathematics…The math is good, but math has no agency. Code has agency, and the code has been subverted.”
Now, I’m no math whiz (most things I know about cryptography I learned from Neal Stephenson), but after looking into it I think I understand what the broad strokes picture is here. So think about the most basic possible situation: you have a message, and you want to make is so that even if someone else intercepts it, they won’t be able to figure out what it says. These days that is accomplished by (to simplify a great deal) putting a colossal arithmetic problem between potential snoops and your message.
As computers have gotten better and better, they’ve obviously gotten better at solving these kind of problems, and so previously secure encryption has been compromised, necessitating larger and larger arithmetic problems.
But the NSA has not broken the strong crypto that is widely and publicly available. It’s relatively easy to make an arithmetic problem so difficult that even the fastest supercomputer today would take centuries to solve it. Edward Snowden himself confirms this.
So what is the NSA doing? Here’s a good breakdown of the options from Matthew Green:
Readers of this blog should know that there are basically three ways to break a cryptographic system. In no particular order, they are:
1. Attack the cryptography. This is difficult and unlikely to work against the standard algorithms we use (though there are exceptions like RC4.) However there are many complex protocols in cryptography, and sometimes they are vulnerable.
2. Go after the implementation. Cryptography is almost always implemented in software — and software is a disaster. Hardware isn’t that much better. Unfortunately active software exploits only work if you have a target in mind. If your goal is mass surveillance, you need to build insecurity in from the start. That means working with vendors to add backdoors.
3. Access the human side. Why hack someone’s computer if you can get them to give you the key?
So it’s doors 2 and 3 for the NSA. (I recommend that whole post, though it is a bit technical, for good discussion of the issues.) They’re cracking the implementation of the cryptography by going after the protocols and software, not the cryptography itself, for the most part.
Now, this discussion gets rapidly technical and the math beyond my ability to parse. (Clarifications or corrections welcome.) The thing to remember is that well-implemented, strong encryption can resist even the NSA.
UPDATE: For a good beginner’s introduction of the actual operational details of strong crypto, see this handy guide from the Press Freedom Foundation.