Pages:
Author

Topic: Pollard's kangaroo ECDLP solver - page 78. (Read 58565 times)

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: 1162
Merit: 237
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: 1162
Merit: 237
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: 1162
Merit: 237
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: 1162
Merit: 237
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: 1162
Merit: 237
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: 696
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
member
Activity: 144
Merit: 10
September 03, 2020, 02:56:13 PM
Hi,


Does anyone know why my speed is so small, the card is GTX Titan Z.

I am using the compiled version of Jean_Luc.

Your card is the equivalent of two underclocked GTX 780 Tis and it is performing as expected. It is based on the Kepler architecture which is very old by today's standards. 
jr. member
Activity: 40
Merit: 2
September 03, 2020, 02:42:06 PM
Yes, suppose the card is damaged, is it worth fixing it?
legendary
Activity: 952
Merit: 1385
September 03, 2020, 02:38:56 PM
And on released version from githuib?
jr. member
Activity: 40
Merit: 2
September 03, 2020, 01:53:01 PM
Compile with ccap=35 and then see the result. Then try to set grid 30,768.

https://en.m.wikipedia.org/wiki/Thread_block_(CUDA_programming)




30,768,30,768

Code:
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch
GPUEngine: Kernel: too many resources requested for launch


With other settings, after manually stopping the kangaroo, a black screen appears.
Pages:
Jump to: