J'écris un programme simple pour le cryptage de fichiers. Surtout comme un exercice académique, mais peut-être pour un usage sérieux futur. Tout le travail de levage est effectué avec des bibliothèques tierces, mais assembler les pièces de manière sécurisée reste un défi pour le non-cryptographe. Fondamentalement, j'ai à peu près tout fonctionne comme je le pense. J'utilise l'AES 128 bits pour le chiffrement avec une longueur de clé de 128 bits. Je veux que les utilisateurs puissent entrer des mots de passe de longueur variable, j'ai donc décidé de hacher le mot de passe avec MD5 et ensuite utiliser le hachage comme clé. J'ai pensé que c'était acceptable - la clé est toujours supposée être un secret, donc il n'y a aucune raison de s'inquiéter des attaques par collision.L'utilisation de MD5 pour générer une clé de chiffrement à partir du mot de passe?
Maintenant que j'ai implémenté ceci, j'ai parcouru quelques articles indiquant que c'est une mauvaise idée. Ma question est: pourquoi? Si un bon mot de passe est choisi, le chiffrement est supposé être suffisamment fort pour ne jamais révéler la clé sauf par un effort de force brute extraordinaire (lire: actuellement impossible), n'est-ce pas? Devrais-je utiliser quelque chose comme PBKDF2 pour générer la clé ou est-ce juste trop pour toutes les applications cryptographiques les plus extrêmes?
salt le mot de passe – helloandre