<p>There are a number of more efficient algorithms to compute the multiplication than just the naive method described. A simple one is double-and-add where the point is repeatedly doubled and then added with previous doublings in order to calculate the final public key. There are a number of more complicated methods which are more efficient.</p>

<p>You can read about these on <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication" rel="nofollow noreferrer">Wikipedia</a>.</p>

CC BY-SA 4.0
2018-05-11T12:59:03.623Z
that's exactly what I was hoping for. thank you.
linehrr
CC BY-SA 4.0
2018-05-10T20:12:11.633Z
2018-05-10T20:12:11.633Z
Ava Chow
<p>if my private key is 123456789123456789, doesn't that mean I have to dot G point that many times to generate my pubkey? there must be a shortcut to generate pubkey, otherwise the time complicity of generating the pubkey is the same compare to brutal force from trying from 1 to k? Am I missing anything here?</p>

<p><a href="https://i.sstatic.net/elA8D.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/elA8D.png" alt="enter image description here"></a></p>

<p>according to the article here: <a href="https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/" rel="nofollow noreferrer">https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/</a> </p>

<p>it looks like generating pubkey from a random generated private key(which could be a 32 bytes BigInteger) requires to dot many times = integer value of the private key. which is impossible considering the key size for the private key is 2^256(32 bytes key space).</p>

CC BY-SA 4.0
2021-05-24T17:43:29.557Z
This sounds exactly like what someone with a private key of 123436789123456789 would say...
Hamish Gibson
<bitcoin-core><ethereum>
how EC Public key is generated from the private key effectively
linehrr
# how EC Public key is generated from the private key effectively

(Asked by: username_0 on 2018-05-10)

if my private key is 123456789123456789, doesn't that mean I have to dot G point that many times to generate my pubkey? there must be a shortcut to generate pubkey, otherwise the time complicity of generating the pubkey is the same compare to brutal force from trying from 1 to k? Am I missing anything here?

[![enter image description here](https://i.sstatic.net/elA8D.png)](https://i.sstatic.net/elA8D.png)

according to the article here: <https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/>

it looks like generating pubkey from a random generated private key(which could be a 32 bytes BigInteger) requires to dot many times = integer value of the private key. which is impossible considering the key size for the private key is 2^256(32 bytes key space).

**Tags:** bitcoin-core, ethereum

> **Comments:**
> **username_1**: This sounds exactly like what someone with a private key of 123436789123456789 would say...  

---

## 1 answers

### Answer by username_2 on 2018-05-10. Score: 3 | Accepted answer

There are a number of more efficient algorithms to compute the multiplication than just the naive method described. A simple one is double-and-add where the point is repeatedly doubled and then added with previous doublings in order to calculate the final public key. There are a number of more complicated methods which are more efficient.

You can read about these on [Wikipedia](https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication).

> **Comments:**
> **username_0**: that's exactly what I was hoping for. thank you.  

---

