summaryrefslogtreecommitdiff
path: root/ff/36b55a3f511a675e49456fa8594a1f0c902f7b
blob: c7745450419eec8c52a109974e8720d2e712d925 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192]
	helo=mx.sourceforge.net)
	by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <bip@mattwhitlock.name>) id 1WW7jG-0003k6-KX
	for bitcoin-development@lists.sourceforge.net;
	Fri, 04 Apr 2014 17:16:34 +0000
X-ACL-Warn: 
Received: from qmta08.westchester.pa.mail.comcast.net ([76.96.62.80])
	by sog-mx-2.v43.ch3.sourceforge.com with esmtp (Exim 4.76)
	id 1WW7jF-0002lk-NT for bitcoin-development@lists.sourceforge.net;
	Fri, 04 Apr 2014 17:16:34 +0000
Received: from omta13.westchester.pa.mail.comcast.net ([76.96.62.52])
	by qmta08.westchester.pa.mail.comcast.net with comcast
	id lsqE1n00617dt5G58tGUmH; Fri, 04 Apr 2014 17:16:28 +0000
Received: from crushinator.localnet ([IPv6:2601:6:4800:47f:219:d1ff:fe75:dc2f])
	by omta13.westchester.pa.mail.comcast.net with comcast
	id ltGT1n0174VnV2P3ZtGUJA; Fri, 04 Apr 2014 17:16:28 +0000
From: Matt Whitlock <bip@mattwhitlock.name>
To: Gregory Maxwell <gmaxwell@gmail.com>
Date: Fri, 04 Apr 2014 13:16:27 -0400
Message-ID: <60732286.zdbbI6td0e@crushinator>
User-Agent: KMail/4.12.4 (Linux/3.12.13-gentoo; KDE/4.12.4; x86_64; ; )
In-Reply-To: <CAAS2fgTEMtH99yvwv_79UvUQjFOuZymHOaa1+ZzYmKvaUDPmTA@mail.gmail.com>
References: <CAC7yFxSE8-TWPN-kuFiqdPKMDuprbiVJi7-z-ym+AUyA_f-xJw@mail.gmail.com>
	<1888881.3JyvKYNUFa@crushinator>
	<CAAS2fgTEMtH99yvwv_79UvUQjFOuZymHOaa1+ZzYmKvaUDPmTA@mail.gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"
X-Spam-Score: 4.0 (++++)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	4.0 HK_SCAM_N2             BODY: HK_SCAM_N2
	-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,
	no trust [76.96.62.80 listed in list.dnswl.org]
	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: 1WW7jF-0002lk-NT
Cc: bitcoin-development <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Presenting a BIP for Shamir's Secret
	Sharing of Bitcoin private keys
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, 04 Apr 2014 17:16:34 -0000

On Friday, 4 April 2014, at 10:08 am, Gregory Maxwell wrote:
> On Fri, Apr 4, 2014 at 9:36 AM, Matt Whitlock <bip@mattwhitlock.name>=
 wrote:
> > Are you proposing to switch from prime fields to a binary field? Be=
cause if you're going to "break up" a secret into little pieces, you ca=
n't assume that every piece of the secret will be strictly less than so=
me 8-bit prime modulus. And if you're going to do a base conversion, th=
en you have to do arbitrary-precision integer math anyway, so I don't s=
ee that the small field really saves you any code.
>=20
> Yes, I'm proposing using the binary extension field of GF(2^8).  Ther=
e
> are many secret sharing and data integrity applications available
> already operating over GF(2^8) so you can go compare implementation
> approaches without having to try them our yourself. Obviously anythin=
g
> efficiently encoded as bytes will efficiently encode over GF(2^8).

Honestly, that sounds a lot more complicated than what I have now. I ma=
de my current implementation because I just wanted something simple tha=
t would let me divide a private key into shares for purposes of dissemi=
nation to my next of kin et al.

> > Weren't you just clamoring for implementation *simplicity* in your =
previous paragraph? :)
>=20
> I do think there is a material difference in complexity that comes in=

> layers rather than at a single point. It's much easier to implement a=

> complex thing that has many individually testable parts then a single=

> complex part. (Implementing arithmetic mod some huge P is quite a bit=

> of work unless you're using some very high level language with
> integrated bignums=E2=80=94 and are comfortable hoping that their big=
nums are
> sufficiently consistent with the spec).

I already have a fairly polished implementation of my BIP, and it's not=
 written in a "very high-level language"; it's C++, and the parts that =
do the big-integer arithmetic are basically C. I'm using the GMP librar=
y: very straightforward, very reliable, very fast.

Do you have a use case in mind that would benefit from byte-wise operat=
ions rather than big-integer operations? I mean, I guess if you were tr=
ying to implement this BIP on a PIC microcontroller, it might be nice t=
o process the secret in smaller bites. (No pun intended.) But I get thi=
s feeling that you're only pushing me away from the present incarnation=
 of my proposal because you think it's too similar (but not quite simil=
ar enough) to a threshold ECDSA key scheme.