Introduction to Applied Cryptography (CRY302)
Description
This course is an introduction to applied cryptography and its relationship to secure systems. Students will learn making, breaking codes and ciphers. They can have a good understanding of major concepts in applied cryptography: plain text, encryption, cipher text, block ciphers, decryption, public-key cryptosystems, hash functions, digital signatures, authentication, key management, and cryptographic protocols as a part of securing digital systems.
Learning Outcomes
- Describe the key security requirements of confidentiality, integrity, availability, and different types of security threats and attacks.
- Understand the main concepts of symmetric cryptography via classical symmetric (Caesar-type, Hill, Vigenère, Vernam,…) ciphers.
- Understand the main concepts of modern symmetric cryptography (stream, block, Feistel-type ciphers, DES).
- Understand the general structure of Advanced Encryption Standard (AES) and the four transformations used in AES.
- Analyze the security of multiple encryption schemes and explain the meet-in-the-middle attack.
- Understand requirements for pseudorandom number generators and how they can be constructed by using block cipher.
- Understand the basic principles of public-key cryptosystems (RSA, ElGamal, Diffie-Hellman)
- Understand the basic structure of cryptographic hash functions.
- Understand the basic principles of message authentication and requirements.
- Understand the basic digital signature schemes and algorithms (Elgamal, RSA-PSS).
Assessment structure
- Ongoing assessment (OA):
- 02 Progress Tests (20%)
- Participation in discussions (10%)
- 10 Labs (30%)
- Final exam: 40%
- Completion criteria:
- Every on-going assessment component > 0;
- Average Lab Score >= 4;
- Final Exam Score >=4 & Final Result >= 5
Course schedule
- Chapter 1. Overview
- 1.1 Computer Security Concepts
- Chapter 1. Overview (cont.)
- 1.2 The OSI Security Architecture
- 1.3 Security Attacks
- 1.4 Security Services
- Chapter 1. Overview (cont.)
- 1.5 Security Mechanisms
- 1.6 A Model for Network Security
- 1.8 Review Questions, Problems
- Chapter 2. Classical Encryption Techniques
- 2.1 Symmetric Cipher Model
- 2.2 Substitution Techniques
- 2.3 Transposition Techniques
- Chapter 2 (cont.)
- 2.4 Rotor Machines
- 2.5 Steganography
- 2.7 Review Questions, Problems
- Lab 1: Classical symmetric cipher
- Chapter 3. Block Ciphers and the DES
- 3.1 Traditional Block Cipher Structure
- 3.2 The Data Encryption Standard (DES)
- 3.4 The Strength of DES
- 3.5 Block Cipher Design Principles
- Recommended Reading 1: Chapter 4. Finite Fields Arithmetic
- Lab 2: DES
- Review Chapters 1, 2, 3 & Progress Test 1 (30’)
- Chapter 5. Advanced Encryption Standard
- 5.2 AES Structure
- 5.3 AES Transformation Functions
- 5.4 AES Key Expansion”
- Chapter 5 (cont.)
- 5.6 AES Implementation
- 5.8 Review Questions, and Problems
- Lab 3: Polynomials with Coefficients in GF(2^8), Simplified AES
- Chapter 6. Block Cipher Operation 6.1 Multiple Encryption and Triple DES 6.2 Electronic Code Book 6.3 Cipher Block Chaining Mode 6.4 Cipher Feedback Mode”
- Chapter 6 (cont.)
- 6.5 Output Feedback Mode
- 6.6 Counter Mode
- 6.7 XTS-AES Mode for Block-Oriented Storage Devices
- 6.9 Review Questions, and Problems
- Lab 4: Block Cipher Operation, 3DES
- Chapter 7. Pseudorandom Number Generation (PRNG) and Stream Ciphers
- 7.1 Principles of PRNG
- 7.2 Pseudorandom Number Generators
- 7.3 PRNG Using a Block Cipher
- 7.4 Stream Ciphers
- Chapter 7 (cont.)
- 7.5 RC4
- 7.6 True Random Number Generators
- 7.8 Review Questions, and Problems
- Lab 5: PRNG (Blum Blum Shub and Linear Congruential)
- Chapter 9: Public-Key Cryptosystems
- 9.1 Principles of Public-Key Cryptosystems
- 9.2 The RSA Algorithm
- 9.4 Review Questions, and Problems
- Recommended Reading 2: Chapter 8. Advanced Number Theory (Euler’s Theorem, Primality Test, Chinese Remainder Theorem, Discrete Logarithms)
- Lab 6: RSA
- Chapter 10
- 10.1 Diffie-Hellman Key Exchange
- 10.2 Elgamal Cryptographic System
- Recommended Reading 3: Elliptic Curve Cryptography (10.3, 10.4)
- Lab 7: Diffie-Hellman Key Exchange, Elgamal Cryptosystem
- Review Chapters 5, 6, 7, 9, 10 & Progress Test 2 (30’)
- Chapter 11: Secure Hash Algorithm
- 11.1 Applications of Cryptographic Hash Function
- 11.3 Requirements and Security
- 11.5 Secure Hash Algorithm (SHA)
- 11.8 Review Questions, and Problems
- Lab 8: MASH
- Chapter 12. Message Authentication Codes (MAC)
- 12.1 Message Authentication Requirements
- 12.2 Message Authentication Functions
- 12.3 Requirements for MACs
- 12.4 Security of MACs
- 12.5 MACs Based on Hash Functions: HMAC
- 12.11 Review Questions, and Problems
- Lab 9: HMAC
- Chapter 13: Digital Signatures
- 13.2 Elgamal Digital Signature Scheme
- 13.4 NIST Digital Signature Algorithm
- 13.6 RSA-PSS Digital Signature Algorithm
- Recommended Reading 4: Key Management and Distribution, Public-Key Infrastructure (PKI), X.509 Certificates (Chapter 14), Needham-Schroeder; Kerberos (15.2, 15.3)
- Lab 10: DSA
- Course Review
Learning material
- William Stallings, Cryptography and Network Security: Principles and Practice, 6th Ed. Pearson, 2013.
- Nigel Smart, Cryptography Made Simple, Springer, 2016.
- Alasdair McAndrew, Introduction to Cryptography with Open-Source Software, CRC Press, 2011.
- Bruce Schneier, Applied Cryptography: Protocols, Algorithms and Source Code in C, 20th Anniversary Edition, John Wiley & Sons, 2015.
- Keith Martin, Everyday Cryptography: Fundamental Principles and Applications, Oxford University Press, 2012.
- Lecture slides, Lab manual, supplementary material
- Tools: Internet, Cryptool, Sage, OpenSSL, Maple