Pages:
Author

Topic: Pollard's kangaroo ECDLP solver - page 101. (Read 58630 times)

jr. member
Activity: 30
Merit: 122
June 14, 2020, 04:57:07 PM
@mrxtraf
In the private key group (mod n) we can add, negate, and invert - this allows for multiplication and division.

In the public key group (elliptic curve mod p of size n) we can add, negate, and double only. This leads to multiplication by a scalar.

One public key corresponds to exactly one private key, and vice versa. The proof is very easy. Let G is the generator of secp256k1. Let P=k*G is a point on the curve. Let also P=k'*G. Then (k-k')*G=O => (k-k') divides n. But n is prime, hence k=k' (mod n).
That is, you can’t divide the public key by 10?
Give me any public key from which you know the private key, I will divide it by 10. And I will give in return the result in the form of a public key. And you yourself divide the private key by 10, get the public key from it and compare.

The multiplication (and division, which is multiplication with the inverse) is by scalar only. You cannot multiply two public keys without solving ECDLP first. And if you somehow can, then all coins are belong to you.

mrxtraf is saying they can "divide" the public key by 10 by multiplying the public key by the multiplicative inverse of 10 mod n.
BitCrack
apply your algo and show me pubkey div by 789 for
03D041CF467F485A96AB21EC0E1E1E26A344B28A12244320C4BDE48C123653D88F


Sure.

The inverse of 789 mod n = 90549707299650307447836879278023370272751301850683416988678562304583910826370

Multiply your public key by that and you get:

035776B3684B6A5E9A6307AA53C3D484AABB90244E6371405C114CF8910A9A3BD0

Multiplying that point by 789 will result in the original public key. In otherwords, 789 * 90549707299650307447836879278023370272751301850683416988678562304583910826370 = 1 (mod n).
sr. member
Activity: 443
Merit: 350
June 14, 2020, 03:29:15 PM
Are you guys still discussing the off-topic things?

It was said several times, that there is no division for public points. Our brains want to visualize the division process and we only imagine integers. But group field works under different principles.

The only thing we can do - is to multiply by the inverse scalar. That's it. But we still just multiplying a public point by the integer number, and divide it.

For every integer x we can find inverse y which is such a number where x*y%order = 1, where order if the order of the group.
No inverse exist for 0, and for order itself.

Easy explanation for the group of 7 elements (let's say week days from Monday to Sunday):
If you multiply Wednesday by 4, you will receive Friday (3*4%7 = 12%7 = 5)
For division, we also make multiplication by the inverse scalar. Here is the list of inverse scalars for every number:
inverse(1) = 1
inverse(2) = 4
inverse(3) = 5
inverse(4) = 2
inverse(5) = 3
inverse(6) = 6
inverse(7) does not exist

Now if you want to "divide" Friday by 4, you should multiply it by inverse(4) = 2. So, we have 5*2%7 = 10%7 = 3
You can see that equation is correct as it was in the 1st example (where we multiplied Wednesday by 4).

You should never divide 5 by 4 and imagine number 1.25, and so on. It is not correct.

All the elements in the group is a wheel, and repeating after reaching the order.
So, if we divide some number x by k within the group with finite order, we are searching such a number y, which will give us x if we multiply it by k: y * k = x
In order to find it, we calculate inverse k'=(1/k), and make the multiplication: y = x * (1/k)
member
Activity: 255
Merit: 27
June 14, 2020, 01:15:47 PM
-snip-
so each and every digit have value, and i can div them in integar and float too actual low then 1 is called is fractional point,and i can play with each and every point Smiley
each representation K like positive or negative or fraction is allways positive integer from 1 to n.
if you say me positive integer representation of 789.789 i can easy devide any pub key by this valus. Here no problem to do this.

Кaк двa пaльцa oб acфaльт  Grin
Like two fingers on the asphalt.
K * 1000 = NK
f(NK / 1000) = MK
sr. member
Activity: 617
Merit: 312
June 14, 2020, 12:46:32 PM
-snip-
so each and every digit have value, and i can div them in integar and float too actual low then 1 is called is fractional point,and i can play with each and every point Smiley
each representation K like positive or negative or fraction is allways positive integer from 1 to n.
if you say me positive integer representation of 789.789 i can easy devide any pub key by this valus. Here no problem to do this.
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
June 14, 2020, 12:24:37 PM
-snip-
mean 789.789 is value can u div pubkey by above value ?

devider must be integer not float. all pubkeys Q=k*G, where k - integer.
btw let me say,
highest value in ecc is 1
1 = 115792089237316195423570985008687907852837564279074904382605163141518161494337. 0
and above to 0 is
0.11579208923731619542357098500868790785283756427907490438260516314151816149433 7

so each and every digit have value, and i can div them in integar and float too actual low then 1 is called is fractional point,and i can play with each and every point Smiley

Good day. Do you know how get wright range for kangaroo search ? And how maybe manipulate pubkey for  so range ?

Thx
member
Activity: 330
Merit: 34
June 14, 2020, 12:11:21 PM
-snip-
mean 789.789 is value can u div pubkey by above value ?

devider must be integer not float. all pubkeys Q=k*G, where k - integer.
btw let me say,
highest value in ecc is 1
1 = 115792089237316195423570985008687907852837564279074904382605163141518161494337. 0
and above to 0 is
0.11579208923731619542357098500868790785283756427907490438260516314151816149433 7

so each and every digit have value, and i can div them in integar and float too actual low then 1 is called is fractional point,and i can play with each and every point Smiley
sr. member
Activity: 617
Merit: 312
June 14, 2020, 12:01:51 PM
-snip-
mean 789.789 is value can u div pubkey by above value ?

Can`t and nobody can`t. devider must be integer not float. all pubkeys Q=k*G, where k - integer.
member
Activity: 330
Merit: 34
June 14, 2020, 12:00:04 PM
-snip-
if need div 789.789 then ?
what you mean? you can devide point only by integer.
mean 789.789 is value can u div pubkey by above value ?
sr. member
Activity: 617
Merit: 312
June 14, 2020, 11:57:29 AM
-snip-
if need div 789.789 then ?
what you mean? you can devide point only by integer.
member
Activity: 330
Merit: 34
June 14, 2020, 11:54:07 AM
-snip-
BitCrack
apply your algo and show me pubkey div by 789 for
03D041CF467F485A96AB21EC0E1E1E26A344B28A12244320C4BDE48C123653D88F

035776b3684b6a5e9a6307aa53c3d484aabb90244e6371405c114cf8910a9a3bd0
if need div 789.789 then ?
sr. member
Activity: 617
Merit: 312
June 14, 2020, 11:48:21 AM
-snip-
BitCrack
apply your algo and show me pubkey div by 789 for
03D041CF467F485A96AB21EC0E1E1E26A344B28A12244320C4BDE48C123653D88F

035776b3684b6a5e9a6307aa53c3d484aabb90244e6371405c114cf8910a9a3bd0
And what is problem in division pub by 789?
member
Activity: 330
Merit: 34
June 14, 2020, 11:32:35 AM
@mrxtraf
In the private key group (mod n) we can add, negate, and invert - this allows for multiplication and division.

In the public key group (elliptic curve mod p of size n) we can add, negate, and double only. This leads to multiplication by a scalar.

One public key corresponds to exactly one private key, and vice versa. The proof is very easy. Let G is the generator of secp256k1. Let P=k*G is a point on the curve. Let also P=k'*G. Then (k-k')*G=O => (k-k') divides n. But n is prime, hence k=k' (mod n).
That is, you can’t divide the public key by 10?
Give me any public key from which you know the private key, I will divide it by 10. And I will give in return the result in the form of a public key. And you yourself divide the private key by 10, get the public key from it and compare.

The multiplication (and division, which is multiplication with the inverse) is by scalar only. You cannot multiply two public keys without solving ECDLP first. And if you somehow can, then all coins are belong to you.

mrxtraf is saying they can "divide" the public key by 10 by multiplying the public key by the multiplicative inverse of 10 mod n.
BitCrack
apply your algo and show me pubkey div by 789 for
03D041CF467F485A96AB21EC0E1E1E26A344B28A12244320C4BDE48C123653D88F
jr. member
Activity: 30
Merit: 122
June 14, 2020, 07:56:06 AM
@mrxtraf
In the private key group (mod n) we can add, negate, and invert - this allows for multiplication and division.

In the public key group (elliptic curve mod p of size n) we can add, negate, and double only. This leads to multiplication by a scalar.

One public key corresponds to exactly one private key, and vice versa. The proof is very easy. Let G is the generator of secp256k1. Let P=k*G is a point on the curve. Let also P=k'*G. Then (k-k')*G=O => (k-k') divides n. But n is prime, hence k=k' (mod n).
That is, you can’t divide the public key by 10?
Give me any public key from which you know the private key, I will divide it by 10. And I will give in return the result in the form of a public key. And you yourself divide the private key by 10, get the public key from it and compare.

The multiplication (and division, which is multiplication with the inverse) is by scalar only. You cannot multiply two public keys without solving ECDLP first. And if you somehow can, then all coins are belong to you.

mrxtraf is saying they can "divide" the public key by 10 by multiplying the public key by the multiplicative inverse of 10 mod n.
full member
Activity: 206
Merit: 447
June 14, 2020, 07:47:38 AM
@mrxtraf
In the private key group (mod n) we can add, negate, and invert - this allows for multiplication and division.

In the public key group (elliptic curve mod p of size n) we can add, negate, and double only. This leads to multiplication by a scalar.

One public key corresponds to exactly one private key, and vice versa. The proof is very easy. Let G is the generator of secp256k1. Let P=k*G is a point on the curve. Let also P=k'*G. Then (k-k')*G=O => (k-k') divides n. But n is prime, hence k=k' (mod n).
That is, you can’t divide the public key by 10?
Give me any public key from which you know the private key, I will divide it by 10. And I will give in return the result in the form of a public key. And you yourself divide the private key by 10, get the public key from it and compare.

The multiplication (and division, which is multiplication with the inverse) is by scalar only. You cannot multiply two public keys without solving ECDLP first. And if you somehow can, then all coins are belong to you.
member
Activity: 255
Merit: 27
June 14, 2020, 05:49:14 AM
@mrxtraf
In the private key group (mod n) we can add, negate, and invert - this allows for multiplication and division.

In the public key group (elliptic curve mod p of size n) we can add, negate, and double only. This leads to multiplication by a scalar.

One public key corresponds to exactly one private key, and vice versa. The proof is very easy. Let G is the generator of secp256k1. Let P=k*G is a point on the curve. Let also P=k'*G. Then (k-k')*G=O => (k-k') divides n. But n is prime, hence k=k' (mod n).
That is, you can’t divide the public key by 10?
Give me any public key from which you know the private key, I will divide it by 10. And I will give in return the result in the form of a public key. And you yourself divide the private key by 10, get the public key from it and compare.
full member
Activity: 206
Merit: 447
June 14, 2020, 05:37:21 AM
@mrxtraf
In the private key group (mod n) we can add, negate, and invert - this allows for multiplication and division.

In the public key group (elliptic curve mod p of size n) we can add, negate, and double only. This leads to multiplication by a scalar.

One public key corresponds to exactly one private key, and vice versa. The proof is very easy. Let G is the generator of secp256k1. Let P=k*G is a point on the curve. Let also P=k'*G. Then (k-k')*G=O => (k-k') divides n. But n is prime, hence k=k' (mod n).
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
June 13, 2020, 05:21:16 PM
Jean_Luc

Can you insert this function in the code ?


Code:
And one more trick, if the program showed not only just dead kangaroos, but also their type.



Please

Big thank you.
member
Activity: 255
Merit: 27
June 13, 2020, 12:57:00 PM

Simple model. Divided at 2 key and key-1, and paralled other key.
sr. member
Activity: 617
Merit: 312
June 13, 2020, 12:39:16 PM
Interesting thing...
For first experiment I took a public key 03f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8  pk=13
Then i made fake Tame file with DP=2 and with only one DP and very small range in DEC 0:17
Small range selected specifically to check if overlap affects.
X-coordinate was 5c778e4b8cef3ca7abac09b95c709ee5 and distance 00000000000000000000000000000002
So DP is c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5
After that i make fake Wild file:
X-coordinate was 5c778e4b8cef3ca7abac09b95c709ee5 and distance 0000000000000000000000000000000B sign -
then i merge this 2 file and solve key. Ok it is correct and expected because the pub key is above "zero"


The second experiment was with almost the same key with only a minus sign 02f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8
That mean that pub key is under "zero" and -N/2+pub+N/2 do not overlap tame range..

Fake Tame file was almost the same i just change pub key y-coordinate in header

Fake Wild file the same was changed pub  key y-coordinate in header and change sign in distance to +
So we have Wild DP -2 and Tame DP +2
And after merge key was solved:
Range width: 2^5
Key# 0 [0S]Pub:  0x02F28773C2D975288BC7D1D205C3748651B075FBC6610E58CDDEEDDF8F19405AA8
       Priv: 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364134

Those my theory is correct and we can reduce the range by half due to symmetry.

And here is question to @JeanLuc why  app can solve this config:
80000000000000000000
ffffffffffffffffffff
0304b504a5122bfa6d4d3c7283b1c42f732f2e68ae129a8e6eea7671aeb6fe075f

but  can`t solve this:
0
3fffffffffffffffffff
023389617b48186abe570e27966546775feaff36037a932b655c10d0c6994d7bf3

Yesterday i was wait 8h when expected time was 15minutes, so i can say that this config was impossible to solve. But what reason is?

EDIT: And one more trick, if the program showed not only just dead kangaroos, but also their type.
From the number of dead wild kangaroos, one can judge indirectly that the public key is close to the beginning of the range.
Due to symmetry, negative steps will be mirrored with positives causing a greater number of dead wild kangaroos.
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
June 13, 2020, 12:36:03 PM
I was try deduct many times Basis point from pubkey

and get this result in decimal:

Code:

55066263022277343669578718895168534326250603453777594175500187360389116729240

80461206456126903936648321769588210263641381518345730725024477625603510475367

114350281152090415002914225360680879723439364201547916387065294902806089470701

51013628197151087321576517601027944519980487992320239741969820950564947154728

81858063707046191459386939009866976545571746100767742618686877552464701474279

91885386504538144991569604282776563056639230987209343782016348535025109416865

105949401804278716591078498274389076439291177336075085569965846810479473186009

41459912523433373843361567769935953701779569108932744302847774650924271071067

92405715801833063648780028028777895808671753827946407669234064272887784157724

54418341959535059209523319322208425784424076816816028811932505061370156780655

5126047978605685512005484045416997952858866417284486515665253490591400058134

52490963540812138089050326573359765290153157657886160007707578869545978541959


32802036335507597593529078709567273036524674888099370753687496987450852461118


27863773688718935131660845784469550803460621553574213006074163405651052167161


36645545354186924026635864492819248964849682741741028893139627006539149133774

27476149675778769341425383353707820487777155825885410693677584163936411230079


54129827521380745567621263337017653354620280013802747340066967768376390656637


80638523013064036412041871548943079184689297859131619072201660923512812171502

112723772262242031666753037233989715114592529792673293658551104097788592972230

110958129610584237331452391111361457709268353430315048828827348860484327374055

50693572800016527537751387017277354813007969227988932973757409794810631509905

17856908775349033022202533859010614530493029893325487811243073805696696942498


Why if pubkey=G*x so many different result ?

What is algorithm multiply G on x Huh?

Does a algorithm for get Pubkey is Q=G * x * ?


Pages:
Jump to: