Pages:
Author

Topic: Pollard's kangaroo ECDLP solver - page 62. (Read 59389 times)

legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
April 25, 2021, 02:19:16 AM
NotATether, Did you ever work on the 128 + bits DP mask?

Yes I finished the 128+ bit range quite some time ago, you can get it from https://github.com/ZenulAbidin/Kangaroo-256

As for dpmask, what I discovered is that the runtime goes UP the bigger the dpmask you use. Search time becomes too long (in hundreds of years) when your dpmask is at 128 so I scrapped the addition.

That was a joke...it would take you 2^128 jumps to find a 128 DP mask.  So let's say your CPU (1 thread) can do 4,000 jumps per second.  Now divide 2^128 / 4000 jumps per second = 85,070,591,730,234,615,865,843,651,857,942,052,864 seconds to find one 128 DP.

I get that it wasn't a practical change to make but it's nice to be able to run it without it chopping the range while you're unaware of it. My bad, I thought you were talking about range

Dear Sir,
I have many time tried to download for this file; it was unable to download yet. Now it is required a access to the permission. Please given to me permission for download: https://drive.google.com/file/d/1wQWLCRsYY2s4DH2OZHmyTMMxIPn8kdsz


Regards,
Md. Ashraful Alam

I'm not sure where you got that Google Drive link from but I don't recall it ever being posted in this thread.

yes, I print directly

I don't know C++ command to convert to binary (like 1010101)
or convert to hex

I try only
::printf("Point: %02X \n", P);
(it worsk)

Don't do it like that, print it like this using 16-character padding for the hex numbers (they are 64-bit):

Code:
::printf("Point X: %16X%16X%16X%16X \n", P.x.bits64[3], P.x.bits64[2], P.x.bits64[1], P.x.bits64[0]);
::printf("Point Y: %16X%16X%16X%16X \n", P.y.bits64[3], P.y.bits64[2], P.y.bits64[1], P.y.bits64[0]);
member
Activity: 406
Merit: 47
April 24, 2021, 10:04:10 PM
@fx
Also:
Quote
if can get collision point from save.work file by kangaroo.exe may be help to easy to set DP to match with
example

puzzle #40
ec9d5049bd4509aa41e1f5c312de1900d3eac4adba0692a41286b2497e520000 1110317004752
ec9d5049bd4509aa41e1f5c312de1900d3eac4adba0692a41286b2497e520000 106665591802

The Kangaroo.exe and the kangaroo python script you have been running will not match.  Notice in your python script the zeros are at the end, they are "trailing". Kangaroo.exe uses leading zeros.  Plus, if you use a range, Kangaroo.exe subtracts start range and reduces search by 1 bit. The two will never match unless you do some deep programming modification in one of the programs.

EDIT: and the Kangaroo.exe only saves the least (last) bits of the points, where your python script saves the entire point.

old python script I use
http://bitchain.pl/100btc/pollard_kangaroo.txt
and
https://github.com/Telariust/pollard-kangaroo/blob/master/pollard-kangaroo-multi.py

for modify python just code on output display but for process and algorithm I am not modify keep work from original

Can you help to modify save function to save full data purpose for read and learning not for use continue works?
How can I do make it save full point
member
Activity: 406
Merit: 47
April 24, 2021, 08:37:54 PM
image I try to print P value out but fould like this may be is binary file need to be convert to hex or decimal

You are printing the P value directly, this will make binary output since it's a class, you have to print each of P.x and P.y separately, and each of those is split into 4 64-bit parts called P.x.bits64[0 1 2 3] which all need to be printed with a separate printf() format character.

yes, I print directly

I don't know C++ command to convert to binary (like 1010101)
or convert to hex

I try only
::printf("Point: %02X \n", P);
(it worsk)

look like every value is store and works in binary
pk
P
keyToSearchNeg

all is binary (when print directly will get Alien language)
newbie
Activity: 8
Merit: 0
April 24, 2021, 05:54:12 PM
Dear Sir,
I have many time tried to download for this file; it was unable to download yet. Now it is required a access to the permission. Please given to me permission for download: https://drive.google.com/file/d/1wQWLCRsYY2s4DH2OZHmyTMMxIPn8kdsz


