Différence entre les algorithmes de cryptographie symétrique [fermé]
C # semble avoir 4 algorithmes de crypto symétriques différents: RijndaelManaged, DESCryptoServiceProvider, RC2CryptoServiceProvider, et TripleDESCryptoServiceProvider.
je cherche plus d'information entre eux. Principalement quelles sont les différences entre chacun d'eux. MSDN ne m'aide pas beaucoup, ou je suis juste fatigué. ;) Je suis sûr qu'il y a des avantages et des inconvénients entre chacun d'eux, tout comme n'importe quoi où il y a plusieurs façons de faire quelque chose.
Merci pour n'importe quelle illumination.
Tony
7 réponses
Ce Classement (pour l'année 2015) l'algorithme le plus puissant apparaît en haut:
- Rijndael (plus communément appelé AES)
- Triple DES
- DES
- RC2
utilisez AES.
plus de détails:
- DES est l'ancienne "norme de cryptage des données" des années 70. Sa taille de clé est trop courte pour assurer une sécurité adéquate (56 efficace bits, ce qui peut être brute forcé, comme il a été démontré plus de dix ans). En outre, DES utilise des blocs de 64 bits, ce qui soulève quelques problèmes potentiels lors du cryptage de plusieurs gigaoctets de données avec la même clé (un gigaoctet n'est pas si grand de nos jours).
3DES est une astuce pour réutiliser DES implémentations, en cascadant trois instances de DES (avec des clés distinctes). 3DES est considéré comme sûr jusqu'à au moins " 2 112 " sécurité (qui est beaucoup, et assez loin dans le domaine de "non brisable avec la technologie d'aujourd'hui"). Mais c'est lent, surtout en logiciel (DES a été conçu pour une implémentation matérielle efficace, mais ça craint en logiciel; et 3DES craint trois fois plus).
AES est le successeur de DES comme algorithme de cryptage symétrique standard pour les organisations fédérales américaines (et comme norme pour à peu près tout le monde, aussi). AES accepte des touches de 128, 192 ou 256 bits (128 bits est déjà très incassable), utilise des blocs de 128 bits (donc pas de problème là), et est efficace à la fois dans le logiciel et le matériel. Il a été sélectionné dans le cadre d'un concours ouvert auquel ont participé des centaines de cryptographes pendant plusieurs années. Fondamentalement, vous ne pouvez pas avoir mieux que ça.
donc, en cas de doute, utilisez AES.
notez qu'un chiffrement par bloc est une boîte qui crypte des "blocs" (morceaux de données de 128 bits avec AES). Lors du chiffrement d'un" message " qui peut être plus long que 128 bits, le message doit être divisé en blocs, et la façon dont vous faites la division s'appelle le mode de fonctionnement ou "chaînage". Le mode naïf (simple split) est appelé BCE et a des problèmes. Il n'est pas facile d'utiliser correctement un chiffrement par bloc, et c'est plus important que de choisir entre, par exemple, AES ou 3DES.
http://en.wikipedia.org/wiki/EFF_DES_cracker
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
brève réponse: utiliser Rijndael.
Quelles sont les différentes possibilités sont les suivantes:
RC2 est un cryptage faible, brisé construit à la fin des années 80 pour l'exportation, parce qu'à l'époque les entreprises américaines étaient interdites d'exporter le cryptage "fort". Il a une longueur de clé de 40 bits, ce qui rend brute forçant sur le matériel d'aujourd'hui trivial (il est, après tout, 20 ans plus tard).
son nom signifie Rivest Cipher N ° 2, après C'est le créateur Ron Rivest (un crpytographe de renommée mondiale, le 'R' en RSA).
DES était la norme de cryptage des données, et a été appelé forte crpytographie. Avec une longueur de clé de 56 bits, cependant, il est maintenant au sein de la gamme de décryptage force brute.
3DES fonctionne avec DES trois fois. Juste courir DES deux fois ne le rend pas beaucoup plus fort, en fait, mais la troisième fois le fait. Il s'agit en fait d'une incrpytion de 116 bits (avec Clé de 196 bits).
3DES est une très bonne, solide encrpytion par standard d'aujourd'hui.
donc RC2, DES et 3DES sont dans la suite de chiffrement pour assurer la compatibilité avec les systèmes d'affaires qui utilisent ces chiffreurs.
Rijndael est cependant le chiffre moderne de choix. Il s'agit du remplacement officiel du DES, appelé Advanced Encryption Standard (AES).
Il vient dans une gamme de keysizes, mais c'est important pour 128 bits. N'utilisez d'autres longueurs de clé (y compris la plus longue, 256 bits) que pour des raisons de compatibilité.
en effet, comme indiqué, le DES n'est pas très fort. Le triple DES est fort (il N'y a pas eu de véritable attaque contre lui) mais il est un peu plus lent.
Rijndael est le même que AES (Advanced Encryption Standard - approuvé par la NSA, très fort) mais avec plus de choix sur la taille de votre clé.
malheureusement, J'en sais aussi peu sur RC2. A moins Qu'il soit beaucoup plus rapide que Rijndael Je ne verrais pas beaucoup de raison de ne pas aller pour Rijndael (et même alors je voudrais regardez comment garantir il était.)
ce qui suit est une spéculation... RC2 est un ancêtre de quelques générations de RC6, qui a été l'un des finalistes pour la sélection d'un code à nommer comme AES. Rijndael a été choisie par rapport à la RC6, de sorte que L'on peut supposer que Rijndael est meilleure de plusieurs degrés que la RC2.
je m'en tiendrais à RijndaelManaged ou TripleDES car ils sont plus forts que DES.
la principale faiblesse du DES est son plus courte keylength
sauf si vous avez une bonne raison de ne pas le faire, utilisez simplement RijndaelManaged. Rijndael est ce qui est devenu AES, le remplacement général de DES, donc il est certainement préférable à DES et TripleDES à moins que vous ayez besoin d'être compatible avec un vieux système basé sur DES. Il n'y a rien de mal à utiliser la RC2, mais elle est plus ancienne que L'AES et il n'y a aucune raison de l'utiliser.
Rijndael est le meilleur.
DES n'est pas très bon, assez facile à craquer avec assez de puissance. Triple DES est un peu mieux que DES (il vient de DES répété 3 fois).
si vous êtes intéressé, regardez dans la bibliothèque crypto du château gonflable pour plus de C # crypto goodness: http://www.bouncycastle.org/
ces algorithmes représentent divers points de la courbe d'équilibre vitesse - force.
(least/fastest) RC2 < DES < 3DES < AES / Rijndael (strongest/slowest)
Je ne suis pas familier avec L'API cependant, y a-t-il une différence supplémentaire entre les classes 'Managed' et 'CryptoServiceProvider'?