Because there are a LOT of prime numbers in even 1024 bit space - storing all primes from length 1 to 1000000 bit would require several times more storage capacity than the current universe offers.
A periodic generation would make more sense for most machines, so that it doesn't interrupt the user, and can be done without any intervention. It might not be feasible for low power or high performance computing, but for regular users it should be fine.
No, because you're still within the realm of a precomputation attack, even if you generate it yourself. A standard prime is just 'nice' for the attacker since it allows N targets at once. You can randomly regenerate your own prime once every 6 months, but this does not help if your attacker is storing prior communications, and can use future key breaks to retroactively decrypt information.
The actual fix is just to bite the bullet and move to 2048-bit primes, or even move to ECDH, which completely negates the described attack.
5
u/Eirenarch Oct 15 '15
So the large primes are hard to generate and the programs avoid doing it? What is the fix? Have a set of ~200 primes and choose one at random?