This is a class for those who want to stop learning about building cryptographic systems and want to attack them. This course is a mixture of lectures designed to introduce students to a variety of code-breaking techniques and python labs to solidify those concepts. Unlike its sister class, Core Concepts, math is necessary for this topic. Don't have a math degree? A basic understanding of algebra is sufficient - the mathematical principles that are necessary for understanding are included in the lecture. Knowledge of programming is also necessary, and knowledge of python is very helpful. The class covers:
- Intro to attacks using human-computable crypto
- Number theory and abstract algebra primer
- Factoring attacks
- Attacks on RSA
- Discrete logarithm attacks
- Symmetric system constructs
- Generic attacks
- Linear cryptanalysis
- Differential cryptanalysis
- Integral cryptanalysis on reduced AES
Learning Objectives
- Understand how cryptanalysis is used to break cryptography.