mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2024-12-23 07:08:13 +00:00
CH04::pubkeys: move-only
This commit is contained in:
parent
f11b3971d2
commit
ceaa898888
@ -182,32 +182,6 @@ large number. It is approximately 10^77^ in decimal. For comparison, the
|
||||
visible universe is estimated to contain 10^80^ atoms.
|
||||
====
|
||||
|
||||
[[pubkey]]
|
||||
==== Public Keys
|
||||
|
||||
((("keys and addresses", "overview of", "public key
|
||||
calculation")))((("generator point")))The public key is calculated from
|
||||
the private key using elliptic curve multiplication, which is
|
||||
irreversible: _K_ = _k_ * _G_, where _k_ is the private key, _G_ is a
|
||||
constant point called the _generator point_, and _K_ is the resulting
|
||||
public key. The reverse operation, known as "finding the discrete
|
||||
logarithm"—calculating _k_ if you know __K__—is as difficult as trying
|
||||
all possible values of _k_, i.e., a brute-force search. Before we
|
||||
demonstrate how to generate a public key from a private key, let's look
|
||||
at elliptic curve cryptography in a bit more detail.
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Elliptic curve multiplication is a type of function that cryptographers
|
||||
call a "trap door" function: it is easy to do in one direction
|
||||
(multiplication) and impossible to do in the reverse direction
|
||||
(division). Someone with a private key can easily create the public
|
||||
key and then share it with the world knowing that no one can reverse the
|
||||
function and calculate the private key from the public key. This
|
||||
mathematical trick becomes the basis for unforgeable and secure digital
|
||||
signatures that prove control over bitcoin funds.
|
||||
====
|
||||
|
||||
[[elliptic_curve]]
|
||||
==== Elliptic Curve Cryptography Explained
|
||||
|
||||
@ -339,7 +313,30 @@ that k is sometimes confusingly called an "exponent" in this case.((("",
|
||||
startref="eliptic04")))((("", startref="Celliptic04")))
|
||||
|
||||
[[public_key_derivation]]
|
||||
==== Generating a Public Key
|
||||
==== Public Keys
|
||||
|
||||
((("keys and addresses", "overview of", "public key
|
||||
calculation")))((("generator point")))The public key is calculated from
|
||||
the private key using elliptic curve multiplication, which is
|
||||
irreversible: _K_ = _k_ * _G_, where _k_ is the private key, _G_ is a
|
||||
constant point called the _generator point_, and _K_ is the resulting
|
||||
public key. The reverse operation, known as "finding the discrete
|
||||
logarithm"—calculating _k_ if you know __K__—is as difficult as trying
|
||||
all possible values of _k_, i.e., a brute-force search. Before we
|
||||
demonstrate how to generate a public key from a private key, let's look
|
||||
at elliptic curve cryptography in a bit more detail.
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Elliptic curve multiplication is a type of function that cryptographers
|
||||
call a "trap door" function: it is easy to do in one direction
|
||||
(multiplication) and impossible to do in the reverse direction
|
||||
(division). Someone with a private key can easily create the public
|
||||
key and then share it with the world knowing that no one can reverse the
|
||||
function and calculate the private key from the public key. This
|
||||
mathematical trick becomes the basis for unforgeable and secure digital
|
||||
signatures that prove control over bitcoin funds.
|
||||
====
|
||||
|
||||
((("keys and addresses", "overview of", "public key
|
||||
generation")))((("generator point")))Starting with a private key in the
|
||||
|
Loading…
Reference in New Issue
Block a user