4.73 out of 5
4.73
933 reviews on Udemy

Cryptography and Hashing Fundamentals in Python and Java

Private and Public Key Cryptosystems, DES, AES, Cryptoanalysis, RSA, Elliptic Curve Cryptography and Hashing
Instructor:
Holczer Balazs
9,557 students enrolled
English [Auto] More
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)

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!

Introduction

1
Introduction

Cryptography Fundamentals

1
What is cryptography?
2
Symmetric encryption
3
Asymmetric encryption
4
Encryption Basics Quiz

### SYMMETRIC (PRIVATE KEY) CRYPTOGRAPHY ###

1
Symmetric cryptosystems

Caesar Cipher Theory

1
What is Caesar cipher?
2
Caesar cipher - encryption and decryption
3
Caesar cipher example
4
Caesar Cipher Quiz

Caesar Cipher Implementation (Python)

1
Caesar cipher implementation I
2
Caesar cipher implementation II
3
Caesar cipher implementation III

Caesar Cipher Implementation (Java)

1
Caesar cipher implementation I
2
Caesar cipher implementation II
3
Caesar cipher implementation III

Cracking Caesar Cipher

1
Cracking Caesar cipher with brute-force attack
2
Brute-Force Attack Quiz
3
Cracking Caesar-cipher with brute-force implementation (Python)
4
Cracking Caesar-cipher with brute-force implementation (Java)
5
What is frequency analysis?
6
Frequency analysis implementation (Python)
7
Frequency analysis implementation (Java)
8
Cracking Caesar-cipher with frequency analysis (Python)
9
Cracking Caesar-cipher with frequency analysis (Java)
10
Frequency Analysis Quiz

Detecting Languages

1
Detecting english language introduction
2
Detecting english language implementation I (Python)
3
Detecting english language implementation II (Python)
4
Detecting english language implementation III (Python)
5
Detecting english language implementation I (Java)
6
Detecting english language implementation II (Java)
7
Detecting english language implementation III (Java)
8
Language detection with machine learning

Vigenere Cipher Theory

1
What is the Vigenere cipher?
2
Vigenere cipher encryption and decryption
3
Vigenere cipher example
4
Vigenere Cipher Quiz

Vigenere Cipher Implementation (Python)

1
Vigenere cipher implementation I
2
Vigenere cipher implementation II

Vigenere Cipher Implementation (Java)

1
Vigenere cipher implementation I
2
Vigenere cipher implementation II

Cracking the Vigenere Cipher (Kasiski Algorithm)

1
Kasiski-algorithm introduction I
2
Kasiski-algorithm introduction II
3
Kasiski-algorithm introduction III
4
Kasiski-algorithm introduction IV

One Time Pad (Vernam Cipher)

1
What is a One Time Pad (OTP)?
2
One time pad and the XOR logical operator
3
One time pad example
4
One Time Pad Quiz

Randomness in Cryptography

1
Random and pseudo-random numbers
2
Randomness Quiz

One Time Pad Implementation (Python)

1
One time pad implementation I
2
One time pad implementation II
3
One time pad implementation III

One Time Pad Implementation (Java)

1
One time pad implementation I
2
One time pad implementation II
3
One time pad implementation III

Cracking One Time Pad

1
Cracking one time pad - Shannon's secrecy
2
Cracking One Time Pad Quiz

Data Encryption Standard (DES)

1
What is the Data Encryption Standard (DES)?
2
DES cryptosystem theory II
3
Data Encryption Standard (DES) Quiz
4
DES cryptosystem theory III
5
Data Encryption Standard (DES) Quiz
6
DES cryptosystem theory IV
7
DES cryptosystem theory V
8
DES cryptosystem theory VI
9
Data Encryption Standard (DES) Quiz

Data Encryption Standard (DES) Implementation (Python)

1
DES cryptosystem implementation I
2
DES cryptosystem implementation II
3
DES cryptosystem implementation III

Data Encryption Standard (DES) Implementation (Java)

1
DES cryptosystem implementation I
2
DES cryptosystem implementation II
3
DES cryptosystem implementation III
4
DES cryptosystem implementation IV

Cracking Data Encryption Standard (DES)

1
Brute-force DES cracking
2
Linear cryptoanalysis
3
Differential cryptoanalysis
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.7
4.7 out of 5
933 Ratings

Detailed Rating

Stars 5
487
Stars 4
351
Stars 3
76
Stars 2
11
Stars 1
9
cb624c2ec0b2b59731f9aae16b2b6aa1
Get course
30-Day Money-Back Guarantee

Includes

15 hours on-demand video
6 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion