web-dev-qa-db-fra.com

Y a-t-il une raison pour que quelqu'un n'utiliserait pas une clé plus longue?

Les tailles de clés plus importantes seraient plus difficiles à exécutoir; Y a-t-il une raison pour laquelle quelqu'un déciderait alors d'utiliser une clé plus petite?

Existe-t-il un effet négatif dans l'utilisation d'une taille de clé plus importante, telle que la performance ou une faible compatibilité avec des versions plus anciennes de logiciels de chiffrement/de déchiffrement?

17
IQAndreas

Chaque morceau d'une clé augmente la difficulté d'une attaque de force brute de manière exponentielle, mais il y a un compromis. Ajouter plus de bits à la clé affectera négativement la vitesse du cryptage/du déchiffrement. La quantité réelle de cette perte de vitesse dépend de l'algorithme, par exemple en RSA (en théorie) pour un n-bit Touche, l'effort informatique pour le cryptage est proportionnel à n^2, tandis que les efforts de déchiffrement sont proportionnels à n^3, Doublement de la clé de RSA signifie que le cryptage sera quatre fois plus lent et le décryptage sera (presque) huit fois plus lent.

Une autre chose à laquelle je pense mérite d'être mentionnée et merci pour Perseids pour le pointant. Il y a une limite où plus de temps nécessaire pour casser l'algorithme devient sans signification, car pour des raisons pratiques, elle est déjà "pour toujours". Comme un "monde réel", l'analogie imagine que vous emballez des rations pour un court voyage dans le désert et que vous décidez de la quantité d'eau que vous souhaitez emporter avec vous. Pour une petite quantité d'eau "plus, c'est mieux" est une approche raisonnable, car vous pourriez avoir besoin de rester plus longtemps que prévu ou déversez de l'eau. Mais lorsque vous prenez déjà toute l'Amazone avec vous, augmentez-vous, ce montant sur toute l'eau de la planète n'aide pas. Ce sont les dimensions dont nous parlons lorsque quelqu'un essaie de vous convaincre d'utiliser 8192 bits RSA.

RSA Decryption time by key length

(Diagramme de JavameX )

Pour les algorithmes de courbe elliptique, nous supposons que la recherche du logarithme discret d'un élément de courbe elliptique aléatoire par rapport à un point de base connu publiquement est infaisable. L'avantage principal de la CEC est en fait la taille de clé plus petite, une clé publique ECC de 256 bits devrait fournir une sécurité comparable à une clé publique de 3072 bits RSA. Sur la base du fait que les principaux algorithmes utilisés pour résoudre le besoin ECDLP (ECDL-STEP-STEP-STEP) ont besoin de N ^ (1/2) Étapes, augmenter/diminuer dans les N-Bits affecteront les vitesses DE/ERPRPTION.

Quant à votre question secondaire, je ne m'inquiéterais pas trop, mais que vous envisagez de parler de longueur, "plus longtemps" est préférable.

17
Abbas Javan Jafari

Il y a plusieurs points à prendre en compte:

  • "Taille de la clé" n'est pas nécessairement flexible. Dans les algorithmes de cryptage symétriques (par ex. AES), une clé est "un groupe de bits" qui doit avoir une longueur spécifique. AES elle-même n'est pas un algorithme, mais une famille de trois, qui accepte les clés de, respectivement, 128, 192 et 256 bits. Aucune autre taille de clé ne va d'entrer.

  • Les implémentations peuvent avoir des limitations. Si nous considérons la RSA, dont les clés sont de gros entiers (avec une certaine structure mathématique), l'algorithme est en soi assez flexible, mais les implémentations ont des contraintes: certains ne prennent pas en charge les clés de plus de 2048 bits; Certains nécessiteront que la taille de la clé soit "ronde" (par exemple plusieurs multiples de 32). Je travaille avec des cartes à puce pouvant effectuer 1024 bits et 2048-bits RSA, mais aucune autre taille de clé.

  • Les coûts augmentent avec la taille de la clé. Les coûts de la CPU ont été cités dans d'autres réponses; Mais la taille est également importante: une signature RSA de 4096 bits est deux fois plus longue qu'une signature RSA de 2048 bits. Nous parlons ici de bande passante de réseau ici; Cela peut avoir une importance plus que la CPU.

  • Il y a ou au moins l'habitude d'être, des limitations légales pour les longueurs de clé cryptographique (en particulier pour l'exportation), selon le pays. Cela a abouti à des implémentations largement déployées qui ne peuvent pas traiter les clés au-delà de certaines tailles. Par exemple, certains logiciels peuvent utiliser AES-128 mais pas AES-256. Même lorsque la réglementation est levée, le logiciel déployé n'est pas mis à jour du jour au lendemain.

  • Bien que les gens aiment avoir de grandes clés, cela devient sans signification à un moment donné. Nous voulons des clés "assez fortes" pour vaincre tout attaquant qui n'a pas de technologie extraterrestre à sa disposition. Pour un cryptage symétrique, cela vient assez vite: les clés symétriques sont des bouchons de n bits sans structure spécifique, ce qui ne fait que casser une telle touche est un coût moyen 2n-1 Opérations, donc les touches 128 bits sont plus que suffisamment pour être en sécurité. Pour le cryptage asymétrique, les attaques sont non "force brute", mais travaillent plutôt sur la structure mathématique de la clé, qui dépend de l'algorithme; Pour RSA, 2048 bits sont plus que suffisants pour vaincre vos adversaires (ouais, même le NSA/FSB/illuminati ou quiconque votre némésis préférée est).

    Les clés en croissance au-delà de ces valeurs n'ont donc aucun impact sur la sécurité (nonpositif Impact, au moins - plus grandes clés peut impliquer une réduction de performance, ainsi que des incitations aux utilisateurs de ne pas les utiliser, ce qui à tour de rôle diminue sécurité). Les personnes qui insistent sur 4096 bits RSA ou AES-256 sont erronées ou font cela pour d'autres raisons (l'autre ours affirmerait que les plus grandes clés sont un affichage de cour pour accoupler des rituels, dans la même catégorie que voitures de sport rouges).

Pratiquement parlant :

  • Pour le cryptage symétrique, vous voudrez AES-128. AES-256 est légèrement moins soutenu et encourt un coût de processeur de + 40% (ce coût supplémentaire peu importe beaucoup, mais cela peut arriver).

  • Pour le cryptage asymétrique ou les signatures avec RSA, accédez à des touches 2048 bits. Les touches 1024 bits ne sont pas encore cassées, mais sont théoriquement à la portée de la technologie humaine (entraînant une machine à vocation spéciale qui n'a pas encore été construite, car cela coûterait beaucoup plus que les universités les plus riches sur lesquelles consacreraient). Il existe des implémentations déployées qui ne peuvent pas traiter les clés de plus de 2048 bits, et certains ne peuvent pas traiter les tailles de clé entre 1024 et 2048. Les touches de 2048 bits optimisent ainsi l'interopérabilité et conviennent à la sécurité.

  • Avec ECDSA ou d'autres algorithmes avec des courbes elliptiques, la structure mathématique est différente. Les chiffres sont également différents. Une clé EC de 256 bits est aussi fine que AES-128 et, en effet, la courbe Nist P-256 est la courbe supportée partout ECDSA est traitée du tout.

8
Thomas Pornin

La quantité de ressources du processeur disponibles dans les ordinateurs d'utilisateur final typiques est devenue vers le bas Au cours des cinq dernières années, pas en hausse, en raison de la prévalence des appareils mobiles (téléphones intelligents et tablettes). Il y a de la conflit si la tendance sera plus ou moins ressources pour la moyenne Utilisateur, comme des produits moins chers (c.-à-d. Les lecteurs d'encre électronique) entrent sur le marché, mais il est généralement accepté que le logiciel à forte intensité de calculAlloy (tel que LastPass ) doit au moins prendre en charge les périphériques inférieurs à la CPU.

Une conséquence de cela est une longueur essentielle et des opérations liées au calcul de la calcul. En règle générale, LastPass recommande moins d'itérations de mot de passe (PBKDF2) pour les utilisateurs qui utilisent des appareils mobiles. Je ne trouve pas de lien Web, mais lorsque vous modifiez le mot de passe LastPass dans l'interface dans l'interface, cela est mentionné.

1
dotancohen