Question:
Le cryptage en couches est-il plus sécurisé que les mots de passe longs?
luchonacho
2019-02-19 19:17:06 UTC
view on stackexchange narkive permalink

Les commentaires de cette question débattent de la sécurité supplémentaire du cryptage multicouche. Il semble y avoir un certain désaccord, et j'ai pensé qu'une question appropriée serait utile ici.

Donc, pour fournir un arrière-plan commun, considérez les deux scénarios suivants:

  1. J'applique un cryptage symétrique à un fichier donné, comme suit:

      gpg --symmetric --cipher-algo AES256 mon_fichier.txt  

    auquel j'ajoute le mot de passe «mydogisamazing»

  2. J'applique quatre couches de cryptage à un fichier donné, comme suit:

      gpg --symmetric --cipher-algo AES256 my_file.txtgpg --symmetric --cipher-algo AES256 my_file .txt.gpggpg --symmetric --cipher-algo AES256 mon_fichier.txt.gpg.gpggpg --symmetric --cipher-algo AES256 mon_fichier.txt.gpg.gpg.gpg  

    où les mots de passe fournis à chacun sont respectivement: "amazing" "is" "dog" "my" (donc, quand je décrypte toutes les couches, j'ai entré "my" "dog" "is" "amazing")

L'option 2 est-elle plus sûre que l'option 1? Ne sachant presque rien sur la sécurité du cryptage, il me semble que oui, car toute personne souhaitant s'introduire par effraction devrait exécuter un algorithme de mot de passe quatre fois, alors que dans l'option 1, l'algorithme ne doit être exécuté qu'une seule fois. Et si un chiper-algo différent était utilisé au lieu du même?

Dans l'ensemble, il me semble également évident que la réponse dépend de la nature des mots de passe. Par exemple, si j'ai 15 couches de cryptage et que le mot de passe de chaque couche n'est qu'une lettre, il semble "trivial" de casser le code.

MISE À JOUR : en réponse à un commentaire, je souligne que l'exemple ci-dessus essayait de présenter un cas apparent "équivalent", à savoir "mots de passe plus courts + plus de couches" versus "mots de passe plus longs + moins de couches ". Il me semble évident (peut-être faux) que le simple fait d'ajouter plus de couches de complexité identique ne fera qu'augmenter la sécurité du cryptage (dans le simple sens de prendre plus de temps pour pirater les mots de passe). D'où mon insistance sur la longueur variable des mots de passe.

Si vous jouiez au pendu, ce serait plus difficile?Deviner le mot une lettre à la fois ou deviner le mot entier à chaque fois?
Il y a 2 questions distinctes ici: l'une concerne le cryptage plusieurs fois et l'autre la manière de générer des mots de passe.La plupart des réponses ont été recueillies exclusivement lors de la création de votre mot de passe.Si vous aviez utilisé de longs mots de passe aléatoires dans vos exemples, je pense que vous obtiendriez des réponses complètement différentes.Je vous recommande de modifier votre question pour clarifier le point que vous essayez de comprendre.
J'ai l'impression _toutes_ les réponses se concentrent sur le cas spécifique où le scénario 2 utilise un mot de passe _weak_ pour chaque «couche» et manque le point le plus important de savoir si chaque couche pourrait, au moins en principe, être sécurisée.Par exemple, est-ce que quelque chose changerait si nous supposions qu'un mot de passe fort aléatoire / à haute entropie est utilisé pour chaque «couche» ajoutée, puisque dans ce cas, l'analogie du «pendu» ne peut pas être invoquée?On suppose que l'attaquant ne sait pas combien de couches il y a.
@MobyDisk Mon scénario de base se veut juste cela, un point de départ sur lequel d'autres peuvent être envisagés.J'ai pensé que c'était le meilleur point de départ.Il semble évident que l'utilisation de quatre couches complexes est toujours préférable à l'utilisation d'une seule couche complexe.Mis à jour la question de toute façon.
Je pense que le fait que vous ayez un fichier nommé `.... txt.gpg.gpg.gpg` serait un indice fort que le fichier a été crypté 4 fois.Cette information est maintenant connue et vos 4 mots de passe courts vont être beaucoup plus rapides à craquer (même avec la force brute) qu'un mot de passe long.
Voir également la [Rule of Two] de la NSA (https://en.wikipedia.org/wiki/Multiple_encryption#The_Rule_of_Two) de Commercial Solutions for Classified Program (CSfC).Ce n'est évidemment pas GPG.Dans votre exemple, il ne répond probablement pas aux critères car toutes les transformations de chiffrement se produisent au niveau de la couche application.
Supposons que vous sachiez comment choisir une serrure de porte générique / commune.Maintenant, ce qui est plus difficile: choisir la serrure commune de 5 portes différentes ou choisir la serrure d'une porte qui a été conçue pour être beaucoup plus difficile / compliquée que ce à quoi vous êtes habitué?
Les analogies de @RaduMurzea Door ne peuvent vous mener que très loin.Arriver à une conclusion sur le choix d'une porte et ensuite la transférer à la sécurité informatique n'est pas nécessairement valable.Par exemple, si je veux franchir une porte rapidement et que je ne me soucie pas de me faire prendre, je peux simplement utiliser une masse.Il n'y a pas d'équivalent en matière de sécurité informatique.Même lorsque nous parlons de «force brute», c'est l'équivalent d'essayer toutes les touches possibles jusqu'à ce que vous en trouviez une qui fonctionne.
Sept réponses:
Sjoerd
2019-02-19 19:32:38 UTC
view on stackexchange narkive permalink

L'option 1 est plus sûre. Dans l'option 2, nous pouvons deviner chaque mot séparément. Lorsque nous devinons «incroyable», nous obtenons la confirmation que ce mot est correct et nous pouvons continuer avec le deuxième mot. Dans l'option 1, nous devons deviner les quatre mots en même temps.

Vous pouvez penser qu'un GPG offre une certaine sécurité, et quatre GPG offrent quatre fois cette sécurité, mais cela ne fonctionne pas comme ça . GPG offre une sécurité presque totale et son application plus souvent n'améliore pas la sécurité.

Il existe des utilisations pour appliquer le chiffrement plusieurs fois, par exemple lors de la signature et du chiffrement, ou lors du chiffrement pour plusieurs parties. Cependant, chiffrer les choses plusieurs fois ne les rend généralement pas plusieurs fois plus sécurisées.

De plus, même si vous supposez que les décryptages intermédiaires corrects sont presque impossibles à distinguer du hasard jusqu'à ce que tous les mots de passe soient corrects (ce qui rend plus difficile de deviner des mots de passe partiels), il est toujours plus faible en raison d'attaques de type "Meet-in-the-middle".
"GPG offre une sécurité quasi totale et son application plus souvent n'améliore pas la sécurité."Cela semble contre-intuitif.Je ne comprends toujours pas vraiment pourquoi.Quatre énigmes sont sûrement plus difficiles à résoudre qu'une seule.
@luchonacho la raison est que vous ne faites que doubler la sécurité AU PLUS, elle n'est PAS augmentée de manière exponentielle.Chaque caractère aléatoire supplémentaire dans le mot de passe fait cependant PLUS que doubler la difficulté de déchiffrer le mot de passe.
@luchonacho Il y a une échelle que vous ne comprenez tout simplement pas - 4 contre 1 sonne bien, mais les 4 sont beaucoup plus petits que 1. En supposant que l'alphabet en minuscules, il y a 26 ^ 8 mots de passe de 8 lettres possibles.Si je dois deviner 4 mots de passe de 2 lettres, 26 ^ 2 ^ 4 est le cas idéal - l'équivalent si les étapes intermédiaires sont impossibles à distinguer des ordures.Les attaques «Meet-in-the-middle» font en sorte que même ce "meilleur cas" de devoir deviner le même nombre de mots de passe prend moins de temps en stockant des valeurs intermédiaires.[Wikipedia] (https://en.wikipedia.org/wiki/Meet-in-the-middle_attack) a une meilleure explication.
@Natanael Goodluck avec les IV des couches intermédiaires pour une attaque au milieu.En outre, Weiner a montré que le double cryptage est plus sûr que le simple, bien sûr, pas 2 fois.
Existe-t-il des schémas de chiffrement dans lesquels vous ne pouvez pas confirmer si une estimation était correcte?J'imagine que le fait de pouvoir confirmer qu'une supposition était correcte lorsque le déchiffrement d'AES a à voir avec le remplissage.
Si je superposais un cryptage comme celui-ci, je m'arrangerais pour que seule la couche la plus interne ait un MAC;quel que soit le mot de passe entré, les couches externes décrypteront quelque chose.Cela change-t-il le résultat?
@Vaelus oui, chaque schéma sans aucun remplissage ni authentification.Chaque chiffrement de flux utilise sans aucune authentification, par exemple.Vous ne pouvez que deviner statistiquement en évaluant la probabilité que le texte brut candidat apparaisse au hasard.Même avec des en-têtes de fichiers connus, il existe un risque statistique de faux positifs.Il est d'autant plus probable que le texte brut est court par rapport à la clé.
@Joshua cela empêche d'attaquer les mots de passe individuellement, mais l'attaque de rencontre du milieu reste
Esa Jokinen
2019-02-19 20:01:02 UTC
view on stackexchange narkive permalink

Cela n'ajoute pas de sécurité, mais permet de deviner plus facilement la phrase secrète un mot à la fois ( N⁴ vs N + N + N + N , où N est le nombre de symboles de la liste de mots). Même lorsque vous cryptez un fichier ou un message à plusieurs destinataires à l'aide de PGP, la charge utile n'est cryptée qu'une seule fois à l'aide d'un cryptage symétrique, puis la clé correspondante est cryptée séparément pour chaque destinataire. De cette façon, chaque destinataire a un accès égal à la charge utile sans multiplier la taille du message.

Votre suggestion d'utiliser le cryptage en couches peut être utile dans quelques scénarios, mais toutes les phrases de passe doivent être fortes en elles-mêmes.

  • Vous devez envoyer un fichier à quelqu'un en utilisant un cryptage symétrique, mais vous n'avez pas de canal pour un échange de clés fiable. Vous pouvez envoyer la phrase de passe pour une couche en utilisant le courrier électronique, pour la deuxième couche en utilisant SMS et pour la troisième couche en utilisant le courrier. N'importe lequel de ces objets pourrait être volé, mais il est bien plus difficile de tous les voler.

  • Vous avez des informations sur un groupe de personnes que vous ne pouvez pas rencontrer, mais personne ne devrait savoir avant les autres. Vous leur envoyez tout le fichier crypté contenant les informations, mais un mot de passe différent pour chacun. Maintenant, ils doivent être ensemble pour révéler le contenu. C'est une bonne façon de laisser l'héritage comme un portefeuille Bitcoin!

  • Dans le routage Onion , c'est-à-dire le réseau Tor, le message est enveloppé dans plusieurs couches de cryptage. Chaque routeur intermédiaire a une clé pour déchiffrer une couche - tout comme éplucher un oignon. Un nœud acheminant le paquet ne sait pas combien de couches il y a eu auparavant et combien il en reste. Il ne sait même pas où le transférer avant de déchiffrer sa propre couche. Au lieu de mots de passe, le réseau Tor utilise des clés asymétriques, le nœud de répertoire fournissant une infrastructure à clé publique .

À noter: le scénario de groupe à clé partagée est plus polyvalent avec [Shamir's Secret Sharing] (https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing).
Les deux scénarios peuvent être aussi bien réalisés avec une seule phrase de passe?Vous envoyez 3 pièces et ils doivent les combiner?
C'est vrai aussi.
Le partage de secrets @Falco est plus résistant à la force brute avec un mot de passe connu partiel
Quelques cas d'utilisation plus réalistes: routage de l'oignon, gestion des clés et autres formes de compartimentation de la confiance.
Merci, @Kevin.Le routage Onion est un si bon exemple que je l'ai ajouté à ma réponse.
@Natanael pouvez-vous expliquer cette partie?La plupart des réponses ici suggèrent que plusieurs couches de cryptage avec une partie d'un mot de passe sont en fait plus sujettes aux attaques par force brute.Pour un chiffrement simple, un mot de passe partiellement connu réduit simplement la longueur du mot de passe, rien d'autre.Les résultats devraient donc être exactement les mêmes concernant la force brute?
Si vous ne connaissez pas l'ordre des mots et qu'ils sont de longueur variable, cela réduit la longueur du mot de passe, mais moins que de simplement supprimer le même nombre de caractères.
Les schémas de partage de secrets @Falco sont uniques dans ce cas car ils utilisent des formules d'informations théoriquement sécurisées, avoir moins de parts que le seuil requis ne révèle rien.Pendant ce temps, chaque partie d'un mot de passe que vous acquérez réduit la difficulté de deviner le reste.
@Natanael, vous avez bien sûr raison pour les algorithmes de partage de secrets réels.Bien que le cryptage en couches simple, comme le décrit l'OP, ou comme le décrit cette réponse, ne constitue pas un algorithme de partage de secret avec ces propriétés.
Muzer
2019-02-19 22:38:06 UTC
view on stackexchange narkive permalink

Imaginez un film hollywoodien où ils déchiffrent un mot de passe ou un code de sécurité, avec tous les chiffres qui tournent sur une interface utilisateur sophistiquée, et ils ont des hackers d'élite qui déchiffrent un chiffre du code à la fois, et les bons ont travailler pour faire sauter l'ordinateur des pirates ou quelque chose avant qu'ils ne craquent ce dernier chiffre. Bien sûr, dans la vraie vie, ce n'est pas comme ça - pour un système raisonnablement sécurisé, soit vous savez que vous avez le bon mot de passe, soit vous savez que vous n'avez pas le bon mot de passe - il n'y a aucun moyen de voir si un Le mot de passe est de quelque manière que ce soit "proche".

Ce que vous avez suggéré est de faire fonctionner votre système de sécurité comme celui d'Hollywood. Un attaquant serait en mesure d'exécuter une attaque de dictionnaire triviale sur votre chiffrement et de savoir qu'il a immédiatement déchiffré la première couche. Ils pourraient alors simplement répéter cette opération quatre fois pour récupérer le fichier. En comparaison, exécuter une attaque de dictionnaire triviale ne découvrirait pas votre mot de passe "mydogisamazing", et il n'y aurait absolument aucune indication lorsque le mot "my" est apparu dans leur attaque que c'était "proche" du mot de passe final.

La collecte de IV à partir d'un réseau sans fil protégé par WEP est une situation réelle qui fonctionne de la même manière que ces scènes de films hollywoodiens.De même, cela n'a rien à voir avec la force du mot de passe, mais a l'air cool à l'écran.
@EsaJokinen a accepté, mais par conséquent "pour un système raisonnablement sécurisé" - confidentialité équivalente filaire mon cul!
C'est équivalent à zéro confidentialité.
_Lancer une attaque de dictionnaire triviale ne découvrirait pas votre mot de passe "mydogisamazing "_ Eh bien, selon https://haveibeenpwned.com/," mydogisamazing "est déjà apparu trois fois dans les sauts de mot de passe ...
@Dubu Apologies, je voulais dire en termes de lancer une attaque contre un dictionnaire anglais standard comme / usr / share / dict / words.J'aurais dû y rendre mon intention plus claire.Dans tous les cas, mydogisamazing est un mauvais mot de passe.Je n'avais pas l'intention que cela soit pris d'une autre manière.
@Muzer qu'en est-il de la stupéfaction?Est-ce bon?
@Džuris c'est probablement mieux que celui du chien mais toujours pas génial.Vraiment, si vous créez des mots de passe à partir de plusieurs mots anglais, ils ne devraient pas former une phrase cohérente comme celle-là.Et idéalement, la plupart de vos mots de passe seront des chaînes générées aléatoirement par un gestionnaire de mots de passe.
@Muzer Mais pour une attaque capable de détecter des phrases, elle doit avoir une conceptualisation décente de ce que sont les phrases logiques, ce qui nécessite probablement un peu d'apprentissage automatique.Les outils de craquage de mots de passe sont-ils aussi sophistiqués?
@Muzer Juste un rappel au cas où vous auriez manqué mon commentaire ci-dessus.
@luchonacho Créer des phrases de base courtes est en fait assez simple: créez des listes séparées pour les noms, les verbes, etc.puis essayez des combinaisons comme nom-verbe-nom.Les phrases n'auront pas toutes de sens, mais si tout le monde utilisait des phrases plutôt que des mots aléatoires, vous obtiendrez un taux de réussite plus élevé que d'essayer toutes les combinaisons de mots.Je ne sais pas si les outils de craquage * utilisent * cette approche, mais ils * pourraient certainement *.
@luchonacho désolé, la vraie réponse est que je ne sais pas, mais la réponse pratique est que quelqu'un tôt ou tard rencontrera la même phrase courte que vous à moins que cela n'ait vraiment pas beaucoup de sens, auquel cas tôt ou tard celaapparaîtra dans un fichier de violation!
AnoE
2019-02-19 23:03:44 UTC
view on stackexchange narkive permalink

Une autre perspective de ce que les autres ont dit (que deviner des mots simples 4 fois coûte beaucoup moins cher que deviner une combinaison de 4 mots à la fois):

En cryptographie, il y a le concept d'avoir complètement ouvert algorithmes et secrets complètement fermés. Tant que le secret reste (sic!) Secret, peu importe que l'attaquant sache quoi que ce soit sur l'algorithme. C'est le contraire de la «sécurité par l'obscurité», et c'est bien. Cela signifie que vous pouvez soumettre l'algorithme à l'examen minutieux du monde entier (littéralement, dans un schéma populaire comme AES) sans rien compromettre.

L'algorithme "juste" doit être incassable; vous devez vous convaincre qu'il n'y a ni algorithme ni moyen de force brute pour le casser. Si vous pouvez arriver à cette conclusion, alors vous avez terminé et vous n'avez qu'à vous soucier de votre secret. Vous et moi ne pouvons probablement pas analyser AES dans cette mesure, mais nous pouvons décider que l'avoir un algorithme ouvert / public avec une grande exposition à de nombreux cryptanalystes vraisemblablement "bons" le rend suffisamment sûr pour nous.

Donc. Supposons que vous ayez un tel algorithme. Par définition , une fois que vous avez un mot de passe sûr, il est à 100%, parfaitement sûr (jusqu'à ce que quelqu'un découvre une fissure dans l'algorithme ou crée un ordinateur assez rapidement - ce qui se produit bien sûr régulièrement, par exemple, MD5).

Tout ce que vous faire avec l'algorithme par la suite nécessiterait une inspection très approfondie par une grande communauté de cryptologues. Votre proposition d'algorithme "Répéter AES 4 fois" est une chose complètement nouvelle. Jetez-le à la communauté (comme vous l'avez fait ici) et les gens découvrent immédiatement les faiblesses. C'est pourquoi vous ne vous amusez pas (en tant que profane, ou en tant que programmeur solitaire dans une entreprise) avec l'algorithme et ne vous souciez jamais de la sécurité par l'obscurité.

Dans ce cas particulier: si appliquer AES 4 fois augmentait la sécurité, alors AES le ferait déjà . Ce serait tel un changement insignifiant par rapport à la complexité du champ.

"Si appliquer AES 4 fois augmentait la sécurité, alors AES * le ferait déjà *."Pas vraiment.La sécurité de pratiquement chaque chiffrement serait légèrement augmentée si vous multipliez le nombre de tours par 4, mais cela ne vaut généralement pas le compromis de performance pour le faire.
@JosephSible: l'argument est le suivant: nous ne pouvons pas forcer brutalement AES * 1.Oui, si et quand nous avons assez de puissance de calcul pour forcer AES * 1, alors faire AES * 4 (ou AES ^ 4 ...) aiderait à nouveau (si nous ne pouvons pas penser à quelque chose de mieux d'ici là).Le gain de sécurité réaliste et pratique d'AES * 4 est donc nul.
Il ne s'agit pas seulement de force brute.Il existe de nombreuses attaques qui peuvent briser une version à tour réduit d'AES, mais qui ne fonctionnent pas au-dessus d'un certain nombre de tours.Il est tout à fait possible qu'une attaque contre l'AES complet d'aujourd'hui soit découverte à l'avenir, mais qu'elle cesserait de fonctionner, par exemple, sur l'AES à 20 coups.
@JosephSible Mais est-ce qu'AES à tours multiples équivaut à exécuter AES plusieurs fois?Je ne sais pas dans ce cas, mais je crois comprendre que ces algorithmes ne répètent souvent qu'une partie de l'algorithme.Cela pourrait être une distinction importante et un bon exemple du conseil "ne roulez pas vous-même" dans cette réponse: si l'algorithme prend en charge un paramètre "rounds", n'hésitez pas à le régler haut;si ce n'est pas le cas, n'en inventez pas un sans une analyse appropriée des implications.
ShadowRanger
2019-02-20 09:02:32 UTC
view on stackexchange narkive permalink

Un contrepoint mineur aux autres réponses: plus de couches est techniquement mieux que moins si et seulement si chaque couche individuelle est au moins aussi sûre que la couche combinée que vous pourriez sinon faites de la combinaison des mots de passe utilisés pour chaque couche individuelle. Dans votre exemple, vous avez utilisé un algorithme de chiffrement AES256. Fondamentalement, cela signifie que peu importe la complexité de votre mot de passe, vous avez au plus 256 bits de sécurité (sans oublier que 256 bits de sécurité sont effectivement incassables sans une rupture majeure dans AES, nous ferons semblant qu'il est cassable à un certain niveau).

Par conséquent, tous les bits d'entropie de mot de passe au-delà de 256 sont gaspillés; si le mot de passe est trop complexe, ils peuvent simplement forcer brutalement la clé AES directement et ignorer complètement la dérivation de clé basée sur le mot de passe. Donc, si vous avez atteint la sécurité maximale dont cette couche peut bénéficier, en théorie , créer une autre couche avec le reste du mot de passe serait "plus sécurisé".

Problèmes avec ceci dans la pratique:

  1. Vous (le "tout le monde" vous) êtes mauvais pour trouver des mots de passe
  2. Même si vous trouvez un mot de passe décent , il a loin de 256 bits d'entropie (ou vous allez l'oublier)
  3. AES256 est considéré comme incassable à toutes fins pratiques, donc une couche de cryptage avec un mot de passe suffisamment complexe est déjà incassable; une deuxième couche est juste en train de monter le score. Si quelqu'un est capable de casser une couche, c'est probablement parce qu'une faiblesse fondamentale a été identifiée qui rend la rupture de deux couches tout aussi facile.

Alors bien sûr, il est théoriquement plus sûr de dire, chiffrer une fois avec le mot de passe Pi} t) HawiFo _% - p) R) dxbcpsUA; pyaCQXOXc7? o? puis à nouveau avec le mot de passe >YPou2Lg1B8be! G # Lgfor; G; H * $ xzbX74fuw_yw3 , dont chacun a 256 bits d'entropie (générés en Python avec base64.b85encode (os.urandom (256 // 8)) ) plutôt que de chiffrer une fois avec le mot de passe combiné Pi} t) HawiFo _% - p) R) dxbcpsUA; pyaCQXOXc7? o? >YPou2Lg1B8be! g # Lgfor; G; H * $ xzbX74fuw_y a 5123 vous sentez plus en sécurité, mais en pratique, vous gaspillez simplement des ressources sur les couches supplémentaires qui ne vous protègent pas vraiment.

La seule raison d’envisager cela est de savoir si vous êtes suffisamment soucieux de la sécurité / paranoïaque pour ne pas faire confiance à AES256 ou à GPG uniquement. Dans ce cas, vous pouvez envisager d'utiliser ces deux énormes mots de passe pour créer deux couches, dont l'une utilise AES256, tandis que l'autre utilise un autre algorithme de chiffrement ou un logiciel de chiffrement distinct. Maintenant, s'il s'avère qu'il y a une énorme faiblesse dans le schéma de cryptage utilisé par l'une des couches, la couche supplémentaire est significative. Mais si AES256 est cassé, il y a probablement beaucoup plus de choses intéressantes à déchiffrer, donc je ne m'inquiéterais toujours pas trop.

TL; DR: Une couche avec un mot de passe plus complexe est presque toujours mieux que plusieurs couches avec un mot de passe moins complexe; les rares exceptions ont pour la plupart des avantages théoriques qui ne se présentent presque jamais dans la pratique, alors utilisez simplement votre mot de passe plus complexe sur une seule couche.

Soyez prudent en supposant que la combinaison d'algorithmes de chiffrement (indépendants) dans une cascade augmente (ou au moins préserve) la sécurité.Cela dépend des propriétés de sécurité que vous recherchez et ne peut pas être prüfen pour tous. Il existe tout un champ de recherche sur la combinaison de cryptages pour le rendre plus robuste.https://blog.cryptographyengineering.com/2012/02/02/multiple-encryption/ mais en général, il vaut mieux commencer par un bon choix conventionnel.
walen
2019-02-20 15:25:04 UTC
view on stackexchange narkive permalink

Quiconque souhaitant s'introduire par effraction devrait exécuter quatre fois un algorithme de mot de passe, alors que dans l'option 1, l'algorithme ne doit être exécuté qu'une seule fois.

Et vous semblez pense que la première option prendrait beaucoup plus de temps, non? Voyons voir.

  • Supposons qu'un utilitaire de craquage de mot de passe prenne 1 ms pour tester chaque combinaison de caractères.
  • La longueur de mydogisamazing est de 14 caractères . Le nombre total de combinaisons de 14 lettres minuscules est de 26 ^ 14 = 64 509 974 703 297 150 976 combinaisons. Donc, 64 509 974 703 297 150 976 ms pour les tester tous.
  • Les longueurs de mon , chien , sont et étonnantes sont respectivement de 2, 3, 2 et 7 caractères. Le nombre total de combinaisons de 2, 3 et 7 lettres minuscules est 26 ^ 2 (676), 26 ^ 3 (17 576) et 26 ^ 7 (8 031 810 176). Cela représente 8 031 829 104 ms pour essayer chacun d'entre eux.

Le craquage des 4 mots de passe plus courts prendrait donc environ 93 JOURS , tandis que le craquage seul le mot de passe long prendrait plus de 2 MILLIARDS D'ANNÉES .

J'ai essayé de rester simple. J'utilise uniquement des lettres minuscules; dans le pire des cas, comme si le mot de passe était zzzzzzzzzzzzzz ; ignorer les attaques basées sur des dictionnaires et des règles, le traitement parallèle et basé sur le GPU et les outils distribués; en supprimant le temps nécessaire pour tester des combinaisons plus courtes avant des combinaisons plus longues, etc. Dans Real Life ™, les mots de passe d'un seul mot seraient déchiffrés presque instantanément parce qu'ils utilisent des mots courants.

Je * pense * que les mathématiques peuvent avoir besoin d'un ajustement.Pour forcer brutalement un mot de passe de 2 caractères, vous utiliseriez probablement également des possibilités à un seul caractère.Compte tenu de vos hypothèses, le nombre maximum de tentatives pour déchiffrer un mot de passe à 2 caractères serait (26 ^ 1 + 26 ^ 2) = 702.
@catanman Je l'ai déjà abordé dans la note de bas de page.
gnasher729
2019-02-24 17:19:04 UTC
view on stackexchange narkive permalink

Il y a (au moins) deux exemples historiques à quel point cette méthode est cassée: pendant la Seconde Guerre mondiale, les Allemands ont développé une version plus sécurisée de la machine Enigma, avec quatre roues au lieu de trois. Ce qui aurait dû faire passer le temps de craquage d'un jour (mauvais) à environ un mois (inutile).

Malheureusement, ils ont utilisé les mêmes réglages pour les trois premières roues de la machine à quatre roues que pour la machine à trois roues ordinaire. Ainsi, lorsque la machine à trois roues était fissurée, le cracker n'avait besoin que de vérifier 26 réglages possibles pour la quatrième roue. Aucune augmentation significative de la sécurité.

Et le schéma de cryptage DVD 40 bits s'est avéré être composé d'une clé de 25 bits et d'une clé de 16 bits. La clé de 40 bits était à l'époque presque impossible à déchiffrer, mais les clés de 25 et 16 bits pouvaient chacune être déchirées dans un temps très raisonnable.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...