ECDSA stands for “Elliptic Curve Digital Signature Algorithm”, it is a cryptographically secure digital signature scheme, based on the elliptic-curve cryptography (ECC). it’s used to create a digital signature of data (a file for example) in order to allow you to verify its authenticity without compromising its security. Think of it like a real signature, you can recognize someone’s signature, but you can’t forge it without others knowing. The difference however between an ECDSA signature and a real signature is that it's simply impossible to forge the ECDSA signature. ECDSA keys and signatures are shorter than in RSA for the same security level. A 256-bit ECDSA signature has the same security strength like 3072-bit RSA signature.

Blockchain implementations such as bitcoin and Ethereum use elliptic curves to generate public and private key pairs. Elliptic curve was invented by Neal Koblitz and Victor Miller in 1985.

A 256 ECC(Elliptic curve cryptography) public key provides comparable security to a 3072-bit RSA public key.Hence, the primary advantage of using ECC is reduced key size and speed. .

Elliptic curves has nothing to do with ellipses, Ellipses are formed by quadratic curves, (X^{2}) while elliptic c
urves are formed by cubic equations (X^{3}) .The Standard for Efficient Cryptography Group (SECG) is an international
consortium to develop commercial standards for efficient and interoperable cryptography based on ECC.
.

The SECG Website is https://www.secg.org .

The SECG has published a document with a recommended set of elliptic curve domain parameters, referred by the letters , {p, a, b, G, n, h}, they are collectively referred to as Elliptic curve domain parameters.

Creating digital signatures based on the math of elliptic curves is called the Elliptic Curve Digital Signing Algorithm, short ECDSA.

An elliptic curve is the set of points that satisfy a specific mathematical equation. The equation for an elliptic curve looks something like this:

y2 = x^{3 } + ax + b

From the curve above, the elliptic curve has some interesting characteristics;

- 1. Its symmetric around the x-axis and for any x coordinate, you will have two values of y, one will be positive and another negative.
- 2. If a line is tanganet to the curve, it intersects another point.
- 3. If you draw a straight line through the curve, it would intersect in not more than three points.
- 4. All vertical lines, (slope = infinity) intersects the point at infinity
- 5. The curve has an ever increasing slope after a point of inflection.

We have a curve defined by the math function

y^{2 } = (x^{3 } + a * x + b) mod p

a and b are constant values, and can be real numbers, integers or rational numbers.
The modulo is a prime number and makes sure that all the values are within our range of 160 bits and it allows the use of “modular square root”
and “modular multiplicative inverse” mathematics which make calculating stuff easier (I think). Since we have a modulo (p) ,
it means that the possible values of y^{2 }are between 0 and p-1, which gives us p total possible values. However, since
we are dealing with integers, only a smaller subset of those values will be a “perfect square” (the square value of two integers),
which gives us N possible points on the curve where N < p (N being the number of perfect squares between 0 and p). Since each x
will yield two points (positive and negative values of the square-root of y^{2 }), this means that there are N/2 possible ‘x‘
coordinates that are valid and that give a point on the curve. So this elliptic curve has a finite number of points on it, and it’s
all because of the integer calculations and the modulus.

Assume, we want to add two points on the line, say P_{1}(x_{1},y_{1}) and P_{2}(x_{2},y_{2})

The first step is to find the point-slope form of the line.

Then we can define the slope as

λ = ( y_{2} - y_{1})/( x_{2} - x_{1})

y- y_{1} = λ ( x - x_{1})

The slope intercept form of the line is:

y = λx - λx_{1} + y_{1}

Let, µ = y_{1} - λx_{1}

y = λx + µ

Then to find the coordinates of the third point (x_{3},y_{3})

Replace y in the Original equation of the curve.

y^{2} = x^{3} + ax + b

where a and b are constants

( λx + µ)^{2} = x^{3} + ax + b

After distributing and rearranging, we get the polynomial

0 = x^{3} - λ^{2}x^{2} - 2 λx µ - µ^{2} + ax + b

The polynomial has 3 roots. x_{1}, x_{2}, x_{3},

And since it is a polynomial, The coefficient of x^{2} is the opposite sum of the roots.

x_{1} + x_{2} + x_{3} = λ^{2}

x_{3} = λ^{2} - x_{1} - x_{2}

We fix x_{3} in to our original equation and reflect it

y_{3} = y_{1} - y_{3} – y_{1}

y_{3} = λ(x_{1} - x_{3}) – y_{1}

Algebraically,

for P + P = R = 2P

slope S = (3x^{2}_{p}) + a / ( 2y_{p})

for the x-cordinate

x_{r} = s^{2} - 2x_{p}

for the y-cordinate

y_{r} = s(x_{p} - x_{r}) - y_{p}

Why do we reflect ?

When we try to add infinity to a point. i.e adding points on a vertical line,

The third point is usually infinity.

Then find the third point of intersection

Reflect it and the result is the original point

P + ∞ = P , therefore, infinity is the identity for point addition

**Inverses**

Adding a point with its reflection is ∞, since they are in a straight line

P + P’ = ∞

Therefore, the reflection of a point is its** inverse**.

So, if we have to add a point and its reflection

P = (x, y) and -P(x, -y)

Then we can say, a point minus itself is infinity

P – P = ∞

The elliptic curve performs two major function;- • Point addition
- • Point Multiplication(point doubling).

