Les défauts d’entropie dominent les incidents réels. Le paquet OpenSSL de Debian (CVE-2008-0166, de 2006 à 2008) initialisait son générateur de nombres aléatoires avec à peine plus que l’ID du processus : il n’existait donc qu’environ 32 768 clés par type et taille de clé ; des listes de blocage de ces clés sont encore livrées avec certains outils SSH. Des appareils qui généraient leurs clés juste après le démarrage répétaient ou partageaient des nombres premiers : en 2012, Heninger et ses collègues ont factorisé les clés RSA d’environ 0,5 % des hôtes TLS en calculant des PGCD sur des millions de modules.
Défauts structurels : ROCA (CVE-2017-15361) rendait factorisables les clés RSA générées par la bibliothèque d’Infineon en raison de la structure particulière de leurs nombres premiers, ce qui touchait des cartes à puce, des TPM et la carte d’identité estonienne ; en 2022, on a découvert qu’une bibliothèque commerciale générait des nombres premiers si proches que la méthode de Fermat factorise le module instantanément (CVE-2022-26320). Pour les courbes elliptiques, les clés faibles proviennent de nonces biaisés et d’un mauvais aléa plutôt que de la clé elle-même.
Contrôles qu’un vérificateur ou une AC peut effectuer : listes de blocage d’empreintes (Debian), test d’empreinte ROCA, calcul de PGCD par lots sur les modules connus, factorisation de Fermat pour les nombres premiers proches, exposant public d’au moins 65 537 et tailles minimales. Le vérificateur de clés faibles effectue ces tests localement.