Je veux utiliser PBKDF2 avec une fonction de hachage cryptographique pour générer des clés AES 128 bits. SHA1 est aussi 128 bits, donc j'ai pensé à utiliser ça avec PBKDF2, mais c'était cassé, donc j'ai choisi d'utiliser SHA256 à la place. Est-ce que c'est sûr, ou est-ce que la différence entre la taille de hachage et la taille de clé résultante provoquera une sorte de troncation silencieuse désastreuse qui rendra les clés AES faibles? Devrais-je simplement le générer à la place des clés de 256 bits pour AES?Est-il sûr d'utiliser PBKDF2 avec SHA256 pour générer des clés AES 128 bits?
Répondre
Alors que SHA-1 est "cassé", la plupart des systèmes raisonnables utilisent seulement la version HMAC, qui est plus forte et probably still fine. Cela dit, les nouveaux protocoles comme TLS 1.2, utilisent at least SHA-256 pour leur fonction pseudo-aléatoire (PRF).
Vous devriez pouvoir tronquer le résultat à la taille dont vous avez besoin (comme le font la plupart des PRF). Une discussion préalable est disponible sur this question.
En termes de longueur de clé, voir keylength.com. Vous voulez vous assurer que vous êtes cohérent dans la façon dont vous utilisez chaque primitive.
Merci pour la réponse. –
- 1. Génération de clés 128 bits avec keytool
- 2. Erreur lors de la définition d'un champ de bits de 1 024 bits (128 octets)
- 3. Implémentation de PBKDF2 en C# avec Rfc2898DeriveBytes
- 4. Supprimer des clés avec des sous-clés
- 5. Utilisation du cryptage AES en C#
- 6. Y a-t-il une bibliothèque python de chiffrement AES qui fonctionnera bien avec python 3.0?
- 7. encrypt-decrypt avec SHA256 en utilisant java
- 8. ASP.Net Code d'erreur 128
- 9. GetExitCodeProcess() renvoie 128
- 10. décryptage des données avec AES/CBC/PKCS5Padding en utilisant blackberry
- 11. cryptage sha256 en erlang
- 12. Passer de md5 à sha256
- 13. Cryptage AES, exemple de code
- 14. Pourquoi django est-il lent à générer des boîtes de sélection pour les clés étrangères?
- 15. py2exe pour générer des DLL?
- 16. Problème étrange avec un extrait pour générer des dégradés
- 17. Réalisation du cryptage AES-256 avec le .NET Compact Framework
- 18. L'utilisation de MD5 pour générer une clé de chiffrement à partir du mot de passe?
- 19. SHA256 hachage en Python 2.4
- 20. regex pour obtenir des méta-mots-clés
- 21. Connexion à Oracle avec des applications 32 bits fonctionnant sous Vista 64 bits
- 22. Quelles mines de sécurité dois-je surveiller avec JCA et AES?
- 23. Compilation avec DMD sur Linux 64 bits ou Liaison avec des fichiers objet 32 bits
- 24. Création de dictionnaires avec des clés prédéfinies
- 25. PHP est-il sûr pour les threads?
- 26. Construire 32 bits avec llvm-gcc 64 bits
- 27. moyen sûr pour initialiser une classe dérivée
- 28. SHA256 Pour Ruby ne fonctionne pas sur Mac
- 29. Existe-t-il un standard pour utiliser PBKDF2 comme mot de passe?
- 30. requête SQL pour générer des données données
SHA1 est de 160 bits. –
Vous "pensé à utiliser SHA1HMAC avec PBKDF2" ?? Je ne comprends pas ça. RFC2898 spécifie SHA1HMAC comme ** PRF ** par défaut pour PBKDF2. (Voir l'annexe A.2 de la RFC2898). – Cheeso