Cryptography was an art until the late 20th century. Building good codes, or breaking existing ones, relied on creativity and personal skill. There was very little theory that could be relied upon and there was not even a well-defined concept of what creates a good code. This picture of cryptography is completely changed. A rich theory developed, enabling the rigorous study of cryptography as a science. Furthermore, the field of cryptography now covers much more than secret communication, including digital signatures, message authentication, protocols for exchanging secret keys, authentication protocols, electronic auctions and elections, and digital cash. In fact, modern cryptography can be said to be concerned with problems that have arisen in any distributed computation that may come under internal or external attack. Without attempting to provide a perfect definition of modern cryptography, we would say that it is the scientific study of techniques for securing digital information, distributed computations, and transactions. Historically, the main consumers of cryptography were military and intelligence organizations. Today, cryptography is everywhere, Security mechanisms that depend on cryptography are an integral part of almost any computer system. Users rely on cryptography every time they access a secured website. Cryptographic methods are used to enforce access control in multi-user operating systems, and to prevent thieves from extracting trade secrets from stolen laptops. Software protection methods employ encryption, authentication, and other tools to prevent copying. In short, cryptography has gone from an art form that dealt with secret communication for the military to a science that helps to secure systems for ordinary people all across the globe. This also means that cryptography is becoming a more and more central topic within computer science. Course Description This course provides a broad education in the area of cryptography and security covering the main topic deemed necessary to appreciate and understand the basics of this important subject. Specific topics to be examined include Basic theory, mathematical background material, symmetrical crypto systems, block ciphers, stream ciphers, DES, Advanced Encryption Algorithm (AES), hash functions and message authentication (MAC), asymmetric cryptosystems, RSA and El Gamal, digital signatures, elliptic curves, provable security, and Key management. Student-centered learning and hands-on practical work are central to the learning approach taken. Learning Outcomes - After finishing the module, the student will be able to: 1- Understand the role of cryptography in information security. 2- Describe the major types of cryptographic algorithms and typical applications. 3- Recognize the different modes of operation for block ciphers and their applications. 4- Write code to encrypt and decrypt information using some of the standard algorithms. 5- Understand authentication protocols and processes. 6- Understand how digital signatures are performed and the role of digital certificates. 7- Understand the role of hash functions in Information Security. Course Timing Day1 (31/01/2105): Lectures: - Introduction and Classical Ciphers. - Classical Encryption Techniques. Lab: - Write code to encrypt and decrypt information using: DES Day2: (01/02/2105): Lectures: - Block Cipher Operation: Triple DES, Electronic Codebook (ECB) Mode, Cipher Block Chaining (CBC), cipher feedback (CFB), output feedback (OFB) - Advanced Encryption Standard: AES - Stream Ciphers and Random Number Generation Lab: - Write code to encrypt and decrypt information using: AES Day3: (02/02/2105): Lectures: - Public-Key Cryptography and RSA - Other Public-Key Cryptosystems: Diffie-Hellman Key Exchange Lab: - Write code to encrypt and decrypt information using: RSA Day4: (03/02/2105): Lectures: - Other Public-Key Cryptosystems: ElGamal, and Elliptic Curve Cryptography. Lab: - Write code to encrypt and decrypt information using: Diffie-Hellman Day5: (04/02/2105) Lecture: - Cryptographic Hash Functions - Message Authentication Codes: CBC-MAC, private key authentication Lab: - Write code for Cryptographic Hash Functions Day6: (05/02/2105) Lecture: - Digital Signatures: ElGamal Digital Signature Scheme, Digital Signature Standard (DSS), Schnorr Digital Signature Scheme - Key Management and Distribution Lab: - Write code to encrypt and decrypt information using: ElGamal Digital Signature Instructor Samir Gaber received his PhD from department of electronic and electrical engineering, University College London (UCL), UK, 2010. He is currently honorary lecturer in department of electronic and electrical engineering, University College London (UCL), UK. Since 2011, he is the head of malware analysis and reveres engineering department, Egyptian Computer Emergency Readiness Team (EG-CERT), Egypt. Since 2010, he is assistant professor in electronics, communications, and computer engineering department, Helwan University, Egypt. From 2010 to 2014, he was honorary research associate in department of electronic and electrical engineering, University College London (UCL), UK.