开发者

Does IV work like salt

In AES, my understanding is that salt is the开发者_C百科 stuff to make the passphrase more secure and it wont be added into encrypted text. But IV is the stuff used to encrypt the first block of message and will be added into the encrypted text.

Do I get anything wrong?


AES itself does not directly use a salt (or indeed, an IV).

A situation when you might use a salt in combination with AES is when you are using Password Based Encryption (PBE). In this scheme, a human-memorizable password is used, in combination with a salt, to generate an AES key. A salt is used so that the same password does not always generate the same key; however, because the recipient must be able to generate the correct key, the salt must be transmitted along with the encrypted data.

An IV is required if you are using AES in certain block cipher modes, like CBC. In this case, it used to ensure that the same plaintext data under the same key does not always encrypt to the same ciphertext. Again, the IV is required by the recipient to correctly decrypt the data, so it must be transmitted along with the encrypted data.

So, if you are using PBE with AES in CBC mode as the underlying cipher, you would expect to have to send both a PBE salt and a CBC IV along with the encrypted data.


I don't quite follow what you are saying, but here is an overview.

Salts are used in cryptographic hashing in order to eliminate the possibility of success using rainbow table method of cracking. (A rainbow table being a reverse lookup table of hashes to passwords)

IVs are used in encryption of larger files to avoid similar sections from encrypting to the same thing.

They are extremely similar, but here are the differences.

Salts are typically added before or after what they are encrypting (to my knowledge). This means that the encryption is also performed on the salt.

IVs are always XORed with the result of the encryption. The reason it is done afterwards, is because only the first chunk uses the IV, the rest use the previous chunk for this XORing.

The distinction is important because a salt that is XORed with the encrypted form of a password is easily broken, and IVs are designed to stop pattern recognition style attacks versus the dictionary attacks of password files.


No. The IV prevents otherwise-identical messages from appearing the same. This would leak information, specifically, the fact that you're transmitting the same message more than once.


To add to @Guvante answer, IV is specifically used with CBC mode (Cipher Block Chaining mode) and it adds more security compared to the EBC mode (where if two identical blocks encrypted with the same key they produce the same cipher), IV fixes that.

Salting is more of a hashing term, used to fight against rainbow attacks, it doesn't make hacking impossible but makes discovering patterns between identical passwords infeasible, so the same plaintext password doesn't produce the same hash. They are pretty similar, but it's important to understand the use and implementation of each one.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