Criptografía de algoritmos criptográficos
Supongamos que el remitente quiere enviar un mensaje al receptor y quiere enviar el mensaje de forma segura: quiere asegurarse de que los espías no puedan ver el mensaje enviado.
(2) Mensaje y cifrado
El mensaje se llama texto sin formato. El proceso de disfrazar un mensaje de alguna manera para ocultar su contenido se llama cifrado, el mensaje cifrado se llama texto cifrado y el proceso de convertir texto cifrado en texto sin formato se llama descifrado.
El texto sin formato se representa mediante M (mensaje) o P (texto sin formato), que puede ser una secuencia de bits (archivo de texto, mapa de bits, secuencia de voz digitalizada o imagen de vídeo digitalizada). En cuanto a las computadoras, P son simplemente datos binarios. El texto sin formato se puede transmitir o almacenar y, en cualquier caso, m se refiere al mensaje que se va a cifrar.
El texto cifrado está representado por C, que también son datos binarios, a veces tan grandes como M, a veces un poco más grandes (mediante la combinación de compresión y cifrado, C puede ser más pequeño que P). Sin embargo, el cifrado por sí solo no suele conseguirlo). La función de cifrado e actúa sobre m para obtener el texto cifrado c. El texto cifrado c se expresa matemáticamente como:
E(M)=C.
Por el contrario, la función de descifrado d actúa sobre c, generando m.
D(C)=M.
Al cifrar el mensaje antes de descifrarlo, se recuperará el texto sin formato original. Se deben establecer las siguientes ecuaciones:
D(E(M))
(3) Identificación, integridad y no repudio
Además de brindar confidencialidad , el cifrado suele tener otras funciones:
(a) Identificación
El destinatario del mensaje debe poder confirmar la fuente del mensaje; el intruso no puede pretender ser otra persona;
Pruebas de integridad
El destinatario del mensaje debe poder verificar que el mensaje no ha sido modificado durante la transmisión; es imposible que un intruso reemplace un mensaje legítimo por uno falso; mensaje.
(c) Resistir la negación
El remitente no puede negar por error el mensaje que envió después del hecho.
(4) Algoritmos y claves
Los algoritmos criptográficos, también conocidos como cifrados, son funciones matemáticas utilizadas para el cifrado y descifrado. (Por lo general, hay dos funciones relacionadas: una para cifrar y otra para descifrar).
Si la confidencialidad del algoritmo se basa en mantenerlo en secreto, entonces el algoritmo se denomina algoritmo restringido. Los algoritmos restringidos son históricos, pero según los estándares actuales, están lejos de ser lo suficientemente seguros. No pueden ser utilizados por organizaciones de usuarios grandes o en constante cambio porque cada vez que un usuario abandona la organización, otros usuarios tienen que cambiar algoritmos diferentes. Si alguien revela un secreto sin darse cuenta, todos tienen que cambiar sus algoritmos.
Sin embargo, no es posible controlar ni estandarizar la calidad de los algoritmos de cifrado restringidos. Cada organización de usuarios debe tener su propio algoritmo único. Es poco probable que estas organizaciones adopten productos populares de hardware o software. Pero los espías pueden comprar estos productos populares y aprender los algoritmos, por lo que los usuarios deben escribir los algoritmos e implementarlos ellos mismos. Si la organización no cuenta con buenos criptólogos, no saben si tienen un algoritmo seguro.
A pesar de estos importantes fallos, los algoritmos restringidos siguen siendo muy populares para aplicaciones de baja seguridad, y los usuarios desconocen o no se preocupan por los problemas inherentes a sus sistemas.
La criptografía moderna utiliza una clave para resolver este problema. La clave está representada por K, y K puede ser cualquiera de muchos valores. El rango de valores posibles para la clave k se denomina espacio clave. Tanto las operaciones de cifrado como las de descifrado utilizan esta clave (es decir, ambas operaciones dependen de esta clave, con K utilizado como subíndice), por lo que la función de cifrado/descifrado ahora se convierte en:
EK(M)= C p>
DK(C)=M.
Estas funciones tienen las siguientes características:
DK(EK(M))=M
Algunos algoritmos utilizan diferentes claves de cifrado y claves de descifrado, concretamente El cifrado La clave K1 es diferente de la clave de descifrado K2 correspondiente. En este caso:
EK1(M)=C
DK2(C)=M
DK2 (EK1(M))=M
p>La seguridad de todos estos algoritmos es seguridad basada en claves, no seguridad basada en detalles del algoritmo. Esto significa que el algoritmo puede divulgarse y analizarse, y los productos que utilizan el algoritmo pueden producirse en masa, incluso si los espías conocen su algoritmo. Si no conoce la clave específica que utilizas, no podrá leer tus mensajes.
Los criptosistemas constan de algoritmos y todos los posibles textos planos, cifrados y claves.
Suele haber dos tipos de algoritmos basados en claves: algoritmos simétricos y algoritmos de clave pública. Se presentarán por separado a continuación: Los algoritmos simétricos a veces se denominan algoritmos criptográficos tradicionales, es decir, la clave de cifrado se puede calcular a partir de la clave de descifrado y viceversa. En la mayoría de los algoritmos simétricos, las claves de cifrado/descifrado son las mismas. Estos algoritmos, también conocidos como algoritmos de clave única o de clave, requieren que el remitente y el receptor acuerden una clave antes de comunicarse de forma segura. La seguridad de los algoritmos simétricos depende de la clave, y filtrar la clave significa que cualquiera puede cifrar/descifrar mensajes. Mientras las comunicaciones deban mantenerse en secreto, la clave debe mantenerse en secreto.
El cifrado y descifrado del algoritmo simétrico se expresa como:
EK(M)=C
DK(C)=M
Los algoritmos simétricos se pueden dividir en dos categorías. Los algoritmos que operan con un bit (a veces un byte) de texto sin formato a la vez se denominan algoritmos de secuencia o cifrados de secuencia. Otro algoritmo consiste en realizar operaciones ADB en un grupo de bits en texto sin formato, lo que se denomina agrupación. El algoritmo correspondiente se denomina algoritmo de agrupación o cifrado en bloque. La longitud de bloque típica de los algoritmos criptográficos informáticos modernos es de 64 bits, una longitud lo suficientemente grande como para evitar el análisis y la decodificación, pero lo suficientemente pequeña como para ser utilizada (antes de las computadoras, los algoritmos generalmente operaban en el texto sin formato, un carácter a la vez y podían considerarse como una secuencia Operaciones de contraseña en secuencias de caracteres). Los algoritmos de clave pública (también llamados algoritmos asimétricos) están diseñados de tal manera que la clave utilizada para el cifrado es diferente de la clave utilizada para el descifrado, y la clave de descifrado no se puede calcular a partir de la clave de cifrado (al menos durante un período considerable de tiempo). tiempo). Se denomina algoritmo de clave pública porque la clave de cifrado es pública, es decir, extraños pueden usar la clave de cifrado para cifrar información, pero solo la clave de descifrado correspondiente puede descifrar la información. En estos sistemas, la clave de cifrado se denomina clave pública y la clave de descifrado se denomina clave privada. La clave privada a veces se denomina clave secreta. Para evitar confusiones con los algoritmos simétricos, aquí no se utiliza el nombre clave secreta.
El cifrado mediante la clave pública k se expresa como
EK(M)=C.
Aunque la clave pública y la clave privada son diferentes, el descifrado con la clave privada correspondiente se puede expresar como:
DK(C)=M
A veces la mensaje Utilice la clave privada para cifrar, utilice la clave pública para descifrar y la clave pública se utilice para firmas digitales (que se describen en detalle más adelante). Aunque pueda surgir confusión, estas operaciones se pueden expresar de la siguiente manera:
EK(M)=C
DK(C)=M
Algoritmos criptográficos actualmente públicos La velocidad es mucho más lenta que la de los algoritmos criptográficos simétricos, lo que limita la aplicación de algoritmos criptográficos públicos en el cifrado de datos a gran escala. La función hash unidireccional H(M) actúa sobre un mensaje M de longitud arbitraria y devuelve un valor hash de longitud fija H, donde la longitud de H es M.
Hay muchos tipos de funciones con entradas arbitrarias y salidas fijas, pero las funciones hash unidireccionales tienen otras características que las hacen unidireccionales:
(1) Dado m, es fácil Calcular h
(2) Dado H, es difícil calcular M según H(M) = h
(3) Dado M, es difícil; encuentre otro mensaje M' y satisfaga H(M)= H(M').
En muchas aplicaciones, una sola dirección no es suficiente, también se requiere una condición llamada "anticolisión":
Es difícil encontrar dos mensajes aleatorios M y M', De modo que H(M)=H(M') se cumple.
Debido a estas características de la función hash, y también a que la velocidad de cálculo de los algoritmos criptográficos públicos suele ser muy lenta, en algunos protocolos criptográficos se puede utilizar como un resumen de un mensaje M en sustitución del mensaje original M, para que el remitente pueda usar H (M) en lugar de M para firmar.
Por ejemplo, el algoritmo hash SHA se utiliza en el protocolo de firma digital DSA. Cuando se trata de firmas digitales, la criptografía de clave pública y la tecnología hash son indispensables.
Existen varios algoritmos de clave pública que se pueden utilizar como firmas digitales. En algunos algoritmos, como RSA, se pueden utilizar claves públicas o privadas para el cifrado. Cifre el archivo con su clave privada y tendrá una firma digital segura. En otros casos, como DSA, el algoritmo distingue los algoritmos de firma digital del uso para el cifrado. Esta idea fue propuesta por primera vez por Diffie y Hellman.
El protocolo básico es simple:
(1) A usa su clave privada para cifrar y firmar el archivo.
(2)A envía el archivo firmado a B.
(3) B usa la clave pública de A para descifrar el archivo y verificar la firma.
En este protocolo, sólo es necesario demostrar que la clave pública de A es efectivamente la suya. Si B no puede completar el paso (3), entonces sabe que la firma no es válida.
El protocolo cumple además con las siguientes características:
(1) La firma es confiable. Cuando B verifica el mensaje con la clave pública de A, sabe que el mensaje fue firmado por A.
(2) La firma es infalsificable. Sólo A conoce su clave privada.
(3) La firma no se puede reutilizar. La firma es una función del archivo y no se puede convertir a otro archivo.
(4) El documento firmado es irrevocable. Si algo cambia en el archivo, será imposible verificar el archivo con la clave pública de A.
(5) La firma es innegable. b puede verificar la firma de A sin la ayuda de A. El cifrado es una técnica para codificar y decodificar información. La codificación consiste en traducir información originalmente legible (también llamada texto sin formato) en forma de código (también llamada texto cifrado), y el proceso inverso es decodificar (descifrar). El punto clave de la tecnología de cifrado es el algoritmo de cifrado, que se puede dividir en tres tipos: cifrado simétrico, cifrado asimétrico y cifrado irreversible.
Algoritmo de cifrado simétrico El algoritmo de cifrado simétrico es uno de los primeros algoritmos de cifrado y la tecnología es relativamente madura. En el algoritmo de cifrado simétrico, el remitente de datos utiliza un algoritmo de cifrado especial para procesar el texto sin formato (datos originales) y la clave de cifrado juntos, convirtiéndolos en texto cifrado cifrado complejo y enviándolos. Una vez que el receptor recibe el texto cifrado, si quiere descifrar el texto original, debe utilizar la clave de cifrado y el algoritmo inverso del mismo algoritmo para descifrar el texto cifrado y restaurarlo a texto sin formato legible. En un algoritmo de cifrado simétrico, solo se utiliza una clave, y tanto el remitente como el receptor utilizan esta clave para cifrar y descifrar datos, lo que requiere que el descifrador conozca la clave de cifrado de antemano. Las características del algoritmo de cifrado simétrico son algoritmo abierto, pequeña cantidad de cálculo, velocidad de cifrado rápida y alta eficiencia de cifrado. La desventaja es que ambas partes de la transacción utilizan la misma clave y no se puede garantizar la seguridad. Además, cada par de usuarios necesita usar una clave única que los demás desconocen cada vez que usan el algoritmo de cifrado simétrico. Esto hará que la cantidad de claves propiedad del remitente y del receptor aumente exponencialmente, y la administración de claves se convierta en una carga. para los usuarios. Los algoritmos de cifrado simétrico son difíciles de utilizar en sistemas de redes distribuidas, principalmente debido a la dificultad de la gestión de claves y los altos costos de uso. Los algoritmos de cifrado simétrico ampliamente utilizados en sistemas de red específicos de computadoras incluyen DES e IDEA. AES, defendido por la Oficina Nacional Estadounidense de Estándares, pronto reemplazará a DES como nuevo estándar.
Algoritmos de cifrado asimétrico Los algoritmos de cifrado asimétrico utilizan dos claves completamente diferentes pero perfectamente coincidentes: una clave pública y una clave privada. Cuando se utiliza un algoritmo de cifrado asimétrico para cifrar un archivo, solo se necesita un par de claves públicas y privadas coincidentes para completar el proceso de cifrado y descifrado de texto sin formato. Utilice la clave pública para cifrar el texto sin formato y utilice la clave privada para descifrar el texto cifrado. Además, el remitente (cifrador) conoce la clave pública del receptor y sólo el receptor (descifrador) conoce su propia clave privada. El principio básico del algoritmo de cifrado asimétrico es que si el remitente desea enviar información cifrada que solo el receptor puede interpretar, el remitente primero debe conocer la clave pública del receptor y luego utilizar la clave pública del receptor para cifrar el texto original después de recibirlo; el texto cifrado cifrado Finalmente, el destinatario sólo puede descifrar el texto cifrado con su propia clave privada. Obviamente, utilizando un algoritmo de cifrado asimétrico, antes de que el remitente y el receptor se comuniquen, el receptor debe enviar su clave pública generada aleatoriamente al remitente, mientras que la clave privada se conserva sola. Dado que los algoritmos asimétricos tienen dos claves, son especialmente adecuados para el cifrado de datos en sistemas distribuidos. Los algoritmos de cifrado asimétrico ampliamente utilizados incluyen el algoritmo RSA y el algoritmo DSA propuestos por la Oficina Nacional de Estándares de Estados Unidos. La tecnología de cifrado basada en algoritmos de cifrado asimétrico se utiliza ampliamente.
La característica del algoritmo de cifrado irreversible es que no se requiere ninguna clave durante el proceso de cifrado y el sistema no puede descifrar los datos cifrados después de ingresar texto sin formato. Sólo volviendo a ingresar el texto sin formato y procesándolo con el mismo algoritmo de cifrado irreversible el sistema puede obtener y volver a identificar el mismo texto cifrado. Obviamente, en este proceso de cifrado, el cifrado es suyo y el descifrado también debe ser suyo. El llamado descifrado es en realidad un nuevo cifrado y la "contraseña" de la aplicación es el texto sin formato ingresado. El algoritmo de cifrado irreversible no presenta el problema del almacenamiento y distribución de claves y es muy adecuado para su uso en sistemas de redes distribuidas. Sin embargo, debido a la complejidad de los cálculos de cifrado y la gran carga de trabajo, generalmente solo se usa cuando los datos son limitados. Por ejemplo, el cifrado de contraseñas ampliamente utilizado en sistemas informáticos utiliza algoritmos de cifrado irreversibles.
En los últimos años, con la mejora continua del rendimiento de los sistemas informáticos, los campos de aplicación del cifrado irreversible están aumentando gradualmente. Existen muchos algoritmos de cifrado irreversibles utilizados en redes informáticas, como el algoritmo MD5 inventado por RSA y el SHS (Secure Hash Standard) propuesto por la Oficina Nacional Estadounidense de Estándares.