https://freedom-to-tinker.com/blog/haldermanheninger/how-is-nsa-breaking-so-much-crypto/ Truly fascinating article on how the NSA manages to break so much crypto. They argue that the most likely reason is that the NSA has what amounts to a rainbow table for the Diffie-Hellman key exchange protocol which works because the primes involved are reused so much.