2024 Spring Introduction to Cryptanalysis
Welcome to the repository for our Cryptanalysis class, where we explore the fascinating world of cryptographic algorithms and their analysis. This course is designed for students interested in the principles of cryptography and the practical applications of cryptanalysis techniques. We use Python for our in-class demonstrations and exercises, and Rust for homework and review sessions to provide a comprehensive understanding of both scripting and systems programming in the context of security.
This course covers various aspects of cryptanalysis, including historical ciphers, modern symmetric and asymmetric algorithms, hash functions, and cryptographic protocols. Through hands-on exercises, students will learn how to implement and attack cryptographic systems.
- /lectures: Contains slides and reading materials for each lecture.
- /exercises: Python notebooks and scripts used during in-class exercises.
- /homework: Homework assignments, primarily in Rust, for reinforcing concepts discussed in class.
- /solutions: Sample solutions for exercises and homework (access restricted to instructors).
- Basic knowledge of programming in Python and Rust.
- Familiarity with basic concepts in mathematics and computer science.
- Installation of Python 3.x and Rust programming language.
- Clone this repository to your local machine:
git clone https://github.com/yourusername/cryptanalysis-class.git
- Install required Python dependencies:
pip install -r requirements.txt
- Verify Rust installation and toolchain: >= 1.75.0
rustc --version
In-class exercises are designed to complement the lectures and provide hands-on experience with real cryptographic systems using Python. Navigate to the /exercises folder and follow the instructions in each notebook/script.
Homework assignments are intended to solidify your understanding of the course material through practical implementation and analysis tasks in Rust. Assignments can be found in the /homework folder.
We encourage contributions from students and educators! If you have suggestions for improvements or new content, please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to Professor Yeom Yongjin, and all the students and staff involved in the development of this course.