Bitcoin Forum
May 04, 2024, 02:31:56 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Computational Limits and Applicatoins of Brainwallet Software?  (Read 1505 times)
AsymmetricInformation (OP)
Member
**
Offline Offline

Activity: 115
Merit: 10


View Profile WWW
August 28, 2012, 05:41:55 AM
 #1

Hello CompSci/Math people,

Part 1

I just went here http://shakespeare.mit.edu/hamlet/full.html to grab the entire text of the play Hamlet, and pasted it into the 'Passphrase' box of brainwallet...and...it worked.

By this I mean: it fit the entire text into the little box, and generated the keys/address in about 1 second.

I did not expect this to happen...does anyone know exactly how much text/what kinds of text this thing can eat before it breaks?

Part 2

Can I achieve secure entropy with:

1) Pick stable website
2) (Optionally) find/replace all 'X' with 'Y'
3) Copy text / html source / whatever into brainwallet passphrase.

Assuming the website/text would not change, this would be secure(?) and memorable (basically only 1 or 2 things to remember)...what's the catch I am missing?

Part 3

Ultimately, why not allow clients to import any file, not just text, to generate keys. Given cloud computing / backups of huge filesystems, I could then choose one tiny pdf/mp3/doc stashed somewhere in my library of files...attacker, even after breaking into my actual file system (which would already be pretty bad), still wouldnt know which file to use, especially in the mp3 case where the files are accessed often (and have emotional/memorable significance to users but not attackers), and can be reproduced from (for example) youtube videos or something.

...sorry if this was discussed before, I did not see it.

Support Decentralized Bitcoin Prediction Markets: 1M5tVTtynuqiS7Goq8hbh5UBcxLaa5XQb8
https://github.com/psztorc/Truthcoin
1714833116
Hero Member
*
Offline Offline

Posts: 1714833116

View Profile Personal Message (Offline)

Ignore
1714833116
Reply with quote  #2

1714833116
Report to moderator
1714833116
Hero Member
*
Offline Offline

Posts: 1714833116

View Profile Personal Message (Offline)

Ignore
1714833116
Reply with quote  #2

1714833116
Report to moderator
In order to get the maximum amount of activity points possible, you just need to post once per day on average. Skipping days is OK as long as you maintain the average.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714833116
Hero Member
*
Offline Offline

Posts: 1714833116

View Profile Personal Message (Offline)

Ignore
1714833116
Reply with quote  #2

1714833116
Report to moderator
scintill
Sr. Member
****
Offline Offline

Activity: 448
Merit: 254


View Profile WWW
August 28, 2012, 06:36:41 AM
 #2

I just went here http://shakespeare.mit.edu/hamlet/full.html to grab the entire text of the play Hamlet, and pasted it into the 'Passphrase' box of brainwallet...and...it worked.

By this I mean: it fit the entire text into the little box, and generated the keys/address in about 1 second.

I did not expect this to happen...does anyone know exactly how much text/what kinds of text this thing can eat before it breaks?

I don't know about specific programs, but there is (typically) no limit to the amount of text you can put into a hash function, which is how brainwallets work.  I think it would take the equivalent of thousands of books' worth of text to make it noticeably slow, too.

Part 3

Ultimately, why not allow clients to import any file, not just text, to generate keys. Given cloud computing / backups of huge filesystems, I could then choose one tiny pdf/mp3/doc stashed somewhere in my library of files...attacker, even after breaking into my actual file system (which would already be pretty bad), still wouldnt know which file to use, especially in the mp3 case where the files are accessed often (and have emotional/memorable significance to users but not attackers)

Again I don't know specifics of what clients offer, but I just generated a key from a PDF file like this:
Code:
sha256sum file.pdf
(at Linux command line), then taking the hex string (6e1af4e6324eb27c60c2ce1b1c0411f2bb85115e14ca89de266af3e846b000f5) to brainwallet.org, Convert tab, paste into left box, choose hex on left, base58 on right, and out comes a private key you can import into most clients.

and can be reproduced from (for example) youtube videos or something.

I would be careful with that because you might not get the same byte-for-byte mp3 file.  Ripping a CD track in a lossless format, with the same software/hardware each time, might work though.

Test with small amounts before putting your life savings on a key you generate with one of these methods. Wink

1SCiN5kqkAbxxwesKMsH9GvyWnWP5YK2W | donations
jim618
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
August 28, 2012, 09:19:47 AM
Last edit: August 28, 2012, 09:48:05 AM by jim618
 #3

You have to be careful to make the distinction between:

