J'avais chiffré 2 bases de données MySQL avec AES_ENCRYPT
en mode ECB 128 bits. Maintenant, j'ai oublié ma clé de cryptage, mais j'ai du texte brut (j'ai une base de données sans cryptage et la même avec le cryptage). Comment trouver la clé de chiffrement pour pouvoir déchiffrer mon autre base de données?
J'ai entendu parler d'une attaque connue en texte brut, comment faire? Existe-t-il un outil dans Kali Linux ou un script python sur GitHub?
De façon réaliste, non, vous ne pouvez pas. AES est très résistant aux attaques de texte de plainte connues comme la plupart des chiffrements par blocs. Il est heureux que vous n'ayez perdu aucune information et que vous ayez la sauvegarde de la base de données d'origine, car votre seule véritable option serait d'essayer le cryptage par force brute, ce qui est susceptible de prendre plus de temps que la longueur de l'univers (sauf si vous pouvez réduire considérablement les clés possibles). par presque vous vous souvenez de votre mot de passe?)
Ce que vous demandez, c'est une attaque connue en texte brut (KPA). La faiblesse que vous décrivez dans ECB est que deux blocs chiffrés avec le même texte en clair sont chiffrés avec le même texte chiffré.
Cela signifie simplement que vous savez que deux blocs chiffrés dans le texte chiffré se ressemblent, cela ne signifie pas que vous pouvez récupérer facilement le texte brut. La réponse est: non, vous ne pourrez pas récupérer la clé.
Ceci est appelé une attaque connue en texte brut contre un chiffrement et est une considération de conception majeure. Ce que vous voulez faire est considéré comme impossible, sauf révélation majeure d'une faiblesse d'AES. Il y a un autre Q/A ici qui pourrait vous aider à mieux comprendre:
https://crypto.stackexchange.com/questions/1512/why-is-aes-resistant-to-known-plaintext-attacks
Les chiffrements ne fonctionnent que sur une longueur fixe de bits, donc les modes de chaînage sont utilisés pour chiffrer des longueurs de données arbitraires. La BCE est la plus simple, elle ne chiffre qu'un bloc à la fois. La principale faiblesse est que des blocs identiques produisent la même sortie cryptée, ce qui constitue une fuite importante d'informations. Cela crée également des opportunités d'attaques de réexécution où un attaquant peut simplement renvoyer des blocs chiffrés dont il pense dont il connaît le contenu. Malheureusement, cela ne vous rapproche pas de la récupération de clés avec un texte brut connu.
Une attaque viable pour vous pourrait être si vous avez utilisé un mot de passe pour générer la clé, et vous vous souvenez par exemple qu'il est exactement de 12 caractères et a trois chiffres. Cela limite considérablement l'espace de mot de passe et peut permettre à une analyse de force brute de fonctionner.
En théorie, c'est possible, mais en pratique non. mais vous pouvez essayer de le deviner. Étant donné un texte brut et un texte chiffré, vous pouvez essayer toutes les clés possibles pour voir laquelle fonctionne. Pour AES-128, 340 clés non-milliards.
Comme indiqué ci-dessus, même avec un supercalculateur, il faudrait 1 milliard de milliards d'années pour casser la clé AES 128 bits à l'aide d'une attaque par force brute. C'est plus que l'âge de l'univers (13,75 milliards d'années).