MAD 4471: Introduction to Cryptography and Coding Theory

Introduction to Encryption

Module One

Objectives:

a) The students will be able to use the basic vocabulary of encryption (plaintext/ciphertext, encryption/decryption).

b) The students will be able to use the Caesar cipher.

c) The students will be able to use the Vigenère cipher.

Lecture Notes PDF

Security of Encryption Schemes

Module Two

Objectives:

a) The students will know the meaning of perfect secrecy.

b) The students will be able to use the One Time Pad and to prove it has perfect secrecy.

c) The students will know how to build a Pseudo Random Generator.

d) The students will know the definition of the security of a PRG.

e) The students will know how to build a stream cipher from a PRG.

f) The students will know the definition of semantic security.

g) The students will know how to prove/disprove the semantic security of a scheme.

Lecture Notes PDF

Block Ciphers

Module Three

Objectives:

a) The students will know the definition of the Pseudo Random Function and how to prove its security.

b) The students will know the definition of a block cipher.

c) The students will know the design of the Data Encryption Standard (DES).

d) The students will know 3 modes of operations of a block cipher: Electronic Code Book (ECB), Cipher Block Chain (CBC) and Counter mode (CTR).

e) The students will know how to prove the semantic insecurity of the ECB mode.

Lecture Notes PDF

Message Integrity

Module Four

Objectives:

a) The students will know the definition of a MAC and they will know how to prove its security.

b) The students will know how to construct a MAC from a Pseudo Random Function.

c) The students will know the definition of a hash function and the definition of collision resistance.

d) The students will know how to construct a MAC from a hash function.

Lecture Notes PDF 1

Introduction to Public Key Cryptography

Module Five

Objectives

a) The students will know how to use the RSA trapdoor permutation.

b) The students will know how to use the Diffie-Hellman key exchange protocol.

c) The students will know how to use the RSA digital signature scheme.

d) The students will know an intuitive explanation why "Plaintext RSA" is not semantically secure.

Lecture Notes PDF

The Security of RSA

Module Six

Objectives:

a) The students will know why the Chosen Ciphertext Attacks are a better attack scenario to model the semantic security of public key encryption schemes than the Chosen Plaintext Attacks.

b) The students will know how to successfully carry an Chosen Ciphertext Attack against Textbook RSA.

Lecture Notes PDF

Factoring Methods

Module Seven

Objectives:

a) The students will know how to use Floyd's algorithm.

b) The students will know how to use Pollard's rho method.

c) The students will know how to perform a low exponent attack against RSA.

Lecture Notes PDF

Crypto-Systems using the Discrete Logarithm Problem

Module Eight

Objectives:

a) The students will know how to use the Diffie-Hellman protocol.

b) The students will know how to use the ElGamal protocol.

c) The students will know how to carry on a CCA attack against ElGamal without random padding.

d) The students will know how to use the ElGamal signature scheme.

Lecture Notes PDF

Introduction to Coding Theory

Module Nine

Objectives:

a) The students will know the definition of the fundamental terms of coding theory: code, codeword, length of a code, arity of a code, distance of a code, rate of a code.

b) The students will know how to encode/decode with the repetition code.

c) The students will know how to encode/decode with linear codes using syndrome decoding.

Lecture Notes PDF

Linear Codes

Module Ten

Objectives:

a) The students will know how to compute the parity check matrix from a generating matrix of a linear code.

b) The students will know how to compute the distance of a linear code.

c) The students will know how to encode/decode with the Hamming codes.

Lecture Notes PDF

Code-Based Cryptography

Module Eleven

Objectives:
a) The students will know how to encrypt/decrypt with the McEliece cryptosystem.
b) The students will know how to encrypt/decrypt with the Niederreiter cryptosystem.