1) The number of things you are choosing between
2) The amount of data/ randomness in the thing you are choosing.

For instance you might think - I have lots of mp3s - but you probably having something of the order of thousands or tens of thousands. This is a small number to bruteforce.

How about the number of people on the planet ? 6,000,000,000. In crypto terms this is still a small number.

How about you choose a single mp3 file from the mp3 collection of a single human being across the whole planet ?

Unfortunately there are lots of repeats of mp3s - how many mp3s do you have that are completely distinct from anyone else's on the planet ? If everyone had 1,000 unique-to-them mp3s (which I doubt) we are talking about:

6,000,000,000,000 distinct mp3s.

This is 6 "tera mp3s". The current network hash rate is 17 terahashes/s so even now without ASICs it would be feasible to hash every mp3 on the planet. (If you think - this is kinda what bittorrent is doing!)

(this ignores the difference in size between a key hash and an mp3 hash and MB and MiBs etc for simplicity)

FUN FACT: To listen to 6 tera mp3s (if each has a length of 3 minutes) will take 40 million years. That is some playlist !

TL;DR You still need to add some randomness in addition to your choice of file to make it secure.

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
casascius
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1136


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 28, 2012, 03:36:07 PM
 #4

Here is a way I think would be good to make decent brainwallets:

Think of some sort of inside joke, jingle, phrase or song that you made up and remember from your childhood.  It has to be something that nobody but you (and perhaps a couple close friends at best) know.  Take a couple sentences from it.  The more senseless the better, especially if it has words you made up yourself that cannot be found in the dictionary.  Do not use something you heard from somewhere else.  One requirement is that you must be able to remember it word-for-word each time you recall it, but if it's from that long ago, chances are pretty good you're going to remember it the same way, each and every time.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
swissmate
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250



View Profile
August 28, 2012, 03:39:39 PM
 #5

That's a nice idea, keys generated per favorite books.
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4158
Merit: 8382



View Profile WWW
August 28, 2012, 03:57:53 PM
Last edit: August 28, 2012, 04:19:34 PM by gmaxwell
 #6

By this I mean: it fit the entire text into the little box, and generated the keys/address in about 1 second.
I did not expect this to happen...does anyone know exactly how much text/what kinds of text this thing can eat before it breaks?

Yes, this works. it's unsurprising, and it's not good for security.

You're thinking— But Greg, I gave it like 10 million bits of entropy, it must be secure!

Wrong.  The entropy of your key is

Code:
-log2( The probability that someone would feed it a book, and from your source ) + -log2( 1 / Number of books available from that source )
(assuming you chose uniformly).

So say there is a 1/10000 chance someone would use a whole project gutenberg book as a seed. There are 40,000 project gutenberg ebooks.

-log2(1/10000) + -log2(1/40000) = 28.575 bits of entropy. Crackable in moments, since generating a _great_ many keys per second isn't hard for someone who it's confined to offensively slow javascript sha256 implementations.

Your attacker is not a million monkeys smashing typewriters for eons until by chance one produces your work of Shakespeare; your attacker is someone with a strong model of human behavior and a large amount of computing power.  You're up against a decenteralized consortium of geniuses  each commanding a trillion strong army of faultless robots at typewriters.

Against an attack with good models the strength of your key is only the randomness of how you selected it, and may have little to do with the size of the data itself.  Even if you postulate modifications of the book, the attacker can model those too. Changing all the e's to 3's? Sorry snowflake, nothing is original anymore.  And if you do have a strongly random way of choosing libraries, books, and modifications— you're just as well off using that randomness directly.  "Book Foo from library bar, modified thusly" has the same randomness as the actual data. (± the probability that you'd express it that particular way instead of actually doing it)

Humans are terrible at being random. Even when you think you're being clever and extra random you're often not, in fact being clever often makes you less random— you'll only think of a few possible ideas out of the space of all ideas so you can't choose uniformly between them.

Human generated private keys should simply never be used for applications where the keyed material is generally available for attack. Practically no one is able to do so securely, and a lot of people think they can but they really can't. Must of the common advice about passwords/keys is inapplicable for a case where attackers all over the world can instantly begin testing at enormous rates or apply precomputation attacks without having to compromise something first.
coretechs
Donator
Sr. Member
*
Offline Offline

Activity: 362
Merit: 250



View Profile
August 28, 2012, 07:43:25 PM
 #7

For a file, just use a picture you took yourself with a digital camera and hash it.

For extra security, take a picture of a lava lamp.  Wink


https://bitcoindoc.com - The Rise and Rise of Bitcoin | https://blocktap.io - Lightning powered crypto query engine
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
August 28, 2012, 07:45:55 PM
 #8

For a file, just use a picture you took yourself with a digital camera and hash it.

For extra security, take a picture of a lava lamp.  Wink

For extra extra security make sure the lava lamp is holding a sign with it's forum screen name and has a shoe on it's head.

Er wait wrong thread.
coretechs
Donator
Sr. Member
*
Offline Offline

Activity: 362
Merit: 250



View Profile
August 28, 2012, 07:48:23 PM
 #9

You could then take a picture of a salt shaker and concatenate it with the lava lamp picture, then hash that FTW.   Grin

https://bitcoindoc.com - The Rise and Rise of Bitcoin | https://blocktap.io - Lightning powered crypto query engine
scintill
Sr. Member
****
Offline Offline

Activity: 448
Merit: 254


View Profile WWW
August 29, 2012, 01:57:49 AM
 #10

For a file, just use a picture you took yourself with a digital camera and hash it.

Still, if someone guesses you are doing this and obtains a collection of photos/music from your hard drive, it is not hard to bruteforce a few simple types of hashes.

It all depends on how paranoid you are, how determined you think any attackers will be, etc.

1SCiN5kqkAbxxwesKMsH9GvyWnWP5YK2W | donations
cbeast
Donator
Legendary
*
Offline Offline

Activity: 1736
Merit: 1006

Let's talk governance, lipstick, and pigs.


View Profile
August 29, 2012, 04:59:18 AM
Last edit: August 29, 2012, 12:09:50 PM by cbeast
 #11

I like to have several two easy to remember but hard to break brainwallets. If I end up in a prison and I end up using one, I'll want another for when I get out. Yeah, I just made it public knowledge that there may be another one or two. Really, that's all I have, and they are very small. I made sure that I won't need thumbs, kneecaps, or any other breakable body parts to decipher the keys. Actually, I will need all my breakable and unbreakable parts to decipher a brainwallet. I've said too much. Nevermind.

Any significantly advanced cryptocurrency is indistinguishable from Ponzi Tulips.
AsymmetricInformation (OP)
Member
**
Offline Offline

Activity: 115
Merit: 10


View Profile WWW
August 29, 2012, 06:08:23 AM
 #12

I love the photo idea...they're unique, you could back those up, access them all the time, etc without suspicion (the goal being to keep the method [using a photo] secret). Throw in a randomly selected hash method from some published list. You only need to remember two things now...photo and hash method, one of which was random. If the photo came from a huge, known, pool (instagram, facebook, tumblr) and we cropped the photo at a randomly chosen pixel height and length (remembering four things), are we "secure" yet?

(To bring it back to the book idea, we could screen-capture part of the online book-source and save as jpeg or something).

Given the difficulties of figuring out an eternally unguessable (and unpopular) method, Electrum's 12 words seem a lot easier and safer now. Undecided


Unrelatedly, I suddenly want to see a performance of Hamlet where each character speaks a hash of their original line...  Grin

Support Decentralized Bitcoin Prediction Markets: 1M5tVTtynuqiS7Goq8hbh5UBcxLaa5XQb8
https://github.com/psztorc/Truthcoin
casascius
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1136


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 29, 2012, 06:15:53 AM
Last edit: August 29, 2012, 06:28:28 AM by casascius
 #13

You only need to remember two things now...photo and hash method, one of which was random

The only problem is it's no longer a brainwallet.  It won't do you any good if you don't have possession of the photo.  You may as well just stick to a wallet file and its associated password.

For a brainwallet to be satisfactory, it ought to be useful if you are sitting in prison in your underwear.  Or stuck in another country having been robbed of all your physical possessions and having been left with nothing but the clothes you're wearing.

Here are some more ways I can think of to come up with a hard-to-crack brainwallet.  Each of them has something in common: information personal to you, not necessarily secret, but well-fixed in the average person's brain, not likely to be forgotten, and not typically available to someone engaging in mass cracking.

* A comma-separated list of all your known street addresses in chronological order, in the USPS preferred format (if US), followed by some password:  "1234 12th Street, 5678 Poppy Lane #910, 4858 S 1300 E #16, 2901 Little Cottonwood Rd, foobar123"
* A list of all the girls(guys) you consider yourself to have dated when younger, followed by some password: "Emma Hale, Fanny Alger, Lucinda Harris, Louisa Beaman, Zina Jacobs, foobar123"

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
Pages: [1]
  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!