Comparaison des cryptages DES, Triple DES, AES, Blowfish pour les données


Réponses:


245

Utilisez AES.

En plus de détails:

  • DES est l'ancienne "norme de cryptage des données" des années soixante-dix. Sa taille de clé est trop courte pour une sécurité adéquate (56 bits effectifs; cela peut être forcé brutalement, comme cela a été démontré il y a plus de dix ans ). De plus, DES utilise des blocs de 64 bits, ce qui soulève des problèmes potentiels lors du cryptage de plusieurs gigaoctets de données avec la même clé (un gigaoctet n'est pas si gros de nos jours).
  • 3DES est une astuce pour réutiliser les implémentations DES, en cascadant trois instances de DES (avec des clés distinctes). On pense que 3DES est sécurisé jusqu'à au moins " 2 112 " de sécurité (ce qui est beaucoup, et assez loin dans le domaine de "non cassable avec la technologie actuelle"). Mais c'est lent, surtout dans le logiciel (DES a été conçu pour une implémentation matérielle efficace, mais il aspire au logiciel; et 3DES est trois fois plus nul).
  • Blowfish est un chiffrement par blocs proposé par Bruce Schneier, et déployé dans certains logiciels. Blowfish peut utiliser d'énormes clés et est considéré comme sécurisé, sauf en ce qui concerne sa taille de bloc, qui est de 64 bits, tout comme DES et 3DES. Blowfish est efficace dans les logiciels, du moins sur certaines plates-formes logicielles (il utilise des tables de recherche dépendant des clés, les performances dépendent donc de la manière dont la plate-forme gère la mémoire et les caches).
  • AES est le successeur du DES en tant qu'algorithme de cryptage symétrique standard pour les organisations fédérales américaines (et en standard pour presque tout le monde aussi). AES accepte les clés 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), et est efficace à la fois logiciel et matériel. Il a été sélectionné dans le cadre d'un concours ouvert impliquant des centaines de cryptographes pendant plusieurs années. En gros, vous ne pouvez pas avoir mieux que cela.

Alors, en cas de doute, utilisez AES.

Notez qu'un chiffrement par bloc est une boîte qui crypte des "blocs" (blocs de données de 128 bits avec AES). Lors du cryptage d'un "message" qui peut être plus long que 128 bits, le message doit être divisé en blocs, et la façon dont vous effectuez la division est appelée le mode de fonctionnement ou "chaînage". Le mode naïf (scission simple) s'appelle ECB et présente des problèmes. Utiliser correctement un chiffrement par blocs n'est pas facile, et c'est plus important que de choisir entre, par exemple, AES ou 3DES.


4
Étant un peu
fou

2
Putain de merde, la NSA pourrait craquer le DES en 1976 mais a continué à encourager son utilisation jusqu'en 2002! Appelez-moi paranoïaque mais j'ai peur de la poussée pour AES
Dr Deo

25

Tous ces systèmes, à l'exception d'AES et Blowfish, ont des vulnérabilités connues et ne doivent pas être utilisés.
Cependant, Blowfish a été remplacé par Twofish .


11

Les méthodes de chiffrement décrites sont des chiffrements par blocs de clés symétriques.

Data Encryption Standard (DES) est le prédécesseur, chiffrant les données dans des blocs de 64 bits à l'aide d'une clé de 56 bits. Chaque bloc est chiffré de manière isolée, ce qui constitue une vulnérabilité de sécurité.

Triple DES étend la longueur de clé du DES en appliquant trois opérations DES sur chaque bloc: un cryptage avec la clé 0, un décryptage avec la clé 1 et un cryptage avec la clé 2. Ces clés peuvent être liées.

DES et 3DES sont généralement rencontrés lors de l'interfaçage avec des produits et services commerciaux existants.

AES est considéré comme le successeur et la norme moderne. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Je pense que l'utilisation de Blowfish est déconseillée.

Il est fortement recommandé de ne pas tenter d'implémenter votre propre cryptographie et d'utiliser à la place une implémentation de haut niveau telle que GPG pour les données au repos ou SSL / TLS pour les données en transit. Voici une excellente vidéo qui donne à réfléchir sur les vulnérabilités de chiffrement http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/


2
Pourquoi l'utilisation de Blowfish est déconseillée? N'est-ce pas le plus sûr?
yogsma

