Criptotecnología
1. ¿Es necesaria la distribución previa de la clave privada? Es necesario considerar los cifrados simétricos.
2. ¿Será atacado por un intermediario? Es necesario considerar la criptografía asimétrica al distribuir claves públicas.
3. No repudio (puede ser probado por ambas partes y por un tercero): se debe considerar el cifrado asimétrico al distribuir claves públicas.
4. ¿Está garantizada la confidencialidad del mensaje? Es decir, no se puede descifrar.
5. ¿Se puede garantizar la integridad (consistencia) del mensaje? Es decir, no se puede alterar.
6. No suplantar (falsificar)
Resumen: Cifrado simétrico (Solución 456)-Comunicación unidireccional de cifrado asimétrico->; Firma digital criptozoológica -> Certificado de clave pública (Solución 23)
Concepto
Algoritmo criptográfico: algoritmo de cifrado + clave + algoritmo de descifrado, abreviado como contraseña.
Espacio clave: todos los valores de la clave.
La seguridad secreta está garantizada por el hecho de que se desconoce el algoritmo de cifrado.
Cifrado en bloque: el cifrado en bloque se utiliza para cifrar texto sin formato en lugar de utilizar el texto completo como entrada.
Cifrado de flujo: sin agrupación, cifrado completo.
Métodos para descifrar texto cifrado
1. Escuchando + decodificación
2. Ingeniería social
Métodos para descifrar claves
1. Cracking por fuerza bruta (clave exhaustiva), como descifrar el cifrado César.
2. Análisis de frecuencia, como descifrar códigos de sustitución simples.
3. Ataque de texto plano elegido (uso exhaustivo de texto plano para agrupación)
Técnicas opcionales para sistemas de cifrado
Esteganografía: en datos más grandes Información oculta, como poesía tibetana .
Generador de números pseudoaleatorios
Valor hash (resumen, valor hash, huella digital): función hash (función resumen, función hash, función hash, cifrado unidireccional) calculada El valor del texto original.
Cifrado simétrico (* * *Cifrado con clave): El cifrado y el descifrado utilizan la misma clave privada.
Cifrado asimétrico (cifrado de clave pública): cifrado de clave pública y descifrado de clave privada.
Código de autenticación del mensaje
Firma digital
Certificado de clave pública
Conflicto: los valores hash de los dos mensajes son los mismos .
Resistencia a colisiones débil: dado un mensaje, es difícil encontrar otro mensaje con el mismo valor hash. Para evitar la siguiente situación, Bob retiene el mensaje A y calcula su resumen; Alice encuentra otro mensaje B con el mismo valor hash que A y cambia A por B porque el resumen permanece sin cambios, Bob no lo descubrirá;
Fuerte resistencia a la colisión: Es difícil encontrar dos mensajes con el mismo valor hash. Para evitar la siguiente situación, Alice recibe dos mensajes A y B con el mismo resumen y envía A a Bob. Bob calcula su resumen; Alice intercambia A y B; dado que el resumen permanece sin cambios, Bob no lo descubrirá.
MD5 (Message Digest 5)
Historia: MD5 diseñado por Ronald Rivest en 1991.
Situación actual: En 2004, Wang Xiaoyun propuso el algoritmo de ataque de colisión MD5.
Ángulo horario estelar
Historia: NIST lanzó SHA en 1993, SHA-1 en 1995 y SHA-2 en 2002.
Situación actual: en 2004, Wang Xiaoyun propuso el algoritmo de ataque de colisión SHA-0; en 2005, Wang Xiaoyun propuso el algoritmo de ataque de colisión SHA-1.
Sha-3
Historia: En 2007, NIST inició la selección de SHA-3. En 2012, el algoritmo Keccak diseñado por Joan Daimon y otros fue seleccionado como SHA-3.
Números pseudoaleatorios débiles: aleatoriedad
Números pseudoaleatorios fuertes: imprevisibilidad
Números aleatorios verdaderos: irreproducibilidad
Generador de números aleatorios : El hardware puede lograr verdaderos números aleatorios a través del ruido térmico.
Generador de números pseudoaleatorios: el software solo puede generar números pseudoaleatorios y requiere una semilla para inicializarse.
Algoritmo de números pseudoaleatorios: método de congruencia lineal, método hash, método de criptografía, etc.
Buena solución de cifrado simétrico: Irrompible
Desventaja: Requiere distribución de claves por adelantado.
Jimmy King Zum
Algoritmo de cifrado: traducción de letras
Clave: traducir números
Algoritmo de descifrado: traducción inversa
Descifrar la clave: agotar las claves posibles
Cifrado de sustitución simple
Algoritmo de cifrado: una letra se sustituye por otra.
Palabras clave: tabla de sustitución
Algoritmo de descifrado: sustitución inversa
Clave de descifrado: analiza la frecuencia de letras y combinaciones de letras en el texto cifrado y lo compara con el Se comparan tablas de frecuencia generales; se utilizan las letras de texto plano descifradas, se sustituyen en el texto cifrado y se realiza un análisis de bucle.
Cifrado Ingmar
Inventor: el alemán Arthur Scherbius
Algoritmo de cifrado: doble cifrado, la clave diaria es la clave 1. Piense en una clave 2, use la clave 1 para; cifrar la clave 2 para obtener el texto cifrado de la clave 2; utilizar la clave 2 para cifrar el mensaje; enviar el texto cifrado de la clave 2 y el texto cifrado del mensaje juntos;
Claves: El libro de claves registra claves diferentes cada día.
Algoritmo de descifrado: utilice la clave diaria para descifrar el texto cifrado de la clave 2 para obtener la clave 2; utilice la clave 2 para descifrar el texto cifrado del mensaje
Descifrado: Alan Turing Turing
Cifrado DES (Estándar de cifrado de datos)
Historia: Horst Feistel de IBM desarrolló el cifrado Lucifer en 1974 y fue reconocido como estándar DES por el Instituto Nacional Estadounidense de Estándares (ANSI) en 1977.
Algoritmo de cifrado: se utilizan grupos de 64 bits para 16 rondas de operaciones. En una ronda, un grupo se divide en lados izquierdo y derecho y las subclaves se extraen de la clave; la función de rueda usa un lado y la subclave para generar una secuencia de bits y usa esa secuencia de bits para realizar XOR en el otro lado.
Clave: longitud 56 bits
Decodificación: posible cracking por fuerza bruta en tiempo real.
Contraseña Triple DES (Triple DES, TDEA, 3DES)
Algoritmo de cifrado: Repetir DES tres veces.
Clave: longitud 56 * 3
Cifrado AES (Estándar de cifrado avanzado)
Historia: En 1997, el Instituto Nacional de Estándares y Tecnología (NIST) creó Se propuso AES pública. En 2000, se seleccionó como estándar el esquema Rijndael presentado por los criptógrafos belgas Joan Daimon y Vincent Rimen.
Algoritmo de cifrado: utilizando 128 bits como grupo, se realizan múltiples rondas de operaciones de reemplazo, traducción y matrices.
Clave: Hay tres longitudes: 128, 192, 256.
Modo iterativo de cifrado en bloque
Modo ECB: modo de libro de códigos electrónico; los grupos de texto sin formato y los grupos de texto cifrado se corresponden en orden. Un atacante activo puede cambiar el orden de los grupos de texto cifrado, copiar o eliminar grupos de texto cifrado, lo que hace que el receptor obtenga texto sin formato incorrecto después del descifrado.
Modo CBC: modo de cadena de bloques de cifrado, modo de cadena de bloques de cifrado; después de la operación XOR, este conjunto de texto sin formato y el conjunto de texto cifrado anterior se cifran, si se manipulan, no se pueden descifrar normalmente;
Modo CFB: modo de retroalimentación de contraseña, modo de retroalimentación de texto cifrado; este conjunto de texto cifrado se obtiene después de la operación XOR entre este conjunto de texto sin formato y el conjunto de texto cifrado anterior.
Modo OFB: modo de retroalimentación de salida, modo de retroalimentación de salida; utilice una secuencia de bits aleatoria como grupo de inicialización (vector de inicialización) para obtener el texto cifrado en el grupo de texto cifrado y texto sin formato; grupo; nuevamente cifre el texto cifrado del grupo de inicialización para obtener el nuevo texto cifrado del grupo de inicialización, que se realiza mediante operación XOR con el siguiente grupo de texto sin formato, y así sucesivamente.
Modo CTR: modo contador, modo contador; utilice una secuencia de bits aleatoria como valor inicial del contador, realice una operación XOR con el grupo de texto sin formato después del cifrado y obtenga el grupo de texto cifrado; contador para cifrar el siguiente grupo de texto sin formato.
En un cifrado simétrico, cuando el remitente envía el texto cifrado, lleva el valor MAC a del mensaje; el receptor utiliza el mismo método para calcular el valor MAC b; compara A y B para garantizar que; el mensaje no ha sido alterado.
encrypt-then-MAC: el valor MAC es el valor hash del texto cifrado del mensaje.
encrypt-and-MAC: El valor MAC es el valor hash del texto sin formato del mensaje.
MAC-luego-encriptar: El valor MAC es el texto cifrado del valor hash de texto sin formato.
Ataque de repetición: después de que el atacante escucha a escondidas el mensaje que Alice le envió a Bob, se lo envía repetidamente a Bob pensando que fue enviado por Alice.
Evita ataques de repetición: los mensajes tienen un id.
Cifrado simétrico: no puede ser manipulado ni falsificado.
Desventajas: Necesidad de realizar la distribución de claves privadas.
Cifrado basado en contraseña: Cifrado basado en contraseña, PBE.
Solución: Problema de almacenamiento de clave (clave de sesión)
CEK: clave de sesión
KEK: clave utilizada para cifrar CEK
Plan
1, el número aleatorio es salt y el valor hash de contraseña + salt es KEK.
2. Utilice KEK para cifrar CEK y obtener el texto cifrado CEK.
3. Solo se guardan el texto cifrado salt y CEK, mientras que el cerebro humano recuerda la contraseña y descarta la KEK.
Ataque de diccionario: si no hay sal involucrada en la generación de KEK, entonces la contraseña determina que las contraseñas de uso común corresponden a un diccionario de KEK de uso común. El atacante usa directamente el KEK de uso común para descifrar. el texto cifrado CEK.
El papel de la sal: KEK se forma a partir de sal y es imposible que el diccionario KEK incluya dicha KEK.
La comunicación unidireccional con cifrado asimétrico no se puede utilizar solo para la comunicación y solo se puede utilizar en cifrados mixtos.
Esquema: Alice distribuye la clave de cifrado (clave pública) a Bob. Bob usa la clave pública para cifrar el mensaje y se lo envía a Alice; Alice usa la clave de descifrado (clave privada) para descifrarlo.
Resumen: El destinatario del mensaje es el propietario del par de claves, es decir, el titular de la clave privada; la clave pública se utiliza para el cifrado y la clave privada se utiliza para el descifrado.
Cifrado RSA
Historia: En 1978, Ron Rivest, Adi Samour y Leonard Adelman*** publicaron conjuntamente RSA.
Algoritmo de cifrado: texto cifrado = texto plano modo E N
Clave pública: una combinación de e y n.
Algoritmo de descifrado: texto plano = texto cifrado modo D N
Clave privada: una combinación de d y n.
Generar par de claves
Generar números primos: utilice números pseudoaleatorios para generar números aleatorios y utilice la prueba de Miller-Rabin para comprobar si son números primos hasta obtener un número primo. número.
Encuentra el máximo común divisor: la división alterna de Euclides
1, encuentra n
Usa 512 bits para generar dos números primos p y q, n = p* q.
2. Encuentra l
l es el mínimo común múltiplo de p-1 y q-1.
3. Encuentra e
Utiliza números pseudoaleatorios para generar números aleatorios en el rango de (1, L) hasta que el máximo común divisor de E y L sea 1.
4. Encuentra d
Utiliza números pseudoaleatorios para generar números aleatorios en el rango de (1, L) hasta que se cumpla (E * D) mod L = 1.
Crack: descomponga n en factores primos para obtener p y q, y luego encuentre d, pero no existe un método rápido y eficaz para la factorización prima de números grandes.
La primera comunicación es un cifrado mixto y las comunicaciones posteriores son cifrados simétricos.
En comparación con el código de autenticación del mensaje, no es necesario distribuir previamente la clave privada.
La idea general: Bob usa la clave de sesión para cifrar el mensaje y usa la clave pública de Alice. para cifrar la clave de sesión y se la envía a Alice. Alice descifra la clave de sesión con la clave privada y descifra el mensaje con la clave de sesión.
Clave de sesión: La clave utilizada para cifrar el cifrado simétrico del mensaje.
1.Alice envía la clave pública a Bob.
2. Bob genera aleatoriamente una clave de sesión y la utiliza para cifrar el mensaje y obtener el texto cifrado.
3.Bob cifra la clave de sesión con la clave pública para obtener el texto cifrado de la clave de sesión.
4.Bob envía el texto cifrado de la clave de sesión y el texto cifrado del mensaje a Alice.
5.Alice descifra la clave de sesión con la clave privada y luego descifra el mensaje con la clave de sesión.
6. Ambas partes disponen de una clave de sesión. A partir de ahora, podrán comunicarse mediante cifrados simétricos y transportar códigos de autenticación de mensajes.
Desventajas: al distribuir la clave pública, puede ser atacada por un intermediario; Alice puede negar el envío de la clave pública a Bob.
Ataque de intermediario: El intermediario intercepta el mensaje desde el principio cuando Alice libera la clave pública a Bob y obtiene la clave pública de Alice. Luego finge ser Alice y envía su clave pública a Bob. Para que el intermediario pueda descifrar el mensaje que Bob pretende enviar a Alice.
No se puede utilizar solo para comunicación y solo se puede utilizar en certificados de clave pública.
Firma de texto sin formato: Alice cifra el resumen del mensaje con la clave de firma (clave privada) y envía el texto cifrado del resumen y el texto sin formato del mensaje a Bob; Bob descifra el texto cifrado abstracto para obtener la abstracción A; B, compare A y B.
Resumen: la clave privada se utiliza para el cifrado, la clave pública se utiliza para el descifrado y la comunicación unidireccional del cifrado asimétrico es exactamente lo contrario.
Certificado de clave pública: Certificado de clave pública, PKC, denominado certificado.
Autoridad certificadora ca
Estándar de certificado: estándar X.509 especificado por ITU e ISO.
Proceso:
1. Alice se registra en CA.
2. La CA genera el texto sin formato del certificado de Alice, incluida la información de registro de Alice, la clave pública de Alice y la información de la CA.
3. La CA cifra la parte de texto plano del certificado con su propia clave privada para obtener una firma digital.
4. La parte de texto plano del certificado y la firma digital constituyen la PKC emitida a Alice.
5.Bob obtiene la PKC de Alice y verifica el certificado con la clave pública de la CA local, obteniendo así la clave pública confiable de Alice.
6. A partir de ahora, Alice y Bob pueden comunicarse entre sí utilizando contraseñas mixtas.
La primera comunicación es para obtener la PKC de la CA, y las comunicaciones posteriores son de contraseñas mixtas.
Evita ataques de intermediario en comparación con contraseñas mixtas; CA no puede rechazar su propio certificado.
Historia: Netscape diseñó SSL en 1994, SSL 3.0 se descubrió en 2014 y IEIF lanzó TLS en 1999.
TLS (Transport Layer Security) es el sucesor de SSL (Secure Sockets Layer). Se agrega una capa de TLS entre tcp y http, que es https.
OpenSSL: OpenSSL es un conjunto de herramientas que implementa el protocolo SSL/TLS.
Tomemos https como ejemplo.
0. Al instalar el navegador, existen varias claves públicas de CA; el servidor se registra en la CA y obtiene el certificado.
1. El navegador accede a la dirección https y el servidor devuelve su propio certificado.
2. Según la información de la CA en el certificado, el navegador utiliza la clave pública de la CA correspondiente para verificar el certificado y obtener una clave pública del servidor confiable.
3. El navegador genera una clave de contraseña simétrica (clave de sesión), la cifra con la clave pública del servidor y la envía al servidor.
4. El servidor descifra y obtiene la clave de sesión. A partir de ese momento, se comunica mediante cifrados simétricos y transporta códigos de autenticación de mensajes.
1. Genere el certificado JKS: keytool-genkey pair-alias " alias "-keyalg " RSA "-keystore " d:\ app . jks "
2. 12:keytool-import keystore-src keystore d:\ app . jks-dest keystore d:\ app 12-dest storetype PKCS 12.
3. Convierta PKCS12 a PEM: OpenSSL PKCS de 12 pulgadas. /app.p12-outapp.pem.
4. Extraiga la clave privada cifrada: copie y guarde el contenido de "—Clave privada para iniciar el cifrado—" a "—Clave privada para finalizar el cifrado—" en pem como texto cifrado. clave
5. Convierta la clave privada de texto cifrado en clave privada de texto sin formato: clave de texto cifrado RSA de OpenSSL.
.
jks (Java Key Store): formato binario, incluido certificado y clave privada, protegido con contraseña.
. pfx o .p 12 (valor previsto de PKC n.º 12): formato binario, incluido certificado y clave privada, protegido con contraseña.
. pem (correo electrónico con privacidad mejorada): formato de texto, incluido el certificado y la clave privada, protegido con contraseña.
. der o. cer: Formato binario, que contiene sólo certificados.
. crt (Certificado): Puede estar en formato der o pem y solo contiene certificados.
Certificado SSL: El certificado SSL debe estar vinculado al nombre de dominio, no a la IP.
Servicios de cifrado, servicios de gestión de claves