La esencia del conocimiento de la criptografía
① Método de sustitución
El método de sustitución es fácil de entender, que consiste en utilizar información fija para reemplazar el texto original con información de texto cifrado que no se puede leer directamente. Por ejemplo, si b se reemplaza por w y e se reemplaza por p, la palabra abeja se transformará en wpp. Las personas que no conozcan las reglas de sustitución no podrán leer el significado del texto original.
El método de sustitución tiene dos formas: sustitución de una sola tabla y sustitución de varias tablas.
② Método de desplazamiento
El método de desplazamiento consiste en desplazar todas las letras del texto original hacia atrás (o hacia adelante) en el alfabeto mediante un número fijo, un método de desplazamiento típico. La aplicación es el "cifrado César".
Por ejemplo, se acuerda retroceder 2 dígitos (abcde - cdefg), de modo que la palabra abeja se transforma en dgg.
Método clásico de descifrado de contraseñas: método de análisis de frecuencia
La seguridad de las contraseñas clásicas se ha visto amenazada y la conveniencia de su uso es baja. En la era de la industrialización, las contraseñas modernas se utilizan ampliamente. .
Máquina Enigma
La máquina Enigma fue una máquina de cifrado utilizada por la Alemania nazi durante la Segunda Guerra Mundial. El método de cifrado que utilizó fue esencialmente desplazamiento y sustitución. Posteriormente fue adoptado por los británicos. Descifrando, las personas involucradas en el descifrado incluyen a Turing, conocido como el padre de la informática y el padre de la inteligencia artificial.
① Cifrado de función hash (resumen de mensajes, resumen digital)
Función hash, consulte también función hash, función de resumen o función hash, puede procesar mensajes de cualquier longitud, en un formato fijo. Los valores más comunes incluyen MD5, SHA-1 y SHA256, que se utilizan principalmente en la verificación de archivos y firmas digitales.
MD5 puede generar un valor hash de 128 bits (16 bytes) a partir del texto original de cualquier longitud
SHA-1 puede generar un valor hash de 160 bits (20 bytes) valor del texto original de cualquier longitud)
Características: Message Digest también se llama Digital Digest
Es una longitud fija que corresponde de forma única a un mensaje o valor. , que se genera mediante una función de cifrado Hash unidireccional en el mensaje
El valor generado mediante el resumen digital no se puede alterar para garantizar la seguridad del archivo o valor
Algoritmo MD5: el resultado del resumen es de 16 bytes y el resultado hexadecimal convertido es de 32 bytes
Algoritmo SHA1: el resultado del resumen es de 20 bytes y el convertidor hexadecimal es de 40 bytes
Algoritmo SHA256: el resultado resumido es de 32 bytes y el resultado es de 64 bytes después de la conversión hexadecimal
Algoritmo SHA512: el resultado resumido es de 64 bytes y el resultado es de 128 bytes después de la conversión hexadecimal
② Cifrado simétrico
El cifrado simétrico aplica la misma clave de cifrado y clave de descifrado. Los cifrados simétricos se dividen en dos tipos: cifrado de secuencia (cifrado de flujo) y cifrado de bloque (cifrado de bloque). El cifrado de flujo cifra cada elemento (una letra o un bit) en el flujo de información como una unidad de procesamiento básica. El cifrado de bloques primero divide el flujo de información en bloques y luego cifra cada bloque por separado.
Por ejemplo, el texto original es 1234567890. En el cifrado de flujo, primero se cifra 1, luego se cifra 2, luego se cifra 3 ... y finalmente se divide en texto cifrado en bloque; en diferentes bloques, como 1234 en bloques, 5678 en bloques, 90XX (XX es el número de complemento) en bloques, y luego los diferentes bloques se cifran respectivamente y finalmente se unen en texto cifrado. Todos los métodos de cifrado de criptografía clásicos mencionados anteriormente pertenecen al cifrado de flujo.
Ejemplo
Ahora tenemos un texto original 3 para enviar a B
Establezca la clave en 108, 3 * 108 = 324 y envíe 324 como texto cifrado Después de que B obtenga el texto cifrado 324, use 324/108 = 3 para obtener el texto original
Algoritmos de cifrado comunes
DES: Estándar de cifrado de datos, es decir, datos El estándar de cifrado es un algoritmo de bloque que utiliza cifrado de claves, fue determinado como el Estándar Federal de Procesamiento de Información (FIPS) por la Oficina Nacional de Estándares del gobierno federal de EE. UU. y autorizado para su uso en comunicaciones gubernamentales no clasificadas. Posteriormente, el algoritmo se utilizó a nivel internacional. . difundido ampliamente.
AES: Estándar de cifrado avanzado, Estándar de cifrado avanzado También conocido como método de cifrado Rijndael en criptografía, es un estándar de cifrado de bloques adoptado por el gobierno federal de Estados Unidos. Este estándar se utiliza para reemplazar el DES original. Ha sido analizado por muchas partes y se usa ampliamente en todo el mundo.
Funciones
Cifrado rápido, puede cifrar archivos grandes
El texto cifrado es reversible; una vez que se filtra el archivo clave, los datos quedarán expuestos
Después del cifrado, los caracteres correspondientes no se pueden encontrar en la tabla de codificación y aparecen caracteres confusos, por lo que generalmente se usa en combinación con Base64
Modo de cifrado
ECB: Libro de códigos electrónico Los mensajes que deben cifrarse son los siguientes: el tamaño del bloque del cifrado de bloque se divide en varios bloques y cada bloque se cifra de forma independiente
Ventajas: los datos se pueden procesar en paralelo
Desventajas: el mismo texto original genera el mismo texto cifrado. No se pueden proteger los datos muy bien
CBC: encadenamiento de bloques de cifrado, encadenamiento de bloques de cifrado. Cada bloque de texto sin formato se realiza mediante XOR con el bloque de texto cifrado anterior antes de ser. cifrado. En este método, cada bloque de texto cifrado depende de todos los bloques de texto sin formato anteriores
Ventajas: el mismo texto original genera diferentes textos cifrados
Desventajas: procesamiento de datos en serie
Modo de relleno: cuando los datos deben procesarse en bloques y la longitud de los datos no cumple con los requisitos de procesamiento del bloque, complete toda la longitud del bloque de acuerdo con un método determinado
NoPadding no llena.
El cifrado AES correspondiente es similar, pero si se utiliza cifrado AES, la clave debe tener 16 bytes.
Modo de cifrado y modo de relleno:
AES/CBC/NoPadding (128)
AES/CBC/PKCS5Padding (128)
AES/ECB/NoPadding (128)
AES/ECB/PKCS5Padding (128)
DES/CBC/NoPadding (56)
DES/CBC/PKCS5Padding (56)
DES/ECB/NoPadding (56)
DES/ECB/PKCS5Padding (56)
DESede/CBC/NoPadding (168) p>
DESede/CBC/PKCS5Padding (168)
DESede/ECB/NoPadding (168)
DESede/ECB/PKCS5Padding (168)
RSA/ECB/PKCS1Relleno (1024, 2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Relleno (1024, 2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Relleno (1024, 2048) p> p>
PD: Base64 es uno de los algoritmos de codificación legible más comunes utilizados para transmitir código de bytes de 8 bits en Internet
El algoritmo de codificación legible no es para proteger la seguridad de los datos, sino que es para legibilidad
La codificación de legibilidad no cambia el contenido de la información, solo cambia la forma de presentación del contenido de la información
La llamada Base64 significa que se utilizan 64 caracteres en la codificación proceso: mayúsculas de la A a la Z, minúsculas de la A a la z, números del 0 al 9, "+" y "/"
Principio del algoritmo Base64: base64 es un grupo de 3 bytes, un byte tiene 8 bits, 1 *** son 24 bits Luego, convierta los 3 bytes en 4 grupos, cada grupo es de 6 bits (3 * 8 = 4 * 6 = 24). , entonces la ventaja de hacer esto es que la base toma los últimos 6 dígitos y elimina los 2 dígitos superiores. Luego, el valor de base64 se puede controlar entre 0 y 63 dígitos, por eso se llama base64, 111 111 = 32 + 16 + 8. + 4 + 2 + 1 =
Diferencias de uso entre toString() y new String()
③ Cifrado asimétrico
El cifrado asimétrico tiene dos claves, pública clave (clave pública)) y la clave privada (clave privada), las claves utilizadas para las operaciones de cifrado y descifrado son diferentes. Después de cifrar el texto original con la clave pública, es necesario descifrarlo con la clave privada. Después de cifrar el texto original con la clave privada (esto generalmente se denomina firma), es necesario descifrarlo con la clave pública ( esto generalmente se llama verificación de firma). La clave pública se puede hacer pública. Todos usan la clave pública para cifrar la información y luego la envían al titular de la clave privada. El titular de la clave privada usa la clave privada para descifrar la información y obtener el texto original de la información. Debido a que la clave privada solo la posee una sola persona, no hay necesidad de preocuparse de que otros la descifren para obtener la información original.
Características:
El cifrado y el descifrado utilizan claves diferentes
Si se utiliza una clave privada para el cifrado, solo se puede utilizar la clave pública para el descifrado
Si se utiliza cifrado de clave pública, solo se puede utilizar la clave privada para descifrar
La velocidad de procesamiento de datos es más lenta debido al alto nivel de seguridad
Algoritmos comunes: RSA , ECC
Firma digital
La función principal de la firma digital es asegurar la validez de los datos (para verificar quién los envió) y su integridad (para demostrar que la información no ha sido manipulada). with). Es una aplicación de cifrado asimétrico y resumen de mensajes.
Uso de la herramienta Keytool
Ruta de la herramienta Keytool: C:\Program Files\Java\jre1.8.0_91\bin
--- FIN