Went to an interesting seminar at uni today, organised by the Science and Technology Studies Department, which featured author Simon Singh giving a lecture about the history of codebreaking. This is the suject of his best-selling book, 'The Code Book', which I have read.
The lecture gave a very brief overview of the different types of encryption employed through the centuries. Some highlights though were a live demonstration of the Enigma machine (he brought one in with him), and another demonstration for which I volunteered.
The point of this demonstration was to show that there is a counter-intuitive way of solving the problem of being able to ask someone out on a date without fear of rejection. The solution goes like this. There are 5 playing cards, two of which are queen of hearts, and three of which are jack of clubs. Each potential partner is given both a queen and a jack. The person going first secretly arranges their cards in an order which decides if they want to go on the date or not, if he want to, the heart must go on top, if not, the jack must go on top. The second person must place the heart on the bottom if they want the date, or on top if not. Therefore, if both partners want the date, the queens will be together. The cards are then cut many times and laid out face up in a circle, revealed to both partners. If the queens are together, the date is happily arranged. If they are apart, then at least one partner said no. However, the clever bit is that if the partner said no, then they have no way of knowing what the other partner said, but if they said yes, then they know that the other person rejected them!