Integrar conocimientos relacionados con la criptografía
La historia de la criptografía se remonta a miles de años. Hay registros de la aplicación de la criptografía en la antigüedad y en la actualidad, tanto en el país como en el extranjero, la guerra ha proporcionado un entorno para. La aplicación de la criptografía en gran medida promovió el desarrollo de la criptografía. Según el proceso de desarrollo, la criptografía se puede dividir en tres etapas: etapa de cifrado manual, etapa de cifrado mecánico y etapa de cifrado por computadora. criptografía moderna.
En 1949, Claude Elwood Shannon, el creador de la teoría de la información, publicó un artículo titulado "Teoría de la comunicación de los sistemas secretos", que estableció la criptografía sobre una base matemática estricta. Sentó una base teórica y desde entonces se ha convertido en. una verdadera ciencia.
En 1976, los expertos en criptografía Bailey Whitfield Diffie y Martin Edward Hellman publicaron el artículo "New Directions in Cryptography", resolviendo el problema de la administración de claves, la clave se divide en clave pública de cifrado y clave privada de descifrado, y Se propone el intercambio de claves
En 1977, el Instituto Nacional de Estándares y Tecnología (NIST) formuló el estándar de cifrado de datos (DES) y lo promulgó como estándar nacional.
1977, Ron Rivest, Adi Shamir y Leonard Adleman del MIT propusieron el algoritmo de cifrado RSA, que se compone de las primeras letras de sus apellidos.
En abril de 1997, el ANSI estadounidense lanzó una solicitud para AES (Estándar de cifrado avanzado) y estableció un grupo de trabajo AES. Después de varios años de investigación, finalmente fue adoptado por los belgas Joan Daemen y el algoritmo Rijndael. fue diseñado por Vincent Rijmen y se convirtió en un estándar de cifrado efectivo el 26 de mayo de 2002.
Dividido por sistemas criptográficos: los sistemas criptográficos simétricos y los sistemas criptográficos asimétricos corresponden a algoritmos criptográficos simétricos y algoritmos criptográficos asimétricos.
El algoritmo de resumen de mensajes también se llama algoritmo hash. Su núcleo es la naturaleza unidireccional de la función hash, es decir, el valor hash correspondiente se puede obtener a través de la función hash, pero la información original. no se puede deducir a través del valor hash, que también es la raíz de la seguridad del algoritmo de resumen del mensaje. Generalmente usamos este algoritmo para juzgar la integridad de los datos.
Los algoritmos de resumen de mensajes, como MD (Message Digest), SHA (Secure Hash Algorithm), HMAC (Hash Message Authentication Code), etc., se utilizan a menudo para verificar la integridad de los datos y son el núcleo. algoritmos de algoritmos de firma digital.
Analicemos cómo se aplica el algoritmo de resumen a la llamada de interfaz de pago WeChat. Primero, puede abrir el pago WeChat, como se muestra en la siguiente figura:
Interfaz de pedido unificado de pago WeChat. documento
Proceso de firma de pago de WeChat
El cifrado simétrico simplemente significa que el cifrado y el descifrado utilizan la misma clave, y el algoritmo de descifrado es la operación inversa del algoritmo de cifrado.
Los algoritmos de cifrado simétrico incluyen principalmente DES, variante del algoritmo DES DESede, algoritmo AES de reemplazo de DES, IDEA, PBE, etc.
Los algoritmos de cifrado asimétrico se denominan algoritmos de cifrado de clave dual o de clave pública. A diferencia de los algoritmos de cifrado simétrico, que tienen una sola clave, los algoritmos de cifrado asimétrico tienen una clave pública y una clave privada, una para el cifrado. y el otro para descifrar. Uno de ellos se utiliza para cifrar y el otro para descifrar.
En pocas palabras: un par de clave pública A y clave privada B, el cifrado de A solo puede ser descifrado por B, el cifrado de B solo puede ser descifrado por A.
El algoritmo de cifrado asimétrico se deriva del algoritmo DH (Diffie-Hellman, algoritmo de intercambio de claves) propuesto por W. Diffie y M. Hellman****. Este algoritmo sentó las bases del algoritmo de cifrado asimétrico. Primero echemos un vistazo a los algoritmos de intercambio de claves del algoritmo DH y el algoritmo ECDH.
¿Por qué es necesario un algoritmo de intercambio de claves? Mencionamos anteriormente que el algoritmo de cifrado simétrico utiliza la misma clave para cifrar y descifrar, por lo que podemos pensar en ello, ¿cómo podemos entregar la clave de forma segura a la otra parte? Por ejemplo, a menudo usamos HTTPS. Todo el mundo dice que el cifrado HTTPS es muy seguro. Entonces, ¿de dónde viene la clave de cifrado? Obviamente estamos accediendo a una dirección https y no hay una clave por adelantado. Durante el proceso de acceso, el cliente y el servidor negociaron la clave a través del protocolo de protocolo de enlace. Si el servidor transmite la clave directamente en la red, definitivamente no funcionará. . Seguro, entonces, ¿qué pasa en el proceso? El siguiente artículo realizará un análisis detallado de https. Primero comprendamos el algoritmo.
La seguridad del algoritmo de intercambio de claves DH se basa en el problema del logaritmo discreto en campos finitos
La seguridad del algoritmo de intercambio de claves ECDH se basa en el cifrado de curva elíptica
Como se puede ver en la figura anterior, ambas partes en el algoritmo de intercambio de claves DH&ECDH deben revelar parte de la información entre sí, que es la llamada clave pública, incluso si esta parte de la información es obtenida por otros. , no amenazará la clave final. Amenazando la clave final, un punto clave aquí es que las claves públicas publicadas por ambas partes son diferentes, pero las claves finales generadas por ambas partes son las mismas. El principio del algoritmo se utiliza aquí. Aquellos que estén interesados en el algoritmo pueden comprobarlo. Aquí está la fórmula detallada del algoritmo. Debido a que no es necesario transmitir la clave final a la otra parte, la seguridad está garantizada en gran medida.
Algoritmos de cifrado asimétrico:
Los algoritmos de cifrado asimétrico típicos son RSA, ECC y ElGamal. El algoritmo RSA se basa en la descomposición factorial de un gran número de problemas difíciles, mientras que los algoritmos ElGamal y ECC se basan en el problema de logaritmos discretos.
Como se puede ver en el modelo de transmisión de mensajes anterior, el algoritmo de cifrado asimétrico sigue los principios de "cifrado de clave privada, descifrado de clave pública" y "cifrado de clave pública, descifrado de clave privada", pero hay uno. Lo que hay que tener en cuenta es que la clave pública es pública, entonces, ¿qué se utiliza en el algoritmo? Se deben considerar escenarios en función de las características del algoritmo. Por ejemplo, dado que la clave pública es pública, ¿es apropiado utilizar la clave privada para cifrar datos confidenciales y entregárselos a un tercero? Obviamente no es apropiado, porque la clave pública es pública y otros pueden obtener la clave pública, lo que significa que los datos que usted cifra se pueden descifrar, por lo que el escenario adecuado es el cifrado de clave privada, etc. La clave pública solo se usa para verificar la Contenido cifrado. Todos pueden verificarlo y no les importa si otros atacantes ven el contenido cifrado en el sitio. Incluso se puede decir que el contenido es originalmente público. La clave puede garantizar que el contenido no haya sido manipulado. con el destinatario, por lo que generalmente lo llamamos asimétrico El algoritmo "firma de clave privada, firma de verificación de clave pública", y otro punto, "cifrado de clave pública, descifrado de clave privada", porque la clave privada solo está en nuestras propias manos. Entonces, en teoría, solo nosotros podemos descifrarlo, ¡así que es seguro! El proceso de verificación del certificado https y protocolo de enlace reflejará esto.
El algoritmo de firma digital puede considerarse como un algoritmo de resumen de mensajes y su clave contiene una clave pública y una clave privada. En otras palabras, el algoritmo de firma digital es una combinación de un algoritmo de cifrado asimétrico y un algoritmo de resumen de mensajes, y sigue el método de autenticación de firma de "firma de clave privada, verificación de clave pública".
Los algoritmos de firma digital son la base de la infraestructura de clave pública (PKI) y de muchos mecanismos de seguridad de red (SSL/TLS, VPN, etc.).
Los algoritmos de firma digital deben poder verificar la integridad de los datos, autenticar el origen de los datos y desempeñar un papel en la lucha contra el repudio.
Los algoritmos de firma digital incluyen principalmente RSA, DSA y ECDSA***. El algoritmo RSA se deriva del problema de factorización de enteros y los algoritmos DSA y ECDSA se derivan del problema de logaritmos discretos.
Tomemos como ejemplo el programa de firma de interfaz en Ant Financial Open Platform. La descripción detallada se puede abrir de la siguiente manera:
Área de firma de Ant Financial Open Platform
.