Avec cryptage AES-256 et le Vecteur d'Initialisation

J'ai une question relative à l'utilisation d'un Vecteur d'Initialisation dans le chiffrement AES. Je suis référençant les articles suivants /posts pour intégrer le chiffrement dans mon programme:

[1] Java 256-bit AES Chiffrement par Mot de passe
[2] http://gmailassistant.sourceforge.net/src/org/freeshell/zs/common/Encryptor.java.html

J'ai été à l'origine suivants erickson de la solution à partir du premier lien, mais, de ce que je peux dire, PBKDF2WithHmacSHA1 n'est pas pris en charge sur mon œuvre. Je me suis donc tourné vers le deuxième lien pour avoir une idée pour mon propre itératif de hachage SHA-256 de la création.

Ma question vient de la façon dont le IV est créé. Une mise en œuvre ([1]) utilise des méthodes de l'Monogramme classe à dériver le IV où sont les autres ([2]) utilise la deuxième 16 octets de la table de hachage que le IV. Tout simplement, pourquoi la différence et ce qui est mieux à partir d'un point de vue sécurité? Je suis un peu confus à la dérivation et l'utilisation de l'IVs (je comprends ce qu'ils sont utilisés pour, tout simplement pas les plus subtiles différences), de sorte que toute clarification est également très bienvenue.

J'ai remarqué que le deuxième lien utilise AES-128 plutôt que le cryptage AES-256 qui pourrait suggérer que, pour moi, que je dois aller jusqu'à SHA-512, je voulais utiliser cette méthode. Cela semble comme il serait regrettable exigence de l'utilisateur mot de passe devrait être de 16 caractères de plus pour assurer une distance de hachage sécurisé et cette application est destinée à un téléphone cellulaire.

Source est disponible sur demande, si elle est encore incomplète.

Vous en remercie d'avance.

Il est intéressant de prendre un butin à stackoverflow.com/questions/14937707/.... Il est dit sur la définition de la IV lors du chiffrement.

OriginalL'auteur phobos51594 | 2010-12-21