A numerical exercise on a digital signature on secp256k1
In this section, we will deep dive into the digital signature of secp256k1 in order to understand the mechanism behind the operations of implementation and validation of the digital signature.
Suppose for instance that the parameters of the curve are the following:
p = 67 (modulo p) G = (2,22) Order n = 79 Private Key: [d]= 2
So, as we have chosen a very simple private key, it is just enough to perform a double point to obtain the public key (Q
):
Q = d*G
In this case, we proceed to calculate the public key (Q
). First, we will be using the following formula to calculate the double point:
t = (3XP^2 + a)/ 2YP t = (3*2^2 + 0)/ 2*22= 12/ 44 = Reduce[44*x == 12, x, Modulus -> (67)] = 49 t = 49
Calculating Q = d * G
using numbers implies replacing [d]
and (G
) with numbers:
Q = 2 *(2,22)
Relying on the formula of the double point, let's find the coordinates of Q
(x and y), starting with x:
xQ...