Author

Topic: Is it possible to do Sha256 key stretching (iterations) with GPU? For addressgen (Read 246 times)

legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
I understand the implications of using a brainwallet, and the aspect of dangerously weak passphrases.

But i think putting in a very good passphrase and some billions of N rounds wouldn't be an issue for going around with small sums of BTC, spare change.Maybe even a 2 address multisig just to be sure Smiley

Relying on obfuscation (e.g. no information how many rounds is used or which hash algorithm is used) isn't best idea, side from security risks you mentioned, it's very likely you'll forget specific parameter which makes impossible to reproduce the private key.

There are few people who lost their Bitcoin because their custom "security".
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
I understand the implications of using a brainwallet, and the aspect of dangerously weak passphrases.

But i think putting in a very good passphrase and some billions of N rounds wouldn't be an issue for going around with small sums of BTC, spare change.Maybe even a 2 address multisig just to be sure Smiley

m-of-n multisig won't protect your wallet if at least M of the private keys were created from user-generated passwords as pooya87 mentioned. A simple brainwallet bruteforce can be run M times to find the keys of vulnerable passwords.

Much more useful would be if you were able to choose the randomness source yourself, but sadly there aren't many to choose from (AFAIK there is just /dev/random and /dev/random right now, OpenBSD may have another random number generator)

Just only put in them what you can afford to lose if you're serious on going this path.
newbie
Activity: 3
Merit: 0
I understand the implications of using a brainwallet, and the aspect of dangerously weak passphrases.

But i think putting in a very good passphrase and some billions of N rounds wouldn't be an issue for going around with small sums of BTC, spare change.Maybe even a 2 address multisig just to be sure Smiley
legendary
Activity: 3472
Merit: 10611
but apparently more secure.
it is generating private keys from a user provided password, consequently it is not safe at all. there is no difference between this and other insecure brainwallets and it can be broken down just as easily.

from readme:
I've made some tests with this script but i'm getting only 5mh/s on ubuntu, and 13.5mh/s on my HUAWEI P30.
in bitcoin we are currently computing 140 Eh/s of SHA256
newbie
Activity: 3
Merit: 0
Thanks for the explanation, i'll be looking into it Smiley

I've always been fascinated by the ideea that you can select a point in the sha256 "searching space" to get your btc address without any hardware dependence or wallet as a single point of failure.It simply exists there, and you just have to be a little creative with the "brainwallet constructing" method  Tongue
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
A Windows version of that project is possible, though it would have to be a native .EXE instead of a bat file for performance reasons. Since there's just a C file, it can just be inserted into Visual Studio, compiled and you're ready to go. You'd also need to find or compile a Windows version of libcrypto (one of the OpenSSL libraries) since according to the Makefile it links to that library.

Though you probably won't benefit from a GPU version of this project:

given that the key-stretching technique in use is single-threaded it is unlikely that a GPU or other highly parallelizable device will provide significant performance enhancements.

The algorithm is single threaded so you can't even take advantage of the multiple CPU cores in your system.
newbie
Activity: 3
Merit: 0
Ok so today i found this:

github.com/campassi/bitseal

It performs key-stretching via specified number of sha256 rounds on a given input key, and you get a base58 BTC address and private key, like a brainwallet, but apparently more secure.A single-threaded operation.

I've made some tests with this script but i'm getting only 5mh/s on ubuntu, and 13.5mh/s on my HUAWEI P30.

I was wondering if it's possible to make a windows version of this, using GPU/cuda to get much more (100mh/s, 200mh/s).

Something like a .bat file containing:

-generate -p "passphrase" -r "rounds/iterations" -sha256

I'm aware that there are other implementations (warpwallet, mindwallet scrypt/salting, etc), but i'm interested in a simple sha256 key stretching for now.

Jump to: