Pages:
Author

Topic: Keyhunt - development requests - bug reports - page 12. (Read 11445 times)

jr. member
Activity: 75
Merit: 2
To get the best results out of keyhunt, what exactly do you need - powerful CPU, RAM, what else?
What would be the best hardware combination (the one you can buy in store for relatively reasonable
amount of money and not some Google supercomputer) to get it to the maximum?
Epyc, Threadripper, i9? Anything else?
hero member
Activity: 828
Merit: 657
BSGS mode is only for publickeys. That is why you get that speed.

For puzzle 66 is not possible yet because we don't have the publickey, with the publickey it will be solved in some 5-8 minutes in CPU.

I don't know anything about keyhunt-cuda, i think that program don't have BSGS mode but i don't know becuase i never use it.

BTW, NEVER run executables files from untrusted sources. My recomendation is always compile the programs from source code from the Original developer.

Regards!
newbie
Activity: 74
Merit: 0
Hi, where i can find the keyhunt cuda exe for test it on windows , i tried but i found only simple keyhunt.exe and i want to try for puzzle #66 , i tried this

Code:
keyhunt.exe -m bsgs -f tests/120.txt -b 120 -R -k 256
 and i get 6 Petakeys/s , but i want to test gpu, anyone can help me with this? but for #66 address not for #120

hero member
Activity: 828
Merit: 657
In a small range, it seems the my program is faster than yours, on higher range the viceversa.

Yes I notice the same, this is really interesting I should check your code to see if i can learn something to boost the current speeds.

Good job!
legendary
Activity: 1914
Merit: 2071
.....

That is 4.5 Petakeys per second this will solve 64 bits in 4,094 Seconds
...

In that post I show a test solving the puzzle 70 with a single thread and near 32GB of RAM it took me 9 hrs to solve it


Ok, thanks for the answer.

On my current laptop (i7-12700H + 16GB), with my software, I can scan an entire  2^60 range in less than 2 minutes (116 seconds), using 8 GB.

To scan the entire 2^60 range, we need to compaire 2^29 baby steps against 2^30 giant steps.

I create a table for baby steps: 2^29 elements (64 bits each: 32 bits for the private key + 32 bits for the x-coordinate) -> total 2^35 bit -> 2^32 bytes -> 4 GB;

I use 8 GB of Ram for the table (the double) to minimize collisions (half table is empty).

Then I compute 2^30 giant steps.

My program doesn't write / read on ssd.

It takes 120 seconds to compute (2^29 bs + 2^30 gs) , about 30 seconds for the table and 90 seconds to compute 2^30 elements and check in the table.

The speed to create the keys is about 2^24 keys/s, the check against the table increase the time by 50%.



To work in higher range the program needs to create multiple table; for example, to cover an entire 2^64 range, the program splits the 2^31 baby steps in 4 table of 2^29 elements. Each table is compared against 2^32 giant steps.  

So it computes: 4 * (2^29 bs + 2^32 gs) = about 16 the time to explore a 2^60 range (2^29 bs + 2^30 gs), then 32 minutes.


If I had the double of ram, I would need to compute only 2 * (2^30 bs + 2^32 gs) = about 8  the time to resolve a 2^60 range (2^29 bs + 2^30 gs) : 2minutes * 8 = 16 minutes.


In a small range, it seems the my program is faster than yours, on higher range the viceversa.
hero member
Activity: 828
Merit: 657
How do you compute the speed?

If you search a 2^40 interval in 1 s you compute 1 Terakeys/s ?

How long it takes to scan a 2^64 interval (with 1 thread)?

According to your premise 2^40 interval (1,099,511,627,776 keys) in 1 Second yes is more of less @ 1 Terakey/s (1,000,000,000,000 )

To compute 2^64 we only need 2^24 times the time of (2^40) this is like 16,777,216 seconds or 4660 hours.

But why limit the speed to 1 Terakey per second?

The next is keyhunt with 8GB of RAM with a single thread:

