¿Qué es el cifrado de datos?
El término para el cifrado de datos es: texto plano, es decir, datos originales o no cifrados. Cifre con un algoritmo de cifrado. La información de entrada del algoritmo de cifrado es texto sin formato y la clave es el formato de cifrado del texto sin formato y es la información de salida del algoritmo de cifrado. El algoritmo de cifrado es público, pero la clave no. El texto cifrado, que los usuarios no deberían poder leer sin la clave, se utiliza para el almacenamiento y la transmisión de datos.
Ejemplo: El texto sin formato es una cadena:
Cuando el martín pescador está en llamas
(Para simplificar, suponga que los caracteres de datos procesados son solo letras mayúsculas y caracteres de espacio). Supongamos que la clave es una cadena:
Apellido
El algoritmo de cifrado es:
1) Divida el texto sin formato en bloques de la longitud de la cadena de clave. (use "+ para espacios" "express").
Su + está en llamas
2) Reemplace cada carácter del texto plano con un número entero en el rango de 00~26, carácter de espacio=00, A=01,... ,Z = 26
0119001109 1407060919 0805181900 0301200308 0006091805
3) Reemplace cada carácter de la clave como se describe en el paso 2:
0512091520
4) Para cada bloque de texto plano, reemplace cada carácter con el valor módulo 27 de la suma del código entero correspondiente y el código entero del carácter en la posición correspondiente en la clave:
5) Utilice El carácter equivalente reemplaza el código entero en el resultado del paso 4:
FDIZB SSOXL MQ+GT HMBRA ERRFY
El proceso de descifrado de este ejemplo es simple si se proporciona la clave. La pregunta es qué tan difícil sería para un atacante malintencionado obtener la clave utilizando texto sin formato y texto cifrado sin conocer la clave. Para el ejemplo simple anterior, la respuesta es bastante fácil, generalmente no fácil, pero los métodos de cifrado complejos también son fáciles de diseñar. Idealmente, el modo de cifrado utilizado debería hacer que el coste para el atacante sea mayor que la ganancia para él. De hecho, este propósito se aplica a todas las medidas de seguridad. El objetivo final aceptable de este modo de cifrado es que ni siquiera el inventor de este modo pueda obtener la clave haciendo coincidir el texto sin formato y el texto cifrado y, por tanto, no pueda descifrar el texto cifrado.
1. Estándar de cifrado de datos
Existen dos métodos de cifrado tradicionales, sustitución y sustitución. El ejemplo anterior utiliza otro enfoque: usar una clave para convertir cada carácter del texto sin formato en un carácter del texto cifrado. El reemplazo simplemente reorganiza los caracteres del texto sin formato en un orden diferente. Ninguno de los métodos es seguro cuando se utiliza solo, pero combinarlos puede proporcionar una seguridad considerable. El Estándar de cifrado de datos (DES) utiliza esta combinación de algoritmos y fue desarrollado por IBM y se convirtió en el estándar de cifrado oficial de EE. UU. en 1977.
DES funciona dividiendo el texto sin formato en muchos bloques de 64 bits y cada bloque se cifra con una clave de 64 bits. De hecho, la clave consta de 56 bits de datos y 8 bits de paridad, por lo que sólo hay 256 contraseñas posibles, no 264. Primero, cada bloque se cifra con el método de permutación inicial, luego se realizan 16 permutaciones complejas consecutivas y finalmente se realiza sobre él la operación inversa de la permutación inicial. El reemplazo en el paso I no es usar la clave original K directamente, sino usar la clave Ki calculada a partir de K e I.
DES tiene la propiedad de que excepto aplicar las claves Ki en el orden inverso En Además, el algoritmo de descifrado es el mismo que el algoritmo de cifrado.
2. Cifrado de clave pública
A lo largo de los años, muchas personas han creído que DES no es realmente seguro. De hecho, incluso sin métodos inteligentes, con la llegada de procesadores rápidos y altamente paralelos, es posible romper DES por fuerza bruta. Los métodos de cifrado de "clave pública" hacen que DES y técnicas de cifrado tradicionales similares queden obsoletas. En el método de cifrado de clave pública, el algoritmo de cifrado y la clave de cifrado son públicos y cualquiera puede convertir texto sin formato en texto cifrado. La clave de descifrado correspondiente es confidencial (el método de clave pública incluye dos claves para cifrado y descifrado) y no puede derivarse de la clave de cifrado, por lo que ni siquiera el cifrador puede corresponder sin autorización.
La idea del cifrado de clave pública fue propuesta originalmente por Diffie y Hellman, los más famosos de los cuales son Rivest, Shamir y Adleman. Ahora comúnmente conocido como RSA (llamado así por las primeras letras de los tres inventores), se basa en los dos hechos siguientes:
1) Existe un algoritmo rápido para determinar si un número es primo;
1) Existe un algoritmo rápido para determinar si un número es primo;
p>
2) Aún no se ha encontrado un algoritmo rápido para determinar los factores primos de un número compuesto.
El principio de funcionamiento del método RSA es el siguiente:
1) Seleccione aleatoriamente dos números primos grandes diferentes p y q y calcule el producto r = p * q;
2) Seleccione aleatoriamente un número entero grande e, e es primo relativo con (p-1)*(q-1), y el número entero e se utiliza como clave de cifrado. Nota: La selección de e es fácil, por ejemplo, todos los números primos mayores que p y q están disponibles.
3) Determinar la clave de descifrado d:
d * e = 1 módulo (p - 1)*(q - 1)
De e, p y q se puede calcular fácilmente d.
4) Revelar los números enteros r y e, pero no d;
5) Cifrar el texto sin formato p (asumiendo que p es un número entero menor que r) en el texto cifrado c. El método es el siguiente:
C = Pe mod r
6) Descifrar el texto cifrado c en texto plano p. Cd mod r
Sin embargo, es imposible calcular D sólo a partir de R y E (en lugar de P y Q). Por lo tanto, cualquiera puede cifrar el texto sin formato, pero sólo los usuarios autorizados (que conocen D) pueden descifrar el texto cifrado.
Ponemos un ejemplo sencillo para ilustrar el proceso anterior. Evidentemente, sólo podemos elegir unos pocos.
Ejemplo: Si p = 3, q = 5, entonces r=15, (p-1)*(q-1)=8. Elija e=11 (un número primo mayor que P y Q) y calcule d =3 a partir de D * 11 = 1moduo8.
Supongamos que el texto plano es un número entero de 13. Entonces el texto cifrado c es
C = Pe mod r
= 1311 mod 15
= 1.792.160.394.037 mod 15
= 7 p>
El texto plano recuperado p es:
P = Cd mod r
= 73 mod 15
= 343 módulo 15
= 13
Debido a que E y D son recíprocos, el método de cifrado de clave pública también permite "firmar" la información cifrada de esta manera, de modo que el destinatario puede estar seguro de que la firma no es falsificado. Supongamos que A y B quieren transmitir datos mediante cifrado de clave pública. A y B revelan respectivamente el algoritmo de cifrado y la clave correspondiente, pero no revelan el algoritmo de descifrado y la clave correspondiente. Los algoritmos de cifrado de A y B son ECA y ECB, los algoritmos de descifrado son DCA y DCB, ECA y DCA son recíprocos y ECB y DCB son recíprocos. Si A quiere enviar texto sin formato P a B, en lugar de simplemente enviar ECB(P), primero aplica su algoritmo de descifrado DCA a P y luego utiliza el algoritmo de cifrado ECB para cifrar el resultado y enviarlo. El texto cifrado c es:
C = Banco Central Europeo
Después de recibir C, B aplica su algoritmo de descifrado DCB y su algoritmo de cifrado ECA en secuencia para obtener el texto sin formato P:
ECA
= ECA(DCB(ECB(DCA(P)))
= ECA(DCA(P)) /*DCB y ECB se cancelan entre sí*/
= P /*DCB y ECB se cancelan mutuamente*/
De esta manera, B puede determinar que el mensaje efectivamente se envía desde A, porque solo si el proceso de cifrado utiliza el algoritmo DCA, P puede ser obtenido por ECA, y solo A conoce el algoritmo DCA, nadie, ni siquiera B, puede falsificar la firma de A.