
This is the introduction video. We will mention what this course covers and what this course offers.
Previously, we have proven the addition and doubling formulas on an elliptic curve. Now, we would apply this formulas into the real world.
We will mention how to calculate a specific point from a base point on an elliptic curve faster
Previously, we have mentioned the faster calculation procedure to accessing a sample point. Now, we would apply it.
What makes elliptic curves different? Why they are powerful? In this lecture, we'll mention it.
Point addition on an elliptic curve is a tool for us. We will consume this formulas to solve a real world problem. Key exchange is a common solution of ECC. In this way, parties can exchange same key on a insecure channels.
We will apply and monitor the key exchange process.
We'll mention how to adapt modular arithmetic into elliptic curves, and what this adaption provide us.
There is a faster way to find modular inverse of a number for a mod value. We'll mention how to find it with extended euclidean algorithm.
Previously, key exchanging was handled on real numbers. What if parties round the shared keys differently? We will mention how to solve that problem in this lecture.
Previously, we've used the out-of-the-box modInverse function under Java BigDecimal class to find the modular inverse. We'd replace this function call to core extended euclidean algorithm.
Elliptic curve cryptography can be used for digital signatures too!
The most common cryptocurrency bitcoin uses ECC to sign and verify signatures. In this lecture, we will mention bitcoin parameters.
ECDSA verification operation will be proven in this lecture.
In ECDSA, we've used a random key variable. This should be really random? What if this random key variable assigned to a constant value? In this lecture, we'll mention the role of random key in elliptic curve digital signature algorithm.
In ECDSA, a new modulo named order of group has to be involved in calculations. It means number of points on the finite field. In this lecture, we'll mention how to calculate order of group.
Modified version of ElGamal cryptosystem to Elliptic Curve based one to apply symmetric key encryption
Elliptic curve cryptography (ECC) is the most advanced cryptosystem nowadays in the modern cryptography world. It lies behind the most of encryption, key exchange and digital signature applications today. It guarantees same security with other public key algorithms such as RSA or Diffie Hellman whereas it can handle the security with smaller keys also in faster way. Today, even bitcoin and other blockchain based cryptocurrencies are based on ECC!
In this course, we will mention on both the math behind elliptic curve cryptography and gain hands on experience in Java. In other words, the course covers both theory and practice deeply. On the other hand, everything will be developed in java from scratch. Also, no out-of-the-box of feature of any language will be used. Elliptic curves in Weierstrass, Koblitz and Edwards form (or shortly Edwards Curves) will be covered. Then, we will focus on Elliptic Curve Diffie Hellman key (ECDH) exchange, Elliptic Curve ElGamal asymmetric encryption & decryption, digital signatures with elliptic curve digital signature algorithm (ECDSA).
Finally, you can have your own elliptic curve cryptography API when you enrolled the course, and no need to consume any other 3rd party dependency. No matter how deep java knowledge you have, being cryptography enthusiastic is enough to enroll this course.