# Key derivation scheme with shared secrets?

I want to derive a list of sub-keys derived[t] from a master key mk by a key derivation function KDF:

derived[t] = KDF(mk, t)


However mk has already been distributed by a M-of-N threshold secret sharing scheme:

shared_keys = secret_sharing(mk, M, N)


Is it possible to find a KDF and a secret sharing scheme such that I can derive a list of keys from the shared secrets like below? Maybe combine a homomorphic KDF and secret sharing scheme?

pieces = random_pick(shared_keys, M)
derived2[t] = recover([KDF(s, t) for s in pieces])
assert derived[t] == derived2[t]

• I've never heard a homomorphic KDF. What does prevent you from recovering the secret then using KDF? – kelalaka Oct 14 at 19:33