¿Qué es un algoritmo de criptografía de clave pública?
En la década de 1970, los académicos estadounidenses Diffie y Hellman y el académico israelí Merkle propusieron de forma independiente el concepto de un nuevo sistema criptográfico. Diffie y Hellman anunciaron por primera vez este concepto en la Conferencia Nacional de Computación de 1976. Unos meses más tarde, su artículo fundamental "Nuevas direcciones en criptografía" se publicó en el volumen de teoría de la información de la revista IEEE. Por motivos de impresión, las contribuciones de Merkle a este campo no se publicaron. publicado hasta 1978. La nueva teoría de la criptografía que crearon rompió el concepto tradicional de claves simétricas en criptografía y marcó otro hito en la criptografía moderna.
A diferencia de los criptosistemas simétricos anteriores que utilizaban las mismas claves de cifrado y descifrado, Diffie y Hellman propusieron un sistema de clave dual, en el que cada usuario tiene un par de claves seleccionadas: una puede hacerse pública y la otra. es secreto. La clave pública se puede publicar como un número de teléfono, por eso se denomina criptografía de clave pública o criptografía de doble clave.
La característica principal del sistema de criptografía de clave pública es separar las capacidades de cifrado y descifrado, de modo que la información de múltiples usuarios solo pueda ser interpretada por un usuario o el mensaje solo pueda ser cifrado por un usuario; y puede ser cifrado por múltiples usuarios. Los usuarios interpretan que el primero puede usarse para lograr comunicaciones confidenciales en redes públicas, mientras que el segundo puede usarse para firmar digitalmente mensajes en sistemas de autenticación.
La idea básica de la criptografía de clave pública es dividir la clave de la criptografía tradicional en dos, en la clave de cifrado Ke y la clave de descifrado Kd. La clave de cifrado Ke se utiliza para controlar el cifrado y la. Se utiliza la clave de descifrado. Kd controla el descifrado. Además, la complejidad computacional garantiza que la clave de cifrado Ke no pueda derivarse computacionalmente de la clave de descifrado Kd. De esta manera, incluso si Ke se hace público, Kd no quedará expuesto y la seguridad de la contraseña no se verá comprometida. Por lo tanto, Ke puede hacerse público y sólo Kd puede mantenerse en secreto. Dado que Ke es público y sólo Kd es secreto, la dificultad de la distribución de claves en la criptografía tradicional se supera fundamentalmente.
Condiciones que cumple la criptografía de clave pública
Según la idea básica de la criptografía de clave pública, se puede observar que una criptografía de clave pública debe cumplir las siguientes tres condiciones: p>
El algoritmo de descifrado D y el algoritmo de cifrado E son mutuamente inversos, es decir, para todo el texto sin formato M, D (E (M, Ke), Kd) = M. Kd no puede derivarse computacionalmente de Ke. Los algoritmos E y D son ambos eficientes.
La condición 1 es la condición básica que constituye una contraseña y es la condición mínima que deben cumplir tanto las contraseñas tradicionales como las de clave pública.
La condición 2 es la condición de seguridad de la criptografía de clave pública y la base de seguridad de la criptografía de clave pública, y esta condición es la más difícil de satisfacer. Todavía no está demostrado matemáticamente que un cifrado de clave pública satisfaga plenamente esta condición; sólo se puede demostrar que no es así;
La condición 3 es una condición práctica de ingeniería para la criptografía de clave pública. Como sólo los algoritmos E y D son eficientes, la contraseña puede resultar práctica. De lo contrario, la contraseña sólo tiene significado teórico y no tiene aplicación práctica.
Cuando se cumplen las tres condiciones anteriores, se puede formar una contraseña de clave pública, que puede garantizar la confidencialidad de los datos. Sin embargo, aún es necesario garantizar la autenticidad de los datos y cumplir la cuarta condición.
4. Para todo texto plano M, E(D(M,Kd),Ke)=M.
La condición 4 es la condición básica para que la criptografía de clave pública garantice la autenticidad de los datos. Si se cumplen las condiciones 1, 2 y 4, también se puede formar una contraseña de clave pública, que puede garantizar la autenticidad de los datos.
Si se cumplen las cuatro condiciones anteriores al mismo tiempo, la criptografía de clave pública puede garantizar tanto la confidencialidad como la autenticidad de los datos. En este momento, para todo el texto plano M, D(E(M,Ke),Kd)= E(D(M,Kd),Ke)=M.
La criptografía de clave pública supera fundamentalmente las dificultades en la distribución de claves de la criptografía tradicional. El uso de la criptografía de clave pública para comunicaciones confidenciales requiere el establecimiento de una agencia de administración de claves (KMC). Cada usuario tendrá el nombre, la dirección y el cifrado público. La clave y otra información se registran en KMC y la clave pública se registra en la base de datos de clave pública compartida. KMC es responsable de la gestión de claves y es confiable para los usuarios.
De esta manera, los usuarios pueden utilizar la criptografía de clave pública para realizar comunicaciones confidenciales de manera tan conveniente como consultar una guía telefónica para realizar una llamada. No es necesario que ambas partes en la comunicación reserven una clave. Por lo tanto, es particularmente adecuado para aplicaciones de redes informáticas. Además, la criptografía de clave pública es fácil de implementar mediante firmas digitales, por lo que es especialmente popular.
La siguiente figura es un diagrama de bloques del sistema de criptografía de clave pública, que se divide principalmente en los siguientes pasos:
El sistema final en la red que se requiere para recibir el mensaje. genera un par de claves utilizadas para el cifrado y descifrado. La clave, el receptor B en la figura, genera un par de claves PKB y SKB, donde PKB es la clave pública y SKB es la clave secreta. El sistema final B almacena la clave de cifrado (PKB en la figura) en un registro o archivo público, y la otra clave se mantiene en secreto (SKB en la figura). Si A quiere enviar el mensaje m a B, utiliza la clave pública de B para cifrar m, expresada como c=EPKB[m] donde c es el texto cifrado y E es el algoritmo de cifrado. Después de que B recibe el texto cifrado c, utiliza su propia clave secreta SKB para descifrarlo, expresada como m=DSKB[c] donde D es el algoritmo de descifrado. Como solo B conoce SKB, otros no pueden descifrar c.
Este es el principio de la clave pública~
(La reimpresión requiere mi permiso)