Regards,
Md. Ashraful Alam
full member
Activity: 1162
Merit: 237
Shooters Shoot...
April 24, 2021, 02:30:54 PM
This is just not true. The RAM consumed/used is not dependent on the bits being search...it comes down to your DP setting and how often you save the work file.  I don't see your settings/flags when starting the program but you are using a very low -d setting or that plus using a long save to file time.

I can see now that searching a 256-bit interval will become feasible if we use 128+ bits of DP mask  Smiley

How feasible are you talking? So you are working on searching 256-bit interval using 128 + bits of DP mask too?

I forgot about this thread - sorry about that.

Yeah I am, so far I have the actual program running on GPU, it's running at ~260MKeys/s with the expanded dpmask on my T4 though but it's making quite a large number of same herd collisions and dead kangaroos. I had actually expected the speed to be much faster, like around ~1500MKeys/s given that I saw someone's V100 do ~1100MKeys/s.

I doubt checking three more uint64's for equality within the main loop is what's causing this speed drop but it's a good opportunity to peek into the CUDA accelerated Int class and see what else can be sped up.

NotATether, Did you ever work on the 128 + bits DP mask?
That was a joke...it would take you 2^128 jumps to find a 128 DP mask.  So let's say your CPU (1 thread) can do 4,000 jumps per second.  Now divide 2^128 / 4000 jumps per second = 85,070,591,730,234,615,865,843,651,857,942,052,864 seconds to find one 128 DP.
full member
Activity: 706
Merit: 111
April 24, 2021, 02:20:30 PM
This is just not true. The RAM consumed/used is not dependent on the bits being search...it comes down to your DP setting and how often you save the work file.  I don't see your settings/flags when starting the program but you are using a very low -d setting or that plus using a long save to file time.

I can see now that searching a 256-bit interval will become feasible if we use 128+ bits of DP mask  Smiley

How feasible are you talking? So you are working on searching 256-bit interval using 128 + bits of DP mask too?

I forgot about this thread - sorry about that.

Yeah I am, so far I have the actual program running on GPU, it's running at ~260MKeys/s with the expanded dpmask on my T4 though but it's making quite a large number of same herd collisions and dead kangaroos. I had actually expected the speed to be much faster, like around ~1500MKeys/s given that I saw someone's V100 do ~1100MKeys/s.

I doubt checking three more uint64's for equality within the main loop is what's causing this speed drop but it's a good opportunity to peek into the CUDA accelerated Int class and see what else can be sped up.

NotATether, Did you ever work on the 128 + bits DP mask?
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
April 24, 2021, 11:25:23 AM
image I try to print P value out but fould like this may be is binary file need to be convert to hex or decimal

You are printing the P value directly, this will make binary output since it's a class, you have to print each of P.x and P.y separately, and each of those is split into 4 64-bit parts called P.x.bits64[0 1 2 3] which all need to be printed with a separate printf() format character.
full member
Activity: 1162
Merit: 237
Shooters Shoot...
April 24, 2021, 10:06:54 AM
@fx
Also:
Quote
if can get collision point from save.work file by kangaroo.exe may be help to easy to set DP to match with
example

puzzle #40
ec9d5049bd4509aa41e1f5c312de1900d3eac4adba0692a41286b2497e520000 1110317004752
ec9d5049bd4509aa41e1f5c312de1900d3eac4adba0692a41286b2497e520000 106665591802

The Kangaroo.exe and the kangaroo python script you have been running will not match.  Notice in your python script the zeros are at the end, they are "trailing". Kangaroo.exe uses leading zeros.  Plus, if you use a range, Kangaroo.exe subtracts start range and reduces search by 1 bit. The two will never match unless you do some deep programming modification in one of the programs.

EDIT: and the Kangaroo.exe only saves the least (last) bits of the points, where your python script saves the entire point.
full member
Activity: 1162
Merit: 237
Shooters Shoot...
April 24, 2021, 09:41:46 AM

