web-dev-qa-db-fra.com

Combien de temps faudrait-il pour casser un email crypté OpenPGP 1024 bits?

Pour WPA, il existe des calculatrices permettant de déterminer le temps nécessaire pour déchiffrer une phrase secrète, mais je n'ai rien trouvé pour OpenPGP.

Combien de temps faudrait-il pour casser un courrier électronique crypté OpenPGP 1024 bits (en fonction de la puissance du processeur)?

Je suis également intéressé par d'autres tailles de clés telles que 2048 et 4096.

9
kelmat

Alors que la réponse de @Jens Erat était plutôt complète, j'ai effectué des recherches pour casser RSA (l'algorithme à la base d'OpenPGP).

Je vais rompre avec la norme et donner le TL; DR en premier: Il est impossible pour vous de casser cette clé. Si nous examinons cela de manière réaliste, vous ne pouvez pas factoriser un entier de 1024 bits. Votre meilleur pari serait d’essayer de casser une autre partie de la chaîne de sécurité (par exemple, le bureau sur lequel le destinataire vérifie son courrier électronique).

Avec du réalisme, considérons les stratégies possibles:

  • Devinettes aveugles/Forçage brutal. Avec un semi-prime 1024 bits, il y a peu de chance que cela fonctionne un jour. Il serait préférable d’utiliser votre temps au hasard pour essayer de deviner les numéros de loterie.

  • Générer une table arc-en-ciel. Supprimez les approximations en factorisant en prenant chaque nombre premier inférieur à 2 ^ 1024 et en le multipliant par un nombre premier, en enregistrant le résultat dans un tableau. Il ne vous reste plus qu'à rechercher la bonne paire. Comme vous pouvez l'imaginer, cela aussi est impossible. Cela impliquerait x! paires pour x nombre de nombres premiers. Par le fonction de comptage des nombres premiers , vous recherchez environ 2,95 * 10 ^ 307 nombres premiers - à titre de comparaison, on estime que le nombre d'atomes dans l'univers obserable est de l'ordre de 10 ^ 83, donc même si nous pouvions faire en sorte que chaque atome stocke deux nombres premiers et leur produit d'une manière que notre ordinateur pourrait indexer, cela serait impossible.

  • Utilisez le tamis tamis à champs de nombres général . Le GNFS est votre meilleur pari pour factoriser un gros semi-prime. Kleinjung et son équipe l'ont utilisé pour prendre en compte RSA-768, un semi-prime de 768 bits. Malheureusement, il a fallu plus de trois ans à son équipe pour accomplir cette tâche, et les ordres de grandeur sont inférieurs aux chiffres à prendre en compte. Même si vous dépensiez des millions de dollars (par jour) en location des supercalculateurs à pleine capacité, il serait presque impossible de factoriser ce nombre. La première étape de GNFS consiste à trouver suffisamment de "relations" permettant de résoudre les sous-problèmes, ce qui peut prendre beaucoup de temps.

Votre dernier recours consiste à utiliser un ordinateur quantique, ce qui vous permettrait de factoriser les nombres dans un laps de temps réalisable. Malheureusement, ceux-ci doivent encore être développés à un point de toute utilité. Donc, pour le moment, nous ne pouvons pas factoriser les semi-primes 1024 bits et plus (et donc les algorithmes qui les utilisent).

7
ahjohnston25

Premièrement, je suppose que vous parlez du cryptage RSA 1024 bits.

Généralement, le sujet est beaucoup trop compliqué pour fournir un numéro simple.

tl; dr : Craquer un message chiffré OpenPGP sur un seul processeur n'est pas réalisable, et prend probablement des années, même avec de grandes grappes informatiques. Pourtant, des failles mathématiques inconnues (pour le public) pourraient changer cela par ordre de grandeur, comme le feraient peut-être les ordinateurs quantiques à l'avenir (loin, du point de vue de "l'ère de l'internet").

