2009-03-30 29 views
17

tengo una pregunta de seguimiento a Given a private key, is it possible to derive it’s public key?¿En qué se diferencian las claves públicas y privadas?

son el público y las claves privadas de la 'misma' (en el sentido de que acaba de elegir para hacer una pública) o se puede hacer más con la clave privada que con la ¿Llave pública?

EDITAR - precisar mejor mi pregunta: ¿

Cuando se generan las dos claves, podría simplemente elegir al azar a uno de ellos a ser la clave pública?

+0

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 –

+2

+1 por preguntar algo I ' He estado preguntando por un tiempo. –

+0

relacionado con http://security.stackexchange.com/questions/52495/can-rsa-keys-be-swapped para RSA. – Gnubie

Respuesta

10

Realmente depende de lo que usted llama "clave privada". En casi todas las citas prácticas, el remitente que conoce la clave privada también conoce la clave pública. Proporciona a otros su clave pública, por lo que necesita saberlo. Entonces, en esencia, esa "clave privada" contendrá información de "clave pública" o al menos puede derivarse de ella.

Generalmente, no puede intercambiar claves privadas y públicas. De hecho, no siempre son del mismo tipo (dependiendo del criptosistema utilizado). Por ejemplo, en ECDSA, su clave pública es un "punto" bidimensional en una curva elíptica, mientras que su clave privada es un número.

+4

En RSA, como la clave pública se calcula a partir de la clave privada, cambiarlas significa que su clave privada anterior ahora es la clave pública, y cualquiera podría generar fácilmente la clave pública que ahora usa como clave privada.Cambiar las claves públicas/privadas en RSA hace que RSA no sea seguro. – Martijn

2

De http://www.webopedia.com/TERM/P/public_key_cryptography.html:

Un sistema criptográfico que utiliza dos claves - una clave pública conocida por todos y una clave privada o secreta única sabe que el destinatario del mensaje. Cuando John desea enviar un mensaje seguro al Jane, usa la clave pública de Jane para encriptar el mensaje. Luego, Jane usa su clave privada para descifrarla.

Un elemento importante del sistema de clave pública es que los claves públicas y privadas están relacionados de tal manera que sólo la clave pública se puede utilizar para cifrar mensajes y sólo el clave privada correspondiente se puede utilizar para descifrarlos. Además, es prácticamente imposible deducir la clave privada si conoce la clave pública .

2

No. Esa es la idea de generar un par de teclas en el mundo PPK. Por lo general, encriptas con la clave pública y la descifras con la clave privada. Entonces compartiría la clave pública con sus amigos y les pediría que la usen cuando le envíen su número de cuenta bancaria.

12

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.
+0

Awesome answer. Gracias. ¡Abre la larga historia! – egelev

Cuestiones relacionadas