TRABAJO DE SEGURIDAD DE REDES
TEMA: CRIPTOGRAFIA
INTEGRANTES: ANIBAL OSMA MOISES GONZALEZ
INGENIERO: JOSE PALACIOS
CORPORACION UNIVERSITARIA AMERICANA INGENIERIA DE SISTEMAS SEMESTRE IX 2013
Tabla de contenido
Introducción 1. Criptografia 2. Diferencias entre codificación y cifrado
3. Tipos de cifrados 4. Algoritmos de cifrado 5. Firma Digital 6. Algoritmos de firma digital
Conclusión
Bibliografía
Introducción
Desde el principio de la historia intercambiar mensajes cifrados ha jugado un papel destacado. Tanto en la milicia, diplomacia y el espionaje, constituyen la mejor defensa de las comunicaciones y datos que se transmiten, por cualquier canal. Esto es debido a la necesidad de que algunos de los mensajes solo sean conocidos por aquellas personas a las que van dirigidos y no puedan ser interpretados por nadie más que por ellos. En la era de la información como algunos llaman a la época en la que vivimos como se puede pensar la protección de la información es uno de los retos más fascinantes de la informática del futuro. Representada por archivos confidenciales o mensajes que se intercambian dos o más interlocutores autenticados y cuyo contenido en muchos casos debe mantenerse en secreto por razones personales, empresariales, políticas o de otra índole, la información es el bien más preciado en estos días. Por poner sólo un ejemplo sencillo y común, un problema de gran actualidad es el asociado con el correo electrónico que se transmite a través de redes y cuyo nivel seguridad deja mucho que desear. Internet es un claro ejemplo de estas amenazas en tanto es un entorno abierto en su sentido más amplio. Por lo visto en estos pocos años de existencia de la llamada red de redes, sobran los comentarios acerca de pérdida de privacidad, accesos no autorizados, ataques y otros delitos informáticos a nivel nacional e internacional. Ante tales amenazas, la única solución consiste en proteger nuestros datos mediante el uso de técnicas criptográficas. Esto nos permitirá asegurar al menos dos elementos básicos de la Seguridad Informática, a saber la confidencialidad o secreto de la información y la integridad del mensaje, además de la autenticidad del emisor
1. Criptografía
La palabra cristología proviene de las palabras griegas Krypto y Logos, y significa estudio de lo oculto. Una rama de la criptología es la criptografía (Kryptos y Graphos que significa descripción), que se ocupa del cifrado de mensajes. Esta se basa en que el emisor emite un mensaje en claro, que es tratado mediante un cifrador con la ayuda de una clave, para crear un texto cifrado. Este texto cifrado, por medio de un canal de comunicación establecido, llega al descifrador que apoyándose en diversos métodos como veremos más adelante, extrae el texto original. Según explica Jorge Ramió Aguirre en su libro “Seguridad Informática” la criptografía es: “Rama inicial de las Matemáticas y en la actualidad de la Informática y la Telemática, que hace uso de métodos y técnicas con el objeto principal de cifrar y/o proteger un mensaje o archivo por medio de un algoritmo, usando una o más claves. Esto da lugar a diferentes tipos de sistemas de cifra que permiten asegurar
estos cuatro aspectos de la seguridad informática: la confidencialidad, la integridad, la disponibilidad y el no repudio de emisor y receptor.” Que como podemos pensar es una descripción mucho más acertada que la que nos podemos encontrar en muchos libros, así como la definición que nos hace la Real Academia de la Lengua RAE. Otra definición a tener en cuenta es el significado de criptoanálisis, el cual es el arte y la ciencia de transgredir las claves de acceso, es decir la que se encarga de descifrar los mensajes. En la siguiente figura podemos observar un ejemplo de un criptosistema que nos muestra como sería el funcionamiento esquemático, sea cual sea el canal de transmisión, del cifrado y descifrado de un mensaje en su paso del transmisor al receptor.
Criptografía clásica
Como ya hemos explicado con anterioridad la criptografía no surge con la era informática, sino que ya viene desde los principios de la historia. Algunos de los algoritmos que han sido utilizados son los siguientes:
Relleno de una sola vez Cifrado: Se escoge una cadena de bits al azar como clave, y se va aplicando sobre el texto normal con una XOR bit a bit Descifrado: Se vuelve a aplicar XOR con la misma cadena de cifrado. Inconvenientes: Manejo de la clave entre emisor y receptor y su sincronización.
Sustitución
Consiste en la sustitución de parte del texto original, mediante el desplazamiento (rígido o progresivo) o bien utilizando coordenadas de tablas. Ejemplos de este tipo son (Cifrado de Julio Cesar, Polybus y Trithemius). La forma de descifrar es invirtiendo el cifrado, y mantiene los mismos problemas que el de relleno.
Transposición
Se basa en la reordenación aplicada al texto original mediante una clave establecida. Al igual que en el primer método el descifrado se realiza mediante la clave y de nuevo la reordenación, presenta los mismos inconvenientes que el primer método. Como hemos podido observar en los algoritmos explicados anteriormente la dificultad en el cifrado y el descifrado no es muy complejo, si tenemos en cuenta las posibilidades que nos ofrecen hoy en día los ordenadores, la capacidad de cómputo es muy elevada. Por otra parte hay que tenerlos en cuenta pues sientan las bases de la criptografía y nos indican lo importante que ha sido la información.
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.
2. Diferencias entre codificación y cifrado.
Las operaciones de cifrado y de codificación forman parte de la teoría de la información. La diferencia esencial reside en la voluntad de proteger las informaciones y de impedir a terceras personas de acceder a los datos en el caso del cifrado. La codificación consiste en transformar información (de los datos) hacia un conjunto de palabras. Cada una de estas palabras está constituida de símbolos. La compresión de datos es una codificación: se transforman los datos hacia un conjunto de palabras adecuadas destinadas a reducir el tamaño pero no hay voluntad de ocultar (aunque se haga implícitamente más difícil el acceso al contenido). El "código" en el sentido criptográfico del término trabaja en el nivel de la semántica (las palabras o las frases). Por ejemplo, un código podrá sustituir la palabra "avión" por un número. El cifrado trabaja sobre componentes más elementales del mensaje, las letras o los bits, sin interesarse por el
significado del contenido. Un código necesita una tabla de conversión, llamada también "diccionario" (codebook en inglés). Por ello, "codificar" y "cifrar" a menudo se utilizan como sinónimos a pesar de esta diferencia. También se puede considerar que el cifrado debe resistir a un adversario «inteligente» que puede atacar de diversas maneras mientras que la codificación está destinada a una transmisión sobre un canal que potencialmente puede sufrir ruido. Este ruido es un fenómeno aleatorio que no tiene «inteligencia» intrínseca pero puede sin embargo ser descrito matemáticamente. 3. Tipos de cifrados.
Cifrado simétrico.
Es una técnica de cifrado la cual consiste en el uso de una clave que es conocida tanto por el emisor como por el receptor (Solo usa una clave para cifrado y descifrado). E y R conocen la clave K. El Emisor E, desea transmitir el mensaje Mensaje a R. para ello usa un algoritmo de cifrado simétrico y la clave K, genera entonces el mensaje Mensaje(K), que es transmitido a R, este aplicando la mosca clave y el algoritmo inverso, obtiene nuevamente el mensaje original.
Algoritmos Más conocidos
RC5
Este algoritmo fue propuesto por Ron Rivest; realiza operaciones or exclusivo, suma modular y desplazamiento de bits; Es un cifrador en bloque de tamaño variable: Cifra bloques de texto de 32, 64 o 128 bits, para el tamaño de la clave se sugiere 128 bits, el número de vueltas van de la 0 a la 255 y tiene la estructura de Red Fieltel. Características
Es muy rápido.
La arquitectura es simple. Bajos requisitos de memoria.
Alta seguridad.
Las rotaciones dependientes de los datos le fortalecen ante el criptoanálisis diferencial.
AES2
Es el estándar de encriptación avanzada, es un algoritmo de cifrado de 128, 192 y 256 de longitud de clave (Matriz 4*4). Características
Se trabaja a nivel de byte para reflejar los coeficientes de los polinomios Tiene sus propias operaciones aritméticas (Suma exclusiva bit a bit Multiplicación) No es de tipo Feistel. Implementado para trabajar en los procesadores de 8 bits usados en tarjetas inteligentes y en CPUs de 32 bits.
BlowFish 3
Algoritmo de tipo Feistel diseñado por Bruce en 1993, es de clave variable, cifra bloques de texto de 64 bits, el tamaño de la clave va de los 32 hasta los 448 bits; se generan 18 subclaves de 32 bits y cuatro cajas-S de 8*32 bits, en total 4.168 bytes. Características
Usa una función F con las cuatro cajas-S y operaciones básicas de suma y or exclusivo que provocan un efecto de avalancha.
Es compacto porque solo necesita 5K de memoria.
Es muy Rápido (5 veces más velos que DES).
Es conceptualmente simple.
Su fortaleza es la longitud de la clave.
Cifrado asimétrico
Este método usa un par de claves para el envío de mensajes. Estas claves pertenecen a la misma persona a la que se ha enviado el mensaje. Una clave es publica y esta clave se le entrega a cualquier persona, la otra clave es privada y el propietario debe guardarla de modo que nadie tenga acceso a ella entonces el emisor conoce la clave pública; cifra y envía el mensaje mediante esta clave al receptor este descifra el mensaje con la clave privada. Los Algoritmos que usan esta técnica Son:
Diffie-Hellman
RSA
DSA
ElGamal
Criptografía de curva elíptica
Existen también algunos protocolos que usan los algoritmos antes citados: DSS ("Digital Signature Standard") con el algoritmo DSA ("Digital Signature Algorithm") PGP GPG, una implementación de OpenPGP SSH SSL, ahora un estándar del IETF TLS
4. Firma digital La autenticidad de algunos documentos legales y en general, cualquier tipo de documento se determina mediante el uso de la firma manuscrita ya que ni siquiera sirve una fotocopia de la misma. Para que los documentos enviados de forma digital tengan la misma validez que un documento firmado a mano se crea la firma digital. Es un método criptográfico que asocia una identidad ya sea de una persona en particular o de un equipo a un mensaje enviado a través de red de transmisión. Su uso puede ser diferente dependiendo de lo que queramos hacer con la firma ya que tendremos posibilidad de validar que el documento es emitido por nosotros, expresar conformidad con algún documento de tipo legal como podría ser la firma de un contrato laboral e incluso asegurar que no podrá modificarse el contenido del mensaje. En resumen la firma digital nos permitirá tener más seguridad a la hora de emitir un documento de manera íntegra a través de sistemas telemáticos, generalmente la red.
Con la criptografía conseguimos obtener información confidencial que sólo podrán ser entendidas por aquellas identidades que estén autorizadas para recibirlas. Debe cumplirse pues: -El receptor debe ser capaz de verificar la identidad del sujeto transmisor. -El transmisor no puede repudiar el contenido del mensaje que ha enviado. -El receptor no deber ser capaz de poder construir el mensaje el mismo. Estas tres normas necesarios podríamos verlas por ejemplo en el caso de un banco donde se debe cumplir la primera regla donde un usuario accede a un cajero automático donde el banco tiene que asegurarse que es su cliente; la segunda norma se aplicaría para proteger al banco del fraude donde un cliente si pide una operación a realizar luego no puede negarla, por ejemplo sacar dinero luego no puede decir que el no ha pedido que se lo descuenten de su cuenta; la tercera se aplica para proteger al cliente en el caso de que el banco trate de falsificar un mensaje firmado por el cliente donde por ejemplo solicite una operación de sustracción de un importe y el banco diga otra. Funcionamiento En general la firma digital está compuesta por una clave pública y otra privada, donde la clave pública se suele distribuir por una autoridad de certificación que es la entidad en la que todos confían, receptor y emisor, y genera el certificado digital.
El esquema de funcionamiento sería el siguiente:
1. El emisor genera un resumen del documento ya que la firma no se realiza sobre el documento completo sino en un resumen del mismo o hash. 2. El emisor firma su resumen encriptándolo con la clave privada propia.
3. El emisor envía el documento y su resumen firmado al receptor. 4. El receptor genera también un resumen del documento que ha recibido usando la misma función que el emisor. Al mismo tiempo descifra el resumen recibido con la clave pública que el emisor ha publicado. Si los resúmenes coinciden la firma será validada. En este proceso se asegura la autenticidad de que la información es emitida por quien dice, integridad donde asegura que la información no ha sido alterada desde que se envía hasta que llegue al receptor, no repudio donde no se puede negar la autoridad que ha certificado el proceso.
Firmas con claves públicas y simétricas. Si utilizamos firma con clave simétrica existe una autoridad central que posee toda la información de comunicación e intercambio de mensajes y en cual todos los usuarios que la utilizan confían. En este caso el usuario elige su propia clave secreta y la comunica a la autoridad central correspondiente de manera confidencial. Cuando el emisor quiere enviar su mensaje lo genera Ka (B, Ra, t, P) donde B es la identidad del receptor que también debe ser conocido por la entidad central, Ra es un número aleatorio elegido por el emisor, t la marca de tiempo del mensaje y Ka es el mensaje encriptado con la clave del emisor a. Entonces la autoridad sabe que el mensaje es del emisor a, lo desencripta, y envía un mensaje al receptor que contiene el texto generado por el emisor y también el mensaje firmado por la entidad. Problema: surge cuando una tercera persona es capaz de repetir cualquiera de los dos mensajes donde para minimizar esto se usan marcas de tiempo, así la entidad podría ser capaz de revisar los mensajes más recientes para ver si su usó Ra, si fuera así el mensaje es descartado así como los mensajes que tengan marcas de tiempo muy antiguas. Otro problema es el hecho de que todos tienen que confiar en la autoridad central y estas instituciones no inspiran confianza para todos los usuarios, por tanto sería bueno si la firma de documentos no requiere una autoridad confiable.
La firma con clave pública utiliza algoritmos públicos de encriptación y desencriptación donde E(D(P)) = P además de la propiedad normal de D(E(P)) =
P. Así el emisor podrá enviar el mensaje transmitiendo Eb(Da(P)), donde el emisor además de su clave privada (y publica, por supuesto) conoce la clave publica del receptor. Cuando el receptor recibe el mensaje lo transforma usando su clave privada y lo descifra usando la clave pública del emisor (que es conocida).
5. Algoritmo de firmas Algoritmo de HASH Se basa en criptografía simétrica y por el hecho de que el tamaño del documento enviado puede ser grande dificulta el proceso de cifrado por eso se realiza el resumen o hash antes mencionado normalmente con un tamaño fijo. También es necesario saber la fecha en la que los mensajes son enviados para ello se utiliza un “time stamping”. Es relevante su facilidad de cálculo y la colisión de los mensajes ya sea débil (partimos de un mensaje M y usando el algoritmo no podremos encontrar otro mensaje M‟ con el mismo valor hash) o fuerte (donde será computacionalmente imposible encontrarlo). MD5 Es el algoritmo más usado en la actualidad donde el tamaño del mensaje tiene que ser siempre múltiplo de 512, la función de relleno es poner un 1 y todos los 0 que sean necesarios, la longitud real del mensaje se almacena en los 64 bits últimos. Se dispone de un buffer representado de 128 bits que es inicializado con un valor constante y puede verse como la unión de cuatro registros de 32 dígitos en hexadecimal cada uno de ellos que podríamos llamar A, B, C, D y sus valores son: A=67452301; B=EFCDAB89; C=98BADCFE; D=10325476 Se realizan rondas de repetición de aplicación del algoritmo donde coge de entrada bloques de 512 bits y los mezcla con los bits que hay en el buffer. Esta operación se repetirá hasta que no queden más bloques de entrada que consumir y el valor que haya en el buffer una vez acabado el proceso será el mensaje a enviar. El resumen del mensaje es la salida producida por A, B, C y D donde se empieza por el byte de menor peso de A y acaba con el de mayor peso de D. Aunque nació como un algoritmo criptográficamente seguro el tamaño del hash es suficientemente pequeño para poder ser atacado mediante ataques de „fuerza bruta‟ y por eso se llevó al descubrimiento de otros algoritmos como el sha-1. Uno de los usos más importantes y relevantes del algoritmo es en la descarga de archivos de internet que para comprobar que este paquete de descarga no se ha modificado se realiza una comparación con la suma MD5 publicada por los desarrolladores del software. Esto nos puede ayudar mucho en la ayuda contra los „troyanos‟.
SHA – 1 El primer algoritmo llamado SHA apareció publicado en 1993 pero actualmente es llamado SHA-0 ya que posteriormente aparecieron otras versiones del mismo. El SHA-1 apareció en 1995 y usaba un resumen de 160 bits a partir de bloques de 512 bits del mensaje original. Con esta familia de algoritmos se consigue reducir la complejidad algorítmica ya que se pasa 280 a 264 debido a que se pasa a tener un resumen de 160 bits en lugar del que teníamos con el algoritmo MD5. Funcionamiento: se empieza rellenando el mensaje con un bit al final seguido de tantos bits 0 como sean necesarios para que la longitud cumpla la condición de tener una longitud múltiple de 512 bits. Después al número de 64 bits que tiene la longitud del mensaje antes del rellenado se le aplica una OR dentro de los 64 bits de menor peso. Durante el cálculo mantiene variables de 32 bits, H0a H4 en las cuales se acumula el hash. Después se procesa cada uno de los bloques M0 a Mn-1. Para el bloque actual, las 16 palabras se copian al inicio de un arreglo auxiliar de 80 palabras, W, después las otras 64 palabras de W se rellenan usando: Wi = S(Wi-3 XOR Wi-8 XOR Wi-14 XOR Wi-16 con 16<=I <= 79 Después de procesar los primeros bloques de 512 bits, el arreglo W se reinicia pero H se queda como estaba. Cuando acaba este bloque, se inicia el siguiente y así sucesivamente hasta que todos los bloques de 52 bits han sido procesados. Al acabar el último bloque las 5 palabras de 32 bits en el arreglo H se envían a la salida como el hash criptográfico de 160 bits. En la actualidad este algoritmo parece criptográficamente roto aunque no se conocen los detalles del ataque sobre el mismo realizado por un grupo de prestigiosos investigadores. Recientemente se publicó un ataque realizado por tres investigadores chinos que además lo realizaron 64 veces más rápido que los ataques conseguidos anteriormente. Visto estos ataques el NIST (National institute of standards and technology) da como alternativa al uso de este algoritmo la utilización de estándares de mayor longitud como: SHA-224, SHA-256, SHA-384, SHA-512 y RIPEMD-160 que fue desarrollado abiertamente y también tiene versiones de 256 y 320 bits.
Conclusión. Como hemos estado hablando durante todo el documento hoy en día la información puede que sea uno de los bienes más preciados, o la desinformación una de las peores armas con las que atacar a alguien. Por lo que en esta en la sociedad en la que vivimos se hace muy necesario la seguridad en las comunicaciones, y como principal exponente en Internet , ya que este método de comunicación es cada vez más utilizado, no solo por estudiantes y comunidad universitaria, sino por empresas, particulares, y cada vez para realizar más cosas. Con lo cual cabe pensar que el tema que hemos tratado será uno de los claros exponentes a tener muy en cuenta en el futuro de la informática, sobre todo a la velocidad que se implementan nuevas tecnologías, las cuales permiten el envío de información más valiosa y que puede comprometer mucho a los interlocutores en caso de que sea interceptada por otras personas. La verdad que se trata de un mundo muy fascinante y que tiene muchas posibilidades de investigación.
Bibliografía (s.f.). Recuperado el 6 de Nov de 2013, de http://es.wikilingue.com/gl/Blowfish Wikipedia. (9 de Marzo de 2013). Recuperado el 6 de Nov de 2013, de
http://es.wikipedia.org/wiki/RC5 Enrique. (Abril de 2011). bcn-pm. Recuperado el 6 de Nov de 2013, de http://mail.pm.org/pipermail/barcelona-pm/2011-April/003678.html microasist . (s.f.). Recuperado el 6 de Nov de 2013, de
www.microasist.com.mx/noticias/en/ampen1402.shtml Moreno, M. (s.f.). Google Docs. Recuperado el 6 de Nov de 2013, de http://docs.google.com/viewer?a=v&q=cache:fMt8AVG6DqcJ:tec.upc.es/sda/AES.pdf+alg oritmo+aes+definicion&hl=es&gl=co&pid=bl&srcid=ADGEESj9TofFsfKbwSF9HFwPlBUEvQ_ QzQVvS17h6lS0jFQ3tLNg6qwg8q43uAQkm9qJHmc1AE4W6JMXJIR32JPclsoghV8N5LpYqOX FpBG1vCAHBZtSbGwDN0EdRgQ Universidad de granada . (s.f.). Recuperado el 6 de Nov de 2013, de
www.ugr.es/~aquiran/cripto/informes/info026.htm