No. No es necesario que las claves se transmitan de forma segura, pero, por supuesto, debe transmitirlas de tal manera que no puedan ser reemplazadas o manipuladas, si desea protegerse contra alguien que distribuye datos maliciosos.
Digamos que está alojando un repositorio de software. Incluso si firma un software con su clave, si un pirata informático obtiene acceso al repositorio, podría cargar software malicioso Y también reemplazar las claves de firma "correctas" por sus propias claves públicas, por lo que si un usuario final valida el software, salido como válido. Eso es lo que pide el OP.
De la misma manera, un atacante podría reemplazar las claves durante la transmisión (ataque MITM), por lo que si un usuario hace enlace El MITM puede reemplazar la respuesta con su propia clave pública.
Así que la simple firma de software y la publicación de la clave en el sitio del proveedor del software, está más orientada a proteger contra los espejos que son pirateados y comienzan a distribuir datos maliciosos.
Es por eso que algunos proveedores simplemente publican el hash SHA / MD5 del software, por lo que el proveedor no necesita confiar completamente en la seguridad de las réplicas de terceros.
Por eso es una buena idea transmitir las claves utilizando SSL, o tener la clave firmada por un origen acreditado (luego se convierte en un certificado, podría ser un x509 o un PGP) si también desea protegerse contra Reemplazo de clave pública maliciosa.
Otra forma de protegerse contra esto, es que el usuario final descarga y guarda la clave durante la primera interacción. Por lo tanto, si el repositorio se compromete más tarde, el usuario final tendrá una "clave correcta" guardada, por lo que no importa si la clave se reemplaza posteriormente, ya sea durante un MITM o un ataque de hackeo.