I am a student attempting to understand the mechanisms of the Open Source cryptography software http://www.truecrypt.org/ . In TrueCrypt there is a user created key, and/or keyfile, as well as a program generated master key. I would like a link to or a better semi technical explanation of how this user created password unlocks the header file. I have read the TrueCrypt docs at http://www.truecrypt.org/docs/?s=technical-details , [I would post more but new users are only allowed two links] , and the rest of the true crypt documentation. I would like an explanation at a High level of how the password unlocks the header files, and as a sidebar, how the salt helps to prevent rainbow attacks.
Sorry for adding to the question so frequently, but I realize the main heart of the question is this. I am trying to figure out how the password is changeable. To do this, I need to understand how header key relates to the master key, because you can change the header key, yet only certain header key's will work with your master key. The header key must be used to create the master, yet you can choose an arbitrary password that will create a header key that will also work with the master key.