Secp256k1

trait Secp256k1 extends Curve[Secp256k1]
class Object
trait Matchable
class Any
object secp256k1.type

Type members

Inherited classlikes

case class CurvePoint(x: F_p, y: F_p) extends Point
Inherited from:
Curve
Source:
InefficientEcc.scala
object CurvePoint
Inherited from:
Curve
Source:
InefficientEcc.scala
sealed trait Point
Inherited from:
Curve
Source:
InefficientEcc.scala
case object PointAtInfinity extends Point
Inherited from:
Curve
Source:
InefficientEcc.scala

Inherited types

type F_p = BigInt
Inherited from:
Curve
Source:
InefficientEcc.scala

Value members

Concrete fields

val G_x: BigInt
val G_y: BigInt
val _n: BigInt
val _p: BigInt

The elliptic curve domain parameters over F_p associated with a Koblitz curve secp256k1 are specified by the sextuple T = (p,a,b,G,n,h) where the finite field Fp is defined by:

The elliptic curve domain parameters over F_p associated with a Koblitz curve secp256k1 are specified by the sextuple T = (p,a,b,G,n,h) where the finite field Fp is defined by:

p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F = 2256 - 232 - 29 - 28 - 27 - 26 - 24 - 1 The curve E: y2 = x3+ax+b over Fp is defined by:

a = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 b = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000007 The base point G in compressed form is:

G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 and in uncompressed form is:

G = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

Finally the order n of G and the cofactor are: n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 h = 01

Helpful description of the difference between the prime modulus p, and _n, the order of G: https://crypto.stackexchange.com/questions/86328/secp256k1-prime-modulus-vs-order

Source:
InefficientEcc.scala