### Course Introduction

Cryptography is essentially the science of writing in secret code. In data and telecommunications, cryptography has specific security requirements, such as authentication, privacy or confidentiality, integrity, and non-repudiation. To meet these security requirements, we employ secret key (or symmetric) cryptography, public-key (or asymmetric) cryptography, and hash functions.

In the first part of the course, we will review a number of different ciphers that were used before World War II. These ciphers would be easily broken nowadays, since cryptography has advanced quickly over the past couple of decades with the advent of modern computers. We will cover block cipher algorithms and describe the advanced encryption standard for a symmetric-key encryption adopted by the U.S. government. We will also learn about the important MD5 and SHA-1 hash functions as well as the message authentication code.

This course will focus on public key cryptography, which is best exemplified by the RSA algorithm (named after the algorithm inventors Rivest, Shamir, and Adleman). The RSA algorithm is considered particularly strong due to the fact that it relies on prime factorization, a computationally difficult process. We will take a careful look at this algorithm in this course. We will also learn about elliptic curves, another important mathematical function in cryptography, as well as the Diffie-Hellman key exchange and the elliptic curve discrete logarithm problem.

In the final part of the course, we will cover key exchange methods, study signature schemes, and provide an overview and discussion of public key infrastructure.

### 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.**### 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.**### Unit 3: Block Ciphers

In this unit, we will start with an explanation of the substitution-permutation network, which works through the series of linked mathematical operations used in block cipher algorithms. Note that substitution-permutation networks take a block of plain text and the key as inputs and then apply several alternating rounds of substitution and permutation boxes to encipher the data.

This unit also uses the complete mathematical algorithm to describe the data encryption standard before finishing with a description of the advanced encryption standard for a symmetric-key encryption adopted by the U.S. government.

**Completing this unit should take you approximately 14 hours.**### Unit 4: Hash Functions

This unit will introduce the concept of "hash" and then present the important MD5 and SHA-1 hash functions. (MD5 is a widely used cryptographic hash function with a 128-bit hash value, and SHA-1 is a cryptographic hash function designed by the National Security Agency.) We will finish the unit with a look at message authentication code, sometimes called a "keyed hash function."

**Completing this unit should take you approximately 19 hours.**### Unit 5: The RSA Cryptosystem and Factoring Integers

In this unit, we will learn the basic idea behind public key cryptography and explain in detail RSA as the most important example of public key cryptography. Next, we will discuss the algorithms used to determine whether an input number is prime. As noted earlier, these algorithms are important in public key cryptography because encryption depends on the factorization of prime numbers. This unit will present the mathematical background you need in order to understand these algorithms and in turn get a better picture of public key cryptography.

**Completing this unit should take you approximately 23 hours.**### Unit 6: Elliptic Curve Cryptography

This unit will cover elliptic curve cryptography. This approach to public-key cryptography is based on the algebraic structure of elliptic curves over finite fields. This unit includes examples of elliptic curves over the field of real numbers. The next unit will explain the Diffie-Hellman key exchange as the most important example of cryptographic protocol for symmetric key exchange. In the last part of this unit, we will learn about the elliptic curve discrete logarithm problem, which is the cornerstone of much of present-day elliptic curve cryptography.

**Completing this unit should take you approximately 12 hours.**### Unit 7: Digital Signature and Entity Authentication

This unit begins with a general discussion of key exchange methods, or methods designed to distribute keys securely so that they can be later used in a cryptographic algorithm. This unit also describes the difficult problem of computing the discrete logarithm, which is of greatly interest to cryptologists by virtue of its ElGamal signature scheme.

The unit will then cover five additional schemes (trusted certificates, private certificates, a modified Schnorr algorithm, a modified Guillou-Quisquater algorithm, and a modified Mu-Varadharajan algorithm) before ending with an overview and discussion of public key infrastructure and a lecture by James Massey.

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