Public-key secret sharing