I was looking to elliptic curve manual at
https://cryptopp.com/wiki/Elliptic_Curve_CryptographyIn this, they mention "The code below shows you how to exponentiate, multiple and add using the lower level primitives over secp256r1."
typedef DL_GroupParameters_EC<ECP> GroupParameters;
typedef DL_GroupParameters_EC<ECP>::Element Element;
AutoSeededRandomPool prng;
GroupParameters group;
group.Initialize(ASN1::secp256r1());
// private key
Integer x(prng, Integer::One(), group.GetMaxExponent());
// public key
Element y = group.ExponentiateBase(x);
// element addition
Element u = group.GetCurve().Add(y, ECP::Point(2,3));
// scalar multiplication
Element v = group.GetCurve().ScalarMultiply(u, Integer::Two());
What is the difference between exponentiation and multiplication? I am also confused as one operation is done on the curve and the operation is done in the group.
After creating group variable, is there a function to get the base point (I want to the base to which x is being exponentiated)?