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]
  • 1
    $\begingroup$ I've never heard a homomorphic KDF. What does prevent you from recovering the secret then using KDF? $\endgroup$ – kelalaka Oct 14 '19 at 19:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.