Cryptography and Hashing Fundamentals in Python and Java

Go to class
Write Review

Cryptography and Hashing Fundamentals in Python and Java provided by Udemy is a comprehensive online course, which lasts for 14 hours worth of material. Cryptography and Hashing Fundamentals in Python and Java is taught by Holczer Balazs. Upon completion of the course, you can receive an e-certificate from Udemy. The course is taught in Englishand is Paid Course. Visit the course page at Udemy for detailed price information.

Overview
  • 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)

    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!