How Advanced Is the NSA's Cryptanalysis, and Can We Resist It?
schneier.com
schneier.com
I'm glad that Bruce Schneier has now had a chance to view some of the primary source documents from the Snowden leaks, because I trust him to speak frankly and I trust his technical ability.
(I'm referring to http://www.schneier.com/blog/archives/2013/09/the_nsa_is_bre..., not the above link).
Both he and Snowden have essentially said that we can still trust the math. Modern symmetric crypto has enough safety margin that even extremely surprising breakthroughs wouldn't give the NSA practical decryption capabilities. (Asymmetric crypto is less certain, but even there Schneier still says discrete-log-based methods with sufficiently large keys are likely ok, and I would bet he's right.)
So the bottom line is this:
- using crypto correctly really matters, because they really are out to get you. Most software gets it wrong, not because there are no good cryptosystems, but because people are ignorant of how to do it right.
- build attack-resistant organizations, not just protocols. The more transparent, flat, and distributed an organization, the harder it is to secretly coerce into cooperating with the NSA. It's a lot harder to force a backdoor into Firefox than into Chrome.
- it turns out open source really matters. The tinfoil hat brigade is vindicated. Closed source vendors really are actively working against their customer's security.
If the NSA hasn't demolished public key crypto, it still seems reasonable to assume that they've made sure a significant implementation vulnerability (that looks like normal crypto give and take) has been inserted.
https://gist.github.com/6458569
Feel free to fork and feedback.... Adversarial FTW.
They are a lot more expensive, but if you want to be extra safe, it is good to know that there are alternatives.
Here's a discussion from Scott Aaronson (which has a corresponding chapter in his new book): http://www.scottaaronson.com/democritus/lec8.html
> Currently, our best candidates for such trapdoor OWF's are based on lattice problems, like the Shortest Vector Problem (SVP) that I described earlier. Whereas factoring reduces to the abelian hidden subgroup problem, which is solvable in quantum polynomial time, SVP is only known to reduce to the dihedral hidden subgroup problem, which is not known to be solvable in quantum polynomial time despite a decade of effort.
> Inspired by this observation, and building on earlier work by Ajtai and Dwork, Oded Regev has recently proposed public-key cryptosystems that are provably secure against quantum eavesdroppers, assuming SVP is hard for quantum computers.
The most frightening thing to this is there is no good, widespread alternative...
That was yesterday. It's being said now.
"Prefer conventional discrete-log-based systems over elliptic-curve systems; the latter have constants that the NSA influences when they can."
There are plenty of ECC systems that have virtually no chance of NSA influence. Curve25519/Ed25519 come to mind.
You don't have to be a mathematician to attack AES-256, you just need to know humans and do some password analysis.
Encryption is hard :(
[0] http://www.theguardian.com/world/2013/sep/05/nsa-how-to-rema...
A big single public voice with a public reputation profile is not trustworthy if you ask me.
1) means they're suggesting insecure algos for protecting top-secret data and know it
2) doesn't fit with the hints that maybe lots of traffic is being decrypted through some mathematical breakthrough[1], because for that you'd want to break RSA, not ECC
3) just seems odd, since knowing only the public attacks, a) RSA often has the narrowest security margin of any link in the chain in deplaoyed systems (e.g., RSA using a 1024-bit key thought to be worth ~80 bits vs. the symmetric algo using 128/256-bit keys) and b) RSA attacks, and not ECC attacks, have slowly gotten better.
[1] Not sure I believe those hints, but let's roll with the assumption.
When I studied cryptography in college, our professor said matter of factly that the NSA is likely at least a decade ahead in terms of known mathematical breakthroughs, but perhaps he was biased toward thinking that because he was in the field during the 1970s breakthrough that Schneier mentions. It seems more feasible that the breakthrough is in engineering and technology, but hey, I guess it's good to know the boundaries of mathematical reasoning can be pushed (hopefully, those gains will be available to the rest of the world for non-spying means)
edit: Case in point, Schneier's 2007 post that's now on the front page
https://www.schneier.com/blog/archives/2007/11/the_strange_s...
Schneier describes a random number generator, released as the standard by the U.S. government, that he concludes was likely back-doored through NSA intervention. This hypothesis was made by two independent researchers in the previous months, and others had suspicions a year before. My point being: in terms of open encryption standards, it's very amazing that the NSA (or any private entity) can make a purely mathematical breakthrough that's well-ahead of the field.
Also, they might not have the most brilliant mathematicians, but private companies don't have the interest in using their math expertise to break encryption. There are more lucrative ways to exploit great math ability.
Universities may have more of an interest in advancing cryptography research, but they can't match the budget nor focus of the NSA.
In addition, as with the CIA and other clandestine US government organizations, they appeal to patriotism and helping the national interest. That appeal seems to be fraying somewhat lately for the NSA.
I've also read that the work environment for mathematicians there is very much like a research university. They do their research, write papers for internal publication, give and attend seminars, and so on--and they don't have their research interrupted by someone asking them to teach calculus to freshmen, and without having to worry about impressing a tenure committee to avoid years and years of bouncing between temporary positions.
The combination of a very large number of people, and a pretty nice environment that lets those people throw themselves fully into research makes it plausible that they do make occasional significant breakthroughs.
Setup an organization that gives a tick of approval similar to ISO quality standards but for NSA Free software. It would involve selling your logo to business that meet a defined list of processes and practices to harden their software against 3rd party spying and security flaws.
Then you can preform audits and sell your logo on a yearly basis to businesses around the globe.
If they can break the known algorithms, they probably have better stuff for their own communication.
Second, I really doubt NSA's recommendations for Suite B algos are head fakes, because the public justification for them makes sense and head faking doesn't. US and allied governments can't use secret algorithms everywhere, and their systems need to talk securely. And they seem to actually be using Suite B, so it would be an expensive, risky head fake to standardize your whole government around something you know can in principle be cracked (even if you think only you can currently do it). On the other hand, I think it doesn't matter to NSA much if Suite B reveals that NSA thinks 521-bit ECDH is OK; notice how it hasn't led to ubiquitous ECDH usage.
2.5th, if all the latest hints mean they're breaking tons of real traffic with a mathematical breakthrough, it's got to be in implementing RSA cracks, because most real traffic isn't using ECC. (Schneier admitted that might be possible when a "crypto breakthrough" claim came out early last year: http://www.schneier.com/blog/archives/2012/03/can_the_nsa_br...)
But there is at least one way to deal with an unresolvable uncertainty about which of two algos is badly broken. For secure one-to-one communications, you only need to establish a secure session once, then keep a secret key stashed for secrecy and authentication (auth through MACs or authenticated encryption, not signatures). So just frickin' use both: do two key negotiations, hash the results to get your key, and don't worry how slow it is because chips are fast and you only need to do this once.
Anyway, I do echo Schneier that the math is probably not the weakest point; it's consistent with experience in the world outside, where there are far more bugs and so on than algorithm failures (though algo failures happen, e.g., the 2008 MD5 SSL break). And it's consistent with all the other NSA leaks, which are mostly about non-cryptographic ways to data. Regaining some privacy looks like a long and difficult process.
1) Publish. Get famous. Guaranteed employment for the rest of your life.
2) Use it to break into systems. Become rich or get caught and jailed, likely for life.
That is, if I wanted to make any kind of deal with the NSA.
It might just be easier for them to say "Thanks, but we already knew that, and by the way that's ultra classified so we'll give you the option of a clean suicide."
For my friend, The pig is about to roost in the henhouse.