# Multi-Party Offline Key Exchange Using Public and Private Keys

I hope the title already explains the problem I have in mind; but let me lay out some more details.

Given public-private key pairs $P_A, P_B, P_C, ... P_Z$, (first $3$ of which are owned by our usual suspects $A$lice, $B$ob and $C$harlie; we want to be able to do a key exchange as defined below:

Alice, Bob and Charlie are part of the same security group $ABC$, they need to agree on a symmetric encryption key, in offline mode. Everyone naturally has access to the public keys of every other party.

When Alice wants to calculate the $K_{{ABC}_R}$ with some random seed $R$ she should be able use her private key along with the the public keys of the group such as:

$K_{{ABC}_R} = Exchange(R, P_{A_{public}}, P_{B_{public}}, P_{C_{public}}, P_{A_{private}})$

Whereas if Bob wanted to calculate the same $K_{{ABC}_R}$, he would be able to do the same calculation as follows:

$K_{{ABC}_R} = Exchange(R, P_{A_{public}}, P_{B_{public}}, P_{C_{public}}, P_{B_{private}})$

Please think of $R$ having the similar functionality as it's in the public base in the Diffie-Hellman key exchange.

Can such key-exhange be achieved?

• Why is R needed? Mar 7 '19 at 8:02
• It’s for entropy so that the parties can create multiple unique keys. You can also see it serving a similar function as the initial key material in a KDF. Mar 7 '19 at 8:13