Let’s say person A encrypts a message. Now I want both person A and persons B, C, D – A as a single individual – and B, C, D only as a group, to be able to decrypt the encrypted message. The multiparty decryption process should be designed in a way, that it requires no secret sharing between B, C, D. Also the secret that A uses to encrypt/decrypt the message is completely unknown to B, C, D and their secrets cannot be dependent on A’s secret. Is it possible to build something like this?
1 Answer
A has an EC key-pair $(a, A=aG)$ where $G$ is a well-known base point.
B, C and D similarly own key-pairs $(b, B=bG)$, $(c, C=cG)$ and $(d, D=dG)$ respectively.
A uses EC El Gamal to encrypt a message in the form of an EC point $M$ as follows:
A publishes the pair $(X,Y)$, where $X=A$ and $Y=a(B+C+D)+M$.
B, C and D each calculate and declare the values $bX$, $cX$ and $dX$ respectively. They can then decrypt $M'=Y-bX-cX-dX$.
A decrypts $M' = Y-a(B+C+D)$.
For this to work, you need to use a scheme to bi-directionally map your message to an EC point $M$.