Algunos papel descripciones de los roles actuales de claves públicas y privadas como bastante simétrica pero que definitivamente no puede intercambiar los papeles de clave privada y pública en el mundo real.
El uso común:
- la clave pública debe ser utilizado para el cifrado y verificación de firma
- la clave privada debe ser utilizado para el descifrado y la firma
Hay varias razones para que:
no desea dejar una opción para el usuario sobre qué clave debe publicarse y cuál no. La clave pública se publica en todo el mundo y puede considerarla como su identidad pública. La parte privada es necesaria cuando debe demostrarle a otra persona que tiene más conocimiento que los demás sobre esta identidad: puede leer los mensajes que se le envían, puede firmar mensajes que pueden ser verificados por cualquiera que conozca su identificación pública. Si la parte de la clave pública/privada para publicar se dejó al usuario, finalizará con usuarios que publicarán ambas. Pero esa no es la razón principal.
cuando tiene claves privadas, realmente tiene ambas claves cada implementación común que conozco ofrecen herramientas para extraer claves públicas de archivos privados. Eso es cierto para pgp, gpg, openssl. Significa que los llamados archivos de clave privada almacenan claves privadas y públicas como se describe en los algoritmos. Eso es por diseño.
Por ejemplo con openssl la secuencia de comandos para generar un par de claves RSA puede ser:
openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key
Debe ser lo suficientemente claro que el primer comando genera los dos contactos en el archivo de clave privada y que las la clave pública simplemente se extrae de ella.
La consecuencia es que si su clave privada se ve comprometida, sus claves se verán comprometidas. A la inversa, es seguro, no puede deducir la clave privada si no conoce la clave pública ni del archivo ni de un ataque matemático.
- cifrado con la clave privada es matemáticamente débil: así, el punto anterior ya es suficiente, pero algunos usuarios tortuosos podría estar considerando el uso de la criptografía asimétrica manteniendo ambas teclas ocultas para el intercambio de datos. No, utilice el cifrado simétrico si desea hacer ese tipo de intercambios. Sí, es posible criptar un mensaje usando una clave privada y descifrarlo usando uno público (eso es básicamente lo que se usa para firmar, pero el caso de uso es diferente ya que también tiene un mensaje inicial). Los parámetros internos de las dos claves no son los sames y toda la fortaleza de la criptografía ha sido probada solo para la dirección habitual y el uso común.
I * think * esto depende en gran medida del algoritmo de encriptación utilizado. En algunos son intercambiables, en otros no lo son. Esto está relacionado con esta pregunta: http://stackoverflow.com/questions/696472/given-a-private-key-is-it-possible-to-derive-its-public-key –
+1 por preguntar algo I ' He estado preguntando por un tiempo. –
relacionado con http://security.stackexchange.com/questions/52495/can-rsa-keys-be-swapped para RSA. – Gnubie