¿Se puede usar una clave pública para descifrar un mensaje cifrado por la clave privada correspondiente?

21

Por lo que he visto sobre el uso de un par de claves públicas y privadas, la clave pública se usa para cifrar un mensaje, y la clave privada se usa para descifrar el mensaje cifrado.

Si un mensaje está encriptado por la clave privada, ¿puede desencriptarse por la clave pública correspondiente?

En caso afirmativo, ¿puede dar algunos ejemplos de cuándo se usa este caso?

Gracias.

Tim
fuente
¿Por qué lo cifrarías si la clave de descifrado fuera pública?
Bergi
55
@Bergi ¿Firma digital?
user11153
66
@Bergi: La respuesta larga: al encriptar un mensaje con su clave privada de una manera que pueda ser descifrada con su clave pública, puede enviar un mensaje que cualquiera puede leer pero que solo usted puede haber escrito. Al encriptar primero con su clave privada y luego con la clave privada del receptor, crea un mensaje que solo puede ser descifrado por el receptor previsto, y solo puede haberlo escrito usted.
gnasher729
2
@ gnasher729 Creo que se refería a cifrar con su clave privada primero y luego con la clave pública del receptor . Se supone que no debes tener la clave privada de otra persona
kiamlaluno

Respuestas:

49

P: Si pedaleas hacia atrás en un pez, ¿va hacia atrás?
UN: ???

Un pez no es una bicicleta. Del mismo modo, no puede usar una clave privada para cifrar un mensaje o una clave pública para descifrar un mensaje. No tienen el equipo adecuado.

Con RSA , que es un criptosistema de clave pública popular pero no el único, la clave privada y la clave pública tienen las mismas propiedades matemáticas, por lo que es posible usarlas indistintamente en los algoritmos. (Sin embargo, no tienen las mismas propiedades de seguridad: la clave pública generalmente se puede adivinar fácilmente a partir de la clave privada). Puede tomar un algoritmo de cifrado RSA y alimentarlo con una clave privada, o un algoritmo de descifrado RSA y alimentarlo como público. llave. Sin embargo, los resultados no son significativos según los algoritmos estándar.

Esta simetría entre claves públicas y claves privadas no se extiende a la mayoría de los otros criptosistemas de clave pública. En general, la clave pública no es el tipo correcto de objeto matemático para el algoritmo de descifrado, y la clave privada no es el tipo correcto de objeto matemático para el algoritmo de cifrado.

Dicho esto, los criptosistemas de clave pública se basan en el concepto de funciones trapdoor . Una función unidireccional es una función que es fácil de calcular, pero cuya inversa es difícil de calcular. Una función de trampilla es como una función unidireccional, pero hay un valor "mágico" que hace que el inverso sea fácil de calcular.

Si tiene una función de trampilla, puede usarla para crear un algoritmo de cifrado de clave pública: en adelante (en la dirección fácil), la función se cifra; yendo hacia atrás (en la dirección difícil), la función descifra. El valor mágico requerido para descifrar es la clave privada.

Si tiene una función de trampilla, también puede usarla para crear un algoritmo de firma digital : yendo hacia atrás (en la dirección difícil), la función firma ; En el futuro (en la dirección fácil), la función verifica una firma. Una vez más, el valor mágico requerido para firmar es la clave privada.

Las funciones de trampillas generalmente vienen en familias; Los datos necesarios para especificar un elemento particular de la familia es la clave pública.

Aunque el cifrado de clave pública y las firmas digitales se basan en los mismos conceptos, no son estrictamente idénticos. Por ejemplo, la función de trampilla RSA se basa en la dificultad de deshacer una multiplicación a menos que ya conozca uno de los factores. Hay dos familias comunes de esquemas de cifrado de clave pública basados ​​en RSA , conocidos como PKCS # 1 v1.5 y OAEP. También hay dos familias comunes de esquemas de firma digital basados ​​en RSA, conocidos como PKCS # 1 v1.5 y PSS. Los dos "PKCS # 1 v1.5" tienen diseños similares, pero no son idénticos. Esta respuesta de Thomas Pornin y esta respuesta de Maarten Bodewes entra en algunos detalles de la diferencia entre firma / verificación y descifrado / cifrado en el caso de RSA.

Tenga en cuenta que algunas presentaciones simples de criptografía de clave pública enmascaran la firma digital y la verificación como descifrado y cifrado, por razones históricas: RSA se popularizó primero, y la operación central de RSA es simétrica. (La operación central de RSA, conocida como "libro de texto RSA", es uno de los pasos en un algoritmo de firma / verificación / cifrado / descifrado de RSA, pero no constituye en sí mismo un algoritmo de firma, verificación, cifrado o descifrado). son simétricos desde la vista de 10000 pies, pero no son simétricos una vez que entras en los detalles.

Ver también ¿ Reducción de firmas a cifrado? , lo que explica que puede crear un esquema de cifrado a partir de un esquema de firma, pero solo bajo ciertas condiciones.

