Photo by Guilherme Stecanella on Unsplash

Disenrollment of Parties in Secret Shares

--

Within a secret share infrastructure, we have a number of parties, and which receive secret shares. When we bring back these shares, we can rebuild a secret value (such as encryption key). But, what happens when you need to disenroll parties from the secret share? For this, we need to redeal the shares, without revealing the original share. So, let’s look at a basic disenrollment scheme.

Lagrange interpretation constants

Shamir’s secret sharing method generates a number of shares, of which a threshold defines the number of shares which can be used to re-build the message. With this, we define a threshold value (t) and where we have n shares. For a threshold of 3, we create a polynomial which is in the form of:

f(x)=a+bx+cx² (mod p)

The secret is a . With three parties involved we then create shares for the split with f(x=1), f(x=2) and f(x=3), and where f(x=0) is the secret. With these shares, we use Lagrange interpretation constants to rebuild the secret value (f(x=0)). For each party this is computed with:

In Python, this can be coded as:

def coef(i,n):
num=1
denom=1
for x in range(1, n+1):
if (x!=i):
num=num*x
denom=denom*(i-x)
return(num/denom)

--

--

Prof Bill Buchanan OBE FRSE
ASecuritySite: When Bob Met Alice

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. Based in Edinburgh. Old World Breaker. New World Creator. Building trust.