¿Hay alguna manera de que ambos lados compartan una clave secreta y luego generen pares de claves al usarla?
Puede obtener más claves de una clave compartida inicial, hay varios mecanismos de derivación de claves que le permitirían hacer esto, pero aún tiene el problema de distribuir la clave inicial. Cualquiera que intercepte esta clave podría replicar el proceso de derivación y derivar las mismas claves subsiguientes, por lo que aún necesita transferir esta clave inicial de manera segura y tiene el mismo problema con el que comenzó. Esto se aplica a su solución sugerida también; envolver las claves con un secreto compartido es una buena idea, pero aún necesitas una forma de compartir ese secreto de forma segura.
La distribución de claves es probablemente la parte más difícil de implementar un sistema criptográfico. La distribución de claves simétricas / secretas, como sería necesario en la solución que usted menciona, es especialmente difícil, por lo que a menudo se negocian envueltas en claves asimétricas, como es el caso de SSL y similares, ya que el cifrado se realiza con el público la mitad de la clave del receptor no es confidencial, pero aún así tiene el problema de distribuir y verificar las claves públicas que está utilizando para cifrar las claves simétricas, que a menudo se resuelven mediante la implementación de un sistema completo PKI (infraestructura de clave pública), que incluye entidades emisoras de certificados (autoridades de certificación).
Mencionas que usas una CA, pero lo que estás describiendo no parece ser la manera en que normalmente opera una CA, lo que usualmente involucra al cliente que genera su par de claves pública / privada y luego envía la mitad pública a la CA para ser firmado y recibiendo un certificado a cambio. Estos certificados pueden ser verificados por otros clientes debido a que incluyen el certificado de CA raíz en su almacén de certificados de raíz confiables. Has descrito en los comentarios por qué lo haces de manera diferente, pero aún no estoy seguro de seguir realmente tu razonamiento ...
También me sorprende que la sobrecarga de un cifrado simétrico simple sea demasiado alta para usted. ¿Realmente ha probado el rendimiento de esto y considera que el impacto de rendimiento es inaceptable? Esto me huele un poco a optimización prematura, ya que el cifrado simétrico no es particularmente costoso desde el punto de vista computacional (a diferencia del asimétrico, razón por la cual el asimétrico generalmente solo se usa para negociar una clave simétrica compartida que se usa para cualquier cifrado de datos posterior). Si la sobrecarga de un solo ajuste de clave simétrica es demasiado intensa, entonces me sorprendería si tuviera la capacidad computacional para utilizar el cifrado, y posiblemente debería replantearse su enfoque de lo que está intentando hacer.