How is the merging of dictionary attack and a brute force attack possible?
Can someone explain the major differences between a Brute force attack and a Dictionary attack. Does the term rainbow table have any relation with these?
The answer to your question - How is the merging of dictionary attack and a brute force attack possible is -
A brute force attack means probing the complete key space on the algorithm.
A dictionary attack means that you probe only passwords/keys from a dictionary (which does not contain the complete key space).
A brute force attack is primarily used against the encryption algorithm itself (you can also use this against passwords but there you use dictionary attacks most of the time).
A dictionary attack is primarily used against passwords. Encryption algorithms are seldom attacked with a dictionary attack because most times they use a random number as key (if you use a weak PRNG then a dictionary attack could be feasible). A typical dictionary for this attack would contain the most used passwords.
A rainbow table is used to attack a hashed password in reverse. That means I have a table with possible hashes and look up a matching password. To prevent attacks using rainbow tables each hashed password should be differently salted as then I would need a rainbow table for every hash and every salt