Incluso si tanto la clave como los datos encriptados serían interceptados, no sería descifrable ya que solo el servidor conoce la clave de descifrado.
Esto es exactamente cómo sistemas criptográficos asimétricos normalmente. En un sistema de cifrado de clave pública asimétrico, una entidad tiene dos claves en un "par de llaves": una clave pública P
y una clave privada R
. El sistema define dos operaciones, Enc(message, P)
(cifrado con la clave pública) y Dec(ciphertext, R)
(descifrado con la clave privada) de manera que Dec(Enc(msg, P), R) == msg
. La clave pública está disponible para todos, para cifrar los mensajes, pero solo la entidad que posee el par de claves conoce la clave privada, por lo que es la única que puede descifrar los mensajes.
Sus requisitos han definido un sistema de cifrado de clave pública hipotético en el que la clave pública es generada por el hash de la clave privada. Simplemente use un sistema de clave pública establecido; que satisfaga los requisitos generales descritos en su última oración.