Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: spartacusrex on October 29, 2013, 12:51:13 PM



Title: Best Mnemonic Generator Techniques
Post by: spartacusrex on October 29, 2013, 12:51:13 PM
Asking humans to come up with a random sentence doesn't seem to create very random sentences..

The idea of using mnemonic phrases to encode 128bit random entropic keys, for use with Brain Wallets for instance, is a nice solution.

This brings on the questions -

What is the Best Mnemonic Generator for storing such 128bit numbers ? (In terms of how easy it is to remember / length of string)

Can it be used for storing larger 196/256bit numbers ?

Can a human sentence ever be long enough/entropic enough to be used ? How long would it need to be ?

Currently electrum uses 12 words to encode 128bits, which is great, but I find the sentences a little 'un-sentence-y'.

I have seen a few systems, but would really like one that comes up with a grammatically correct sentence.. That can of course still seem like total gibberish (Digital Apes With Blue Fish Gills etc..). They seem much easier for the mind to remember than random word lists.

Maybe a system that picks a noun, verb, object, (maybe an adverb) then an 'and/but/or' and repeat...

Any ideas ?
 


Title: Re: Best Mnemonic Generator Techniques
Post by: Carlton Banks on October 29, 2013, 03:44:41 PM
Without knowing the specific details of the mathematics of entropy, I kinda get the feeling that grammatically correct sentences are not a good source of entropy. Consider that sentence structure in a given language is, deliberately, an inherent restriction in the way that different words can be combined in a sequence. That reduces the number of combinations of words that can yield a grammatically correct sentence dramatically compared to the number of combinations of a list of words (for the list, it's the maximum possible number of combinations for that set of data articles, grammatical rules must impose a lower number of valid combinations). Word lists are probably the best compromise between being memorable and being entropic. Perhaps an improvement could be to use word lists with added "not real in any language" words; pendil, troncaliver, finsrithmort etc. But what if the way you remember such words isn't the same way you seek to spell them when it comes to recovering a brain-only wallet! It seems like the "standard" scheme we have has been carefully thought through. Regular re-seeding will help to really embed the seed in your mind. Once you've thrown the paper copy away, it's between you and your gray matter (as well as your impending old age).


Title: Re: Best Mnemonic Generator Techniques
Post by: gmaxwell on October 29, 2013, 03:58:08 PM
Without knowing the specific details of the mathematics of entropy, I kinda get the feeling that grammatically correct sentences are not a good source of entropy. Consider that sentence structure in a given language is, deliberately, an inherent restriction in the way that different words can be combined in a sequence.
The nice thing about mnemonic techniques is that you know, with certainty, that they contain enough entropy because you can put a big number in, and get the same number back out again and you're secure assuming that the number was chosen uniformly over a large enough range to satisfy standard cryptographic assumptions.  Given that, you're free to optimize for memorability.

It wouldn't be terribly hard to impose a structural constraint— e.g. split your dictionary into parts of speech and have several permitted sentence schemas pick which dictionaries are used in which position, but it might add a couple words to the length.

Another possibility would be to omit verbs and connective words (a, an, the, etc) from the dictionary and let you type them freely but they're ignored by the algorithm.


Title: Re: Best Mnemonic Generator Techniques
Post by: spartacusrex on October 29, 2013, 04:15:58 PM
How about..

If you have say 256 Nouns.
And 256 Verbs.
And 256 Adverbs..

then for a scheme of,

Noun - verb - noun - adverb

a possible mnemonic would look like :

'The Dog - Kicks - the Moon - Hard'

That would be 256 * 256 * 256 * 256 possible combinations.. or 4 * 8bits = any 32bit random number

If you added an adjective, from 256, at the front of both nouns you'd increase by 16bits to 48bits.

'The Soft Dog - Kicks - the Watery Moon - Hard'

I know it's not 128bit yet, but it does seem easily rememberable..

'The' and  'a' could be redundant..

Using 4096 words, in a larger dictionary, could encode more bytes in a word, instead of just 1 word/1 byte, which I think is how electrum gets it's 12 words for 16  bytes - but at the expense of a valid sentence, since are there even 4096 common adverbs ? (If you're not a scrabble champion :-p)



Title: Re: Best Mnemonic Generator Techniques
Post by: flatfly on February 28, 2014, 06:56:49 AM
Asking humans to come up with a random sentence doesn't seem to create very random sentences..

The idea of using mnemonic phrases to encode 128bit random entropic keys, for use with Brain Wallets for instance, is a nice solution.

This brings on the questions -

What is the Best Mnemonic Generator for storing such 128bit numbers ? (In terms of how easy it is to remember / length of string)

Can it be used for storing larger 196/256bit numbers ?

Can a human sentence ever be long enough/entropic enough to be used ? How long would it need to be ?

Currently electrum uses 12 words to encode 128bits, which is great, but I find the sentences a little 'un-sentence-y'.

I have seen a few systems, but would really like one that comes up with a grammatically correct sentence.. That can of course still seem like total gibberish (Digital Apes With Blue Fish Gills etc..). They seem much easier for the mind to remember than random word lists.

Maybe a system that picks a noun, verb, object, (maybe an adverb) then an 'and/but/or' and repeat...

Any ideas ?
 

Something like this?
https://bitcointalk.org/index.php?topic=308972.msg5420732#msg5420732


Title: Re: Best Mnemonic Generator Techniques
Post by: William888 on February 04, 2015, 12:37:00 PM
Consider that sentence structure in a given dialect is, deliberately, a natural confinement in the way that distinctive words can be joined in a grouping. That diminishes the quantity of blends of words that can yield a syntactically right sentence significantly contrasted with the quantity of mixes of a rundown of words (for the rundown, its the greatest conceivable number of mixes for that set of information articles, syntactic principles must force a lower number of substantial blends). Word records are likely the best bargain between being essential and being entropic. Maybe a change could be to utilize word records with included "not genuine in any dialect" words; pendil, troncaliver, finsrithmort and so on. In any case imagine a scenario in which the way you recollect such words isn't the same way you try to spell them regarding recouping a cerebrum just wallet.


Title: Re: Best Mnemonic Generator Techniques
Post by: luv2drnkbr on February 09, 2015, 05:35:24 AM
There's a Keepass plugin called Readable Passphrase Generator that makes English sentency type passphrases.  I don't know if it's been audited or anything though.  Here's some it spit out that are supposed to be ~100 bits of entropy:

the tabbies wondered the wheezy things accompanies this luxuriant accrual

a deserter is squealing irritably aside from gripes and even her wishbones

Samson spoke how do the glitzy ones marry affably on account of the rank backstop

the 125 pamphlets are quizzing thickly the scullion and even the mode

can our 906 attackers tinker because of that hereabout byte because of my zippy siege


Title: Re: Best Mnemonic Generator Techniques
Post by: Albert_Jr on December 26, 2017, 06:39:05 PM
Great seed generator (https://freewallet.org/bip39-recovery-from-mnemonic-bitcoin-and-other-cryptocurrencies) for more than 15+ cryptocurrencies