How would we go about building a scheme for Shamir secret sharing for vectors? I have already tried to use a vector of secrets and random distribution of the secrets to $n$ parties and then use $t$ of them to get the data, where $t<n$.
2 Answers
To share a vector using Shamir's secret sharing, you can just share each element of the vector independently. It really is that simple.
To save some space, you can assign all the shareholders a distinct fixed non-zero $x$ coordinate and reuse those same $x$ coordinates for all elements of the vector being shared. The $x$ coordinates only need to be distinct; they don't have to be random or secret in any way.
(If your shareholders already have some unique ID that can be encoded as an element of the field you're using for Shamir's scheme, you could just use those as the $x$ coordinates. Or, if you're working in a sufficiently large field to make collisions unlikely — say, ${\rm GF}(2^{128})$ or larger — you could even derive the $x$ coordinate of each participant by hashing some arbitrary pre-existing public ID, like, say, an e-mail address. Just make sure not to allow $x = 0$ in any case, since that directly leaks the secret.)
In fact, the only reason we don't just interpret all secrets as vectors of bits and run Shamir's scheme over ${\rm GF}(2)$ is the fact that the field size limits the number of shareholders (and, in particular, a two-element field allows only one shareholder, which is kind of useless). However, it is quite common to e.g. interpret arbitrary strings as vectors of 8-bit bytes, and share them with Shamir's scheme over ${\rm GF}(2^8)$, which works for up to 255 shareholders.
- 46,700
- 5
- 112
- 189
As already pointed out in the comments there is nothing special about a vector, right? So you could just transform it to some binary representation and use Shamir secret sharing to distribute the shares among the shareholders.
If you say each component of your vector is viewed as a secret you could use multiple applications of the secret sharing protocol. However, if you distributing them to the same shareholders I think you won't gain any benefits regarding security in contrast to just use the whole vector as a single secret.
- 411
- 1
- 4
- 11