lunes, 7 de julio de 2014

CRIPTOGRAFIA

CRIPTOGRAFIA

1. DEFINICIÓN DE LA CRIPTOGRAFIA

1.1 DESCRIPCIÓN
  • La criptografía es la técnica de convertir un texto inteligible, texto en claro (plaintext), en otro, llamado Criptograma (ciphertext), cuyo contenido de información es igual al anterior pero sólo lo pueden entender las personas autorizadas.
  • Para encriptar se debe transformar un texto mediante un método cuya función inversa únicamente conocen las personas autorizadas. Así se puede utilizar un algoritmo secreto (Figura 1) o un algoritmo público que utiliza una palabra, llamada clave, sólo conocida por las personas autorizadas, esta clave debe ser imprescindible para la encriptación y desencriptación (Figura 2).



1.2 LOS SISTEMAS ACTUALES UTILIZAN ALGORITMO PUBLICO Y CLAVES SECRETAS, DEBIDO A LOS SIGUIENTES MOTIVOS:   
  • El nivel de seguridad es el mismo.
  • Los algoritmos públicos se pueden fabricar en cadena, tanto chips de hardware como aplicaciones software. De está manera el desarrollo es más barato.
  • Los algoritmos públicos están más probados, ya que toda la comunidad científica puede trabajar sobre ellos buscando fallos o agujeros. 
  • Un algoritmo secreto puede tener agujeros detectables sin necesidad de conocer su funcionamiento completo, por lo tanto, un criptoanalista puede encontrar fallos aunque no conozca el secreto del algoritmo.
  • Es más fácil y más seguro transmitir una clave que todo el funcionamiento de un algoritmo.
Así un sistema de comunicaciones con criptografía utiliza un algoritmo público para encriptar y otro para desencriptar, pero son completamente inservibles para el criptoanalista sin el conocimiento de la clave (Figura 3).


1.3 CLASIFICACIÓN POR TIPO DE CLAVE

Las técnicas de criptografía moderna se pueden clasificar en dos según el tipo de clave utilizado:
1. Criptografía simétrica.
2. Criptografía de clave pública o asimétrica.

1.3.1. Criptografía simétrica: 
Es el sistema de criptografía más antiguo. Se utiliza desde los tiempos de Julio Cesar hasta la actualidad. Se caracteriza por usar la misma clave para encriptar y desencriptar (Figura 4).
Toda la seguridad está basada en la privacidad de esta clave secreta, llamada simétrica porque es la misma para el emisor y el receptor.
El emisor del mensaje genera una clave y después la transmite mediante un canal seguro a todos los usuarios autorizados a recibir mensajes. 
La distribución de claves es un gran problema para los sistemas simétricos, hoy en día se resuelve mediante sistemas asimétricos montados únicamente para transmitir claves simétricas.
Estos sistemas sólo permiten confidencialidad y no autenticación ni firma digital. 
Para mantener la confidencialidad delante de un criptoanalista, el algoritmo debe cumplir las siguientes condiciones:
· Conocido el criptograma no se puede descifrar el texto ni adivinar la clave.
· Conocido el texto y el criptograma es más caro (en tiempo y/o dinero) descifrar la clave que el valor de la información.
Para la segunda condición siempre existe el sistema de “prueba y ensayo” para encontrar la clave, es decir, probar todas las claves posibles hasta encontrar la que descifra el criptograma. La seguridad respecto a este tipo de ataque depende de la longitud de la clave.

Los algoritmos simétricos encriptan bloques de texto, el tamaño de los bloques puede se constante o variable según el tipo de algoritmo. Tienen 4 formas de funcionamiento (Figura 5):

· Electronic CodeBook (ECB). Se encriptan los bloques de texto por separado.
· Cipher Block Chainning (CBC). Los bloques de criptograma se relacionan entre
ellos mediante funciones OR-EXCLUSIVA.
· Cipher FeedBack (CFB). Se realiza una OR-EXCLUSIVA entre caracteres o bits aislados del texto y las salidas del algoritmo. El algoritmo utiliza como entrada los criptogramas.
· Output FeedBack (OFB). Igual que el CFB, se realiza una OR-EXCLUSIVA entre caracteres o bits aislados del texto y las salidas del algoritmo. Pero éste utiliza como entradas sus propias salidas, por lo tanto no depende del texto, es un generador de números aleatorios.




Los algoritmos simétricos son más sencillos que los asimétricos, por ese motivo los
procesos son más simples y rápidos. Los algoritmos más utilizados son:

· DES (Data Encryption Standard). El más utilizado y más antiguo, en 20 años nunca ha sido roto. Está sujeto a las leyes de seguridad de U.S.A.

IDEA (International Data Encryption Algorithm). Se utiliza mucho en sistemas nuevos europeos. No está sujeto a las leyes de ningún país.

