WanderingPhilospher
Full Member
Offline
Activity: 1190
Merit: 237
Shooters Shoot...
|
|
April 21, 2021, 12:00:53 PM |
|
Yes, Kangaroo.exe saves in hex format. The difference is Kangaroo.exe subtracts start range at beginning and then adds back once collision is found. Run -ws option, if you want to see it. I've told you how to do it, the rest is up to you.
Also, not sure what you are trying to learn how it works. Many articles and this thread alone tell you how it works. And since you've looked at python script you should know as well. Tames find private keys, wilds find offset of private key, both with user defined dp setting. People have answered you, what don't you believe or understand? No magic tricks, no speed ups, just the programs and how they were designed.
Thanks I think I wan to know about elliptic-curves, ecdsa secp256k1 , how kangaroo attack on Elliptic Curve now, just read more about secp256k1 calculate (very difficult for me) look over view is ok, but I want to understand on math Feel lag knowledge from may people expert on crypto very long time sine bitcoin invented , need to know more a lot Who next make record name on Wikipedia with use kangaroo or any challenge puzzle ? interesting to have a name on record challenge Who found Kangaroo can attack Elliptic Curve? However kangaroo is just smart random method. best on low range (115 still on low not yet middle) Did bitcoin have some vulnerability that use pubkey on calculate? Pollard came up with Kangaroo method. Others saw it could be used for Bitcoin's curve. The program starts out with random; it randomly selects starting points, within a specified range, based on start and end range defined by user. Then it takes "calculated" jumps. The jumps for Kangaroo.exe are basically half of range. If attacking 120 bits, kangaroos average jumps are around 60 bits. Those jumps create the so called "paths" however, I am to believe that random jumps/points can and will eventually create a collision. The pubkey allows for calculations that the Kangaroo.exe can exploit. You can add/subtract points and that is the power with using a kangaroo program versus brute force like bitcrack.
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 21, 2021, 04:10:24 PM |
|
This line is print out result when found key right How can I modify this line to show collision point data if(!needToClose) ::printf("\n");
Point PR = secp->ComputePublicKey(pk);
::fprintf(f,"Key#%2d [%d%c]Pub: 0x%s \n",keyIdx,sType,sInfo,secp->GetPublicKeyHex(true,keysToSearch[keyIdx]).c_str()); if(PR.equals(keysToSearch[keyIdx])) { ::fprintf(f," Priv: 0x%s \n",pk->GetBase16().c_str()); } else { ::fprintf(f," Failed !\n"); if(needToClose) fclose(f); return false; }
if(needToClose) fclose(f);
|
|
|
|
WanderingPhilospher
Full Member
Offline
Activity: 1190
Merit: 237
Shooters Shoot...
|
|
April 21, 2021, 04:56:11 PM Last edit: April 21, 2021, 05:21:06 PM by WanderingPhilospher |
|
This line is print out result when found key right How can I modify this line to show collision point data if(!needToClose) ::printf("\n");
Point PR = secp->ComputePublicKey(pk);
::fprintf(f,"Key#%2d [%d%c]Pub: 0x%s \n",keyIdx,sType,sInfo,secp->GetPublicKeyHex(true,keysToSearch[keyIdx]).c_str()); if(PR.equals(keysToSearch[keyIdx])) { ::fprintf(f," Priv: 0x%s \n",pk->GetBase16().c_str()); } else { ::fprintf(f," Failed !\n"); if(needToClose) fclose(f); return false; }
if(needToClose) fclose(f);
use the -wsplit option.
|
|
|
|
NotATether
Legendary
Offline
Activity: 1764
Merit: 7341
Top Crypto Casino
|
|
April 21, 2021, 07:53:19 PM |
|
I think I wan to know about elliptic-curves, ecdsa secp256k1 , how kangaroo attack on Elliptic Curve now, just read more about secp256k1 calculate (very difficult for me) look over view is ok, but I want to understand on math
Try reading https://en.bitcoin.it/wiki/Secp256k1 (it's not finished; I need to add the formulas for elliptic curve addition and multiplication). Did bitcoin have some vulnerability that use pubkey on calculate?
Well I wouldn't go as far as calling it a vulnerability, it's a feature in every public key infrastructure (PKI) that uses key pairs because Pollards Kangaroo can attack any kind of discrete logarithm problem that uses public keys (*ahem* RSA), not just elliptic curves.
|
|
|
|
bigvito19
|
|
April 22, 2021, 05:43:28 PM |
|
I got another question, so what type of gpu's work with kangaroo?
Is Geforce and Nvidia the same thing?
|
|
|
|
WanderingPhilospher
Full Member
Offline
Activity: 1190
Merit: 237
Shooters Shoot...
|
|
April 22, 2021, 08:53:17 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.
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 23, 2021, 01:24:19 AM |
|
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
|
|
|
|
_Counselor
Member
Offline
Activity: 110
Merit: 61
|
|
April 23, 2021, 04:27:15 AM |
|
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
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 23, 2021, 06: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#computeGeForce GT 720M 2.1 Can works is require 3.0 up right.
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 24, 2021, 06: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/000000000000000000000000000000000000000000000000000000e9ae4933d6see >>> 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)
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 24, 2021, 06: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
|
|
|
|
NotATether
Legendary
Offline
Activity: 1764
Merit: 7341
Top Crypto Casino
|
|
April 24, 2021, 08: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.)
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 24, 2021, 08: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
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 24, 2021, 09: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?
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 24, 2021, 09:28:23 AM |
|
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)
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 24, 2021, 10: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
|
|
|
|
NotATether
Legendary
Offline
Activity: 1764
Merit: 7341
Top Crypto Casino
|
|
April 24, 2021, 10: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.
|
|
|
|
fxsniper
Member
Offline
Activity: 406
Merit: 47
|
|
April 24, 2021, 12:49:15 PM |
|
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
|
|
|
|
WanderingPhilospher
Full Member
Offline
Activity: 1190
Merit: 237
Shooters Shoot...
|
|
April 24, 2021, 02:41:46 PM |
|
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. 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 TAME: 01f7fe7bfd3dc4c604b3e708c2fb4bdd2ed46 0000000000000000f862dc916dfc4479 WILD: 01f7fe7bfd3dc4c604b3e708c2fb4bdd2ed46 0000000000000000502a2b5c6849dc12
SECRET_PRIV_KEY = TAME_DIST - WILD_DIST + START 0xf862dc916dfc4479 - 0x502a2b5c6849dc12 + 2**64 = 0x1a838b13505b26867
|
|
|
|
WanderingPhilospher
Full Member
Offline
Activity: 1190
Merit: 237
Shooters Shoot...
|
|
April 24, 2021, 03:06:54 PM Last edit: April 24, 2021, 03:20:59 PM by WanderingPhilospher |
|
@fx Also: 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.
|
|
|
|
|