RSA Security utilise généralement des clés de tailles 1024 bits, 2048 bits ou même 3072 bits. Et la plupart des algorithmes symétriques ne sont qu'entre 112 bits et 256 bits. Je me rends compte que les clés actuelles sont sécurisées assez pour le matériel d'aujourd'hui, mais à mesure que les ordinateurs s'accélèrent, ne devrions-nous pas envisager une taille de clé incroyablement grande, comme un million de bits, pour nous protéger contre les super-systèmes informatiques qui n'ont pas encore été inventés?
En d'autres termes, quelles sont les conséquences du choix d'une clé de chiffrement trop grande et pourquoi tout le monde restreint-il la taille de ses clés?
La raison pour laquelle les clés RSA sont si petites est que:
À chaque doublement de la longueur de la clé RSA, le déchiffrement est 6-7 fois plus lent.
Il ne s'agit donc que d'un autre compromis entre sécurité et commodité. Voici un graphique:
Source: http://www.javamex.com/tutorials/cryptography/rsa_key_length.shtml
J'ai déterré ma copie de Cryptographie Appliquée pour répondre à cette question concernant la crypto symétrique, 256 est suffisant et le sera probablement pendant très longtemps. Schneier explique;
Des longueurs de touches plus longues sont meilleures, mais seulement jusqu'à un certain point. AES aura des longueurs de clé de 128 bits, 192 bits et 256 bits. C'est beaucoup plus long que nécessaire dans un avenir prévisible. En fait, nous ne pouvons même pas imaginer un monde où les recherches par force brute 256 bits sont possibles. Cela nécessite des percées fondamentales en physique et notre compréhension de l'univers.
L'une des conséquences de la deuxième loi de la thermodynamique est qu'une certaine quantité d'énergie est nécessaire pour représenter l'information. Enregistrer un seul bit en changeant l'état d'un système nécessite une quantité d'énergie non inférieure à kT, où [~ # ~] t [~ # ~] est la température absolue du système et k est la constante de Boltzman. (Restez avec moi; la leçon de physique est presque terminée.)
Étant donné que k = 1,38 × 10−16erg/K, et que la température ambiante de l'univers est de 3,2 Kelvin, un ordinateur idéal fonctionnant à 3,2 K consommerait 4,4 × 10−16 ergs à chaque fois qu'il a réglé ou effacé un peu. Pour faire fonctionner un ordinateur plus froid que le rayonnement de fond cosmique, il faudrait de l'énergie supplémentaire pour faire fonctionner une pompe à chaleur.
Maintenant, la production annuelle d'énergie de notre Soleil est d'environ 1,21 × 1041 ergs. Cela suffit pour alimenter environ 2,7 × 1056 changements de bit unique sur notre ordinateur idéal; suffisamment de changements d'état pour mettre un compteur 187 bits à travers toutes ses valeurs. Si nous construisions une sphère Dyson autour du Soleil et captions tous son énergie pendant 32 ans, sans aucune perte, nous pourrions alimenter un ordinateur pour compter jusqu'à 2192. Bien sûr, il n'aurait pas l'énergie nécessaire pour effectuer des calculs utiles avec ce compteur.
Mais ce n'est qu'une étoile, et une maigre à cela. Une supernova typique sort quelque chose comme 1051 ergs. (Environ cent fois plus d'énergie serait libérée sous forme de neutrinos, mais laissez-les partir pour l'instant.) Si toute cette énergie pouvait être canalisée dans une seule orgie de calcul, un compteur de 219 bits pourrait être parcouru par tous de ses états.
Ces chiffres n'ont rien à voir avec la technologie des appareils; ce sont les maximums que la thermodynamique permettra. Et ils impliquent fortement que les attaques par force brute contre les clés 256 bits seront irréalisables jusqu'à ce que les ordinateurs soient construits à partir d'autre chose que de la matière et occupent autre chose que de l'espace.
L'audace est ma propre addition.
Remarque: Notez que cet exemple suppose qu'il existe un algorithme de cryptage "parfait". Si vous pouvez exploiter les faiblesses de l'algorithme, l'espace de clé peut se réduire et vous vous retrouvez avec moins de bits de votre clé.
Il suppose également que la génération de clé est parfaite - produisant 1 bit d'entropie par bit de clé. Ceci est souvent difficile à réaliser dans un environnement informatique. Un mécanisme de génération imparfait peut produire 170 bits d'entropie pour une clé de 256 bits. Dans ce cas, si le mécanisme de génération de clé est connu, la taille de l'espace de force brute est réduite à 170 bits.
En supposant que les ordinateurs quantiques sont réalisables, cependant, toute clé RSA sera cassée en utilisant l'algorithme de Shor. (Voir https://security.stackexchange.com/a/37638/18064 )
Pour un AES est construit pour trois tailles de clés 128, 192 or 256 bits
.
Actuellement, le forçage brut de 128 bits n'est même pas proche de la faisabilité. En théorie, si une clé AES avait 129 bits, il faudrait deux fois plus de temps pour forcer brutalement une clé de 129 bits qu'une clé de 128 bits. Cela signifie que des clés plus grandes de 192 bits et 256 bits prendraient beaucoup plus de temps à attaquer. Il faudrait tellement de temps pour forcer brutalement l'une de ces clés que le Soleil cesserait de brûler avant que la clé ne soit réalisée.
2^256=115792089237316195423570985008687907853269984665640564039457584007913129639936
C'est un gros chiffre flippant. Voilà le nombre de clés possibles. En supposant que la clé est aléatoire, si vous la divisez par 2, vous disposez du nombre de clés qu'il faudra en moyenne pour utiliser AES-256 en force brute.
Dans un sens, nous avons les très grandes clés de chiffrement dont vous parlez. L'intérêt d'une clé symétrique est de la rendre impossible à la force brute. À l'avenir, si l'attaque d'une clé 256 bits devient possible, la taille des clés augmentera certainement, mais c'est tout à fait un peu plus loin.
La raison pour laquelle les clés RSA sont beaucoup plus grandes que les clés AES est qu'il s'agit de deux types de chiffrement complètement différents. Cela signifie qu'une personne n'attaquerait pas une clé RSA de la même manière qu'elle attaquerait une clé AES.
Attaquer des touches symétriques est facile.
000...
Attaquer une clé RSA est différent ... parce que le cryptage/décryptage RSA fonctionne avec de grands nombres semi-premiers ... le processus est mathy . Avec RSA, vous n'avez pas besoin d'essayer toutes les chaînes de bits possibles. Vous essayez beaucoup moins que 2^1024
ou 2^2048
bitstrings ... mais il n'est toujours pas possible de forcer brutalement. C'est pourquoi les clés RSA et AES diffèrent en taille. [ 1 ]
Pour tout résumer et répondre à votre question en 1 phrase. Nous n'avons pas besoin de clés symétriques ridiculement grandes, car nous avons déjà des clés symétriques ridiculement grandes. Le cryptage 256 bits semble un peu délicat par rapport à quelque chose comme une clé RSA 2048 bits, mais les algorithmes sont différents et ne peuvent pas vraiment être comparés `` bit à bit '' comme ça. À l'avenir, si des clés plus longues sont nécessaires, de nouveaux algorithmes seront développés pour gérer des clés plus grandes. Et si nous avons toujours voulu aller plus loin sur le matériel actuel, c'est simplement un compromis temporel. Une clé plus grande signifie un temps de décryptage plus long signifie une communication plus lente. Ceci est particulièrement important pour un chiffrement car votre navigateur Internet établira puis utilisera une clé symétrique pour envoyer des informations.
Temps de traitement, pur et simple. Tout dans la sécurité est un équilibre entre le besoin de sécurité (garder les mauvaises personnes à l'extérieur) et l'utilisabilité (laisser entrer les bonnes personnes). Le chiffrement est une opération coûteuse, même avec du matériel dédié pour effectuer les calculs.
Cela ne vaut tout simplement pas la peine d'aller au-delà d'un certain niveau de sécurité dans la plupart des cas, car les compromis deviennent exponentiellement plus difficiles à utiliser tout en n'offrant pratiquement aucun avantage tangible (car la différence entre un milliard d'années et une centaine de milliards d'années n'est pas si importante termes pratiques).
En outre, comme pour RSA vs AES, c'est la nature de la cryptographie symétrique ou asymétrique. En termes simples, avec la cryptographie symétrique (où il y a une clé partagée), il n'y a rien pour commencer à deviner, donc c'est très difficile. Pour la cryptographie asymétrique telle que RSA, vous divulguez une information (la clé publique) liée à la clé de déchiffrement (la clé privée). Bien que la relation soit "très difficile" à calculer, elle est beaucoup plus faible que le fait de ne pas disposer d'informations sur lesquelles travailler. Pour cette raison, les tailles de clé plus importantes sont nécessaires pour rendre plus difficile le problème d'obtenir une clé privée à partir d'une clé publique tout en essayant de limiter la difficulté des problèmes mathématiques pour le chiffrement et le déchiffrement.
D'une certaine manière, des algorithmes utilisant de telles clés "incroyablement grandes" existent déjà. Cela s'appelle ( pads à usage unique . Cependant, personne ne les utilise vraiment dans la pratique, car ils nécessitent une clé de la longueur du message que vous souhaitez crypter et le matériel de clé ne peut jamais être réutilisé (sauf si vous voulez que le texte chiffré devienne trivialement cassable). Étant donné que le but du chiffrement est de convertir un grand secret (le texte en clair) en un petit secret (la clé), les OTP ne sont utiles que dans des scénarios très spécifiques et hautement spécialisés. Vous pouvez aussi bien transmettre le texte en clair en toute sécurité, car vous aurez besoin d'un canal de transmission tout aussi sécurisé pour le matériel clé.
En toute équité, les OTP ont un cas d'utilisation spécifique. Autrement dit, lorsque vous avez besoin d'une sécurité prouvée dans un environnement où vous avez accès à un canal de communication sécurisé à un moment donné mais devez transmettre un message en toute sécurité ultérieurement.
Le protocole OTP est sûrement sécurisé car correctement utilisé et avec du matériel clé correctement généré, tout texte en clair déchiffré est tout aussi probable, et rien sur une partie du matériel clé (n'est censé) vous donner un aperçu des autres parties du matériel clé ou comment décrypter les autres parties du message. C'est facile en théorie, mais terriblement difficile à réaliser en pratique. Vous cherchez des secrets militaires courts et de haut niveau ou éventuellement diplomatiques, tout au plus.
Pour la plupart des gens, les clés asymétriques 128 à 256 bits ou 2048 à 4096 bits (en supposant quelque chose comme RSA) sont suffisantes, pour des raisons déjà décrites par Rell3oT , Alexander Shcheblikin , lynks , et autres. Quiconque souhaite attaquer une clé équivalente à 256 bits va attaquer le cryptosystème, pas la cryptographie, de toute façon. ( Lien XKCD obligatoire. ) PRNG ont déjà cassé des systèmes de cryptage correctement implémentés et théoriquement sécurisés auparavant, et on serait fou de penser que cela s'est produit pour la dernière fois .
En ajoutant plus de preuves aux réponses "parce que cela ralentit inutilement", il semble que le temps d'exécution AES n'augmente pas aussi vite que RSA lorsque la longueur de clé augmente (et RC6 augmente encore plus lentement), mais c'est toujours une exécution de 16% augmentation du temps pour doubler la longueur de la clé, selon http://www.ibimapublishing.com/journals/CIBIMA/volume8/v8n8.html .
Le temps de traitement a déjà été mentionné. Même à cet égard, le temps requis pour générer une clé RSA doit être mentionné séparément, car il est BEAUCOUP plus coûteux pour des clés plus longues, car vous devez trouver des nombres premiers d'environ la moitié de la taille de la clé RSA souhaitée.
Un autre sujet est l'espace, i. e. la quantité de données générées. Les chiffrements asymétriques et symétriques opèrent sur des blocs. Même une signature sur un octet a besoin du nombre de bits de la clé RSA, i. e. 256 octets pour une clé de 2048 bits. Même situation avec les tailles de bloc des algorithmes symétriques, qui augmentent également avec la longueur de la clé. Bien que cela ne semble pas non plus un argument à première vue, certains appareils sévèrement restreints comme les cartes à puce sont censés gérer cela (toujours le conteneur le plus sécurisé pour la clé privée) et il existe de nombreuses applications qui doivent stocker beaucoup de signatures, certificats, cryptogrammes, etc.
L'OP a demandé: "En d'autres termes, quelles sont les conséquences du choix d'une clé de chiffrement trop grande ...?" Une clé de 256 bits est très puissante, comme le montrent les commentaires ici; cependant, une clé très sécurisée (ce qui est une bonne chose) fera simplement qu'une personne malveillante trouvera une faiblesse ailleurs dans le système.