More operations

This commit is contained in:
Gregor Pogačnik
2021-09-11 14:56:39 +02:00
parent 488adc94d9
commit 1f0c6de684

View File

@@ -1,7 +1,7 @@
# schnorr-intro
A gentle introduction to Schnorr signature scheme using Eliptic Curve Cryptograph (ECC)
It was invented by german mathematician Claus-Peter Schnorr. Unfortunately he patented the scheme in 1988 (patend expired in February 2008). So during the creation of Bitcoin it was "free", unfortunately the space lacked any kind of libraries. Therefore ECDSA scheme was used.
It was invented by german mathematician Claus-Peter Schnorr. Unfortunately he patented the scheme in 1988 (it expired in February 2008). So during the creation of Bitcoin it was "free", unfortunately the space lacked good libraries. Therefore ECDSA scheme was used.
## Eliptic Curve Cryptography 101
@@ -33,5 +33,27 @@ The operation is commutative (A + B = B + A)
#### Multiplications with a scalar
We can also calculate an addition of point P with itself (P + P)
Since this is just one point we now draw a tangent to the curve
![image](pplusp.gif)
P + P is the same as 2*P
P + P + P is 3*P and so on.
So we can define multiplication in the form of k * P.
#### Discrete log problem
Multiplication is asociative but the neat part is that also by knowing P and the curve used we cannot easily "extract" k.
From k -> kP is easy (we just do the adding or actually doubling) but kP -> k is very hard.
Usually we are given a standard curve (like Secp256k1) and generator point G.
Note: we cannot trust just any parameters because we might know something about G beforehand.
But basically random integer x can be a private key, while P = x*G is the public key.
## Schnorr signature scheme