Cryptanalysis

A Course in Cryptanalysis

Cryptanalysis

Learn about cryptographic attacks and how to apply this knowledge to design secure cryptographic primitives.

I (Hosein Hadipour) created this repository for a cryptanalysis course in 2021. Anyone who finds this repository useful is welcome to use it. Any comments or modifications would be greatly appreciated.

Goals and Contents

This course aims to provide you with in-depth knowledge of cryptographic attacks, focusing on the cryptanalysis of symmetric and asymmetric ciphers. More precisely, this course covers the following topics:

Material

Slides

Exercises

Suggested Topics for Projects (choose one)

Suggested Topics for Seminars (choose one)

Textbooks

Writing a book in the field of cryptanalysis is a challenging task, as this field is constantly evolving. However, there are some books that explain the basics of cryptanalysis and provide a good starting point for beginners. The best way to learn cryptanalysis is by reading scientific papers and attempting to implement the attacks yourself.

Before starting to read the following books, it is recommended to have a good understanding of cryptography and mathematics, including basic probability theory, discrete mathematics, combinatorics, number theory, abstract algebra, and linear algebra.

Introduction to Modern Cryptography

modern_crypto

Website

Applied Cryptanalysis: Breaking Ciphers in the Real World

applied_crypto_stamp

Website

Algorithmic Cryptanalysis

algorithmic_cryptanalysis

Techniques for Cryptanalysis of Block Ciphers

techniques_for_cryptanalysis_of_block_ciphers

Website

The Block Cipher Companion

block_cipher_companion

Website

An Introduction to Mathematical Cryptography

into_to_mathematical_crypto

Cryptography: Theory and Practice

cryptography_theory_and_practice

Website

Understanding Cryptography

understanding_cryptography

Website

A Salad of Block Ciphers

a_salad_of_block_ciphers

Download book

It is available on Cryptology ePrint Archive:

https://eprint.iacr.org/2016/1171

A Self-Study Course in Block-Cipher Cryptanalysis

bruce_schneier

Studying cryptanalysis is difficult because there is no standard textbook, and no way of knowing which cryptanalytic problems are suitable for different levels of students. This paper attempts to organize the existing literature of block-cipher cryptanalysis in a way that students can use to learn cryptanalytic techniques and ways to break new algorithms.

Download book

It is publicly available via the following link:

https://www.schneier.com/wp-content/uploads/2016/02/paper-self-study.pdf