Never trust an amateur cryptographer, because the very best she can do is create a code she cannot break.

Never trust the NSA because the best they can offer is a cipher which you cannot break.

This is my pop-sciency understanding of the current state of code breaking.

Let's start at the beginning though.

People encoded a piece of text using a recipe or algorithm, for example by swapping letters for other letters.

The key point was that it was easy to decipher and if you knew the recipe, but damned hard if you did not.

These ciphers kept many smart Roman generals awake at night.

Over millenia, the logical conclusion to this was the Enigma machine, which had an electric algorithm for substituting and enciphering letters. Once the machine was setup everyday letters would would be substituted as they were typed. Internally the machine state would change at each keystroke meaning, 'ABCABC', could turn into something like 'GDTWJN'.

Code breakers had the difficult task of searching through the millions of possible ciphers generated by the machine.

Again, easy if you have the machine and the daily setup configurations. Ludicrously hard if you don't.

War being war however, Enigma machines, machine operators and daily configurations fell into enemy hands.

For example soldiers were told never to type numbers into the machine, only letters. After hearing this, Turing realised that 90% of messages had 'eins' (1) encoded in the ciphers.

Finding such patterns, for which purpose they built the first computer, was key to curtailing the war by an estimated two years.

By the end of the war the race to randomness was on.

Patterns were both friend and enemy to cryptanalysts and computers were about to turbocharge the pattern race during the cold war.

Let's take this race to its natural conclusion.

Again, we want to make messages as hard as possible to decipher, patterns are our enemy.

What about taking it to an extreme. Are there problems which nobody could solve? Of course, Goedel tells us that there are some problems which we can state but nobody can solve. A nice idea.

But let's step back, take it down a notch. How about problems which are just extremely difficult to solve? Ones with no patterns, no short cuts. They are called NP-Complete problems.

On the plus side however, an NP complete problem's correctness can be checked easily.

This leads us to modern public-private key cryptography. The encryption function with a public key generates a random message with no patterns and no shortcuts (still debated with respect to quantum cryptography). The message can however be decrypted easily with a private key.

Asymmetric encryption is a neat concept. See here for a cool example.

Finance is also concerned with patterns.

Just as the codebreakers at Bletchley used old messages to find leverageable patterns in current messages, financial analysts do the same with historical returns. And just as your opponents can change tweak their encryption methods and ruin your historical data, so can markets.

Once you have an answer in cryptology it's easy to check. At first you may think that's true in finance, but our world is non-deterministic. It's more like like poker - you can play a hand perfectly but still lose. It's never trivial to tell whether your decision was correct in finance.

As computers fuel ever more randomness in cryptography, more liquidity and HFT arbitrages patterns away quicker than ever.

In the future extremely efficient markets may even start approaching cryptological degrees of randomness.

In fact quantum computing, if possible, may spell the end of some public-private key encryption, as it could theoretically solve problems with solutions which are more complex than our universe, which means that Quantum cryptographers end up in a field a tad closer to that of financial analysts who are concerned with many possible future states of the markets.

It will be a sad day for cryptographers everywhere.