Modern cryptography algorithms are necessary for the protection of data storage and communication streams from disclosure and manipulation of information to distrusted or malicious parties. This course explains the inner workings of cryptographic primitives and how to implement them. Assignments will be both theoretical and application based. Experience with C/ C++ programming is required.

Specific topic coverage includes:

● Introduction to Cryptography and Data Security 

● Stream Ciphers 

● RNGs

● LFSRs

● Block Ciphers 

● DES, 3DES

● AES

● Modes of Operation

● Public Key Cryptography 

● RSA

● Diffie-Hellman

● ECC

● Message Integrity and Authentication

● Digital Signatures

● Hash Functions

● Message Authentication Codes

● Key Management and Distribution 

● Network Security 

● Transport & Network Layer Security

● Wireless Network Security

● Email Security

● Access Control and Cloud Security