Skip to content

Hacker-Code-J/cryptanalysis-lecture

Repository files navigation

cryptanalysis-lecture

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.

Course Overview

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.

Repository Structure

  • /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).

Getting Started

Prerequisites

  • 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.

Setting Up Your Environment

  1. Clone this repository to your local machine:
    git clone https://github.com/yourusername/cryptanalysis-class.git
  2. Install required Python dependencies:
    pip install -r requirements.txt
  3. Verify Rust installation and toolchain: >= 1.75.0
    rustc --version

In-Class Exercises

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 and Review

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.

Contributing

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.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

Special thanks to Professor Yeom Yongjin, and all the students and staff involved in the development of this course.

Releases

No releases published

Packages

No packages published