How do you get a Bitcoin Public Key from a Private Key How do I, in extreme specificity, convert a given private bitcoin key into a public bitcoin key (Talk to me like I'm 5 and I have to do this step by step or the evil witch will cook me alive in her oven).  NOT where can I find a program that will do this, but if I were to do it myself, what would I do?

Private Key:

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725


supposedly results in the public key:

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6


Others have asked how to get private to public, I haven't seen a really specific answer, just more general direction, but no answers explain all the variables.  I understand this is rather complex and if a given individual thinks its too much work to answer, I totally respect that.  Note:  I do not care for the Bitcoin Address, just interested in Privatekey to Publickey and the specifics of how.

Variables such as the "a" and "b" in the ECDSA Curve Algorithm are already designated by Bitcoin (according to https://en.bitcoin.it/wiki/Secp256k1).  the "base point" aka "G" is also specified on that page.  the "private exponent" or "k", I have yet to find.  Some of these variables are supposedly "random" which appears to be false as every generator that you can put a private key into seems to always spit out the same public key...so....  all the variables are either already preset or are derived from the private key.

Thanks for any help on this. I've been trying to research and understand this for days, but it seems sometimes I don't understand the terms and or notations, but I think I've gotten past that and now am just missing parts of the equation.

EDIT ADD:
This is the previous stated private key in Decimal:

11253563012059685825953619222107823549092147699031672238385790369351542642469


This is the previous stated public key (x and y values) in decimal:

36422191471907241029883925342251831624200921388586025344128047678873736520530
20277110887056303803699431755396003735040374760118964734768299847012543114150


All I want to know is how to go from that private key to the public key.  Supposedly it is a simple equation that doesn't involve bit shifting or xor etc.  It may include "point multiplication" (which I don't see how you can multiply a point defined as having both an x and a y).  No one seems to understand the intricacies of this.  Do you guys suggest I actually offer some fraction of a bitcoin to whoever explains it clearly?
I'll try answering this again in a different way,
using small numbers to keep it readable.

convert the private key to binary representation, so decimal number 105, which is 0x69 in hex, becomes  01101001.

calculate this list of points, by repeatedly doubling the Generator point G:
1*G
2*G = G+G
4*G = 2*G + 2*G
8*G = 4*G + 4*G
16*G = 8*G + 8*G
32*G = 16*G + 16*G
64*G = 32*G + 32*G


write the bits of the private key next to this list like this:
privkey    pointlist
   1          1*G
   0          2*G
   0          4*G
   1          8*G
   0         16*G
   1         32*G
   1         64*G


now start adding only those points which hava a 1 written next to them.
    9*G = 1*G + 8*G
   41*G = (9+32)*G = 9*G + 32*G
  105*G = (41+64)*G = 41*G + 64*G


now you have calculated the public key for privatekey 105 by using only point doubling and point adding operations.


The actual value will be:
(0xf219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63,
 0x4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1)

The public key will then be in one of two formats:

full, this is a 65 byte number, starting with a byte 0x04
compressed, this is a shorter form, 33 bytes, starting with either 0x02 or 0x03.

The full public key is 0x04, followed by 32 bytes of the x-coordinate, followed by 32 bytes of the y-coordinate.
The compressed public key is 0x02 or 0x03 depending on whether the y-coordinate is an even or odd number,  followed by 32 bytes of the x-coordinate.
Then some more notes on your question:

Some older texts used to refer to scalar point multiplication, as exponentiation, that is why sometimes the private key is referred to the private exponent.

the parameters of the curve were chosen randomly once. meaning that the designers of the secp256k1 curve tried to unsuccessfully convey that there is no specific structure to this curve. Meaning that the NSA could or could not have put a mathematical backdoor in the curve parameters.

when using this curve and generating your public key, -you- have to choose your private key randomly, in a way that it is impossible for anyone to guess it.

the generateor G is a specific point on the elliptic curve, defined in the secp256k1 curve.