Attack models or attack types specify how much information a cryptanalyst has access to when "breaking" or "cracking" an encrypted message, commonly known as codebreaking or cracking the code. Some common attack models are: