Post
Topic
Board Development & Technical Discussion
Re: Determine if a public key point y is negative or positive, odd or even?
by
mjojo
on 19/01/2025, 01:31:12 UTC
can you write something more about these calculation methods

in ecc secp256k1

1/2 = 57896044618658097711785492504343953926418782139537452191302581570759080747169

7/2 = 57896044618658097711785492504343953926418782139537452191302581570759080747172

57896044618658097711785492504343953926418782139537452191302581570759080747172 / 57896044618658097711785492504343953926418782139537452191302581570759080747169 = 7

So the above method from @sss555 is not work to define the pubkey is odd or even. I already try many use method to separate odd and even but pattern to cyclic odd and even is always same.


7/2 - 1/2 = 3,

7 -3 = odd

Huh

remember we just have the pubkey as known variable, no decimal or pvkey

I talk abot this

1/2 = 57896044618658097711785492504343953926418782139537452191302581570759080747169

7/2 = 57896044618658097711785492504343953926418782139537452191302581570759080747172



just run ecctools from @Alberto

I using ecctools

another situation:

x = 0x123456789

b  = 1

c = 0x100000000

Xx = x + b

Xx = Xx - c


# = 0x2345678a


print(hex(x-Xx))

output:

0xffffffff

[Program finished]

if  know range of pubkey after subtraction it is posible or not, verify with brute in range ffffff,like in scrypt , brute 0xffffffff


anyone try their examples and you get fffff too ffff will be know range

but what about if  "c" in my code wrong ?




subtraction cant give anything except pubkey in lower bits, I give illustration below use puzzle 130 with known decimal variable upper range and lower range.

# Another trial for p130
 
 upper ranger
 1,361,129,467,683,753,853,853,498,429,727,072,845,818
 
 pvkey
 1,103,873,984,953,507,439,627,945,351,144,005,829,577
 
 lower range
 680,564,733,841,876,926,926,749,214,863,536,422,908
 
 Pvkey - lower range
 1,103,873,984,953,507,439,627,945,351,144,005,829,577 - 680,564,733,841,876,926,926,749,214,863,536,422,908   = 423,309,251,111,630,512,701,196,136,280,469,406,669
 
 680,564,733,841,876,926,926,749,214,863,536,422,908 - 423,309,251,111,630,512,701,196,136,280,469,406,669      = 257,255,482,730,246,414,225,553,078,583,067,016,239
 
 423,309,251,111,630,512,701,196,136,280,469,406,669 - 257,255,482,730,246,414,225,553,078,583,067,016,239      = 166,053,768,381,384,098,475,643,057,697,402,390,430
 
 257,255,482,730,246,414,225,553,078,583,067,016,239 - 166,053,768,381,384,098,475,643,057,697,402,390,430      = 91,201,714,348,862,315,749,910,020,885,664,625,809

the challenge is until lowest bit we only have 1 known variable in decimal