Question

Alors les gars, il y a beaucoup de différents chiffrements - mais que l'on est le plus sûr d'utiliser de nos jours

Liste: http://www.php.net/manual/en/ mcrypt.ciphers.php

Était-ce utile?

La solution

Si AES utilisation incertain (également connu sous le nom « Rijndael ») avec une clé de 128 bits. Si vous avez développé une sorte de fétiche sur la taille clé, vous pouvez répondre à vos états d'âme irrationnels en sélectionnant une clé plus grande, par exemple 192 ou 256 bits; le coût supplémentaire est peu élevé (+ 40% pour la charge de travail AES-256, par rapport à AES-128, et il faut un très très réseau rapide pour réellement observer cette différence).

Méfiez-vous que, quelle que soit la taille de la clé choisie, le chiffrement mcrypt correct pour AES est toujours MCRYPT_RIJNDAEL_128. En effet, la norme AES fait référence à la saveur du chiffre Rijndael avec une taille de bloc de 128 bits. Si vous voulez AES-256, vous devez utiliser MCRYPT_RIJNDAEL_128 avec une clé de 256 bits (32 octets), non MCRYPT_RIJNDAEL_256.

AES a été publié en 1998 et adopté par le gouvernement américain en tant que norme fédérale en 2001, et il ne montre aucun signe de faiblesse de nos jours. Quelques propriétés mathématiques ont été trouvés par la suite, mais ils ne touchent pas la sécurité réelle; la plupart du temps, ils mettent en évidence que nous avons des connaissances relativement précises sur les raisons AES est sécurisé. Aucun autre algorithme de chiffrement symétrique a reçu autant d'attention (par des milliers de cryptographes talentueux) que AES.

La plupart des problèmes de sécurité viennent de la façon dont l'algorithme cryptographique est utilisé, pas l'algorithme lui-même. Utilisez un mode Enchaînement approprié, ajoutez un MAC, gérer le rembourrage, et surtout de gérer les touches en toute sécurité. Si vous avez tous ce droit (ce qui est beaucoup plus difficile que ce qu'il semble), il devient le temps de vous soucier de choisir Rijndael, Twofish ou autre.

Autres conseils

En plus de grande réponse de Thomas Pornin, vous devez également considérer ce que vous essayez d'atteindre en termes de « sécurité » (confidentialité / intégrité / authenticité / disponibilité).

Pour tous les cas, vous aurez besoin de répondre à quelques questions, comme ... Qui est-il dans? Où et pourquoi est-il utilisé (ce protégiez-vous)? Depuis combien de temps est-il censé durer? etc.

Par exemple, il n'y a probablement pas de point à chiffrer réellement les données de session avec une succession de 256 épanouie opérations de bits lorsque les données sont vraiment uniquement destinée à durer disons 20-30 minutes. Un algorithme de 128bit sécurisé serait près de deux fois plus vite ou au moins les charges d'utilisation moins de cycles d'horloge et être tout aussi (sinon plus) sécurisé.

Il y a aussi inutile de chiffrer quelque chose qui est censé durer longtemps (comme un document confidentiel ou un fichier, la clé privée, etc ...) avec une méthode faible, clé courte. Vous voudriez à plusieurs fois des algorithmes avec une sorte d'authentification et de l'utilisation appropriée de rembourrage. J'ai régulièrement crypté et signé contenu sur demande pour les clients utilisant des algorithmes multiples (la plupart du temps Twofish, AES, RSA).

Et ne pas oublier non plus (comme Thomas a fait remarquer), vous pouvez mettre en œuvre une méthode sécurisée (ou méthodes) de manière non sécurisée. Avec les grandes quantités de variantes de chaque formule et tel, il peut être difficile à mettre en œuvre en fait quelque chose qui est « sûr ».

En général, quelque chose est aussi sûre que la clé est de le déverrouiller. Si je laisse mes clés de voiture dans la voiture avec la voiture débloquée, les clés ne sont pas sécurisés et il est ouvert pour la prise par quelqu'un marchant passé. Blowfish avec un puits dispersé 32 clé de caractère serait tout aussi sûr que toute autre chose aujourd'hui. Une touche 3 cependant de caractère pourrait être cassé en un clin d'œil.

"Le plus fort de chiffrement AES-256 est"

De détails sur le site de Bruce Schneier, AES-256 pourrait, paradoxalement, être le moins sûr des trois tailles de clé 128, 192 et 256. Il y a des problèmes avec la génération de clés dans la variante 256 bits.

Certains algorithmes sont mieux que d'autres à des choses différentes - pas sûr de ce que vos critères pour « plus sûr » est

.

Vous ne devriez certainement pas utiliser l'un des algorithmes basés DES ces jours-ci (en supposant que vous avez un choix). AES (Rijndael) est la norme actuelle de NIST et d'autres organes.

En plus de bits généraux pour un algorithme spécifique signifie plus sûr, mais ne vous assurer que vous utilisez un vecteur d'initialisation et ne pas utiliser la BCE.

HTH

C.

Selon le journal NIST, RJINDAEL avait une faible marge de sécurité par rapport à MARS, Twofish ou serpent. Si vous avez vraiment besoin le chiffre le plus fort, choisissez l'une des personnes.

http://csrc.nist.gov/archive/aes/round2/ r2report.pdf

Pour citer: « MARS semble avoir une marge de sécurité élevée. Une caractérisation précise de MARS est difficile en raison du fait que Mars utilise deux types de tours différents. MARS a reçu des critiques en fonction de sa complexité, ce qui peut avoir nui à sa analyse de la sécurité au cours de la période du processus de développement AES.

Rijndael semble avoir une marge de sécurité suffisante. La marge de sécurité est un peu difficile à mesurer parce que le nombre de tours change avec la taille de la clé. Rijndael a reçu des critiques pour deux raisons: que sa marge de sécurité est sur le bas côté parmi les finalistes, et que sa structure mathématique peut conduire à des attaques. Cependant, sa la structure est assez simple, ce qui a pu faciliter l'analyse de la sécurité au cours de la délai précis du processus de développement AES.

Serpent semble avoir une marge de sécurité élevée. Serpent a également une structure simple, ce qui a pu faciliter l'analyse de la sécurité au cours de la période spécifiée de la processus de développement AES.

Twofish semble avoir une marge de sécurité élevée. Étant donné que Twofish utilise dépendant clé fonction ronde, la notion de marge de sécurité peut avoir moins de sens pour cet algorithme que pour les autres finalistes. La dépendance des Twofish boîtes S sur seulement k / 2 bits de entropie dans le cas clé k bits a conduit à une spéculation que Twofish peut se prêter à une diviser et conquérir l'attaque, bien que n'a été trouvé aucune attaque. Twofish a reçu certaines critiques pour sa complexité, ce qui rend l'analyse difficile au cours de la période couverte par le processus de développement AES. "

Si vous voulez regarder les détails, il y a un article, principalement par moi, sur chiffrements par bloc http://en.citizendium.org/wiki/Block_cipher

Pour se conformer aux normes en vigueur aux États-Unis, utilisez AES, anciennement Rijndael. Tous les autres finalistes de la compétition AES - Serpent, MARS, Twofish ou RC-6 - devrait être bien aussi. Je pense que vous avez besoin d'une licence pour RC6, cependant.

J'utilise normalement AES-128 depuis AES FIPS approuvé. Le chiffre le plus fort est AES-256 (MCRYPT_RIJNDAEL_256).

mcrypt a une conception modulaire et nouveau chiffrement peut être facilement ajouté.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top