Elliptic Curve Private Key Recovery

Given the public parameters of an elliptic curve, recover the poorly chosen private key


Discuss The Problem

In a crypto system based on elliptic curves, the private key d is an integer and the public key Q is a point on the curve. To compute the public key from the private key requires elliptic curve arithmetic, namely multiplying a base point G by the scalar d, which yields the point Q. Finding d given Q and G reduces to the discrete log problem. Luckily, in this problem d was chosen to be a small value. Given the elliptic curve parameters (NIST curve P-256) and public key below, find the value of the private key (submit your answer in decimal / base10).

p =  0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
a = -0x3 (negative three)
b =  0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b
G = (0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296,
     0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5)
Q = (0x52910a011565810be90d03a299cb55851bab33236b7459b21db82b9f5c1874fe,
     0xe3d03339f660528d511c2b1865bcdfd105490ffc4c597233dd2b2504ca42a562)