Cryptography is indispensable for providing confidentiality of information in computer systems. This course explains the inner workings of cryptographic primitives and how to correctly use them. Students will learn about the security of cryptographic constructions and how to apply this knowledge to real-world applications. Students will examine many deployed protocols and analyze mistakes in existing systems. The course discusses public-key techniques that let two or more parties generate a shared secret key. Students will cover the relevant number theory and discuss public-key encryption and basic key-exchange.
- Students will be able to use Cryptography as an effective tool to help achieve security goals.
- The students will be able to understand how problems related to simple programming errors can result in major security holes.
- Students will be able to use cryptography correctly and maximize its effectiveness
- Students will be able to identify the core techniques of cryptography and how they can be applied to meet various security objectives.
- Students will learn how to apply the techniques described in this course in a variety of security applications.