mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2025-01-22 13:40:58 +00:00
Made changes to ch04.asciidoc
This commit is contained in:
parent
4bc8b554c0
commit
4240224bf7
@ -159,7 +159,7 @@ Geometrically, this third point P~3~ is calculated by drawing a line between P~1
|
||||
|
||||
There are a couple of special cases that explain the need for the "point at infinity."
|
||||
|
||||
If P~1~ and P~2~ are the same point, the line "between" P~1~ and P~2~ should extend to be the tangent on the curve at this point P~1~. This tangent will intersect the curve in exactly one new point. You can use techniques from calculus to determine the slope of the tangent line. These techniques curiously work even though we are restricting our interest to points on the curve with two integer coordinates!
|
||||
If P~1~ and P~2~ are the same point, the line "between" P~1~ and P~2~ should extend to be the tangent on the curve at this point P~1~. This tangent will intersect the curve in exactly one new point. You can use techniques from calculus to determine the slope of the tangent line. These techniques curiously work, even though we are restricting our interest to points on the curve with two integer coordinates!
|
||||
|
||||
In some cases (i.e., if P~1~ and P~2~ have the same x values but different y values), the tangent line will be exactly vertical, in which case P3 = "point at infinity."
|
||||
|
||||
@ -172,7 +172,7 @@ Now that we have defined addition, we can define multiplication in the standard
|
||||
[[public_key_derivation]]
|
||||
==== Generating a Public Key
|
||||
|
||||
((("keys","public, generating", id="ix_ch04-asciidoc6", range="startofrange")))((("public keys","generating", id="ix_ch04-asciidoc7", range="startofrange")))Starting with a private key in the form of a randomly generated number k, we multiply it by a predetermined point on the curve called the((("generator point")))((("secp256k1 curve standard","generator point definition in"))) _generator point_ G to produce another point somewhere else on the curve, which is the corresponding public key K. The generator point is specified as part of the +secp256k1+ standard and is always the same for all keys in bitcoin:
|
||||
((("keys","public, generating", id="ix_ch04-asciidoc6", range="startofrange")))((("public keys","generating", id="ix_ch04-asciidoc7", range="startofrange")))Starting with a private key in the form of a randomly generated number _k_, we multiply it by a predetermined point on the curve called the((("generator point")))((("secp256k1 curve standard","generator point definition in"))) _generator point_ _G_ to produce another point somewhere else on the curve, which is the corresponding public key _K_. The generator point is specified as part of the +secp256k1+ standard and is always the same for all keys in bitcoin:
|
||||
|
||||
[latexmath]
|
||||
++++
|
||||
@ -194,8 +194,8 @@ Implementing the((("elliptic curve multiplication"))) elliptic curve multiplicat
|
||||
K = 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD * G
|
||||
----
|
||||
|
||||
Public Key K is defined as a point +K = (x,y)+:
|
||||
|
||||
.Public Key K is defined as a point +K = (x,y)+
|
||||
----
|
||||
K = (x, y)
|
||||
where,
|
||||
@ -208,7 +208,7 @@ To visualize multiplication of a point with an integer, we will use the simpler
|
||||
<<ecc_illustrated>> shows the process for deriving G, 2G, 4G, as a geometric operation on the curve.
|
||||
|
||||
[[ecc_illustrated]]
|
||||
.Elliptic Curve Cryptography: Visualizing the multiplication of a point G by an integer k on an elliptic curve
|
||||
.Elliptic curve cryptography: Visualizing the multiplication of a point G by an integer k on an elliptic curve
|
||||
image::images/msbt_0404.png["ecc_illustrated"]
|
||||
|
||||
[TIP]
|
||||
|
Loading…
Reference in New Issue
Block a user