Question

Imaginez que j'ai ceci:

$cdata = AES_256($data, $pass);

AES_256 implémente l’ algorithme AES .

Si je connais le contenu de $ cdata et le contenu de $ data , et que j'ai également le code AES_256 () , puis-je effectuer un reverse engineering et trouver $ pass ?

Était-ce utile?

La solution

Réponse simple: NON.

Ceci a été testé et mentionné dans le lien Wiki.

  

Une attaque par clé associée peut casser jusqu'à 9   tours de AES 256 bits. UNE   attaque en texte clair choisi peut casser 8   tours de AES 192 et 256 bits, et 7   tours de AES 128 bits, bien que le   la charge de travail est impraticable à 2 128 -   2 119 .

Ou, autrement dit: vous avez plus de chances d'être frappé par la lumière ... le jour même où vous gagnez la loterie, que de la casser!

Autres conseils

Il s’agit d’une attaque en texte connu . Un bon chiffre comme AES devrait y échapper, comme l'ont expliqué les autres.

Si $ pass est en fait un mot de passe et non une clé de 256 bits, vous aurez peut-être de la chance.

Bien qu’il soit loin d’être banal, une attaque par force brutale contre un mot de passe normal est beaucoup plus rapide que le forçage brutal d’une clé de 256 bits.

Modifiez donc l’un des nombreux outils qui imposent des mots de passe, et vous obtiendrez une attaque qui (selon la force du mot de passe) pourrait prendre des semaines à plusieurs années - mais c’est rapide comparé à 3x10 ^ 51 ans .. .

Vous pourriez le forcer brutalement, mais cela prendrait beaucoup de temps. Comme dans des décennies ou même plus longtemps. C’est l’intérêt des algorithmes de chiffrement comme AES.

Une autre citation, tirée de Wikipedia :

  

AES autorise l'utilisation de clés de 256 bits.   Rompre une clé symétrique de 256 bits en   la force brute nécessite 2 ^ 128 fois plus   puissance de calcul qu'un 128 bits   clé. Un appareil qui pourrait vérifier un   milliards de milliards (10 ^ 18) de clés AES par   la seconde nécessiterait environ 3 x   10 ^ 51 ans pour épuiser le 256 bits   espace clé.

Le forçage brutal lorsque vous savez que le texte d'origine est peut-être plus rapide, mais que 3 x 10 ^ 51 ans est une longue période. De plus, il n’ya probablement pas d’appareil capable de contrôler un milliard de clés (10 ^ 18) clés / seconde.

En bref : tout est possible, mais cela n’est pas réalisable dans le monde dans lequel nous vivons.

AES, comme tout bon algorithme de cryptographie, ne repose pas sur la la sécurité par l'obscurité .

En d'autres termes, il n'y a pas de "secrets". dans le code, afin que vous ayez le code ne vous aidera pas particulièrement.

Le texte en clair connu est une question distincte, ce que je ne connais pas bien, alors je laisserai cela aux autres intervenants.

Bien sûr que non - la seule approche est la force brute. Pensez-vous vraiment que le NIST est assez stupide pour choisir un code chiffré si facilement craqué pour un nouveau standard?

avec la puissance des super-ordinateurs, il est temps de réduire considérablement le cryptage AES ... J'ai entendu ...

2x2 ^ 256 combinaisons possibles est beaucoup pour bruteforce. Mais le renforcement est le seul moyen. Cela prendrait environ 3 décennies. AES est le meilleur cryptage possible actuellement, je dirais. Mais cela ne prendrait que beaucoup de temps en utilisant un processeur. Parce que les GPU (unités de traitement graphique) sont strictement basées sur les mathématiques, on a créé des programmes qui utilisent uniquement le GPU pour casser les algorithmes basés sur les mathématiques beaucoup plus rapidement qu'un processeur. En d'autres termes, l'AES pourrait ne pas durer trois décennies. Si seulement les codes d'éternité étaient possibles. Il semble bien que le cryptage dynamique soit peut-être la seule façon pour les gens de cacher leurs informations dans un avenir proche.

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