On Oct 3, 2009, at 2:42 AM, Kevin W. Wall wrote:
It's nice to be able to give a size limit for the shares. They're
going to need to be transmitted and stored. Since there are many
primes around, working over Zp ensures that shares about about the
same size as the secret.
Hi list...I have a question about Shamir's secret sharing.
According to the _Handbook of Applied Cryptography_
Shamir’s secret sharing (t,n) threshold scheme works as follows:
SUMMARY: a trusted party distributes shares of a secret S to n
RESULT: any group of t users which pool their shares can recover S.
The trusted party T begins with a secret integer S ≥ 0 it wishes
to distribute among n users.
(a) T chooses a prime p > max(S, n), and defines a0 = S.
(b) T selects t−1 random, independent coefficients defining
polynomial over Zp.
(c) T computes Si = f(i) mod p, 1 ≤ i ≤ n (or for any n
points i, 1 ≤ i ≤ p − 1), and securely transfers the
to user Pi , along with public index i.
The secret S can then be computed by finding f(0) more or less by
using Lagrangian interpolation on the t shares, the points (i, Si).
The question that a colleague and I have is there any cryptographic
purpose of computing the independent coefficients over the finite
field, Zp ? The only reason that we can see to doing this is to
keep the sizes of the shares Si bounded within some reasonable range
and it seems as though one could just do something like allowing T
choose random coefficients from a sufficient # of bytes and just
do all the calculations without the 'mod p' stuff. We thought perhaps
Shamir did the calculations of Zp because things like Java's
or BigDecimal weren't widely available when came up with this
scheme back in 1979.
So other than perhaps compatibility with other implementations (which
we are not really too concerned about) is there any reason to continue
to do the calculations over Zp ???
However, there's also a more fundamental problem: In step (b), how do
you choose your coefficients randomly over all of Z? There is no
uniform probability distribution over Z to work with. Any realistic
implementation will choose from some finite subset. But then the
scheme may not be completely secure: If you have the value of f() at
t-1 points, the fact that the coefficients are limited to some finite
set also constrains the possible values at the remaining point - and
you don't know exactly how. Working over Zp's group structure ensures
that if you have t-1 values, all p-1 possible remaining values are
equally likely, so you've learned nothing.
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majord...@metzdowd.com