Cryptography : TheoryCryptography, the science of codes and ciphers, is at the core of some of the most pressing issues in network and digital technology. Crypto is used to protect private digital data, to enable secure credit card transactions, to protect electronic communication, and to verify the authenticity of sources of data. Crypto is used to copy-protect DVD's, in electronic voting machines, and to protect WiFi networks from eavesdroppers. In any discussion involving information, privacy, and balances of power, cryptography is likely to be the key issue. The idea of Crypto-Anarchy, for example, suggests that freely available strong cryptography will make traditional government obsolete by allowing complete anonymity, decentralizing hierarchies, and eliminating the tools of observation and surveillance in all forms from the authorities.
Crypto is, essentially, math. The basic problem is crypto is to find a mathematical formula that you can use to encrypt a message, and which the receiver can use to decrypt it, while preventing an eavesdropper from de-crypting it. Cryptanalysis, on the other hand, is the science of Breaking Codes. The math in current crypto is fairly advanced and involves topics ranging from generating immense prime numbers to exploiting odd properties of quantum mechanics; but, as an introduction, we'll experiment with some classic crypto schemes and code-breaking techniques.
A Basic Intro to Crypto by Terry Ritter
WikiPedia's History of Cryptography
Intro to Quantum Cryptography
To experiment with some simple code systems, we'll be using Python, a handy and easy-to-learn programming language that's good at manipulating text. In preparation, you might want to take a look at this Non-Programmer's Tutorial for Python. Python is installed in the Linux Lab; you can also use it on Mac and Windows.