**Cryptography and Hashing Fundamentals in Python and Java**

Genre: eLearning | MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz

Language: English | Size: 3.89 GB | Duration: 13h 53m

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 pseudo-random numbers

Data Encryption Standard (DES) and Advanced Encryption Standard (AES)

Understand the basics of public key encryption systems

RSA and Diffie-Hellman 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)

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