(Last Mod: *
27 November 2010 21:38:01
)*

Cryptography is the art and science of secret writing. In other words, being able to communicate with one group of people while keeping all others ignorant of what is being discussed. In yet other words, the goal is keep your communications confidential. For most of it's multi-thousand year history, this is all that cryptography attempted to do. But starting in the mid-20th century, it started to be used for slightly different purposes as well. One of those purposes was to ensure that the contents of a message were unchanged, known as ensuring the integrity of the data, and the other was to verify that the message actually originated from the source that it claimed to have come from, which is known as authentication. These three goals -- CIA: Confidentiality, Integrity, Authenticity -- and how we can achieve them are the focus of these pages.

- INFORMATION ASSURANCE
- The Information Assurance Goals

- USAFA SUMMER SEMINAR CRYPTO MODULE
- MATHEMATICAL BASICS
- SYMMETRIC CRYPTOGRAPHY
- Polyalphabetic Ciphers
- Vigenere Cipher
- Auto-Key Cipher

- S-boxes
- Transposition Ciphers
- Scytale Cipher
- P-boxes

- Product Ciphers
- Feistal Ciphers

- Streaming Ciphers
- Block Ciphers
- Modern Symmetric Ciphers
- DES
- AES

- Cipher Modes
- ECB (Electronic Code Book)
- CBC (Cipher Block Chaining)

- ASYMMETRIC CRYPTOGRAPHY

Me. That's the bottom line. The motivation behind preparing this site is highly personal - I learn material better when I prepare it for presentation to others, or at least operate from that mindset. Hence the pages here reflect, more than anything else, my attempts to bolster my own understanding of a wide variety of topics. As a result, the topics presented tend to be a bit haphazard, bounce around quite a bit, and are developed in no preplanned order. Having said that, I hope others will find the site useful.

Cryptography can be presented at any level ranging from cereal box algorithms targeted at kindergarten students to highly theoretical and abstract constructions that only people highly versed in advanced number theory can hope to follow. I like to think that I am well beyond the kindergarten stage (at least in terms of what I know, if not always in terms of how I act), but know that I have a long way to go before I reach the other extreme. I am at the point where I need to develop a deeper, more number theoretic understanding of many of these concepts but am not quite at the point where I can divorce my study of the topics from a more practical, everyday level of comprehension. I find that most texts operate in one of two realms in this regard - either topics are presented as cookbook algorithms with no effort made to develop an appreciation for why they work or to understand their inner workings or they are presented in a purely theoretical and abstract fashion. My hope is to bridge this gap by developing the various concepts and algorithms in a logical and systematic fashion but without relying on highly abstract principles. While I will develop many of those principles, I plan to limit further reliance on them to a minimum by grounding most topics in more comfortable and familiar surroundings. Doing so may not always be the most efficient way to present things, but I hope it will lead to a better intuitive understanding and feel for the material.

This site is not a definitive reference, it is not a tutorial, it is not a repository of tools, it is not a cookbook of algorithms, it is not meant to be anything in particular. But, again, I do hope that others find this site useful and, to that end, will strive to make it as complete and coherent as possible - but that will be a very slow process that will have to evolve over a number of years.