Post
Topic
Board Beginners & Help
Merits 5 from 3 users
Re: What is Elliptic Curve Cryptography? Understand how is it related to Bitcoin.
by
pooya87
on 14/03/2020, 12:35:30 UTC
⭐ Merited by Welsh (3) ,nc50lc (1) ,Heisenberg_Hunter (1)
good job on another useful topic.

Section 1: Parameters used in ECC
if i were you, i would add a section 0 to this giving a short explanation on modular arithmetic since ECC means nothing without first understand what modular arithmetic is. it would put P and n in perspective otherwise the parameters make no sense.

Quote
Lastly, n represents the maximum integer value of private key. Any number between 0 and n is valid private key.
minimum value for a private key is 1.
also n is defined as the order of base point G. in simple terms it shows the number of "points" that are on the curve.

Quote
Basically there are three formulas that make up Elliptic Curve Cryptography namely, ECAddition, ECDouble and ECMultiplication.
technically there are only 2 definitions: point addition and point multiplication. when adding two points if they are the same, the equation can be simplified which creates the simpler version of point addition which libraries call "point double" or ECDouble as you put it.

Quote
3. Let's say, our Binary representation have 256 characters then we have to apply ECMultiply formula 256 times. ECMultiply involves applying ECDouble on G point and then if the binary character is 1, apply ECAdd formula on the resulting value. Else if binary character is 0, ignore ECAdd and move to next character.
this part doesn't sound right to me. there are different methods of calculating point multiplication, this method you are describing sounds like the Double and Add method in reverse in all of these methods you start from zero (or point at infinity) double the result and add G instead of doubling G and adding result.
from Wikipedia (P is generator):
Code:
  Q ← 0
  for i from m down to 0 do
     Q ← point_double(Q)
     if di = 1 then
         Q ← point_add(Q, P)
  return Q

Quote
4. Note: We don't have to apply ECAdd formula on the first character even if it is 1.
and the reason is that we start from point at infinity as the initial value and since O + O = O and O + P = P there is no need to do it.