2009-12-22 17 views
15

Dans AES, je crois comprendre que sel est la substance pour rendre la phrase secrète plus sûr et il ne sera pas ajouté au texte crypté. Mais IV est la substance utilisée pour crypter le premier bloc de message et sera ajouté dans le texte crypté.Est-ce que IV fonctionne comme du sel?

Est-ce que je reçois quelque chose de mal?

Répondre

24

AES lui-même n'utilise pas directement un sel (ou en effet, un IV).

Une situation dans laquelle vous pourriez utiliser un sel en combinaison avec AES est lorsque vous utilisez Cryptage basé sur le mot de passe (PBE). Dans ce schéma, un mot de passe mémorisable par l'homme est utilisé, en combinaison avec un sel, pour générer une clé AES. Un sel est utilisé pour que le même mot de passe ne génère pas toujours la même clé; cependant, parce que le destinataire doit être capable de générer la clé correcte, le sel doit être transmis avec les données cryptées.

Une IV est requise si vous utilisez AES dans certains modes de chiffrement par bloc, comme CBC. Dans ce cas, il garantissait que les mêmes données en texte brut sous la même clé ne cryptent pas toujours dans le même texte chiffré. Encore une fois, l'IV est requis par le destinataire pour déchiffrer correctement les données, il doit donc être transmis avec les données cryptées. Donc, si vous utilisez le PBE avec AES en mode CBC comme code sous-jacent, vous vous attendez à devoir envoyer à la fois un sel PBE et un CBC IV avec les données cryptées.

+3

Si le sel bothe et IV envoyé avec des données cryptées, quel est le point de les avoir? Parce que l'attaquant peut facilement obtenir du sel et de l'intraveineuse à partir des données, alors le seul travail consiste à obtenir une phrase de passe, ce qui n'est pas la même chose que la méthode sans sel et IV? – Kelvin

+12

Lisez attentivement à nouveau ma réponse.Le salt est utilisé ** de sorte que le même mot de passe ne génère pas toujours la même clé ** - cela signifie, entre autres choses, qu'un attaquant ne peut pas créer hors ligne un dictionnaire de mots de passe à clés. Un IV s'assure également que le même texte en clair ne produit pas le même texte chiffré ** - cela signifie qu'un attaquant ne peut pas construire un ensemble de crèches. Ceux-ci n'arrêtent pas * les attaques par bruteforce (vous ne pouvez pas le faire) - mais ils maximisent le temps/la mémoire requis pour une attaque par bruteforce, et empêchent efficacement certains pré-calculs. – caf

+1

Merci pour votre réponse rapide. Ma compréhension est une cryption sans sel et IV sera quelque chose comme l'équation f (données) = x (mot de passe) Et celui avec du sel et IV sera f (données) = x + y (sel) + z (IV) Vous obtenez y et z, alors la 2ème équation sera la même que la première. Quelque chose que j'ai mal compris ici? – Kelvin

2

Non. L'IV empêche l'apparition de messages identiques. Cela laisserait échapper des informations, en particulier le fait que vous transmettez le même message plus d'une fois.

+0

2 IV différentes sur le même texte en clair produiront 2 chiffres différents, tout comme 2 sels différents le feraient aussi. Je ne pense pas que vous ayez bien répondu à la question. – Murmel

9

Je ne suis pas tout à fait ce que vous dites, mais voici un aperçu.

Les sels sont utilisés dans le hachage cryptographique afin d'éliminer la méthode de fissuration de la table arc-en-ciel. (Une table arc-en-ciel étant une table de recherche inversée de hashs pour les mots de passe)

Les IV sont utilisés dans le cryptage de fichiers plus volumineux pour éviter que des sections similaires ne soient cryptées au même endroit.

Ils sont extrêmement similaires, mais voici les différences.

Les sels sont typiquement ajoutés avant ou après ce qu'ils cryptent (à ma connaissance). Cela signifie que le cryptage est également effectué sur le sel.

Les IV sont toujours XOR avec le résultat du chiffrement. La raison pour laquelle il est fait après afterwords est parce que seulement le premier morceau utilise le IV, le reste utilise le morceau précédent pour ce XORing. La distinction est importante parce qu'un sel qui est XORed avec la forme cryptée d'un mot de passe est facilement cassé, et IVs sont conçus pour arrêter les attaques de style de reconnaissance de modèle contre les attaques de dictionnaire de fichiers de mot de passe.