Mô tả

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!

Bạn sẽ học được gì

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)

Yêu cầu

  • You should have an interest in cryptography as well as some programming knowledge in Python or Java!

Nội dung khoá học

48 sections

Introduction

1 lectures
Introduction
02:42

Cryptography Fundamentals

4 lectures
What is cryptography?
05:13
Symmetric encryption
03:18
Asymmetric encryption
03:15
Encryption Basics Quiz
3 questions

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

1 lectures
Symmetric cryptosystems
00:11

Caesar Cipher Theory

4 lectures
What is Caesar cipher?
02:58
Caesar cipher - encryption and decryption
04:18
Caesar cipher example
05:42
Caesar Cipher Quiz
3 questions

Caesar Cipher Implementation (Python)

3 lectures
Caesar cipher implementation I
06:03
Caesar cipher implementation II
03:16
Caesar cipher implementation III
04:13

Caesar Cipher Implementation (Java)

3 lectures
Caesar cipher implementation I
06:22
Caesar cipher implementation II
03:22
Caesar cipher implementation III
03:24

Cracking Caesar Cipher

10 lectures
Cracking Caesar cipher with brute-force attack
02:59
Brute-Force Attack Quiz
1 question
Cracking Caesar-cipher with brute-force implementation (Python)
05:23
Cracking Caesar-cipher with brute-force implementation (Java)
06:44
What is frequency analysis?
03:57
Frequency analysis implementation (Python)
08:10
Frequency analysis implementation (Java)
08:16
Cracking Caesar-cipher with frequency analysis (Python)
09:47
Cracking Caesar-cipher with frequency analysis (Java)
09:25
Frequency Analysis Quiz
2 questions

Detecting Languages

8 lectures
Detecting english language introduction
04:38
Detecting english language implementation I (Python)
08:09
Detecting english language implementation II (Python)
04:30
Detecting english language implementation III (Python)
03:54
Detecting english language implementation I (Java)
06:06
Detecting english language implementation II (Java)
06:44
Detecting english language implementation III (Java)
01:47
Language detection with machine learning
03:02

Vigenere Cipher Theory

4 lectures
What is the Vigenere cipher?
05:44
Vigenere cipher encryption and decryption
02:41
Vigenere cipher example
06:18
Vigenere Cipher Quiz
2 questions

Vigenere Cipher Implementation (Python)

2 lectures
Vigenere cipher implementation I
04:54
Vigenere cipher implementation II
07:04

Vigenere Cipher Implementation (Java)

2 lectures
Vigenere cipher implementation I
05:11
Vigenere cipher implementation II
05:18

Cracking the Vigenere Cipher (Kasiski Algorithm)

4 lectures
Kasiski-algorithm introduction I
03:04
Kasiski-algorithm introduction II
06:50
Kasiski-algorithm introduction III
08:31
Kasiski-algorithm introduction IV
03:22

One Time Pad (Vernam Cipher)

4 lectures
What is a One Time Pad (OTP)?
06:13
One time pad and the XOR logical operator
10:22
One time pad example
04:43
One Time Pad Quiz
3 questions

Randomness in Cryptography

2 lectures
Random and pseudo-random numbers
13:16
Randomness Quiz
3 questions

One Time Pad Implementation (Python)

3 lectures
One time pad implementation I
04:17
One time pad implementation II
05:22
One time pad implementation III
03:01

One Time Pad Implementation (Java)

3 lectures
One time pad implementation I
04:19
One time pad implementation II
05:01
One time pad implementation III
03:22

Cracking One Time Pad

2 lectures
Cracking one time pad - Shannon's secrecy
08:16
Cracking One Time Pad Quiz
2 questions

Data Encryption Standard (DES)

9 lectures
What is the Data Encryption Standard (DES)?
07:35
DES cryptosystem theory II
04:50
Data Encryption Standard (DES) Quiz
3 questions
DES cryptosystem theory III
07:05
Data Encryption Standard (DES) Quiz
1 question
DES cryptosystem theory IV
08:12
DES cryptosystem theory V
08:00
DES cryptosystem theory VI
01:36
Data Encryption Standard (DES) Quiz
2 questions