Code:
albertobsd:~/keyhunt$ ./keyhunt -m bsgs -f tests/120.txt -b 120 -q -s 1 -R -S -k 512 -t 1
[+] Version 0.2.211117 SSE Trick or treat ¡Beta!, developed by AlbertoBSD
[+] Quiet thread output
[+] Stats output every 1 seconds
[+] Random mode
[+] K factor 512
[+] Thread : 1
[+] Mode BSGS random
[+] Opening file tests/120.txt
[+] Added 1 points from file
[+] Bit Range 120
[+] -- from : 0x800000000000000000000000000000
[+] -- to   : 0x1000000000000000000000000000000
[+] N = 0x100000000000
[+] Bloom filter for 2147483648 elements : 7361.33 MB
[+] Bloom filter for 67108864 elements : 230.04 MB
[+] Bloom filter for 2097152 elements : 7.19 MB
[+] Allocating 32.00 MB for 2097152 bP Points
[+] Reading bloom filter from file keyhunt_bsgs_4_2147483648.blm .... Done!
[+] Reading bloom filter from file keyhunt_bsgs_6_67108864.blm .... Done!
[+] Reading bP Table from file keyhunt_bsgs_2_2097152.tbl .... Done!
[+] Reading bloom filter from file keyhunt_bsgs_7_2097152.blm .... Done!
[+] Total 337875525169053696 keys in 75 seconds: ~4 Pkeys/s (4505007002254049 keys/s)

That is 4.5 Petakeys per second this will solve 64 bits in 4,094 Seconds

2^64 = 18,446,744,073,709,551,616 keys
bewteen 4505007002254049 keys/ s = 4064 Seconds, near 68 minutes

In my laptop i use to get 20 Petakeys/s with 8 threads and 8 GB of RAM, yes i know it is not lineal but some CPU intructions are shared per Physical core

BY THE WAY:

I write some post about your speed time ago:

https://bitcoin.albertobsd.dev/2021/12/puzzle-70-one-sigle-thread.html

In that post I show a test solving the puzzle 70 with a single thread and near 32GB of RAM it took me 9 hrs to solve it

Please check it. Thanks!

And with some math and probabilistic tricks i manage to solve 75 bits in 8 hrs:

https://twitter.com/albertobsd/status/1465540963128987651

But actually the time should be less because in that screenshot half of the time was used to generate the Bloom filter and creat the auxiliar files.

legendary
Activity: 1914
Merit: 2071
How do you compute the speed?

If you search a 2^40 interval in 1 s you compute 1 Terakeys/s ?

How long it takes to scan a 2^64 interval (with 1 thread)?
hero member
Activity: 828
Merit: 657
I just search for BSGS cuda and some repository appears it is written in PureBasic.
About the performance you need to test it, I don't have GPU to test those programs.

But yes, the performance will be 100 times superior to bsgs on CPU.

What's the difference between n and k values?

N is the size of the giant step

K is a multiplier of N

So the real Giant Step is N*K

To understand BSGS please read:

https://andrea.corbellini.name/2015/06/08/elliptic-curve-cryptography-breaking-security-and-a-comparison-with-rsa/
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Is it possible to make keyhunt compatible with GPU or do you think It's not worth it?

My keyhunt right now is NOT compatible for GPU.

There are some projects with BSGS for GPU you can found those on github. Also you can use Kangaroo it, don't depend of Memory in GPU.

Regards!

Hi Alberto et all. Can you suggest a certain github repository for a working BSGS tool that works with CUDA and provides better performance ?
full member
Activity: 706
Merit: 111
What's the difference between n and k values?
hero member
Activity: 828
Merit: 657
Great! thanks for your reply.

Say I have hardware1 and run with -k 1024 and -S

Can I copy the created files from -S and move them to hardware2 and run there again with -k 1024 and -S ? Will that work?

Yes you can! those files don't change between system.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Great! thanks for your reply.

Say I have hardware1 and run with -k 1024 and -S

