In this course you will learn about cryptography and hashing in Python and Java as well. You will understand most of the private key (symmetric) and pubic key (asymmetric) cryptosystems on a step by step basis. You can learn about the theory as well as the implementation for every cryptographic algorithm – and how to crack these systems (so what are the weaknesses).
Chapter 1 – Cryptography Fundamentals
- what is the aim of cryptography?
- private key and public key cryptosystems
Chapter 2 – Caesar Cipher
- Caesar cipher theory and implementation
- how to crack Caesar cipher
- frequency analysis and language detection
Chapter 3 – Vigenere Cipher
- Vigenere cipher theory and implementation
- how to crack Vigenere cipher with Kasiski-algorithm
Chapter 4 – One Time Pad (Vernam Cipher)
- random and pseudo-random numbers
- the XOR logical operator
- one time pad theory and implementation
- why is it impossible to crack Vernam cipher?
- Shannon’s secrecy
Chapter 5 – Data Encryption Standard (DES)
- data encryption standard (DES) theory and implementation
- cryptoanalysis techniques
- linear cryptoanalysis and differential cryptoanalysis
Chapter 6 – Advanced Encryption Standard (AES)
- advanced encryption standard (AES) theory and implementation
- Shannon’s confusion and diffusion
Chapter 7 – Asymmetric Cryptosystems
- problems with private key cryptosystems
- random numbers and prime numbers in cryptography
Chapter 8 – Modular Arithmetic
- modular arithmetic fundamentals
- finding prime numbers – naive approach and advanced algorithms
- integer factorization problem
- discrete logarithm problem
Chapter 9 – Diffie-Hellman Key Exchange
- Diffie-Hellman key exchange algorithm theory and implementation
- prime numbers and primitive roots
- man-in-the-middle attack
Chapter 10 – RSA Algorithm
- RSA algorithm theory and implementation
- the problem of factorization
Chapter 11 – Advanced Modular Arithmetic
- Euclidean and the greatest common divisor (GCD) problem
- extended Euclidean algorithm (EGCD)
- modular inverse problem
Chapter 12 – Elliptic Curve Cryptography (ECC)
- elliptic curve cryptography theory and implementation
- why does Bitcoin use elliptic curve cryptography?
Chapter 13 – Cryptographic Hashing
- what is hashing in cryptography?
- properties of hashing
- birthday paradox
- MD5 and SHA algorithms
Thanks for joining my course, let’s get started!
Who this course is for:
- Python or Java developers curious about cryptography!
- You should have an interest in cryptography as well as some programming knowledge in Python or Java!
Last Updated 10/2021