### Unit 2: Classical Cryptography

In this unit, we will learn to describe and analyze the following classical ciphers: ADFGVX, Affine, Beaufort, Bifid, Caesar, Columnar Transposition, Four-Square, Hill, Playfair, Polybius Square, Rail-fence, Simple Substitution, Straddle Checkerboard, Vigenere, Autokey, Enigma, and Lorenz ciphers.nz ciphers. These ciphers are intuitively easy to understand and seem to encrypt the message well, but they have many shortcomings, which we will discuss as we work through this unit. By studying these classical ciphers, you will learn to avoid poor cipher design.

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

### 2.1: Classical Ciphers and Their Cryptanalysis

Read this page, which discusses the ADFGVX Cipher. Learn the algorithm, go through the JavaScript example, and read through the cryptanalysis to learn how you would break this cipher.

Read this page, which discusses the Affine Cipher. Learn the algorithm, go through the JavaScript example, and read through the cryptanalysis.

Read this page, which discusses the Beaufort Cipher. Go through the algorithm and JavaScript example.

Read this page, which discusses the Bifid Cipher. Learn the algorithm, go through the JavaScript example, and read through the cryptanalysis.

Read this page, which discusses the Caesar Cipher. First, go through the mathematical description and JavaScript example. Then, read through the cryptanalysis to learn how to break the cipher.

Read this page, which discusses the Columnar Transposition Cipher. Go through the written example as well as the JavaScript example, and then read about the cryptanalysis.

Learn the algorithm and cryptanalysis of Four-Square Cipher. Go through the Javascript example.

Go through the written example and JavaScript example of Hill Cipher and then read about its cryptanalysis.

Read about Playfair's algorithm and cryptanalysis and then go through the JavaScript example.

Go through both examples (written and JavaScript) of the Polybius Square Cipher, and then read about its cryptanalysis.

Go through both examples (written and JavaScript) of the Rail-fence Cipher and then read about its cryptanalysis.

Go through both examples (written and JavaScript) of the Simple Substitution Cipher and then read about its cryptanalysis.

Learn the algorithm and check out the JavaScript example.

Read the page to learn the algorithm for the Vigenere, Gronsfeld and Autokey Cipher. Then go through the JavaScript example and read the cryptanalysis.

### 2.2: Mechanical Ciphers

Read this page, which discusses the Enigma Cipher. Go through the JavaScript example and read about mathematical description.

Read this page, which discusses the Lorenz Cipher and go through the Javascript example.

### 2.3: Ciphers in Code

If you do not have java compiler on your computer, install Java on your computer via www.java.com. Then, create Caesar cipher with java. 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 Caesar section. Study the solution code only after you have solved the problem or spent a substantial amount of time working on it.