Bitcoin Forum
June 17, 2024, 01:02:11 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [83] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 ... 142 »
  Print  
Author Topic: Pollard's kangaroo ECDLP solver  (Read 56574 times)
WanderingPhilospher
Full Member
***
Offline Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
April 21, 2021, 12:00:53 PM
 #1641


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 Offline

Activity: 406
Merit: 45


View Profile
April 21, 2021, 04:10:24 PM
 #1642

This line is print out result when found key right

How can I modify this line to show collision point data


Code:
  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 Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
April 21, 2021, 04:56:11 PM
Last edit: April 21, 2021, 05:21:06 PM by WanderingPhilospher
 #1643

This line is print out result when found key right

How can I modify this line to show collision point data


Code:
  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 Offline

Activity: 1638
Merit: 6897


bitcoincleanup.com / bitmixlist.org


View Profile WWW
April 21, 2021, 07:53:19 PM
 #1644

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.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
bigvito19
Full Member
***
Offline Offline

Activity: 706
Merit: 111


View Profile
April 22, 2021, 05:43:28 PM
 #1645

I got another question, so what type of gpu's work with kangaroo?

Is Geforce and Nvidia the same thing?
WanderingPhilospher
Full Member
***
Offline Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
April 22, 2021, 08:53:17 PM
 #1646

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 Offline

Activity: 406
Merit: 45


View Profile
April 23, 2021, 01:24:19 AM
 #1647

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 Offline

Activity: 107
Merit: 61


View Profile
April 23, 2021, 04:27:15 AM
 #1648

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 Offline

Activity: 406
Merit: 45


View Profile
April 23, 2021, 06:23:54 AM
 #1649



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.
fxsniper
Member
**
Offline Offline

Activity: 406
Merit: 45


View Profile
April 24, 2021, 06:06:10 AM
 #1650

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)
fxsniper
Member
**
Offline Offline

Activity: 406
Merit: 45


View Profile
April 24, 2021, 06:15:13 AM
 #1651


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 Offline

Activity: 1638
Merit: 6897


bitcoincleanup.com / bitmixlist.org


View Profile WWW
April 24, 2021, 08:32:55 AM
 #1652

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.)

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
fxsniper
Member
**
Offline Offline

Activity: 406
Merit: 45


View Profile
April 24, 2021, 08:35:05 AM
 #1653



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 Offline

Activity: 406
Merit: 45


View Profile
April 24, 2021, 09:16:39 AM
 #1654

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 Offline

Activity: 406
Merit: 45


View Profile
April 24, 2021, 09:28:23 AM
 #1655



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)
fxsniper
Member
**
Offline Offline

Activity: 406
Merit: 45


View Profile
April 24, 2021, 10:29:45 AM
 #1656

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 Offline

Activity: 1638
Merit: 6897


bitcoincleanup.com / bitmixlist.org


View Profile WWW
April 24, 2021, 10:38:39 AM
 #1657

@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.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
fxsniper
Member
**
Offline Offline

Activity: 406
Merit: 45


View Profile
April 24, 2021, 12:49:15 PM
 #1658


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 Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
April 24, 2021, 02:41:46 PM
 #1659


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
WanderingPhilospher
Full Member
***
Offline Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
April 24, 2021, 03:06:54 PM
Last edit: April 24, 2021, 03:20:59 PM by WanderingPhilospher
 #1660

@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.
Pages: « 1 ... 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [83] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 ... 142 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!