### Unit 1: Introduction to Cryptography

This unit provides an overview of cryptography, the study of information-hiding and verification. Cryptography ensures the confidentiality/privacy, message integrity, authentication, and non-repudiation of information. There are two basic types of ciphers used: the symmetric key cipher, which uses the same key for the same message, and the asymmetric key cipher, which uses different keys for encoding and decoding the same message.

This unit will also go over the basics of information theory so that students can get a feel for message encoding before addressing various classical ciphers, which can now be easily cryptanalyzed and broken. Lastly, we will take a look at the methods and techniques used to cryptanalyze any algorithm that enciphers text.

**Completing this unit should take you approximately 16 hours.**

### 1.1: Introduction

Read this general introduction to cryptography. Learn the terms in bold font and familiarize yourself with the common goals and forms of cryptography.

### 1.2: History of Cryptography

Read this article to familiarize yourself with cryptography's history.

### 1.3: Basics of Information Theory

Read this page to learn about information theory and get a feel for how messages can be encoded. Make sure you do the exercise listed on the page under "Variable Length Codes" section.

### 1.4: Basic Cryptanalysis

Read this page to learn about the basic cryptanalysis techniques.

Read this page to learn about various cryptanalysis techniques.

### 1.5: Cryptography, Politics, and Policy

Watch this lecture about cryptography and politics. It discusses the choices national leaders are making about technology.

### 1.6: Stats in Code

If you do not have java compiler on your computer, install Java on your computer via www.java.com. Then, create a java language program that performs a frequency counting. You can see how to compile a java code via the java tutorials provided here. One possible solution can be found via the link above, under the Frequency Counting section. Study the solution code only after you have solved the problem or spent a substantial amount of time working on it.