Pages:
Author

Topic: Pollard's kangaroo ECDLP solver - page 79. (Read 60189 times)

member
Activity: 348
Merit: 34
October 23, 2020, 05:59:41 AM
Thanks brainless

The reason I chose Jean_Luc's project
it can run its own uint_64 (own integer class) with GPU, I'm trying to understand this issue.

Source code includes AddDircet, DoubleDirect and ComputePublicKey (G * int). But EccMultipy (Point x int) does not exist.

I was just in the beginning, I guess this is not the right place to discuss. But even if I only use CPU it is much faster than python. I don't know if it is with a GPU.

I'm not sure what I'm learning, I am not aware of C or C ++ right now, for now (:

" ComputePublicKey (G * int). But EccMultipy (Point x int) does not exist. "

G = point
G * int = its eccmultiply (Point x int)

only developer need to design as per above command for easy input/output at gpu work, let see who design it for community
member
Activity: 73
Merit: 19
October 23, 2020, 03:41:50 AM
Thanks brainless

The reason I chose Jean_Luc's project
it can run its own uint_64 (own integer class) with GPU, I'm trying to understand this issue.

Source code includes AddDircet, DoubleDirect and ComputePublicKey (G * int). But EccMultipy (Point x int) does not exist.

I was just in the beginning, I guess this is not the right place to discuss. But even if I only use CPU it is much faster than python. I don't know if it is with a GPU.

I'm not sure what I'm learning, I am not aware of C or C ++ right now, for now (:
member
Activity: 348
Merit: 34
October 21, 2020, 06:38:18 AM
-snip-
I have some functions in Python and it runs very slow compared to C.

The sage I want to do with the GPU is as follows
Code:
Pr = 115792089237316195423570985008687907853269984665640564039457584007908834671663

E = EllipticCurve (GF (P), [0,7])
N = E.order ()

G = E(55066263022277343669578718895168534326250603453777594175500187360389116729240,32670510020758816978083085130507043184471273380659243275938904335757337482424) # on E

T = E(26864879445837655118481716049217967286489564259939711339119540571911158650839,29571359081268663540055655726653840143920402820693420787986280659961264797165) # on E

numInt = 5646546546563131314723897429834729834798237429837498237498237489273948728934798237489723489723984729837489237498237498237498237498273493729847

numMod = numInt %N

numInv = pow(numMod ,N-2,N) # detail -> https://stackoverflow.com/questions/59234775/how-to-calculate-2-to-the-power-of-a-large-number-modulo-another-large-number


numMod * G
numMod * T

(T-G) * numInv



print (5*T)
print (2*G)

print (numMod * G)
print (numMod * (-G))

print (numMod * T)
print ((numMod-3) * (T-G))


Do you have any suggestions? What should I do ?
I wrote my question here because it is indirectly related to this project. Please forgive.

Hi! The slowest part in your python is inverse function. Try to implement gmpy2 inverse function (included in gmpy2) - it is C-based and very fast:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#gmpy

You can find the details here: https://bitcointalksearch.org/topic/m.55214449

When using Python, I use FastEcdsa(https://github.com/AntonKueltz/fastecdsa) library and mathematics similar to Sage. But can I do the math faster? I want to understand.
The FastEcdsa Library is fast, but I don't know if it uses the gmpy2 you suggested. My python script uses 17% of the CPU as a result. I wanted to write with Anaconda (for GPU), but I could not find a gpu running as fast as C or I could not.

Thank you MrFreeDragon .

No. you can't be faster then GPU on your CPU.
if i explain your word in easy example commands for new gpu based develop application/repo, by jean luc or other developer, could be develop, or if any one know already developed can post links and refferance

here are some example aspected commands
./vs-pub -c  -gpu -input in.txt -output out.txt -add 0250863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2352 #pubkey
./vs-pub -c  -gpu -input in.txt -output out.txt -mul 123456789 # its privatekey in num (not hex)
./vs-pub -c  -gpu -input in.txt -output out.txt -sub 0250863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2352 #pubkey
./vs-pub -c  -gpu -input in.txt -output out.txt -sub 0250863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2352 -r (reverse like
02508... pubkey substract to all listed pubkey inside in.txt
-c is compressed pubkey
-u is uncompressed pubkey
-input is load of compressed/uncompressed pubkeys list
-output is results output to file
-r is reverse of sub ( listed pubkey in command minus(-) in.txt (pubkeys)
newbie
Activity: 49
Merit: 0
October 20, 2020, 06:37:44 AM
-snip-
I have some functions in Python and it runs very slow compared to C.

The sage I want to do with the GPU is as follows
Code:
Pr = 115792089237316195423570985008687907853269984665640564039457584007908834671663

E = EllipticCurve (GF (P), [0,7])
N = E.order ()

G = E(55066263022277343669578718895168534326250603453777594175500187360389116729240,32670510020758816978083085130507043184471273380659243275938904335757337482424) # on E

T = E(26864879445837655118481716049217967286489564259939711339119540571911158650839,29571359081268663540055655726653840143920402820693420787986280659961264797165) # on E

numInt = 5646546546563131314723897429834729834798237429837498237498237489273948728934798237489723489723984729837489237498237498237498237498273493729847

numMod = numInt %N

numInv = pow(numMod ,N-2,N) # detail -> https://stackoverflow.com/questions/59234775/how-to-calculate-2-to-the-power-of-a-large-number-modulo-another-large-number


numMod * G
numMod * T

(T-G) * numInv



print (5*T)
print (2*G)

print (numMod * G)
print (numMod * (-G))

print (numMod * T)
print ((numMod-3) * (T-G))


Do you have any suggestions? What should I do ?
I wrote my question here because it is indirectly related to this project. Please forgive.

Hi! The slowest part in your python is inverse function. Try to implement gmpy2 inverse function (included in gmpy2) - it is C-based and very fast:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#gmpy

You can find the details here: https://bitcointalksearch.org/topic/m.55214449

When using Python, I use FastEcdsa(https://github.com/AntonKueltz/fastecdsa) library and mathematics similar to Sage. But can I do the math faster? I want to understand.
The FastEcdsa Library is fast, but I don't know if it uses the gmpy2 you suggested. My python script uses 17% of the CPU as a result. I wanted to write with Anaconda (for GPU), but I could not find a gpu running as fast as C or I could not.

Thank you MrFreeDragon .

No. you can't be faster then GPU on your CPU.
member
Activity: 73
Merit: 19
October 19, 2020, 10:36:06 AM
-snip-
I have some functions in Python and it runs very slow compared to C.

The sage I want to do with the GPU is as follows
Code:
Pr = 115792089237316195423570985008687907853269984665640564039457584007908834671663

E = EllipticCurve (GF (P), [0,7])
N = E.order ()

G = E(55066263022277343669578718895168534326250603453777594175500187360389116729240,32670510020758816978083085130507043184471273380659243275938904335757337482424) # on E

T = E(26864879445837655118481716049217967286489564259939711339119540571911158650839,29571359081268663540055655726653840143920402820693420787986280659961264797165) # on E

numInt = 5646546546563131314723897429834729834798237429837498237498237489273948728934798237489723489723984729837489237498237498237498237498273493729847

numMod = numInt %N

numInv = pow(numMod ,N-2,N) # detail -> https://stackoverflow.com/questions/59234775/how-to-calculate-2-to-the-power-of-a-large-number-modulo-another-large-number


numMod * G
numMod * T

(T-G) * numInv



print (5*T)
print (2*G)

print (numMod * G)
print (numMod * (-G))

print (numMod * T)
print ((numMod-3) * (T-G))


Do you have any suggestions? What should I do ?
I wrote my question here because it is indirectly related to this project. Please forgive.

Hi! The slowest part in your python is inverse function. Try to implement gmpy2 inverse function (included in gmpy2) - it is C-based and very fast:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#gmpy

You can find the details here: https://bitcointalksearch.org/topic/m.55214449

When using Python, I use FastEcdsa(https://github.com/AntonKueltz/fastecdsa) library and mathematics similar to Sage. But can I do the math faster? I want to understand.
The FastEcdsa Library is fast, but I don't know if it uses the gmpy2 you suggested. My python script uses 17% of the CPU as a result. I wanted to write with Anaconda (for GPU), but I could not find a gpu running as fast as C or I could not.

Thank you MrFreeDragon .
sr. member
Activity: 443
Merit: 350
October 19, 2020, 07:09:57 AM
-snip-
I have some functions in Python and it runs very slow compared to C.

The sage I want to do with the GPU is as follows
Code:
Pr = 115792089237316195423570985008687907853269984665640564039457584007908834671663

E = EllipticCurve (GF (P), [0,7])
N = E.order ()

G = E(55066263022277343669578718895168534326250603453777594175500187360389116729240,32670510020758816978083085130507043184471273380659243275938904335757337482424) # on E

T = E(26864879445837655118481716049217967286489564259939711339119540571911158650839,29571359081268663540055655726653840143920402820693420787986280659961264797165) # on E

numInt = 5646546546563131314723897429834729834798237429837498237498237489273948728934798237489723489723984729837489237498237498237498237498273493729847

numMod = numInt %N

numInv = pow(numMod ,N-2,N) # detail -> https://stackoverflow.com/questions/59234775/how-to-calculate-2-to-the-power-of-a-large-number-modulo-another-large-number


numMod * G
numMod * T

(T-G) * numInv



print (5*T)
print (2*G)

print (numMod * G)
print (numMod * (-G))

print (numMod * T)
print ((numMod-3) * (T-G))


Do you have any suggestions? What should I do ?
I wrote my question here because it is indirectly related to this project. Please forgive.

Hi! The slowest part in your python is inverse function. Try to implement gmpy2 inverse function (included in gmpy2) - it is C-based and very fast:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#gmpy

You can find the details here: https://bitcointalksearch.org/topic/m.55214449
member
Activity: 73
Merit: 19
October 19, 2020, 06:30:54 AM
Hi,
Is there a library of y**2 = x**3 +7  working with GPU?
I don't know how to use C.
I have some functions in Python and it runs very slow compared to C.

The sage I want to do with the GPU is as follows
Code:
Pr = 115792089237316195423570985008687907853269984665640564039457584007908834671663

E = EllipticCurve (GF (P), [0,7])
N = E.order ()

G = E(55066263022277343669578718895168534326250603453777594175500187360389116729240,32670510020758816978083085130507043184471273380659243275938904335757337482424) # on E

T = E(26864879445837655118481716049217967286489564259939711339119540571911158650839,29571359081268663540055655726653840143920402820693420787986280659961264797165) # on E

numInt = 5646546546563131314723897429834729834798237429837498237498237489273948728934798237489723489723984729837489237498237498237498237498273493729847

numMod = numInt %N

numInv = pow(numMod ,N-2,N) # detail -> https://stackoverflow.com/questions/59234775/how-to-calculate-2-to-the-power-of-a-large-number-modulo-another-large-number


numMod * G
numMod * T

(T-G) * numInv



print (5*T)
print (2*G)

print (numMod * G)
print (numMod * (-G))

print (numMod * T)
print ((numMod-3) * (T-G))


Do you have any suggestions? What should I do ?
I wrote my question here because it is indirectly related to this project. Please forgive.
full member
Activity: 706
Merit: 111
October 17, 2020, 09:05:53 AM
I only know the address and public key, and I want to use them to calculate the private key

Run the program and you will see the calculation.
hero member
Activity: 1988
Merit: 593
October 17, 2020, 07:44:18 AM
I only know the address and public key, and I want to use them to calculate the private key
hero member
Activity: 1988
Merit: 593
October 17, 2020, 05:13:08 AM
please tell me the settings for the richest address with a known public key for 1060 3GB

and how many years will it take to calculate the key? Smiley
full member
Activity: 1232
Merit: 242
Shooters Shoot...
September 25, 2020, 07:11:46 AM
Quote
So from further reading, it doesn't look like I need to change the distances, as they will be in the same range with same jumps. I would just need to redo the private keys (right side) to equal new pub being searched for. How to do?
After more reading and researching and taking samples from Etar's reconstructor, apparently all I have to do, to tame wilds, is to subtract range from wild's priv/xpub coord.  Leave distances alone, subtract range (which is odd because it will all be same range) and bam, new tamed wilds.
Edit: actually offset previous private key - start range.
Example: if previous search was for 8F400000000 and you want to tame the wilds for that search and search for a new pubkey in same range; take 8F400000000 - start range of 80000000000 = F400000000 ; now add that to previous wilds priv/pub xcoord


So are you trying to merge different ranges to the same public key? If yes did it work?
No, I am trying to reuse every wild file (taming the wilds) for next, new key in the same search range.
full member
Activity: 706
Merit: 111
September 25, 2020, 06:47:29 AM
Quote
So from further reading, it doesn't look like I need to change the distances, as they will be in the same range with same jumps. I would just need to redo the private keys (right side) to equal new pub being searched for. How to do?
After more reading and researching and taking samples from Etar's reconstructor, apparently all I have to do, to tame wilds, is to subtract range from wild's priv/xpub coord.  Leave distances alone, subtract range (which is odd because it will all be same range) and bam, new tamed wilds.
Edit: actually offset previous private key - start range.
Example: if previous search was for 8F400000000 and you want to tame the wilds for that search and search for a new pubkey in same range; take 8F400000000 - start range of 80000000000 = F400000000 ; now add that to previous wilds priv/pub xcoord


So are you trying to merge different ranges to the same public key? If yes did it work?
full member
Activity: 1232
Merit: 242
Shooters Shoot...
September 23, 2020, 10:52:52 PM
Quote
So from further reading, it doesn't look like I need to change the distances, as they will be in the same range with same jumps. I would just need to redo the private keys (right side) to equal new pub being searched for. How to do?
After more reading and researching and taking samples from Etar's reconstructor, apparently all I have to do, to tame wilds, is to subtract range from wild's priv/xpub coord.  Leave distances alone, subtract range (which is odd because it will all be same range) and bam, new tamed wilds.
Edit: actually offset previous private key - start range.
Example: if previous search was for 8F400000000 and you want to tame the wilds for that search and search for a new pubkey in same range; take 8F400000000 - start range of 80000000000 = F400000000 ; now add that to previous wilds priv/pub xcoord
full member
Activity: 1232
Merit: 242
Shooters Shoot...
September 22, 2020, 05:13:09 PM
Anyone besides me still chasing #120?

I do have a question for the community...I've been using Etar's dp reconstructor (already compiled, can't view source code) and it works great for taming wild kangaroos.

However, is it necessary to have to know the private key (that you were searching for) in the work file or do you only need to know the pub key?

Also, does anyone know how to go about taming the wilds via a python script?

Example:

here is a line from one of my wild workfile:

Code:
26820E1D54B30FE9F13F7B99BE9CD19F4E47AAD61FD6D1F3C59874C500000000 0000000000000000000000000000000000E7DCAB65369C5F7CC15D08EEE48C67

so let's say it was for some pubkey 03......at the 120 bit range. How would I tame the wilds to say some pubkey 02.... in the same 120 bit range?

All new pubkeys that I search for will be in the same range, so just need to reconstruct the wild kangaroos to the new pubkey. But would be ok if code can reconstruct in different range too.
So from further reading, it doesn't look like I need to change the distances, as they will be in the same range with same jumps. I would just need to redo the private keys (right side) to equal new pub being searched for. How to do?


What's the link to that script you're using?
https://bitcointalksearch.org/topic/m.54666524
full member
Activity: 706
Merit: 111
September 22, 2020, 12:49:16 PM
Anyone besides me still chasing #120?

I do have a question for the community...I've been using Etar's dp reconstructor (already compiled, can't view source code) and it works great for taming wild kangaroos.

However, is it necessary to have to know the private key (that you were searching for) in the work file or do you only need to know the pub key?

Also, does anyone know how to go about taming the wilds via a python script?

Example:

here is a line from one of my wild workfile:

Code:
26820E1D54B30FE9F13F7B99BE9CD19F4E47AAD61FD6D1F3C59874C500000000 0000000000000000000000000000000000E7DCAB65369C5F7CC15D08EEE48C67

so let's say it was for some pubkey 03......at the 120 bit range. How would I tame the wilds to say some pubkey 02.... in the same 120 bit range?

All new pubkeys that I search for will be in the same range, so just need to reconstruct the wild kangaroos to the new pubkey. But would be ok if code can reconstruct in different range too.
So from further reading, it doesn't look like I need to change the distances, as they will be in the same range with same jumps. I would just need to redo the private keys (right side) to equal new pub being searched for. How to do?


What's the link to that script you're using?
full member
Activity: 1232
Merit: 242
Shooters Shoot...
September 22, 2020, 12:38:11 PM
Anyone besides me still chasing #120?

I do have a question for the community...I've been using Etar's dp reconstructor (already compiled, can't view source code) and it works great for taming wild kangaroos.

However, is it necessary to have to know the private key (that you were searching for) in the work file or do you only need to know the pub key?

Also, does anyone know how to go about taming the wilds via a python script?

Example:

here is a line from one of my wild workfile:

Code:
26820E1D54B30FE9F13F7B99BE9CD19F4E47AAD61FD6D1F3C59874C500000000 0000000000000000000000000000000000E7DCAB65369C5F7CC15D08EEE48C67

so let's say it was for some pubkey 03......at the 120 bit range. How would I tame the wilds to say some pubkey 02.... in the same 120 bit range?

All new pubkeys that I search for will be in the same range, so just need to reconstruct the wild kangaroos to the new pubkey. But would be ok if code can reconstruct in different range too.
So from further reading, it doesn't look like I need to change the distances, as they will be in the same range with same jumps. I would just need to redo the private keys (right side) to equal new pub being searched for. How to do?
full member
Activity: 431
Merit: 105
September 22, 2020, 03:12:28 AM
jean luc any new compiled version ready with the added
perf improvements still 2.2, my vs is broken a while.
can't compile now.
got a question after looong search.
while searching

Unexpected wrong collision, reset kangaroo !
Found: Td *
Found: Wd *

what these numbers behind the tame and wild. any use there for them
or suddenly 1000's dead kang's, just continue this search?
full member
Activity: 1232
Merit: 242
Shooters Shoot...
September 20, 2020, 09:30:06 PM
Anyone besides me still chasing #120?

I do have a question for the community...I've been using Etar's dp reconstructor (already compiled, can't view source code) and it works great for taming wild kangaroos.

However, is it necessary to have to know the private key (that you were searching for) in the work file or do you only need to know the pub key?

Also, does anyone know how to go about taming the wilds via a python script?

Example:

here is a line from one of my wild workfile:

Code:
26820E1D54B30FE9F13F7B99BE9CD19F4E47AAD61FD6D1F3C59874C500000000 0000000000000000000000000000000000E7DCAB65369C5F7CC15D08EEE48C67

so let's say it was for some pubkey 03......at the 120 bit range. How would I tame the wilds to say some pubkey 02.... in the same 120 bit range?

All new pubkeys that I search for will be in the same range, so just need to reconstruct the wild kangaroos to the new pubkey. But would be ok if code can reconstruct in different range too.
sr. member
Activity: 462
Merit: 701
September 04, 2020, 12:56:28 AM
Unfortunately I am not using Kangaroo in server mode.

The wsplit option works also for normal mode. It is a very useful option to avoid large hashtable in RAM which decrease performance.
If you plan to have a large master workfile (>100GB), you can use partitioned workfiles for speeding up the merge process.
https://github.com/JeanLucPons/Kangaroo#how-to-deal-with-work-files
jr. member
Activity: 40
Merit: 2
September 03, 2020, 03:17:28 PM
So I will give the card back, what do you think of this card?  Gigabyte Rtx 2060 6gb OC
Pages:
Jump to: