well, i currently try to do this with n=16....
i hope i can find words for each hash... if i don't have all hashs
after scanning some joyce and lovecraft texts, some linux documentation
and the fortune-cookies i'll use an other hash.....
after finding out, that i haven't any Hash::- perl-module, i decided
to make my own - bad, of course - hash-algo... let's see if i can live
with it.
after haveing a long wordlist, i might add some data to each word, e.g.
saying "rabbit: noun nom./akk./dat. sing. neutr."
so i can use this to compose easy-to-remember nonsense sentences.
well... seems like n=16 is tooo high.... *sigh* so i'll lower it...
Michael Rogers (Wed, Apr 18, 2001 at 06:41:56PM +0100):
> Most Freenet keys will be embedded in hyperlinks or exchanged privately
> by email/fmail, so it will rarely be necessary for users to exchange keys
> by word of mouth or on pieces of paper. However, on the rare occasions
> when this is necessary, it would be nice to have a secure key type that's
> suited to spoken or handwritten exchange.
>
> For handwritten keys, we want to avoid the ambiguities in base 64:
>
> 1/l/I
> 2/Z/z
> S/5/s
> O/0/o
> 9/g
6/G
>
> Hex is a possibility, but it will make the keys even longer without making
> them any easier to remember. Another possibility is something I call "dada
> keys".
>
> To construct a dada key, you choose a lexicon of words in any language.
> You hash each word down to n bits and construct an 2^n-row table mapping
> each n-bit value onto a list of words that hash to that value. N is
> chosen to be the maximum value for which none of the rows is empty.
>
> Example: You use a 10,000 word basic English vocabulary as the lexicon.
> With n=12, each of the 4,096 rows in the table contains at least one word.
>
> Now you take your CHK and replace each n bits of the key with a word from
> the corresponding row of the table. You're free to choose any word from
> the row - you can choose words that appear to make some kind of sense
> (syntactically if not semantically), or you can choose short words, etc.
> You could even modify JWZ's Dadadodo program to generate semi-grammatical
> keys automatically, given a CHK, a lookup table and a corpus of English
> text (eg Project Gutenberg). You can use a smaller n than necessary to
> give you more choice, allowing you to generate long but comprehensible
> (and memorisable) keys.
>
> With n=12, you will need 16 words. So your key might look like this:
>
>
>freenet:pebble-renegade-destruction-cert-supercilious-positivism-cot-disembarrass-pubes-header-scratchy-trounce-victimize-inflect-rhino-striped
>
> 'Supercilious' might hash to the same value as 'cavort', so you might
> choose the word that's easier to spell:
>
>
>freenet:pebble-renegade-destruction-cert-cavort-positivism-cot-disembarrass-pubes-header-scratchy-trounce-victimize-inflect-rhino-striped
>
> The cool part is that the receiver doesn't need the same lexicon as you -
> he just works out how many bits there are per word by counting the words,
> hashes each word, and concatenates the numbers with freenet:CHK@. (The
> client does this automatically when he types in freenet:pebble-renegade-
> etc without a leading TLA.) You can use a custom lexicon that only
> contains easy-to-pronounce words, or easy-to-spell words, or business
> buzzwords, or words that are the same in Spanish and Italian, and any user
> can hash the words and get the CHK.
>
> I've assumed you'll be using CHKs with no crypto key because they're
> short. You can always use a CHK redirect to another key.
>
> Michael
>
> _______________________________________________
> freenet-tech mailing list
> [EMAIL PROTECTED]
> http://lists.freenetproject.org/mailman/listinfo/tech
--
moritz
_/
_/_/ _/_/_/_/ _/_/_/ _/_/_/ _/ _/_/ _/_/ _/_/_/
_/ _/ _/ _/ _/_/ _/ _/ _/ _/
_/ _/ _/_/ _/_/ _/ _/ _/_/_/_/ _/
_/ _/ _/ _/ _/_/ _/ _/ _/ _/
_/ _/ _/_/_/_/ _/_/_/ _/_/ _/ _/ _/_/_/ _/
_______________________________________________
freenet-tech mailing list
[EMAIL PROTECTED]
http://lists.freenetproject.org/mailman/listinfo/tech