Author

Topic: Why so many p-values were skipped in case of secp160k1? (Read 44 times)

member
Activity: 86
Merit: 100
When we try to re-generate curves secp160k1, secp192k1, secp224k1, and secp256k1, we start from "2^n-2^32", and decrement p-value, to get some prime number, forming a curve. In case of secp192k1, secp224k1, and secp256k1, the first matching value was picked. However, in case of secp160k1, the p-value is actually the fifth below 2^160-2^32:
Code:
p=0xfffffffffffffffffffffffffffffffefffff0a7   n=0xffffffffffffffffffff66fcc05801f00e15f6a5    b=12
p=0xfffffffffffffffffffffffffffffffeffffbde9   n=0xfffffffffffffffffffe280724f449253bc2e9ab    b=11
p=0xfffffffffffffffffffffffffffffffeffffb88b   n=0xfffffffffffffffffffe206e5eb5194f32e3ca55    b=2
p=0xfffffffffffffffffffffffffffffffeffffb0ab   n=0xfffffffffffffffffffe01cf87c16ee51306af13    b=17
p=0xfffffffffffffffffffffffffffffffeffffac73   n=0x100000000000000000001b8fa16dfab9aca16b6b3   b=7
...
Why those four p-values were skipped? All of them have some matching b-value, where n-value is a prime.

This is how it looks for secp192k1:
Code:
p=0xfffffffffffffffffffffffffffffffffffffffeffffee37   n=0xfffffffffffffffffffffffe26f2fc170f69466a74defd8d    b=3
p=0xfffffffffffffffffffffffffffffffffffffffeffffccb9   n=0x1000000000000000000000001e58d67ad78297d7bbd3171ab   b=5
p=0xfffffffffffffffffffffffffffffffffffffffeffff9eb1   n=0xffffffffffffffffffffffffa52c5f9d6368c4ecfda4b679    b=7
p=0xfffffffffffffffffffffffffffffffffffffffeffff9e45   n=0xfffffffffffffffffffffffebaf27eff4602ec4421c5be6b    b=2
p=0xfffffffffffffffffffffffffffffffffffffffeffff91eb   n=0x10000000000000000000000008b5b258a479c4ec50f0453fb   b=3
...
secp224k1:
Code:
p=0xfffffffffffffffffffffffffffffffffffffffffffffffeffffe56d   n=0x10000000000000000000000000001dce8d2ec6184caf0a971769fb1f7   b=2
p=0xfffffffffffffffffffffffffffffffffffffffffffffffeffffc2a5   n=0x100000000000000000000000000017b648f48e73e5bad81df9899f021   b=5
p=0xfffffffffffffffffffffffffffffffffffffffffffffffeffffb29d   n=0xffffffffffffffffffffffffffff59d54bf3175c3f7aa7dd7cf534bd    b=6
p=0xfffffffffffffffffffffffffffffffffffffffffffffffeffff9671   n=0x10000000000000000000000000001fcadd7fc4b7f91a2f7f7dab61a81   b=29
p=0xfffffffffffffffffffffffffffffffffffffffffffffffeffff75dd   n=0xffffffffffffffffffffffffffffe2716c960d555bc3a98c1a97cd15    b=6
...
secp256k1:
Code:
p=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f   n=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141    b=7
p=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffe117   n=0xffffffffffffffffffffffffffffffffc0ad397ea94d65ed5001a2f3f2812f4d    b=10
p=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffbaef   n=0x100000000000000000000000000000000f2cfcb48012d9e76586a1c1564109bed   b=12
p=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffb0ed   n=0x100000000000000000000000000000000f35b461eedf9baf1d8393eecc2fef1ff   b=5
p=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffa33d   n=0x100000000000000000000000000000001f2cfdf190f0eff9bfa36ca2fe9add651   b=15
...
Also, I wonder why b=5 was picked for secp224k1, where b=2 would work as well, and would lead to the same n-value. Are there any hidden constraints, that should be considered, when picking b-value?
Jump to: