Note: this question arises purely from a theoretical interest in security research.
Frequently in popular fiction we see white-hat hackers decrypt secret information in a matter of seconds. While this is obviously not likely in the real world, it got me thinking as to how one might actually go about such a process, given that we have the ciphertext but not the key.
The first object to decrypting the unknown data would be finding out what algorithm was used. It is not too far a stretch of the imagination that we might be able to get this information, for example, it is possible to assume certain standard protocols are likely to have been used in particular situations (such as SSL/TLS on an e-commerce transaction). It is even conceivable to suggest that we might also know the length of the key.
The second main object is the amount of time that it takes to brute-force all possible combinations. This is frequently cited as a strong reason for the safety of cryptography (with a suitable key length). However, let us say we have the ciphertext, the algorithm and the key length (but not the key), as well as a highly-powerful computer capable of brute-forcing the entire set of possible keys in a reasonable amount of time.
The question is: seeing as we do not (obviously) know what the plaintext was, how do we know when we have cracked the encryption? It is one thing to enumerate all possible decryptions of the data, but how can we determine which of these candidates in the actual plaintext?