Post
Topic
Board Кодеры
Re: Математика и алгоритмы биткоина.
by
fxpc
on 05/12/2018, 11:39:54 UTC
Короткий ответ:

Quote
Почему порядок подгруппы в secp256k1 выбран числом 0xffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141 ? Кто его придумал?

1. Множитель конечной группы P выбран последним простым числом меньше чем 2^256  :

p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F (115792089237316195423570985008687907853269984665640564039457584007908834671663)

Скорее всего вы правы. Везде еще пишут, что
FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F = 2251 - 1 = 2256 - 232 - 29 - 28 - 27 - 26 - 24 - 1
Но я что-то нигде не нашел доказательства того, что это число простое. Но тут думаю можно поверить. В википедии кстати пишут что это Число Мерсенна и типа равно 2251 - 1 Однако там же в вике в статье про этого Мерсенна, про число 2251 - 1 ничего не известно.
Короче тут поверю на слово: это наиболее близкое простое к 2256

Вот доказательства:
https://ru.wikipedia.org/wiki/Критерий_Поклингтона
https://safecurves.cr.yp.to/proof/115792089237316195423570985008687907853269984665640564039457584007908834671663.html
Quote
Primality proof for n = 115792089237316195423570985008687907853269984665640564039457584007908834671663:
Take b = 2.

b^(n-1) mod n = 1.

205115282021455665897114700593932402728804164701536103180137503955397371 is prime.
b^((n-1)/205115282021455665897114700593932402728804164701536103180137503955397371)-1 mod n = 30133174243114333125352536507925183895021889065932097717961225114769139489295, which is a unit, inverse 38738227534097492269493948901333532538630784921480042032654553727346127695815.

(205115282021455665897114700593932402728804164701536103180137503955397371) divides n-1.

(205115282021455665897114700593932402728804164701536103180137503955397371)^2 > n.

n is prime by Pocklington's theorem.