Data Encryption Standard (DES) Implementation (Python)

3 lectures
DES cryptosystem implementation I
03:51
DES cryptosystem implementation II
07:07
DES cryptosystem implementation III
03:41

Data Encryption Standard (DES) Implementation (Java)

4 lectures
DES cryptosystem implementation I
04:30
DES cryptosystem implementation II
10:13
DES cryptosystem implementation III
04:14
DES cryptosystem implementation IV
01:55

Cracking Data Encryption Standard (DES)

4 lectures
Brute-force DES cracking
04:02
Linear cryptoanalysis
07:16
Differential cryptoanalysis
03:15
Cracking DES Quiz
3 questions

Advanced Encryption Standard (AES)

7 lectures
AES cryptosystem theory I
03:45
AES Basics Quiz
2 questions
AES cryptosystem theory II
05:24
AES cryptosystem theory III
06:13
AES Cryptosystem Quiz
1 question
AES cryptosystem theory IV
08:28
AES cryptosystem theory V
06:46

Advanced Encryption Standard (AES) Implementation (Python)

3 lectures
AES cryptosystem implementation I
03:34
AES cryptosystem implementation II
07:57
AES cryptosystem implementation III
04:38

Advanced Encryption Standard (AES) Implementation (Java)

2 lectures
AES cryptosystem implementation I
04:36
AES cryptosystem implementation II
04:37

Cracking Advanced Encryption Standard (AES)

2 lectures
Shannon's confusion and diffusion
05:27
Confusion and Diffusion Quiz
2 questions

### ASYMMETRIC (PUBLIC KEY) CRYPTOGRAPHY ###

1 lectures
Asymmetric cryptosystems
00:08

Asymmetric Cryptosystems

4 lectures
Problems with private key cryptosystems
03:50
Asymmetric cryptosystems basics
03:18
Random numbers and prime numbers
03:47
Asymmetric Cryptosystems Quiz
2 questions

Modular Arithmetic

15 lectures
Modular arithmetic fundamentals
04:08
Modular Arithmetic Quiz
1 question
Finding primes - naive approach (Python)
09:29
Finding primes - naive approach (Java)
07:14
Finding primes - advanced algorithms (Python)
09:51
Finding primes - advanced algorithms (Java)
10:53
Finding Primes Quiz
2 questions
Integer factorization problem
03:01
Integer factorization implementation (Python)
05:59
Integer factorization implementation (Java)
05:10
Discrete logarithm problem
02:36
Discrete logarithm implementation (Python)
05:11
Discrete logarithm implementation (Java)
06:49
Modular Operations Quiz
2 questions
Why to use prime numbers at all?
04:50

Diffie-Hellman Key Exchange

5 lectures
Diffie-Hellman key exchange basics
04:08
Diffie-Hellman key exchange - the algorithm
05:09
Diffie-Hellman key exchange - example
03:42
Why to use primes and primitive roots?
06:12
Diffie-Hellman Cryptosystem Quiz
2 questions

Diffie-Hellman Cryptosystem Implementation (Python)

1 lectures
Diffie-Hellman key exchange algorithm implementation
05:09

Diffie-Hellman Cryptosystem Implementation (Java)

1 lectures
Diffie-Hellman key exchange algorithm implementation
08:35

Cracking Diffie-Hellman Cryptosystem

3 lectures
Cracking Diffie-Hellman cryptosystem
04:12
Man in the middle attack
07:13
Cracking Diffie-Hellman Cryptosystem Quiz
1 question

RSA

4 lectures
RSA cryptosystem basics
05:45
RSA cryptosystem - the algorithm
05:52
RSA cryptosystem - example
05:10
RSA Basics Quiz
3 questions

Advanced Modular Arithmetic

