La sécurité 128 bits n'est-elle pas suffisante pour la plupart des applications pratiques?
La sécurité 128 bits n'est-elle pas suffisante pour la plupart des applications pratiques?
Pourquoi les gens achètent-ils des voitures de sport rouges ? Ils ne vont pas plus vite que les voitures de sport de toute autre couleur ...
AES est livré avec trois tailles de clé standard (128, 192 et 256 bits). Beaucoup de gens le voient et pensent que s'il y a trois tailles distinctes au lieu d'une seule, il doit y avoir une différence, et comme la version 256 bits est un peu plus lente que la version 128 bits (d'environ 40%), elle doit être "plus sécurisé". Ils optent donc pour "la plus sécurisée" et choisissent des clés de 256 bits.
En réalité, l'AES a trois tailles de clé distinctes car il a été choisi comme algorithme fédéral américain apte à être utilisé dans divers domaines sous le contrôle du gouvernement fédéral américain, et cela inclut l'armée américaine. L'armée américaine a une tradition de longue date dans l'utilisation de la cryptographie, et cette tradition s'est cristallisée dans un règlement interne avec toute la flexibilité et la subtilité que les armées du monde entier démontrent constamment (écoutez simplement de la «musique militaire» et vous comprendrez ce que je veux dire) . Malheureusement, cela s'est produit il y a un certain temps, avant l'invention de l'ordinateur, et à cette époque, la plupart des systèmes de chiffrement pouvaient être endommagés, et les plus robustes étaient également très difficiles et lents à utiliser. Ainsi, les grands cerveaux militaires ont eu l'idée qu'il devrait y avoir trois "niveaux de sécurité", de sorte que les secrets les plus importants soient cryptés avec les méthodes lourdes qu'ils méritaient, mais les données de moindre valeur tactique pourrait être chiffré avec des algorithmes plus pratiques, bien que plus faibles.
Ces réglementations prévoyaient donc trois niveaux distincts. Leurs concepteurs ont simplement supposé que le niveau inférieur était nécessairement faible d’une certaine manière, mais que la faiblesse n’était pas obligatoire . Le NIST a donc décidé de suivre formellement les règlements (demander trois tailles de clé) mais aussi de faire la chose intelligente (le niveau le plus bas devait être incassable avec une technologie prévisible). 128 bits sont tout à fait suffisants pour la sécurité (voir cette réponse pour plus de détails). Par conséquent, AES accepte les clés 256 bits en raison de la lassitude bureaucratique: il était plus facile d'exiger quelque chose d'un peu absurde (une taille de clé excessive) que de modifier les réglementations militaires.
La plupart des gens ne savent pas ou s'en moquent à propos de l’histoire, et ils sont simplement convaincus qu’ils le méritent.
Lorsque vous créez un système de sécurité, vous devez prévoir une panne. C'est l'idée derrière une stratégie de défense en profondeur.
Les primitives cryptographiques s'affaiblissent avec le temps. Bien qu'une primitive de 128 bits soit suffisante, une faille pourrait être découverte dans le chiffrement, ce qui réduit ce niveau de sécurité. Vous devez donc ajouter une marge de sécurité lorsque la primitive de soulignement échoue.
Par exemple, md5 produit un hachage de 128 bits, mais en utilisant une attaque avec préfixe choisi, un attaquant peut produire une collision d'une complexité de seulement 2 ^ 39.
Je n'ai pas vu cela mentionné dans les réponses ou les commentaires, j'ai donc pensé à ajouter ceci comme réponse. La taille de la clé ne correspond pas toujours directement à la complexité d'un algorithme. Une erreur courante consiste à supposer qu'un message chiffré à l'aide d'AES256 est plus difficile à déchiffrer (un adversaire obtenant toute sorte d'informations de signification étant donné uniquement le texte chiffré) que les mêmes informations protégées à l'aide d'AES128. Il est logique qu'une plus grande taille de clé fournisse une plus grande complexité, mais comme avec tout système, les implémentations sont sujettes à des faiblesses.
En supposant que vous parlez d'AES 128 par rapport à AES 256, il existe une faiblesse connue dans la fonction d'extension des touches qui affecte AES256. Fondamentalement, la faiblesse réduit la complexité d'AES256 à une complexité inférieure à AES128. Il existe également une attaque similaire pour AES192, bien que dans ce cas, la complexité d'AES192 reste supérieure à AES128.
Morale de l'histoire, les gens ne comprennent pas la crypto ... j / k (je ne suis pas mathématicien). La réalité est que les gens supposent «grand» avec «sécurisé». Une grosse arme vaut mieux qu'une petite arme. Des tailles de clé plus grandes sont plus sûres que des tailles de clé plus petites.
En réalité, la mise en œuvre de la cryptographie est plus importante que la seule taille de la clé.
FWIW, le projet du NIST sur la cryptographie post-quantique recommande 256.
http://csrc.nist.gov/publications/drafts/nistir-8105/nistir_8105_draft.pdf
Votre prémisse me semble fausse. Je n'ai connaissance d'aucune preuve que «la plupart des gens utilisent un cryptage 256 bits au lieu de 128 bits». En effet, si je devais deviner, je suppose que l’inverse est le cas.
Finalement, vous rencontrez un problème similaire au logiciel de compression, trop de compression peut entraîner une perte de données. Bien qu'il n'y ait pas de nombre fini pour la force du cryptage «théoriquement», cela ne signifie pas que vous devez crypter vos données à plus de 256 bits. Vous pourriez techniquement être en mesure de le faire, mais au risque de savoir quelle machine prend un mois ou des années pour démarrer et charger votre système d'exploitation?
Je suppose que vous parlez de cryptographie symétrique. La réponse est qu'elle n'est jamais assez sécurisée (même si je soupçonne que l'utilisation de clés 256 bits contre 128 bits est une stratégie marketing pour que le client se sente plus en sécurité).
Et n'oubliez pas la montée en puissance de l'informatique quantique, ce qui réduit considérablement le temps nécessaire à une attaque par force brute.