Gilles 'SO- deja de ser malvado'
fuente
2
+1 por explicar claramente un error que ni siquiera sabía que tenía cuando hice clic en esta pregunta.
Ixrec
1
Gracias. "la clave pública no es el tipo correcto de objeto matemático para usar para el algoritmo de descifrado, y la clave privada no es el tipo correcto de objeto matemático para usar para el algoritmo de cifrado". ¿Quiere decir que todavía pueden usarse para esos fines, pero no son buenas opciones o no pueden serlo? ¿Qué propiedades matemáticas que deciden que no son del tipo "correcto", además de las propiedades de seguridad (p. Ej., Asimetría en la dureza para adivinar una clave de la otra)?
Tim
2
Cortaría los dos primeros párrafos, pero de lo contrario, esta es una respuesta muy perspicaz. Vine aquí de la explicación de un laico de cifrado / descifrado y firma / verificación y cómo la clave privada podría usarse para "cifrar", y su respuesta aclaró exactamente lo que me preguntaba.
Kyle Chadha
Entonces, ¿este artículo es incorrecto: globalsign.com/en/blog/how-do-digital-signatures-work ? Menciona que se usa una clave pública para el descifrado y la clave privada para el cifrado
Kenneth Worden
@KennethWorden Es sobre todo correcto, pero algunos de los detalles son incorrectos. En "Aplicación de la firma", "el hash está encriptado" debería ser "el hash está firmado ", y eso solo hace la firma digital. Y en "Verificación de la firma", no existe un "hash descifrado": para la mayoría de los esquemas de firma, no se puede recuperar el hash de la firma, lo que sucede es que hay una operación matemática diferente (llamada verificación) que toma el hash y la firma como entradas y salidas "ok" o "bad".
Gilles 'SO- deja de ser malvado'
6

Cuando el esquema PKE utiliza una permutación de trampilla como un cuadro negro , "cifrar" con la clave privada seguido de "descifrar" con la clave pública arrojará el mensaje original. Para otros esquemas PKE, uno no necesariamente tiene sentido. (Por ejemplo, intentar "cifrar" con la clave privada podría ser un error de tipo ).

[Cifrar un mensaje "por la clave privada" seguido de descifrar "por la clave pública correspondiente"] se usa cuando las personas piensan que el caso es para firmas digitales y no se corrige a tiempo. Ver esta respuesta y esta pregunta .

Comunidad
fuente
44
No. Está perpetuando los mitos de que el libro de texto RSA es el único criptosistema de clave pública y que la firma es lo mismo que el descifrado.
Gilles 'SO- deja de ser malvado'
El primero es un punto excelente, que solucionaré. ¿Es la última parte de tu comentario debido a que mi larga oración no es lo suficientemente clara?
44
No entiendo lo que quieres decir con "cuando la gente piensa que es para firmas digitales". Parece que estás diciendo que la gente cree erróneamente que las firmas digitales son diferentes del cifrado de clave pública. Viniendo de ti, estoy seguro de que esto no es lo que querías decir, pero tu respuesta es realmente confusa, incluso después de agregar el primer párrafo.
Gilles 'SO- deja de ser malvado'
2

Sí, un mensaje que se ha cifrado con clave privada se puede descifrar con la clave pública.

De hecho, esto se implementa para verificar la autenticidad de los datos. En la firma digital, una persona cifra el hash de los datos con su clave privada. Cualquiera puede descifrar lo mismo con la clave pública disponible de la persona y verificar la autenticidad de los datos.

Kevin Amipara
fuente
2
Puede hacer esto con el criptosistema RSA, pero no con todos los criptosistemas de clave pública. El sistema criptográfico El-Gamal es diferente del esquema de firma El-Gamal, por ejemplo. Ver también la respuesta de Gilles
Lagarto discreto
Eso es cierto. Estaba tratando de dar una respuesta directa independientemente de algoritmos particulares @Discretelizard
Kevin Amipara
Gracias por dar una respuesta directa.
jrahhali
0

Piense en la clave pública en un cifrado asimétrico como un candado en lugar de una clave. ¿El pirata informático que tiene una cerradura y una caja cerrada con esa cerradura desbloquearía la caja cerrada? Por supuesto que no, y para desbloquear esa caja necesitas la llave de bloqueo. Que nunca se envió en público, y solo el remitente lo tiene.

Sin embargo, la respuesta es : D es posible que un pirata informático descifre el mensaje utilizando solo la clave pública (bloqueo y un cuadro bloqueado). Pero eso es extremadamente difícil para cualquier computadora hoy en día. Porque revertir ese mensaje cifrado usando esa clave pública es una operación matemática muy difícil, especialmente cuando esa clave es tan grande como un número de 2048 bits. La fuerza de la operación matemática se basa en la dureza de la factorización prima de un gran número.

Aquí hay un buen video que explica cómo funciona el algoritmo RSA https://www.youtube.com/watch?v=wXB-V_Keiu8

Mahmoud Zalt
fuente
0

La pregunta es válida en términos de eMRTD donde la clave pública AA se utiliza para descifrar la respuesta de autenticación interna cifrada por la clave privada eMRTD. Forma parte de la norma 9303 de la OACI.

MJR2022
fuente