13 lectures
Euclidean algorithm (GCD) introduction
06:08
Euclidean algorithm (GCD) implementation (Python)
03:45
Euclidean algorithm (GCD) implementation (Java)
04:33
Euclidean Algorithm Quiz
2 questions
Modular inverse introduction
04:25
Modular inverse implementation (Python)
04:34
Modular inverse implementation (Java)
04:18
Modular Inverse Quiz
1 question
Extended Euclidean algorithm introduction
08:42
Extended Euclidean algorithm implementation (Python)
11:55
Extended Euclidean algorithm implementation (Java)
00:23
Extended Euclidean algorithm stack memory visualization
07:45
Extended Euclidean Algorithm Quiz
2 questions

RSA Implementation (Python)

7 lectures
RSA cryptosystem implementation I
05:40
RSA cryptosystem implementation II
07:14
RSA cryptosystem implementation III
05:22
RSA cryptosystem implementation IV
03:19
RSA combined with AES implementation I
05:02
RSA combined with AES implementation II
08:18
RSA combined with AES implementation III
05:19

RSA Implementation (Java)

7 lectures
RSA cryptosystem implementation I
02:45
RSA cryptosystem implementation II
03:54
RSA cryptosystem implementation III
06:58
RSA cryptosystem implementation IV
03:08
RSA combined with AES implementation I
07:14
RSA combined with AES implementation II
11:17
RSA combined with AES implementation III
05:37

Cracking RSA

1 lectures
The problem of factorization
04:09

Elliptic Curve Cryptography (ECC)

10 lectures
Why do we need elliptic curve cryptography?
02:49
What are elliptic curves?
04:19
Point addition and point doubling
14:02
Double and add algorithm
04:30
Elliptic curve discrete logarithm problem
03:34
Elliptic curve based Diffie-Hellman key exchange algorithm
05:47
Digital signatures with elliptic curves
10:43
RSA and elliptic curve cryptography
03:12
Useful article on elliptic curves
00:04
Elliptic Curve Cryptography Quiz
5 questions

Elliptic Curve Cryptography (ECC) Implementation (Python)

3 lectures
Elliptic curve cryptography (ECC) implementation I
08:26
Elliptic curve cryptography (ECC) implementation II
05:51
Elliptic curve cryptography (ECC) implementation III
04:02

Elliptic Curve Digital Signature Algorithms (ECDSA) Implementation (Python)

2 lectures
ECDSA implementation I
05:41
ECDSA implementation II
04:45

Elliptic Curve Cryptography (ECC) Implementation (Java)

3 lectures
Elliptic curve cryptography (ECC) implementation I
08:12
Elliptic curve cryptography (ECC) implementation II
04:46
Elliptic curve cryptography (ECC) implementation III
04:30

Elliptic Curve Digital Signature Algorithms (ECDSA) Implementation (Java)

3 lectures
ECDSA implementation I
10:03
ECDSA implementation II
07:34
ECDSA implementation III
06:17

Cracking the Elliptic Curve Cryptosystem (ECC)

1 lectures
Cracking the elliptic curve cryptosystem
05:00

### HASHING ###

4 lectures
What is hashing in cryptography?
04:48
Properties of hashing
05:08
The birthday paradox
10:56
Hashing Basics Quiz
3 questions

Hashing Algorithms Implementation (Python)

3 lectures
MD5 hashing algorithm implementation
04:07
SHA256 hashing algorithm implementation
04:01
SHA512 hashing algorithm implementation
02:49

Hashing Algorithms Implementation (Java)

2 lectures
MD5 hashing algorithm implementation
07:10
SHA256 hashing algorithm implementation
04:43

### APPLICATIONS OF CRYPTOGRAPHY###

4 lectures
Applications of cryptographic hashes
07:20
Cryptocurrencies (Bitcoin and Ethereum)
13:07
HTTP, HTTPS and TLS
08:53
WEP and WPA
07:52

Course Materials (DOWNLOADS)

1 lectures
Course materials
00:02

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.