Cryptography and Hashing Fundamentals in Python and Java Download
Private and Public Key Cryptosystems, DES, AES, Cryptoanalysis, RSA, Elliptic Curve Cryptography and Hashing
What you’ll learn
 Understand the basics of private key encryption systems
 Caesar cipher and Vigenere cipher
 Frequency analysis and the Kasiski algorithm
 One Time Pad (OTP) and Shannon secrecy
 Random and pseudorandom numbers
 Data Encryption Standard (DES) and Advanced Encryption Standard (AES)
 Understand the basics of public key encryption systems
 RSA and DiffieHellman key exchange algorithm
 Elliptic Curve Cryptography
 Modular arithmetic basics (Fermat’s theorem, finding primes, integer factorization and discrete logarithm)
 Euclidean algorithm (greatest common divisor problem) and the extended Euclidean algorithm
 Understand hashing (MD5 and SHA)
Requirements
 You should have an interest in cryptography as well as some programming knowledge in Python or Java!
Description
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 Kasiskialgorithm
Chapter 4 – One Time Pad (Vernam Cipher)

random and pseudorandom 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 – DiffieHellman Key Exchange

DiffieHellman key exchange algorithm theory and implementation

prime numbers and primitive roots

maninthemiddle 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!