Here’s a neat thing: a post by Andrew Appel on the mathematics of CDOs (Collateralized Debt Obligations). It seems that someone has proven that you can put a financial “booby trap” in a CDO, and the unfortunate recipient cannot tell it is there, and even afterwards cannot prove that you did it.

By “booby trap”, they mean that you can construct a group of CDOs and insert debt that is likely to go bad into just a few, rather than spreading it randomly over the entire group. But don’t listen to me. Read the post and the paper. It’s reasonably readable.

Now, what does this mean? Well, you could target a customer with booby-trapped CDOs, then short their stock. Wait until the debt booby trap goes off, watch their stock price drop, close the shorts and profit. All kinds of fun and games. Modern banking is more complicated than we thought it was. [Personally, I’m not at all sure why banking needs to be complicated at all. Banks should be boring.]

The connection to cryptography is that the creation and testing of a CDO are very different computationally. Detecting that a CDO has not been created randomly is a NP hard problem, and NP hard problems are believed to be effectively insoluable because they take exponentially large amounts of computer power to solve exactly. [A limitation of the paper is that an approximate solution might be good enough, and approximate solutions to NP hard problems are not necessarily expensive.]

So, cryptography uses NP-hard problems a lot. The general idea is that you want to be able to construct a key cheaply but that breaking the key should be extremely expensive. This is the basis of public-key cryptography.