The addition Law, states to add two points on the curve, say A and B, we first find the line between the two points , then we find the third point of intersection X, then we reflect it to get C.

Then, a second case,The multiplication is when we want to add a point to itself, say A.

We find the tangent line, to the point

And then find the second point of intersection, then we reflect it to get 2A.

Consider the curve above. We have two points

In ECC adding two vertical points, is an undefined procedure, this results to what is know as elliptic identity and commonly
denoted as infinity **X + C = ∞**. This is because , to add two vertical points, the line does not make a third interception as explained above.

So, lets consider adding a point to itself, we do this by drawing a tangent to that point , say A considering the curve below. Then, from its point of intersection on the curve , we draw a vertical line down , across the x-axis to the point where it intersects the curve, then we call this new point

So to calculate **3A**, we perform point doubling three times, so we add A to itself 3 times so we draw a line between 2A
and A and where the line cuts the curve, we draw a vertical line across the x-axis and this new point is 3A.
so, to perform few computations involves a lot of jumping around the curve , this is where **ECC ** gets its strength
since it is infeasible to divide the multiplication and find the specific point you multiplied to get there , unlike regular algebras.
And this is known as the **Elliptic Law Discrete Logarithm. **

To recap, if you have a point say, *R = k*P, k(No of times P was added)* . where you know R(The result of adding P , *K* times),
and P(The starting point of addittion). there is no way to find out what the value of ‘K‘ is. Since there is no point subtraction or point division,
you cannot just resolve k = R/P. Also, since you could be doing millions of point additions, you will just end up on another point on the curve,
and you’d have no way of knowing “how” you got there. You can’t reverse this operation, and you can’t find the value ‘k‘ which was multiplied with
your point P to give you the resulting point R.

We will discuss the part of ECC that is related to Diffie -hellman, Bitcoin Cryptography and digital signatures in the next chapter.

just a technicality: eliptic curve can t be defined as a function, it s more of a formula. That s why it s called a curve, not a math function..

Thanks, brother, you re a huge help in my Crypto class!.

My brain hurts. But you made it hurt much less than Vitalik. I’m now going to impress the F out of my friends. 🤓.

amazing tutorial!! very helpful.

chat random gay gay ky chat rooms <a href="https://free-gay-sex-chat.com/">free gay sex chat fcn </a>.

gay slam chat <a href=https://chatcongays.com>gay zoom webcam chat</a> hiv gay chat san diego.

help on essay <a href=https://au-bestessays.org>best college essay writing service</a> us essay writers.

essay writing services legal <a href=https://bestcampusessays.com>reviews of essay writing services</a> which essay writing service is the best.

lord of the flies essay help <a href=https://besteasyessays.org>professional essay writing services</a> personal essay writing service.

essay help <a href=https://bestessaysden.com>buy custom essays online</a> essay help toronto.

writing custom essays <a href=https://bestsessays.org>write my essay review</a> writing essay help.

write my essay org <a href=https://buyacademicessay.com>college application essay help</a> custom essay meister.

i need help to write an essay <a href=https://buy-eessay-online.com>custom essay meister</a> cheapest essay writers.

essay on customer service <a href=https://buytopessays.com>help with essay papers</a> help writing a essay.

online essay editing services <a href=https://cheapessaywritingservice1.com>need someone to write my essay</a> i need help writing a essay.

custom essay order <a href=https://customcollegeessays.net>how to write my college essay</a> persuasive essay writer.

custom essays for cheap <a href=https://customessays-writing.org>best custom essay writing services</a> cheap essay services.

cheap essay writing services <a href=https://customessaywwriting.com>recommended essay writing service</a> online essay writing services.

professional essay writing help <a href=https://customs-essays-writing.org>need help in writing an essay</a> college admission essay help.

premium essay writing service <a href=https://firstessayservice.net>essay writing website reviews</a> customer service essay.

essayhelp <a href=https://geniusessaywriters.net>write my essay help</a> best paper writing site.

best online essay editing service <a href=https://lawessayhelpinlondon.com>college essay writing help</a> urgent essay help.

civil service essay <a href=https://lawessayhelpinlondon.com>essay marking service</a> custom essay writing services reviews.

write my essay generator <a href=https://ukessayservice.net>what are good essay writing services</a> help 123 essay.

need help writing a essay <a href=https://writemyessaycheap24h.com>buy an essay cheap</a> custom admission essay.

help 123 essay <a href=https://bestcampusessays.com>help write my essay</a> professional college application essay writers.

urgent custom essays <a href=https://besteasyessays.org>graduate school essay writing service</a> best essay help.

essay proofreading services <a href=https://bestessayreviews.net>best essay cheap</a> service learning reflection essay.

help with essay introduction <a href=https://bestessaysden.com>community service essay sample</a> cheapest custom essays.

what is the best custom essay site <a href=https://bestsessays.org>professional essay writers</a> cheap essay online.

custom essay writing service org <a href=https://buyacademicessay.com>i need help writing a narrative essay</a> help write an essay online.

best custom essay writing <a href=https://buy-eessay-online.com>personal essay writers</a> help writing my college essay.

help with writing an essay <a href=https://buytopessays.com>macbeth essay help</a> custom written essays.

do my coursework <a href=https://brainycoursework.com>coursework plagiarism checker</a> custom coursework writing.