Более эффективный алгоритм ECDLP
Привет. Вот что я нашёл: https://catalog.lib.kyushu-u.ac.jp/opac_download_md/1434304/p145.pdf Субэкспоненциальный алгоритм, вроде как. Можешь запрограммировать его?
Nice your translated article here: https://habr.com/ru/post/335906/
Wanted to add next...
-
Baby-step-giant-step can working with
kpoints in memory, andm=n/kiterations, because forQ=d*Peachdcan be writted ask*m+x, wherex∈[0, k],k- number of points after baby-steps,m- multiplier for brute-force. Whenk = √n, thenm = n/k = n/(√n) = √n, soO(√n)for Baby-step-giant-step. But,kcan be lesser, and searchingm=n/kin range[0, m]can be parallelized, using specified diapasons. -
For Pollard-rho algorithm Brent method is faster than Floyd by 30-40 percent. Also, there is birthday paradox.
-
Points can be subtracted and divided.
Q - P = Q + (-P), where-Pis additive inverse ofP. P(x, y) = -P(x, (-y mod p))Q/2 = Q * modular_multiplicative_inverse(2, n)Q/k = Q * modular_multiplicative_inverse(k, n) -
When odd point divided at 2, then the result there is in the second semigroup of the group the points on elliptic curve in finite field. Maybe, if the semigroup can be generated, and point exitsting there can be verified, then it will be possible to determine uniquely the parity of
d, and the coefficients for all another points, and ifQ = d*P, andd is even, thenQ/2, else ifd is odd-(Q-P)/2, and check parity of result again and again, and extract bits ofd.