Java: cifrado asimétrico del tráfico con claves públicas precompartidas y sin complicaciones del almacén de confianza

Estoy tratando de comunicarme usando claves previamente compartidas RSA y, idealmente,sin involucrando shenanigans de almacén de confianza

La configuración es básicamente así:

Hay un applet en el lado del cliente y un servlet en el lado del servidor (duh :))

El applet tiene la clave pública RSA (Spub) del servlet codificada.

El servlet tiene su propia clave privada RSA (Spriv) codificada.

El applet genera una clave AES 256 aleatoria (clave de sesión), la cifra con la clave pública del servlet (que tiene un código fijo), se conecta al servlet a través de un socket TCP y envía la clave cifrada RSA al servlet, que procede a descifrar el clave de sesión y úsela para cualquier otra comunicación con este applet mientras dure esta conexión de socket.

Preferiría hacer todo esto sin meterme con el almacén de confianza y eso (después de todo, es una configuración relativamente sencilla que permite una clave pública codificada previamente precompartida)

¿Alguna sugerencia con respecto a dónde debería empezar a buscar educarme?

Respuestas a la pregunta(2)

Su respuesta a la pregunta