La version légèrement plus longue:

Casser le cryptage asymétrique (clé RSA 1024 bits)

En plus des clés RSA 1024 bits, cela s'applique également aux clés de grande taille. Les clés plus grandes offrent plus de sécurité (sous forme de puissance de calcul permettant de les craquer), mais rappelez-vous que la sécurité n'augmente pas de manière linéaire avec la taille de la clé.

Il y a un article de Nice sur Information Security Stack Exchange, "Comment estimer le temps nécessaire pour déchiffrer le cryptage RSA?" , qui ne termine pas avec estimez comme "En utilisant un modèle Core i7 xy, vous serez en mesure de déchiffrer une clé RSA 1024 bits en z heures estimées", mais les réponses sont unanimes: "Les clés RSA 1024 bits ne peuvent pas être déchiffrées par les utilisateurs disposant de la puissance ., une poignée de machines haut de gamme) dans un délai raisonnable.

La discussion sur la suppression des clés 1024 bits avec beaucoup plus de puissance de calcul n’a été envisagée que d’un point de vue théorique:

J'ai récemment appris que la sélection des paramètres pour une factorisation de nombres à 1024 bits a commencé (c'est la partie "intelligente"); le tamisage est techniquement faisable (cela coûtera cher et impliquera des années de calcul sur de nombreux clusters d'universités) mais, pour le moment, personne ne sait comment effectuer la réduction linéaire pour un entier de 1024 bits. Ne vous attendez donc pas à une pause de 1024 bits.

Cela vaut probablement aussi pour les grandes institutions bien financées et disposant de beaucoup de puissance de calcul, comme la NSA.

Les choses pourraient changer rapidement si

  • quelqu'un trouve une faille mathématique qui réduit la complexité de RSA de plusieurs ordres de grandeur (certaines institutions telles que la NSA emploient un grand nombre de grands mathématiciens), ou
  • les ordinateurs quantiques fonctionnent enfin et deviennent assez puissants et capables d’exécuter certains algorithmes. Ne devrait pas se produire dans les prochaines années.

Pour DSA/ElGamal, les choses sont un peu différentes. Une clé DSA de la même taille qu'une clé RSA offre davantage de sécurité, mais est en même temps plus vulnérable aux mauvais nombres aléatoires (à comparer avec le faille du générateur de nombres aléatoires Debian ). La cryptographie à courbe elliptique qui est à venir pour OpenPGP n’a pas encore d’attaques connues pour les algorithmes supportés et généralement considérés comme sûrs, mais il subsiste un doute, en particulier sur les courbes recommandées par le NIST (le NIST a perdu toute réputation nombre générateur d’un standard), et certains nitpicks de mise en œuvre.

Casser le chiffrement symétrique

Pour les performances, OpenPGP utilise un cryptage hybride. Ainsi, le message est crypté avec un cryptage symétrique et une clé symétrique aléatoire (dans OpenPGP, souvent appelée "clé de session"). Cette clé de session est à nouveau chiffrée à l’aide de l’algorithme de chiffrement asymétrique, par exemple. RSA.

Si vous êtes en mesure de déchiffrer la clé de chiffrement symétrique d'un message, vous pouvez également lire le message (contrairement au déchiffrement de la clé asymétrique, où vous pouvez lire tous les messages chiffrés avec cette clé).

Contrairement aux versions très anciennes de PGP (qui utilisait un algorithme de chiffrement symétrique conçu par Zimmermann lui-même et appelé BassOmatic , considéré comme cassé), tous les algorithmes symétriques définis pour OpenPGP n'ont pas d'attaques connues pertinentes.

À moins que quelqu'un choisisse d'utiliser pas de chiffrement symétrique (ce qui est en fait possible!), Rompre un message à l'aide de l'algorithme de chiffrement symétrique ne devrait pas être considéré comme réalisable pour le moment.

19
Jens Erat