To my understanding I believe it contains records with each entry (they're in binary if I remember correctly) having the positions of the tame and wild kangaroos, and possibly the number of kangaroos present. I'm not entirely sure, I have to check again.
 

your correct may be is binary

I try to print P Value after check pk and found

  Point P = secp->ComputePublicKey(&pk);

  if(P.equals(keyToSearch)) {
  if(P.equals(keyToSearchNeg)) {

P is point of collision point right


image I try to print P value out but fould like this may be is binary file need to be convert to hex or decimal





@fx, again, what are you trying to see or accomplish? You have seen the tame and wild files from the kangaroo python script you have ran. There is nothing different with the kangaroo.exe files. They contain point and distances.  I do not understand your obsession with wanting to see the collision points and distances. Seeing them will not help you figure out a DP or help you in any way.  

JP and a lot of other smart people have thought of pretty much everything to make kangaroo.exe the best kangaroo program out there.  the DP is auto calculated based on bit size you are searching and the number of kangaroos you have (based on your GPUs/CPUs) to limit the amount of DP overhead.

The work/save files contain headers and then the tame and wild points and distances.

I've told you to use the -wsplit option if you want to see collision points.  After key is solved, extract points and distances via the python script I showed you. THEN you can see the collision points.

Code:
TAME
01f57df72a208ecb0dff27e1836f190850728 0000000000000000c6b916f827ecc764
01f7fe7bfd3dc4c604b3e708c2fb4bdd2ed46 0000000000000000f862dc916dfc4479
01f84404e1bbaf74e5e86ddf86fa2e96f165a 0000000000000000d190f29c6c0596f6
34f64327b6e6129a2af1cc6a106f2cec5fcf0 00000000000000001f9e0d582f7942fd
34f6889b8abd66be32f13ebe2cf24d5ab6b62 00000000000000009b0984d32bf64396
34f6fdd77d4d6a532866be4fdfa5923a09ead 0000000000000000bc3de9e206c157db
--
WILD
34f44f024c8997abff6b5f1ee364c414c3016 0000000000000000344f3351ce019232
34f6889b8abd66be32f13ebe2cf24d5ab6b62 -00000000000000000d2f2c61d9bc24d1
34f738fed0a483f198a7a44d04e073c45b962 -0000000000000000602f88bbfaa6b336
01f7a2ae1656a659818a81f9a87204c29f1e8 -000000000000000048ea5f42dfb5bcc4
01f7fe7bfd3dc4c604b3e708c2fb4bdd2ed46 0000000000000000502a2b5c6849dc12
01f8143c41d86963bf9df718f9d0ba2e80cd7 00000000000000000a350d95bb55cb79

Code:
TAME: 01f7fe7bfd3dc4c604b3e708c2fb4bdd2ed46 0000000000000000f862dc916dfc4479
WILD: 01f7fe7bfd3dc4c604b3e708c2fb4bdd2ed46 0000000000000000502a2b5c6849dc12

SECRET_PRIV_KEY = TAME_DIST - WILD_DIST + START
0xf862dc916dfc4479 - 0x502a2b5c6849dc12 + 2**64 = 0x1a838b13505b26867
member
Activity: 406
Merit: 47
April 24, 2021, 07:49:15 AM

To my understanding I believe it contains records with each entry (they're in binary if I remember correctly) having the positions of the tame and wild kangaroos, and possibly the number of kangaroos present. I'm not entirely sure, I have to check again.
 

your correct may be is binary

I try to print P Value after check pk and found

  Point P = secp->ComputePublicKey(&pk);

  if(P.equals(keyToSearch)) {
  if(P.equals(keyToSearchNeg)) {

P is point of collision point right


image I try to print P value out but fould like this may be is binary file need to be convert to hex or decimal




legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
April 24, 2021, 05:38:39 AM
@lostbitcoin, your image links are broken and return 404 not found, can you update them?

Can you help to explain for kangaroo.exe data from save.work file?

To my understanding I believe it contains records with each entry (they're in binary if I remember correctly) having the positions of the tame and wild kangaroos, and possibly the number of kangaroos present. I'm not entirely sure, I have to check again.

Total I want to modify 2 thing
1. write save file again when write output file
2. print out collision point

2. is fairly easy to do, in the function Kangaroo::CollisionCheck or something named like that there are two variables called Td and Wd which are your tame and wild points which you can then print out. Only problem would be finding a way to print these variables since they are of Int class and may not have a print method.

1. is possible but only if you already passed a work file using -ws, you would put the SaveWork call just before the Output call.
member
Activity: 406
Merit: 47
April 24, 2021, 05:29:45 AM
Help to modify kangaroo.exe code

I am not expert with c++ (sorry it is very hard to learn normal user I am not programmer)

I think I would like to add command to call function Save to function output

I am not sure it correct or not

Kangaroo::SaveWork

bool Kangaroo::Output

I see at Kangaroo::Output function works two thing one open file output and write private key to output file  and then print out treport on display show message found private key

So, if I add function SaveWork to work before write output file (or after write output file but before print out on scree to show private key message)
may be help to save work file include  collision point

may be function SaveWork , process only on schedule time

and more one collision point to show when fprint show hex private key (when found)
how I can fprint this value when found it


Total I want to modify 2 thing
1. write save file again when write output file
2. print out collision point

I think insert code may be simple, anyone can help?

Thank you for help
member
Activity: 406
Merit: 47
April 24, 2021, 04:28:23 AM


thanks

https://ibb.co/yWd5j22
https://ibb.co/G0zdCNc


This program was created with a lot of time and effort.
I won't share.


Do you have source code how to calculate?

however I calculate difference with you

from script python(kangaroo)

puzzle #50 (python 1 hour solve)

collision point
c52d3e18cf60567ff0ec3ada36b35b214281c2d0a0fa24e1bd1844f982400000 383497870405204
c52d3e18cf60567ff0ec3ada36b35b214281c2d0a0fa24e1bd1844f982400000 994638366572968

994638366572968-383497870405204 = 611140496167764  = 22BD43C2E9354

>>> math.log2(994638366572968)
49.82116541027459
>>> math.log2(383497870405204)
48.44621189477088

c52d3e18cf60567ff0ec3ada36b35b214281c2d0a0fa24e1bd1844f982400000
convert to Dec
89185567865970002315484466436073764171950415667507660205264806658442243604480

is not publickkey key but it is Elliptic curve

Elliptic curve last calculate  (from private key = 611140496167764 = 22BD43C2E9354)

Elliptic curve  double x = 89185567865970002315484466436073764171950415667507660205264806658442243604480
Elliptic curve  double y = 87127837977108995721802776410311454708031756638369374626443936686222994129249

public key x = c52d3e18cf60567ff0ec3ada36b35b214281c2d0a0fa24e1bd1844f982400000
public key y = c0a09bd53538cb2e3dabfdfb7a3385b62ce3e69963ea073967d9151c5edd4161

public key uncompressed:
04c52d3e18cf60567ff0ec3ada36b35b214281c2d0a0fa24e1bd1844f982400000c0a09bd53538c b2e3dabfdfb7a3385b62ce3e69963ea073967d9151c5edd4161

public key
03c52d3e18cf60567ff0ec3ada36b35b214281c2d0a0fa24e1bd1844f982400000


kangaroo found collision point on Elliptic curve calculate  (process between convert private key to public key)
member
Activity: 406
Merit: 47
April 24, 2021, 04:16:39 AM
I would like to measure kangaroo DP for puzzle #120

I always wondered what the relation was between DPsize and runtime. Maybe somebody should draw a few graphs. They will be parabolic because setting the size too low or high exponentially increases runtime, and if we could even make a 3D graph lining up the DP curves from all range sizes (powers in this case).

The idea would be to find the smallest points on the graph to see if there's a way to improve the automatically calculated dpsize value. (I once experimented with setting an arbitrary dpmask, but that had very bad effects for runtime.)

kangaroo still power full for now  (not yet have other algorithm best for now)

Can you help to explain for kangaroo.exe data from save.work file?

save.work file from kangaroo.exe  both solve a 120 bit and 256 bit  data is same format  (solve by using generate private key and publick key)

I convert hex to dec

from 120 bit solve (test pubkey)
262143,48357306424295921700769579380444332534 1562842135080204172
262143,236688263920794955386261906309794027722 967375894582543310

262143,209421810490797557957190854895683512892 441962270191571849
262143,225641934287901095819832523508370738498 1316787007398506857
262143,291551157822226898627726358187674170442 -493837653657333763


from 265 bit solve (test pubkey)

0,59459776387358570849530339812195619039 30449515388215305633
0,168557432531209639563818391489784546103 27117058245582788305
0,187703705753502279679574421533681592130 23895961494359236057
0,211282612041149045737248359108783970698 28316598789817799604

262143,303498835120544398690280772659518904948 15298374911161789743
262143,330471970880799703221136385694942800905 24405259179491741594
262143,333088154919942412776046848521499169913 29643794240743107223

bot still same format, I don't know what is number from?
member
Activity: 406
Merit: 47
April 24, 2021, 03:35:05 AM


I don't think there is such a feature in kangaroos yet.
I don't think there is yet an application that can calculate this, so I made an application that calculates this.

you want program

 
I am sorry that I have not reached the level where I can upload pictures.
I think it's the program you want.
Is it correct?


upload image easy by   https://imgbb.com/

and copy BB code to post
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
April 24, 2021, 03:32:55 AM
I would like to measure kangaroo DP for puzzle #120

I always wondered what the relation was between DPsize and runtime. Maybe somebody should draw a few graphs. They will be parabolic because setting the size too low or high exponentially increases runtime, and if we could even make a 3D graph lining up the DP curves from all range sizes (powers in this case).

The idea would be to find the smallest points on the graph to see if there's a way to improve the automatically calculated dpsize value. (I once experimented with setting an arbitrary dpmask, but that had very bad effects for runtime.)
member
Activity: 406
Merit: 47
April 24, 2021, 01:15:13 AM

puzzle #44

collision
be3a794f0da8faf2802e0fef0eefae7cd271f073f241a5f4489aff8bf9f00000 17579062999607
be3a794f0da8faf2802e0fef0eefae7cd271f073f241a5f4489aff8bf9f00000 2174301242536

>>> math.log2(17579062999607)
43.99892340743872
>>> math.log2(2174301242536)
40.98368897368013


17579062999607-2174301242536 =  15404761757071  (hex = E02B35A358F )

I just would like to get data like this from kangaroo.exe
member
Activity: 406
Merit: 47
April 24, 2021, 01:06:10 AM
I would like to measure kangaroo DP for puzzle #120
Now have only kangaroo.exe can solve sample pubkey I generate on range 2^120 for puzzle #120

Can anybody help to get collision point from save.work file

for collision point from  tame.txt and wild.txt  I can get is only python script but python script can solve up to 2^40 upper is very slow
python script not helpful

if can get collision point from save.work file by kangaroo.exe may be help to easy to set DP to match with
example

puzzle #40
ec9d5049bd4509aa41e1f5c312de1900d3eac4adba0692a41286b2497e520000 1110317004752
ec9d5049bd4509aa41e1f5c312de1900d3eac4adba0692a41286b2497e520000 106665591802

1110317004752-106665591802 = 1003651412950

1003651412950 hex = E9AE4933D6

https://privatekeys.pw/key/000000000000000000000000000000000000000000000000000000e9ae4933d6

see
>>> math.log2(1110317004752)
40.014108775485056
>>> math.log2(106665591802)
36.63430391024868
>>>

range 40  (39-40)
tame.txt on range over 40-41
and wild.txt under 36-37

just testing
looking for some data may be helpful (if)
member
Activity: 406
Merit: 47
April 23, 2021, 01:23:54 AM


There is no limit to number of cores, but minimal compute capability 3.0 is required. Gt 720m has only 2.1 ccap, therefore it doesn't work

Ok
Thank
https://developer.nvidia.com/cuda-gpus#compute

GeForce GT 720M   2.1

Can works is require 3.0 up right.
member
Activity: 110
Merit: 61
April 22, 2021, 11:27:15 PM
I got another question, so what type of gpu's work with kangaroo?

Is Geforce and Nvidia the same thing?
Nvidia, along with other manufacturers, sell the Geforce cards; EVGA, Zotac, Gigabyte, ASUS, etc.

The GTX and RTX cards work with Kangaroo, those are Geforce cards. There are other, older cards, that if they are Geforce cards, will work as well.

How many number of cuda core require for use cuda gpu?


my dell nvidia gpu GT 720M have only 96 CUDA core (very old) it is can not using cuda function can not use CuBitcrack, can use only OpenCL version

but GTX 1050 have 640 CUDA core can work with cuda function normal no problem

look like it require to have cuda core over 500 cuda core or some require of cuda core, then nvidia gt, gtx old version that have very low cuda core can not using with cuda function I not sure may be can use with old version like cuda 8.0


There is no limit to number of cores, but minimal compute capability 3.0 is required. Gt 720m has only 2.1 ccap, therefore it doesn't work
Pages:
Jump to: