Learning cryptography and cryptanalysis
I am currently following the book Modern Cryptanalysis by Christopher Swenson. There are separate jupyter notebooks for the exercises at the end of each chapter along with related code files for keeping the main notebook more organised.
Chapter-1: Historical and primitive ciphers and their breaks.
Chapter-2: Modular arithmetic and refresher on mathematics for crypto.
Chapter-3: Algorithms for factorisation and discrete logarithm problem.
Chapter-4: Modern hashing and encryption algorithms like MD5, DES and AES.
...
Chapter-5: General cryptanalysis methods.
Chapter-6: Linear cryptanalysis.
Chapter-7: Differential cryptanalysis.
This book along with other popular books to study crypto can be found in the folder Reading Material. Some good supplementary material such as the original articles describing the methods can be found in the folder Additional Material.