diff options
author | Gregory Maxwell <gmaxwell@gmail.com> | 2013-10-18 16:58:27 -0700 |
---|---|---|
committer | bitcoindev <bitcoindev@gnusha.org> | 2013-10-18 23:58:35 +0000 |
commit | 0830eec9aec7d670142007c291cac9094178333d (patch) | |
tree | 1d4dc191040b39fbd224e8035c6f336e1563446b | |
parent | 6be93faf5d770df8a0898f0d407a94df4950bd48 (diff) | |
download | pi-bitcoindev-0830eec9aec7d670142007c291cac9094178333d.tar.gz pi-bitcoindev-0830eec9aec7d670142007c291cac9094178333d.zip |
Re: [Bitcoin-development] BIP39 word list
-rw-r--r-- | 42/6c98503379ac080dbaa12ea82c6e164b6235e5 | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/42/6c98503379ac080dbaa12ea82c6e164b6235e5 b/42/6c98503379ac080dbaa12ea82c6e164b6235e5 new file mode 100644 index 000000000..54a20cd09 --- /dev/null +++ b/42/6c98503379ac080dbaa12ea82c6e164b6235e5 @@ -0,0 +1,191 @@ +Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] + helo=mx.sourceforge.net) + by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) + (envelope-from <gmaxwell@gmail.com>) id 1VXJwB-0001IX-M2 + for bitcoin-development@lists.sourceforge.net; + Fri, 18 Oct 2013 23:58:35 +0000 +Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com + designates 209.85.217.174 as permitted sender) + client-ip=209.85.217.174; envelope-from=gmaxwell@gmail.com; + helo=mail-lb0-f174.google.com; +Received: from mail-lb0-f174.google.com ([209.85.217.174]) + by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) + (Exim 4.76) id 1VXJwA-0004l7-JA + for bitcoin-development@lists.sourceforge.net; + Fri, 18 Oct 2013 23:58:35 +0000 +Received: by mail-lb0-f174.google.com with SMTP id w6so3675382lbh.19 + for <bitcoin-development@lists.sourceforge.net>; + Fri, 18 Oct 2013 16:58:27 -0700 (PDT) +MIME-Version: 1.0 +X-Received: by 10.112.59.134 with SMTP id z6mr3450706lbq.28.1382140707846; + Fri, 18 Oct 2013 16:58:27 -0700 (PDT) +Received: by 10.112.89.72 with HTTP; Fri, 18 Oct 2013 16:58:27 -0700 (PDT) +In-Reply-To: <87iowuuof9.fsf@gmail.com> +References: <87iowuuof9.fsf@gmail.com> +Date: Fri, 18 Oct 2013 16:58:27 -0700 +Message-ID: <CAAS2fgQ1uYvNxZu6DOKZ2k9qj2kYhGpHxxzsZdsqb-Oi2uSKmw@mail.gmail.com> +From: Gregory Maxwell <gmaxwell@gmail.com> +To: jan <jan.marecek@gmail.com> +Content-Type: text/plain; charset=UTF-8 +X-Spam-Score: -1.6 (-) +X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. + See http://spamassassin.org/tag/ for more details. + 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. + See + http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block + for more information. [URIs: github.com] + -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for + sender-domain + 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider + (gmaxwell[at]gmail.com) + -0.0 SPF_PASS SPF: sender matches SPF record + -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from + author's domain + 0.1 DKIM_SIGNED Message has a DKIM or DK signature, + not necessarily valid + -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature +X-Headers-End: 1VXJwA-0004l7-JA +Cc: Bitcoin Development <bitcoin-development@lists.sourceforge.net> +Subject: Re: [Bitcoin-development] BIP39 word list +X-BeenThere: bitcoin-development@lists.sourceforge.net +X-Mailman-Version: 2.1.9 +Precedence: list +List-Id: <bitcoin-development.lists.sourceforge.net> +List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>, + <mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe> +List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development> +List-Post: <mailto:bitcoin-development@lists.sourceforge.net> +List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help> +List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>, + <mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe> +X-List-Received-Date: Fri, 18 Oct 2013 23:58:35 -0000 + +some fairly old wordlist solver code of mine: + +https://people.xiph.org/~greg/wordlist.visual.py + +it has a 52x52 letter visual similarity matrix in it (along with a citation) + +On Fri, Oct 18, 2013 at 4:52 PM, jan <jan.marecek@gmail.com> wrote: +> +> The words 'public', 'private' and 'secret' could be confusing when +> encoding public and private keys. eg. a private key that begins with +> the word 'public'. +> +> I think avoiding words that could look similar when written down would +> be a good idea aswell. I searched for words that only differ by the +> letters c & e, g & y, u & v and found the following: +> +> car ear +> cat eat +> gear year +> value valve +> +> Other combinations could potentially be problematic depending on the +> handwriting style: ft, ao, ij, vy, possibly even lt and il? +> +> I've included the search utility I used below. +> +> +> #include <stdbool.h> +> #include <string.h> +> #include <stdio.h> +> +> char *similar_char_pairs[] = { "ce", "gy", "uv", NULL }; +> +> bool is_similar_char(char c1, char c2) +> { +> char **pairs = similar_char_pairs; +> do { +> char *p = *pairs; +> if ((c1 == p[0] && c2 == p[1]) || +> (c1 == p[1] && c2 == p[0])) +> return true; +> } while (*++pairs); +> +> return false; +> } +> +> bool print_words_if_similar(char *word1, char *word2) +> { +> /* reject words of different lengths */ +> if (strlen(word1) != strlen(word2)) +> return false; +> +> size_t i, similarcount = 0; +> +> for (i = 0; i < strlen(word1); i++) { +> /* skip identical letters */ +> if (word1[i] == word2[i]) +> continue; +> +> /* reject words that don't match */ +> if (is_similar_char(word1[i], word2[i]) == false) +> return false; +> +> similarcount++; +> } +> +> /* reject words with more than 1 different letter */ +> //if (similarcount > 1) +> // return false; +> +> printf("%s %s\n", word1, word2); +> +> return true; +> } +> +> int main(void) +> { +> /* english.txt is assumed to exist in the working directory +> download from: +> https://github.com/trezor/python-mnemonic/blob/master/mnemonic/wordlist/english.txt */ +> FILE* f = fopen("english.txt", "r"); +> if (!f) { +> fprintf(stderr, "failed to open english.txt\n"); +> return 1; +> } +> +> /* read in word list, assumes one word per line */ +> #define MAXWORD 16 +> char wordlist[2048][MAXWORD]; +> int word = 0; +> while (fgets(wordlist[word], MAXWORD, f)) { +> /* strip trailing whitespace, assumes no leading whitespace */ +> char *ch = strpbrk(wordlist[word], " \n\t"); +> if (ch) +> *ch = '\0'; +> word++; +> } +> +> if (word != 2048) { +> fprintf(stderr, "word list incorrect length\n"); +> return 1; +> } +> +> /* check each word for similarity against every other word */ +> int i, j, count = 0; +> for (i = 0; i < 2048; i++) { +> for (j = i+1; j < 2048; j++) { +> if (print_words_if_similar(wordlist[i], wordlist[j])) +> count++; +> } +> } +> +> printf("%d matches\n", count); +> +> return 0; +> } +> +> ------------------------------------------------------------------------------ +> October Webinars: Code for Performance +> Free Intel webinars can help you accelerate application performance. +> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from +> the latest Intel processors and coprocessors. See abstracts and register > +> http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk +> _______________________________________________ +> Bitcoin-development mailing list +> Bitcoin-development@lists.sourceforge.net +> https://lists.sourceforge.net/lists/listinfo/bitcoin-development + + |