Cryptography Uses and Misuses: How to Use Crypto Properly and Attack Those That Don't
Many security professionals and software engineers working in security are familiar with the basic concepts of cryptography. However, few fully understand what security guarantees are provided by different cryptographic primitives, which constructions are recommended and which should not be used (and why), and how easy it is to misuse cryptography to the point that it is trivially broken. In this course, we will take an in-depth look at cryptographic concepts, constructions and implementation dangers and issues. The focus of this course will be on symmetric cryptography and hash functions. For just a few examples: we will understand the fundamental differences between stream and block and ciphers and how to use them in encryption, message authentication and protocols, we will study the security of cryptographic hash functions, and learn advanced attacks like low-memory birthday attacks and rainbow tables.
The aim of the course is to understand the security guarantees provided by a variety of cryptographic primitives, obtain an idea as to how they are constructed and how they work, learn how they can be properly and improperly used, and be familiar with the main attacks against them. The course will be filled with real-world examples of crypto misuses and we demonstrate how difficult it is to do crypto properly and how devastating the results are when it is misused. After taking this course, among other things, you will have a deep understanding of the major known attacks on SSL/TLS (like BEAST, CRIME, Lucky13, POODLE, DROWN etc.), and will be able to understand new attacks as they are released, and therefore evaluate their danger to your business. You will know how padding-oracle attacks work and how to avoid them, why length-leakage is a real danger, what protection password hashing does and does not afford, why time-dependent crypto code is dangerous, how privacy and integrity can be safely obtained together, how to ensure that you are utilizing good randomness and why this matters, and much more.
In addition to frontal lectures (which will themselves by highly interactive), participants will solve theoretical and applied exercises in dedicated exercise sessions in order to help them understand and internalize the material.
Who Should Take this Course
This course is of importance to anyone who uses cryptography in any way in their products, to developers who either use existing cryptographic libraries or implement their own, and to any security professional who needs to evaluate the ramifications of new attacks that are discovered.
What Students Should Bring
Students should bring paper, pens and laptops.
What Students Will Be Provided With
Students will receive a reference booklet containing everything needed to further their understanding of the material. In addition, students will receive a CD with all of the slides, and code examples.
Yehuda (Andrew) Lindell is a professor at Bar-Ilan University in Israel and the Chief Scientist at Dyadic Security. Yehuda attained his Ph.D. at the Weizmann Institute of Science in 2002 and spent two years at the IBM T.J. Watson research lab as a Postdoctoral fellow in the cryptography research group. Yehuda has carried out extensive research in cryptography, and has published over 100 conference and journal publications, as well as one of the leading undergraduate textbooks on cryptography. Yehuda has presented at numerous international conferences, workshops and university seminars, and has served on program committees for top international conferences in cryptography. In addition to Yehuda's notable academic work, he has significant industry experience in the design and deployment of cryptography in a wide variety of scenarios. Currently, he is the co-founder and Chief Scientist at Dyadic Security, a startup that provides a unique solution for key and credential protection even in the event of a network breach.
Video Preview (Training Description Above - Top of Page)