· RC5. Algoritmo adoptado por Netscape, no está probada completamente su seguridad.
La organización de estándares de los EE.UU. (NIST) está haciendo actualmente un concurso para buscar el nuevo algoritmo simétrico estándar. Este sistema se llamará 

·AES (Advanced Encryption Standard) y el algoritmo AEA (Advanced Encryption Algorithm) que se decidirá entre 15 algoritmos candidatos. Esta elección afectará mucho a la industria de los sistemas simétricos porque se utilizará para todas las comunicaciones oficiales y militares de los EE.UU., por lo tanto:
· Se producirá hardware y software del algoritmo en grandes cantidades y a un precio asequible.
· Será probado por los expertos más prestigiosos del mundo. Así, probablemente, las empresas privadas lo adoptarán en un plazo razonable.


1.3.2 CRIPTOGRAFIA DE CLAVE PUBLICA O ASIMETRICA

En 1976 Diffie y Hellman publicaron el artículo “New directions in cryptography”. En él proponían un nuevo tipo de criptografía basado en utilizar claves distintas para encriptar y desencriptar, una de ellas se hace pública y la otra es privada de cada usuario. Así todos los usuarios de la red tienen acceso a las claves públicas, pero únicamente a su clave privada. Estas ideas supusieron la revolución de la criptología,
se podía utilizar para confidencialidad (como los sistemas simétricos), autenticación y firma digital, además de solucionar el problema de la distribución de claves simétricas.
Para cada tipo de servicio se encripta de manera diferente:

· Confidencialidad. El emisor encripta el texto con la clave pública del receptor y el receptor lo desencripta con su clave privada. Así cualquier persona puede enviar un mensaje encriptado, pero sólo el receptor, que tiene la clave privada, y el emisor, que lo ha creado, pueden descifrar el contenido (Figura 6).

· Autenticación. Se encripta el mensaje o un resumen de éste mediante la clave privada y cualquier persona puede comprobar su procedencia utilizando la clave pública del emisor. El mensaje es auténtico porque sólo el emisor verdadero puede encriptar con su clave privada (Figura 7).

·  Firma digital. Igual que la autenticación pero siempre se encripta el resumen del mensaje, cuyo criptograma es la firma del emisor. Así el emisor no puede negar la procedencia ya que se ha encriptado con su clave privada. Por otro lado, el receptor no puede modificar el contenido porque el resumen sería diferente y se vería que no coincide con la desencriptación de la firma. Pero el receptor si puede comprobar que el resumen coincide con la firma desencriptada para ver si es auténtico (Figura 8). La firma digital lleva implícita la autenticación.
Se puede realizar sistemas completos con autenticación o firma y confidencialidad.







Los algoritmos asimétricos están basados en funciones matemáticas fáciles de resolver pero muy complicadas de realizar la inversa, por ejemplo, la potencia y el logaritmo.
Estas funciones son útiles para criptografía si la inversa es fácil de calcular conociendo un número concreto, la clave privada. Así la clave privada y pública están relacionadas matemáticamente, pero esta relación debe ser suficientemente compleja para que el criptoanalista no la pueda encontrar. Debido a esto, las claves privadas y públicas no las elige el usuario sino que las calcula un algoritmo y, normalmente, son
muy largas.
Un algoritmo de clave pública debe cumplir:
· Conocido el criptograma no se puede descifrar el texto ni adivinar la clave.
· Conocido el texto y el criptograma es más caro (en tiempo y/o dinero) descifrar la clave que el valor de la información.


· Conocida la clave pública y el texto no se puede generar un criptograma

encriptado con clave privada.


·En estos sistemas también funciona el criptoanálisis de “prueba y ensayo” y se puede aplicar las mismas suposiciones que en algoritmos simétricos. Aparte de este método, también hay algoritmos matemáticos para obtener la clave privada desde la pública pero, si el algoritmo es bueno, éstos son más caros que el valor de la información. Para complicar estos sistemas de criptoanálisis se utilizan claves muy largas.

En estos sistemas también funciona el criptoanálisis de “prueba y ensayo” y se puede aplicar las mismas suposiciones que en algoritmos simétricos. Aparte de este método, también hay algoritmos matemáticos para obtener la clave privada desde la pública pero, si el algoritmo es bueno, éstos son más caros que el valor de la información. Para complicar estos sistemas de criptoanálisis se utilizan claves muy largas.

Únicamente para firma digital también se utiliza el algoritmo DSS (Digital Signature Standard) que ha sido adoptado como estándar por el NIST.

Para distribuir claves simétricas también se utiliza el algoritmo Diffie-Hellman, pero no sirve para confidencialidad, autenticación ni firma digital.





No hay comentarios.:

Publicar un comentario