1

As you know, elliptic curve key generation involve picking a random scalar and multiply it by the Generator point. A strong characteristic of secure random number generation is each of the bits has ½ chance of being set or not : for example, this means that getting 8 consecutive bits being set to 0 has a probability of $1÷(2^8)$ of happening. This property is transferable to public keys in the case of secp256k1 : each possible bits of a public key has ½ chance of being set or not.

But in my case, I have a strange closed source number generator : by looking at the generated scalar, nothing look suspicious, but once those scalars get turned into a secp256k1 public key, the first 8 bits of the generated compressed public keys are set to 0 in ⅓ of the case (leading to ⅓ of the public keys starting by 0x00 in hex).
What does this mean about the random number generator ? I’m meaning in the way the random scalar are generated?

Note that I'm viewing the X-coordinate using PARI/GP which displays numbers as unsigned numbers in decimal or hexadecimal when requested.

Maarten Bodewes
  • 96,351
  • 14
  • 169
  • 323
user2284570
  • 324
  • 4
  • 19

0 Answers0