5
@yogsma: Blowfish a une taille de bloc de seulement 64 bits (car il était censé remplacer le DES dans les protocoles), et devient donc problématique après quelques Go de données chiffrées avec la même clé.
Paŭlo Ebermann

@rohannes, pourquoi BlowFish est découragé, j'ai lu quelque part en termes de performances BlowFish est meilleur que AES regardez cet article sur brighthub.com
Yogesh

9

AES est un algorithme cryptographique symétrique, tandis que RSA est un algorithme cryptographique asymétrique (ou à clé publique). Le chiffrement et le déchiffrement se font avec une seule clé dans AES, tandis que vous utilisez des clés distinctes (clés publiques et privées) dans RSA. La force d'une clé AES de 128 bits est à peu près équivalente à une clé RSA de 2600 bits.


7
pouvez-vous fournir les mathématiques justifiant cette réponse, ou une source? Je serais intéressé de savoir comment vous en êtes arrivé à la conclusion qu'AES 128 bits équivaut à peu près à RSA 2600 bits (je me rends compte que c'est une vieille réponse)
Russell Uhl

3
@RussellUhl - Je suis d'accord que l'histoire de ces chiffres est une question intéressante, même après 2 années supplémentaires de silence. :) Ces chiffres semblent dériver de ce document PDF: eprint.iacr.org/2013/635.pdf intitulé Universal security - from bits and mips to pools, lakes – and beyond.
Jesse Chisholm

4

Bien que TripleDESCryptoServiceProvider soit une méthode sûre et efficace, elle est trop lente. Si vous souhaitez vous référer à MSDN, vous obtiendrez ce conseil vous conseillant d'utiliser AES plutôt que TripleDES. Veuillez vérifier le lien ci-dessous: http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx vous verrez cette attention dans la section des remarques:

Remarque Un nouvel algorithme de chiffrement symétrique, Advanced Encryption Standard (AES), est disponible. Envisagez d'utiliser la classe AesCryptoServiceProvider au lieu de la classe TripleDESCryptoServiceProvider. Utilisez TripleDESCryptoServiceProvider uniquement pour la compatibilité avec les applications et les données héritées.

Bonne chance


3
C'est amusant étant donné que Microsoft utilise toujours activement TripleDES dans certains de ses produits pour le chiffrement ( en.wikipedia.org/wiki/Triple_DES#Usage )
Tom Heard

@Tom vous avez raison mais n'oubliez pas que de nombreux logiciels utilisent d'anciennes technologies et cela prend du temps à s'adapter aux nouvelles méthodes. Surtout pour les grandes entreprises comme Microsoft, même si je suis d'accord avec vous sur le fait que la mise à jour est nécessaire, ce qui est mauvais lorsque notre société suggère certaines choses et fait d'autres choses.
QMaster

1
Microsoft est connu pour sa compatibilité descendante. Leur utilisation de TripleDES relève directement de «uniquement pour la compatibilité avec les applications et les données héritées».
Dan Bechard

1

entrez la description de l'image ici

DES est l'ancienne "norme de cryptage des données" des années soixante-dix.


0

AES est l'algorithme standard actuellement accepté à utiliser (d'où le nom Advanced Encryption Standard ).

Les autres ne le sont pas.


3
D'où le nom? Comment le nom «AES» indique-t-il qu'il doit être utilisé?
CodyBugstein

15
Qu'en est-il de la norme de chiffrement des données ? Votre logique "il a <standard> dans le nom - c'est donc ce qui devrait être utilisé" est assez imparfaite.
Zlatin Zlatev

0
                DES                               AES
Developed       1977                              2000
Key Length      56 bits                           128, 192, or 256 bits
Cipher Type     Symmetric                         Symmetric
Block Size      64 bits                           128 bits
Security        inadequate                        secure
Performance     Fast                              Slow

AES est plus rapide que 3DES, en particulier sur les processeurs prenant en charge AES-NI. (mais même sans cela - DES a été conçu pour des implémentations matérielles rapides, pas pour des implémentations logicielles) (Le DES normal est légèrement plus rapide sur certains benchmarks , mais les clés 56 bits le rendent impropre à toute utilisation actuelle)
Gert van den Berg
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.