Can I copy the created files from -S and move them to hardware2 and run there again with -k 1024 and -S ? Will that work?
hero member
Activity: 828
Merit: 657
Hello Alberto. I cannot find bPfile, where is this located? I have searched all the subfolders but nothing found. How can we create the .bin files ?
And can you explain please how the switch -S works in detail and when we can/should use it or not?

Thank you in advance.

That Pfile is now obsolete, the new way to speed up the booting process for the mode BSGS is with the option "-S" only available in the las version in github.

This -S parameter Store and Read the Bloom Filter File and the Array Table. Those files will be always the same unless you change the parameters in  -n and -k

Regards!
hero member
Activity: 630
Merit: 731
Bitcoin g33k
you can use the bPfile.c to generate your .bin file ( this is the baby step table)

Code:
./bPfile 1048576000 Pfile.bin
[+] precalculating 1048576000 bP elements in file Pfile.bin

This process can take some time, please be patient, maybe some hour depent of your speed.

Once that the file is already created, execute:

Code:
albertobsd $ ./keyhunt -m bsgs -f 120.txt -r 800000000000000000000000000000:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -t 4 -k 250 -R -p ./bPfile.bin
[+] Version 0.1.20210306 K*BSGS
[+] Setting mode BSGS
[+] Setting 4 threads
[+] Setting k factor to 250
[+] Setting random mode.
[+] Opening file 120.txt
[+] Added 1 points from file
[+] Setting N up to 17593008128000.
[+] Init bloom filter for 1048576000 elements : 1797.00 MB
[+] Allocating 0.00 MB for aMP Points
[+] Precalculating 16778 aMP points
[+] Allocating 16000.00 MB for bP Points
[+] Reading 1048576000 bP points from file ./bPfile.bin

-k 250 is new factor of speed, 250 use some more of 17 GB of RAM.

But the speed will be huge:

Quote
Total 155574970875904000 keys in 180 seconds: 864305393755022 keys/s

864 Terakeys/s

Best regards!

Hello Alberto. I cannot find bPfile, where is this located? I have searched all the subfolders but nothing found. How can we create the .bin files ?
And can you explain please how the switch -S works in detail and when we can/should use it or not?

Thank you in advance.
hero member
Activity: 828
Merit: 657
September 15, 2022, 11:25:19 PM
Is it possible to make keyhunt compatible with GPU or do you think It's not worth it?

My keyhunt right now is NOT compatible for GPU.

There are some projects with BSGS for GPU you can found those on github. Also you can use Kangaroo it, don't depend of Memory in GPU.

Regards!
newbie
Activity: 4
Merit: 0
September 15, 2022, 02:45:08 PM
Hi Alberto,



Let's say that the average GPU has  8GB of RAM (and some up to 24GB+).

Is it possible to make keyhunt compatible with GPU or do you think It's not worth it?




hero member
Activity: 828
Merit: 657
September 15, 2022, 12:47:24 AM
but i have a question,i found a bitcoin address, and i have public keys compressed, is it possible to hack with public key compressed, but I don't know in what bit this address is?

Even knowing the bit range is not possible do that, proof of it is the puzzle 120.
full member
Activity: 374
Merit: 100
September 14, 2022, 09:05:18 PM
how to install on android with termux, always error' when build, or make install

The current version of keyhunt is not compatible with termux. Please use it on computer desktop or laptop

I use on laptop and my phone, in phone with termux and then install Ubuntu, is work man

but i have a question,i found a bitcoin address, and i have public keys compressed, is it possible to hack with public key compressed, but I don't know in what bit this address is?
hero member
Activity: 828
Merit: 657
September 10, 2022, 09:41:02 AM
how to install on android with termux, always error' when build, or make install

The current version of keyhunt is not compatible with termux. Please use it on computer desktop or laptop
full member
Activity: 374
Merit: 100
September 10, 2022, 08:35:19 AM
how to install on android with termux, always error' when build, or make install
Pages:
Jump to: