 # Cryptography and Hashing Fundamentals in Python and Java     ## 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)

### Requirements

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

### Who this course is for

• Python or Java developers curious about cryptography!
This course includes

### Instructors

• Holczer Balazs
Software Engineer
Total students
228,256
Reviews
28,838
My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation.

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 () 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).