I would like to know if there is a way to place a condition on $k$-out-of-$n$ secret sharing such that out of $k$ participants who can pool their shares to reconstruct a secret, one of them should always be a particular user say $P_1$. In other words, say we share a secret $S$ with $n$ users $P_1,P_2,\dots, P_n$. The participants will be able to re-construct the secret $S$ iff { $P_1$ + at least $(k-1)$ other users from $\{P_2,\dots,P_n\}$ } pool their shares. If $P_1$ is not there, the other $(n-1)$ users cannot reconstruct the secret.
1 Answer
This can be trivially achieved by sharing twice. First share your secret $S$ using a $2$-out-of-$2$ secret sharing scheme into $S_1$ and $S_2$. (E.g. choose $S_1$ at random and set $S_2:=S\oplus S_1$.)
In the next step you now share $S_2$ using a $(k-1)$-out-of-$(n-1)$ secret sharing scheme into $S_{2,1},\dots,S_{2,n-1}$.
Give $S_1$ to $P_1$ and $S_{2,i}$ to $P_{i+1}$ for $1\leq i <n$.
The secrecy of the $2$-out-of-$2$ secret sharing scheme guarantees that both shares $S_1$,$S_2$ are required. $S_1$ is only known to $P_1$, and $S_2$ can only be recovered by at least $k-1$ of the other parties collaborating.