From what I understand:
- TrueCrypt takes the password as message
- Add salt
- calculates a digest
- use digest for encryption
From what I understand. A good hash function
- has Second pre-image resistance .i.e. It is difficult to find $m_2$ such that $m_1\neq m_2$ and $hash(m_1) = hash(m_2)$ .i.e. it is difficult to find a salt to produce the same digest
I observe that truecrypt can change my password in seconds (I assume the data is not reencrypted). How is this done while keeping the data on hard drive encrypted?