Skip to main content

Generate shared secrets using RSA

Before explaining my question, please let me introduce the scenario:

  • There are 2 type of actors: 1 server and N clients
  • Each actor has a RSA 2048 bit private/public key
  • The server knows all the clients public keys
  • The clients know the public key of the server

The desired goals are the following:

  • Clients must authenticate themselves to the server
  • Integrity must be guaranteed for all exchanged messages
  • Secrecy is a plus but not mandatory

A solution that came to my mind is to share a secret between all server-client pairs and then proceed by sending the messages concatenated to the MAC

Server ---- M | MAC(M) ----> Client
Client <--- M | MAC(M) ----- Server

Then on top of this, a challenge-response protocol is used to guarantee the authenticity of the clients.

However, by searching online I was not able to find a "standard" way to generate a shared secret using RSA. I was only able to find DH or ECC protocols for this.

There is a well-defined scheme based on RSA to obtain a shared secret or the aforementioned goals?

barbo
  • 23
  • 1
  • 3