"It's good enough for the next hundred years..."

The term "unbreakable code" refers to a theoretical cryptographical concept of how vulnerable to attack* a particular cipher is. To use the phrase "unbreakable" when referring to something in crypto, one is typically referring to the futility of an attack on a particular scheme**. In all reality, very few ciphertext schemes are unbreakable through conventional methods, but they are typically referred to as "computationally secure". This notion of computational security is very important when referring to the strength of any encryption scheme.

The only data encryption method that is truly "unbreakable" (in a straight up attack***) is that of the one-time pad. One-time pad is a very simple method of security. Scramble the bits against a string of bits the same length, and then send the garbage. Because the cipher text leads no clues (either mathematically, or procedurally) to the contents of the plaintext, it is secure. Basically you are sending junk out into the public view, then somehow translating a filter onto that junk. Since the bits can permutate out into any combination of plaintext bits, your message does not stand out as being the correct decrypted bits. Of course this method is all but unusable since your key is the length of your plaintext, and you need to find an already secure channel with which to transmit the key.

More often than not, when one refers to the jargon of an "unbreakable code", you mean "impossible to break in a reasonable about of time with available computing resources". If we take apart that statement, there are two basic flexible points to our assumption:
  • How long is a reasonable amount of time?
  • What are the computing resources available
The first statement is largely subjective, but the second is largely more important to consider. Surely in 100 years, computing resources will be so vast as to lay complete waste to even our strongest ciphers today, while that same very strong encryption is theorized to take multiples of the lifetime of the universe to break today. Just how large do you think 2^128 combinations is? That is, after all, 128 bits, the "strong" encryption as we think of it now. Though the exact axiom of Moore's law may not hold intact, the concept is still there: computing power increases, and thus each of our ciphers has an expiration date until when it slips under "reasonable" in the length of time to crack it.

Even ciphers that are unbreakable through conventional methods may be defeated by sneakier methods, such as random seed prediction, etc. For instance, if we know when a key was generated, and we know it is seeded against some value of time, it is possible to permutate out what the possible keys will be and back solve our work from there. Even against the boldly strong one-time pad, this is a valuable, and very real attack. Other such attacks founded on number theory and the principles behind the encryption algorithms lead them to be broken in certain situations.

Cryptography is an ever-changing field, with advances being made in both algorithms and cryptanalysis (the study of the strength of ciphers). With the sand moving as quickly as it does, the thoughts behind anything being "unbreakable" can change in a matter of moments or in a few years. From the clever, to the unwittingly simple, to the increase of power over time, crypto can never fully rest on it's laurels with an encryption scheme for the ages, but it can always do "good enough for now", or until some smart mind knocks your algorithm off of the mountain.

Quick crypto jargon: * An attack is anything that would attempt to "solve" a crypto scheme, either with it's key, or some other (possibly sneaky) method. However, for our purposes in this discussion, when referring to an attack, any dead giveaway doesn't count, such as key theft, knowledge of (all of) the plaintext, etc.

** By "scheme" I am referring to a particular algorithm or encryption method, such as DES, Blowfish, PGP, etc

*** Brute force encryption attacks are such that you exhaust every possible key until it fits, rather like a crazed locksmith.

Log in or registerto write something here or to contact authors.