lunes, 2 de febrero de 2009
Es el arte o ciencia de Cifrar y Decifrar información, utilizando técnica que hagan posible el intercambio de mensajes de manera segura. La finalidad de la criptografía es garantizar el secreto de la comunicación entre dos entidades (personas, organizaciones,etc).Una de las ramas de la criptografía que mas ha revolucionado el panorama actual de las tecnologías informáticas es el de la Firma Digital.Cifrado: Es el proceso de convertir el texto plano en unas galimatías ilegibles, denominado texto cifrado o criptograma. Se basa en la existencia de una clave. Decifrado: Es el proceso inverso que recupera el texto plano a partir del criptograma y la clave, el protocolo criptográfico especifica los detalles de como se utilizan los algoritmos.
CRIPTOGRAFIA CLASICA
Llamamos así a todos los sistemas de cifrado anteriores a la segunda guerra mundial, o lo que es lo mismo al nacimiento de los ordenadores. Se basa en algoritmos sencillos y claves muy largas para la seguridad. Estos perdieron su eficacia, debido a que son fácilmente criptoanalizables por los ordenadores. Todos los algoritmos criptográficos clásicos son simétricos.
CIFRADO POR SUSTITUCION
Se basa en la sustitucón de cada letra por otra letra para disfrazarla pero conservan el orden de los símbolos de texto normal. Entre ellos cabe destacar los siguientes: Algoritmo de césar, Métodos de cifrado monoalfabéticos, Polialfabeticos.
Algoritmo de césar: Debido a su nombre era usado por Julio Cesar para enviar mensajes secretos; consiste en sumar tres al numero de orden de cada letra. De esta forma a la A le corresponde la D, a la B le corresponde la E y así sucesivamente. Este algoritmo no posee clave, puesto que la tranformación siempre es la misma. Para decifrar basta con restar tres al número de orden de las letras del criptograma.
Método de cifrado monoalfabético: Sustituyen cada letra por otra que ocupa la misma posición en un alfabeto desordenado y esta correspondencia se mantiene a lo largo de todo el mensaje. Así se consiguen tantas claves como posibilidades de alfabetos hay.
Método de cifrado polialfabéticos: Corresponde a la aplicación cíclica de x cifrados monoalfabéticos, (de varios abecedarios desordenados). Un ejemplo típico es El cifrado de vigénere: Dada una tabla por cada letra del abecedario. Se busca una palabra clave fácil de recordar, se escribe la palabra debajo del texto en claro repitiéndose tantas veces que sea necesario. Cada letra del texto en claro se codifica con el alfabeto de la tabla marcado por la letra inferior, o sea, la letra de la clave que corresponda.
CIFRADO POR TRANSPOSICION
Se basa en la reordenación de las letras de un texto de acuerdo a una palabra clave escogida que no contiene letras repetidas.
Con la clave se enumeran las columnas, estando la columna 1 abajo la letra de la clave mas cercana al inicio del alfabeto, y así sucesivamente. El texto normal se escribe horizontalmente en filas. El texto cifrado se lee por columnas, comenzando por la columna cuya letra clave es mas baja.
Se puede criptoanalizar efectuando un estudio estadístico sobre la frecuencia de aparición de pares y tripletas de símbolos.
CIFRADO DE PRODUCTOS
Confusión: Tratar de ocultar la relación que existe entre el texto normal, el texto cifrado y la clave, es decir, realizar sustituciones simples.
Difusión: Trata de repartir la influencia de cada bit del mensaje original lo más posible en el mensaje cifrado, es decir, realizar permutaciones Estas técnicas consisten en trocear el mensaje en bloques de tamaño fijo, y aplicar la función de cifrado a cada uno de ellos. Destacar que la confusión por sí sola sería suficiente, pero ocuparía mucha memoria, por lo que sería inviable.
CRIPTOGRAFÍA MODERNA
La criptografía moderna se basa en las mismas ideas básicas que la criptografía tradicional, la transposición y la sustitución, pero con distinta orientación. En la criptografía moderna el objetivo es hacer algoritmos de cifrado complicados y rebuscados.
Segun el tratamiento del mensaje se dividen en:
Segun el tratamiento del mensaje se dividen en:
CIFRADO EN BLOQUE
DES
- El texto original se codifica en bloques de 64 bits, clave de 56 bits y 19 etapas diferentes.
- El descifrado se realiza con la misma clave y los pasos inversos.
- El inconveniente es que puede ser descifrado probando todas las combinaciones posibles, cosa que queda solucionada con Doble DES (ejecuta el DES 2 veces con 3 claves distintas) y el Triple Des (2 claves y 3 etapas).
- Tenemos una clave e 128 bits con 8 iteraciones.
- El descifrado se realiza aplicando el mismo algoritmo pero con subclaves diferentes.
- Se basa en la dificultad de factorizar números grandes por parte de los ordenadores.
- El principal inconveniente como es de suponer es la lentitud.
- Hay que destacar que el RSA pertenece a los algoritmos con clave pública mientras que el DES y el IDEA son algoritmos de clave secreta.
CIFRADO EN FLUJO (A5, RC4, SEAL) CIFRADO BIT A BIT
A5 Es el algoritmo de cifrado de voz. Gracias a él, la conversación va encriptada. Se trata de un algoritmo de flujo [stream cipher] con una clave de 64 bits. Hay dos versiones, denominadas A5/1 y A5/2; esta última es la versión autorizada para la exportación, y en consecuencia resulta más fácil de atacar.
Segùn el tipo de claves se dividen en:
Cifrado con clave secreta o Criptosistemas simétricos
Segùn el tipo de claves se dividen en:
Cifrado con clave secreta o Criptosistemas simétricos
- Existirá una única clave (secreta) que deben compartir emisor y receptor. Con la misma clave se cifra y se descifra por lo que la seguridad reside sólo en mantener dicha clave en secreto.
- Con Ek ciframos el mensaje original aplicándole la clave k y con Dk lo desciframos, aplicándole de la misma forma la clave k.La confidencialidad y la integridad se lograrán si se protegen las claves en el cifrado y en el descifrado. Es decir, se obtienen simultáneamente si se protege la clave secreta.
Cifrado con clave pública o Criptosistemas asimétricos
- Cada usuario crea un par de claves, una privada para descifrar y otra pública para cifrar, inversas dentro de un cuerpo finito. Lo que se cifra en emisión con una clave, se descifra en recepción con la clave inversa. La seguridad del sistema reside en la dificultad computacional de descubrir la clave privada a partir de la pública. Para ello, usan funciones matemáticas de un solo sentido con trampa.
- El nacimiento de la criptografía asimétrica se dio al estar buscando un modo más práctico de intercambiar las claves simétricas. Diffie y Hellman, proponen una forma para hacer esto, sin embargo no fue hasta que el popular método de Rivest Shamir y Adleman RSA publicado en 1978, cuando toma forma la criptografía asimétrica, su funcionamiento esta basado en la imposibilidad computacional de factorizar números enteros grandes.
Sistemas CEE (de curvas elipticas)
CCE es otro tipo de criptografía de clave pública es el que usa curvas elípticas definidas en un campo finito. La diferencia que existe entre este sistema y RSA es el problema matemático en el cual basan su seguridad. RSA razona de la siguiente manera: te doy el número 15 y te reta a encontrar los factores primos. El problema en el cual están basados los sistemas que usan curvas elípticas que denotaremos como CCE es el del logaritmo discreto elíptico, en este caso su razonamiento con números sería algo como: te doy el número 15 y el 3 y te reta a encontrar cuantas veces tienes que sumar el mismo 3 para obtener 15.
EL CONTROL DE INTEGRIDAD
Además en la criptografía de clave pública se ejerce también un control de la integridad (asegurarnos de que el mensaje recibido fue el enviado por la otra parte y no uno manipulado), para cumplir con este objetivo se utilizan funciones de dispersión unidireccional (o hash).
Además en la criptografía de clave pública se ejerce también un control de la integridad (asegurarnos de que el mensaje recibido fue el enviado por la otra parte y no uno manipulado), para cumplir con este objetivo se utilizan funciones de dispersión unidireccional (o hash).
La función de dispersión llamada compendio de mensaje, tiene 3 propiedades importantes:
Tanto el SHA como el MD5 se han demostrado inviolables hasta el momento, eso es lo que dicen los apuntes.
- Dado un mensaje P, es fácil calcular el compendio del mensaje MD (P).
- Dado un compendio MD (P), es computacionalmente imposible encontrar P, es decir no tiene inversa.
- No se pueden generar dos mensajes que tengan el mismo compendio, a menos que sean el mismo mensaje. Los algoritmos más importantes(o más utilizados son el MD5 y el SHA), los cuales pasamos a explicar:
- Opera con los bits, de forma que cada bit de salida es afectado por cada bit de entrada.
- Se coge el mensaje original y se rellena hasta conseguir una longitud de 448 módulo 512 bits
- Se añade al mensaje la longitud original del mismo como un entero de 46 bits.
- Se inicializa un buffer de 128 bits de tamaño a un valor fijo.
- En cada iteración cogemos un bloque de 512 bits de entrada y lo mezcla por completo con el buffer y los valores de una tabla construida a partir de los valores de una tabla de la función seno.
- Una vez terminado el cálculo, el buffer contiene el valor del compendio del mensaje.
- Genera un compendio de mensaje de 160 bits, funciona igual que el MD5, pero con un buffer de 160 bits.
- Es más seguro que el MD5, debido sobretodo a que utiliza un mayor número de bits que el MD5, pero como es normal también será más lento.
Tanto el SHA como el MD5 se han demostrado inviolables hasta el momento, eso es lo que dicen los apuntes.
EL NO REPUDIO
El no repudio, consiste en que el receptor puede saber a ciencia cierta de quien es el mensaje y esto lo podemos conseguir mediante la firma digital, al ser esta única, como si fuera una firma normal en un papel, tenemos como un acuse o un recibo, que demuestra quién ha enviado el mensaje.
Esto es un añadido a todo lo visto anteriormente que incluye más seguridad a la transmisión de mensajes entre los usuarios. Además la firma digital puede ser utilizada al igual que el hash tanto el los sistemas de clave pública como en los de clave privada. Por este motivo es muy utilizada en documentos legales y financieros.
Requisitos de la firma digital:
Ventajas de la firma digital:
El no repudio, consiste en que el receptor puede saber a ciencia cierta de quien es el mensaje y esto lo podemos conseguir mediante la firma digital, al ser esta única, como si fuera una firma normal en un papel, tenemos como un acuse o un recibo, que demuestra quién ha enviado el mensaje.
Esto es un añadido a todo lo visto anteriormente que incluye más seguridad a la transmisión de mensajes entre los usuarios. Además la firma digital puede ser utilizada al igual que el hash tanto el los sistemas de clave pública como en los de clave privada. Por este motivo es muy utilizada en documentos legales y financieros.
Requisitos de la firma digital:
- Debe ser fácil de generar.
- Será irrevocable, no rechazable por su propietario.
- Será única, sólo posible de generar por su propietario.
- Será fácil de autenticar o reconocer por su propietario y los usuarios receptores.
- Debe depender del mensaje y del autor.
Ventajas de la firma digital:
- Por lo anterior, la primera y principal ventaja de la firma digital en comparación de la firma autógrafa, es que el procedimiento de verificación es exacto y que es imposible en la práctica su falsificación.
- Otra ventaja de la firma digital es su portabilidad, es decir, la firma digital puede ser realizada en diferentes puntos del mundo, de forma simultánea y sin necesidad de testigos.
- Quizá la más notable desventaja actual de la firma digital en contra de la firma autógrafa, es que la primera no es valida legalmente aun en muchos países. Parece ser que esto obedece a una transición natural de esta nueva tecnología, que por lo tanto existe un rechazo en su aceptación a pesar de los grandes beneficios que proporciona.
- Otra desventaja visible de la firma digital, es que su seguridad depende de la clave privada, es decir, que si la clave privada se compromete por alguna causa, entonces, se compromete la seguridad de la firma digital, esto quiere decir que puede ser usada por individuos y eventos no autorizados.
CRIPTOANÁLISIS
criptoanálisis es la ciencia opuesta a la criptografía (quizás no es muy afortunado hablar de ciencias opuestas, sino más bien de ciencias complementarias), ya que si ésta trata principalmente de crear y analizar criptosistemas seguros, la primera intenta romper esos sistemas, demostrando su vulnerabilidad: dicho de otra forma, trata de descifrar los criptogramas. El término descifrar siempre va acompañado de discusiones de carácter técnico, aunque asumiremos que descifrar es conseguir el texto en claro a partir de un criptograma, sin entrar en polémicas de reversibilidad y solidez de criptosistemas. En el análisis para establecer las posibles debilidades de un sistema de cifrado, se han de asumir las denominadas condiciones del peor caso: (1) el criptoanalista tiene acceso completo al algoritmo de encriptación, (2) el criptoanalista tiene una cantidad considerable de texto cifrado, y (3) el criptoanalista conoce el texto en claro de parte de ese texto cifrado.
También se asume generalmente el Principio de Kerckhoffs, que establece que la seguridad del cifrado ha de residir exclusivamente en el secreto de la clave, y no en el mecanismo de cifrado. Aunque para validar la robustez de un criptosistema normalmente se suponen todas las condiciones del peor caso, existen ataques más específicos, en los que no se cumplen todas estas condiciones. Cuando el método de ataque consiste simplemente en probar todas y cada una de las posibles claves del espacio de claves hasta encontrar la correcta, nos encontramos ante un ataque de fuerza bruta o ataque exhaustivo. Si el atacante conoce el algoritmo de cifrado y sólo tiene acceso al criptograma, se plantea un ataque sólo al criptograma; un caso más favorable para el criptoanalista se produce cuando el ataque cumple todas las condiciones del peor caso; en este caso, el criptoanálisis se denomina de texto en claro conocido. Si además el atacante puede cifrar una cantidad indeterminada de texto en claro al ataque se le denomina de texto en claro escogido; este es el caso habitual de los ataques contra el sistema de verificación de usuarios utilizado por Unix, donde un intruso consigue la tabla de contraseñas (generalmente /etc/passwd) y se limita a realizar cifrados de textos en claro de su elección y a comparar los resultados con las claves cifradas (a este ataque también se le llama de diccionario, debido a que el atacante suele utilizar un fichero `diccionario' con los textos en claro que va a utilizar). El caso más favorable para un analista se produce cuando puede obtener el texto en claro correspondiente a criptogramas de su elección; en este caso el ataque se denomina de texto cifrado escogido.
Cualquier algoritmo de cifrado, para ser considerado seguro, ha de soportar todos estos ataques y otros no citados; sin embargo, en la criptografía, como en cualquier aspecto de la seguridad, informática o no, no debemos olvidar un factor muy importante: las personas. El sistema más robusto caerá fácilmente si se tortura al emisor o al receptor hasta que desvelen el contenido del mensaje, o si se le ofrece a uno de ellos una gran cantidad de dinero; este tipo de ataques (sobornos, amenazas, extorsión, tortura...) se consideran siempre los más efectivos.
CRIPTOSISTEMA ENFOCADO A LA MATEMÁTICA
Un conjunto finito llamado alfabeto, que según unas normas sintácticas y semánticas, permite emitir un mensaje en claro así como su correspondiente criptograma.
Un conjunto finito denominado espacio de claves formado por todas las posibles claves, tanto de encriptación como de desencriptación, del criptosistema.
Una familia de aplicaciones del alfabeto en sí mismo que denominamos transformaciones de cifrado.
Una familia de aplicaciones del alfabeto en sí mismo que denominamos transformaciones de descifrado.
CRIPTOSISTEMA ENFOCADO A LA INFORMÁTICA
Un conjunto finito denominado alfabeto, que permite representar tanto el texto en claro como el criptograma. A bajo nivel hablaríamos de bits, y a más alto nivel podríamos hablar de caracteres ASCII o MIME.
Un conjunto finito denominado espacio de claves. Estaría constituido por la totalidad de las claves posibles del criptosistema.
Una familia de transformaciones aritmético-lógicas que denominamos transformaciones de cifrado.
ALGORITMO CRIPTOGRÁFICO
Un algoritmo criptográfico, o cifrador, es una función matemática usada en los procesos de encriptación y desencriptación. Un algoritmo criptográfico trabaja en combinación con una llave (un número, palabra, frase, o contraseña) para encriptar y desencriptar datos. Para encriptar, el algoritmo combina matemáticamente la información a proteger con una llave provista. El resultado de este cálculo son los datos encriptados. Para desencriptar, el algoritmo hace un cálculo combinando los datos encriptados con una llave provista, siendo el resultado de esta combinación los datos desencriptados (exactamente igual a como estaban antes de ser encriptados si se usó la misma llave). Si la llave o los datos son modificados el algoritmo produce un resultado diferente. El objetivo de un algoritmo criptográfico es hacer tan difícil como sea posible desencriptar los datos sin utilizar la llave. Si se usa un algoritmo de encriptación realmente bueno, entonces no hay ninguna técnica significativamente mejor que intentar metódicamente con cada llave posible. Incluso para una llave de sólo 40 bits, esto significa 2ˆ40 (poco más de 1 trillón) de llaves posibles.
HASH
Hash se refiere a una función o método para generar claves o llaves que representen de manera casi unívoca a un documento, registro, archivo, etc., resumir o identificar un dato a través de la probabilidad, utilizando una función hash o algoritmo hash. Un hash es el resultado de dicha función o algoritmo. Una función de hash es una función para resumir o identificar probabilísticamente un gran conjunto de información, dando como resultado un conjunto imagen finito generalmente menor (un subconjunto de los números naturales por ejemplo). Varían en los conjuntos de partida y de llegada y en cómo afectan a la salida similitudes o patrones de la entrada. Una propiedad fundamental del hashing es que si dos resultados de una misma función son diferentes, entonces las dos entradas que generaron dichos resultados también lo son.
0 Comments:
Post a Comment