Let's have the following problem:
There is something like a voting application. Every participant can cast a vote. There are more than one watchers who control the election. I want to make every single vote encrypted until election ends. If there were only one watcher, the solution would be straightforward - the watcher would generate private, and public keys and participant just encrypted the vote with this public key, and after the election ends, watcher decrypted these votes and calculated the results.
My problem is there is more than one watcher so I need to create something I would call a shared private key. Is there any scheme to generate a public key and many private keys which decrypted the message after watcher put their shared private keys together?
It could be imaginable as a lock that could only be opened if you have all keys.