Understanding Cryptology:
Cryptanalysis
Understanding Cryptology:
Cryptanalysis
Creator: Dr. Kerry McKay
License: Creative Commons: Attribution, Share-Alike
(http://creativecommons.org/licenses/by-sa/3.0/)
Class Prerequisites: Understanding Cryptology: Core Concepts. Also, 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.
Lab Requirements: Python 2.7 with IDLE, course exercise code
Class Textbook: “Modern Cryptanalysis: Advanced Code Breaking” by Swenson (ISBN 978-0470135938)
Recommended Class Duration: 2-3 days
Creator Available to Teach In-Person Classes: No
Author Comments:
A class for those who want to stop learning about building cryptographic systems and want to attack them. This course is a mixture of lecture 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
Author Biography: Kerry doesn't like talking about herself, but she does love crypto. She has a doctorate in computer science from GWU, where she was a Scholarship for Service (aka CyberCorps) student, and a BS and MS in computer science from WPI.
Class Materials
Revision History:
06-10-2013 - Initial class content upload
If you have used and modified this material, we would appreciate it if you submit your modified version for publishing here, so that all versions can benefit from your changes.