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.