Está en la página 1de 32

ANLISIS DE FUNCIONES HASH CRIPTOGRFICAS EN ALGORITMOS MD5 Y SHA-1

INTEGRANTES:

LUIGGY ALLAUCA FREDERIK CAARTE

INTRODUCCION
La criptografa no surge con la era informtica. Desde que el hombre tiene secretos, la criptografa los ha preservado de miradas indiscretas. La historia ha demostrado la importancia de la seguridad informtica

SEGURIDAD INFORMATICA
La seguridad es una meta ambiciosa, hasta el punto en que muchos sostienen que conseguirla en su totalidad es imposible, llegando incluso a equipararla con trminos tan abstractos como la justicia, la belleza o el amor.

CRIPTOGRAFIA
La criptografa es una de las soluciones ms comunes para muchos de los ataques que se pueden producir contra un Sistema Informtico. La palabra criptografa proviene del griego Krypto (oculto) y Graphos (escritura), de forma que su traduccin literal sera la ocultacin de la escritura. Segn la RAE, por definicin es el arte de escribir con clave secreta o de un modo enigmtico, sin embargo esta definicin arcaica y ambigua se queda corta para las necesidades que hoy da se le exige satisfacer.

METODOS DE SEGURIDAD INFORMATICA


Algunos ejemplos bien conocidos para la seguridad informtica, es la utilizacin de algoritmos, los mas grandes son los de funcin hash criptogrficamente.

HASH
Una de las herramientas para evitar los ataques informticos es la criptografa, y en concreto el uso de la firma digital, ya que gracias a ella se puede certificar tres de las caractersticas fundamentales que debe cumplir una comunicacin segura (el no repudio, la autenticacin e integridad). Para trabajar con la firma digital es necesario utilizar algoritmos de cifrado asimtrico con el consecuente retardo que estos conllevan, por eso se ha intentado buscar soluciones, y estas se han hallado en el uso de las Funciones resumen o hash.

COMO FUNCIONA UN HASH

La funciones hash son de gran utilidad ya que a la hora de firmar un archivo no es necesario realizar las costosas operaciones de cifrado con la totalidad del mismo. Ahora lo nico que hace falta es calcular su firma digital y es esta la que se firma. Gracias a esta estratgica se ahorra ingentes cantidades de tiempo con la misma calidad y seguridad.

ALGORITMOS HASH
Los algoritmos hash debido a su gran relevancia han sido objeto de estudio durante las ltimas dcadas, dando lugar a una gran variedad de los mismos. Los algoritmos hash ms importantes son: MD5. Inventado por Ron Rivest en 1992. Proviene de las mejoras del MD4 y MD2 (1990), como defecto es ms lento pero esto lo suple con un mayor nivel de seguridad. Su resumen ocupa 128 bits. SHA1. Creado por el NIST (National Institute of Standards and Technology) en 1994. Proviene del SHA y es similar a MD5 pero con resumen de tamao superior ya que este ocupa 160 bits. Existen otras propuestas o mejoras como lo son SHA 256 y SHA512. LM. Creado por la compaa Microsoft Windows, no es exactamente una funcin hash puesto que utiliza el algoritmo criptogrfico simtrico DES para realizar la funcin resumen la cual tiene un tamao fijo de 128 bits. Existen versiones mejoradas del mismo como lo son NTLM. NTLM. Creado por la compaa Microsoft Windows, utiliza otras funciones hash como MD4, adems del DES para realizar la respuesta. La funcin resumen tiene un tamao fijo de 128 bits.

CONSIDERACION DE LOS ALGORITMOS


TOMAMOS REFERENCIA DOS ALGORITMOS HASH. SON LOS MA UTILIZADOS Y SIMILARES EN SU FUNCIONAMIENTO CON SUS ALGORITMOS CONTEMPORANEOS.

SHA-1

MD5

TABLA COMPARATIVA

CRIPTOANALISIS DE LAS FUNCIONES HASH


El criptoanlisis es la ciencia encargada de buscar las Vulnerabilidades de los criptosistema. En el caso de las funciones hash la seguridad o fiabilidad est soportada sobre los pilares de las matemticas ms que sobre los de la informtica o la telemtica, de tal modo que las debilidades tienen ms implicaciones matemticas que computacionales. A continuacin se muestran los tipos de ataque que se pueden realizar sobre una funcin hash.

ATAQUE DEL CUMPLEAOS


Es un ataque por Fuerza Bruta que se basa en las implicaciones matemticas heredadas de la conocida paradoja del cumpleaos. Bsicamente este tipo de ataque consiste en generar cadenas aleatorias M, realizar Hash(M) y compararlas con Hash(M) original. Si coinciden se habr encontrado la solucin siendo M = M, en caso contrario se continua generando nuevas cadenas. En el caso de SHA1 (160 bits) este ataque necesitara generar 2 (160/2) mensajes para hallar la solucin.

ATAQUE WANGYINYU O ATAQUE CHINO


Es un ataque por Fuerza Bruta simplificado, en el cual gracias a ciertos conocimientos previos al mismo, permite reducir el nmero de alternativas del hash. Ilustraremos este ataque con un ejemplo.

ATAQUE WANGYINYU O ATAQUE CHINO


Imagine que quiere realizar la venta de un inmueble, para ello redacta un contrato de venta A, el cual contiene tanto el texto con los datos pertinentes, como imgenes de la vivienda. Al mismo tiempo genera un contrato alternativo A con las mismas fotos pero modificando el precio de venta a su favor. Por las propiedades vistas con anterioridad sera prcticamente imposible que Hash(A)=Hash(A). Ahora bien puede generar mltiples versiones de A y A modificando tan slo unos pocos bits de las imgenes (modifica slo las imgenes para que no llame tanto la atencin la trampa realizada) hasta conseguir que Hash(A) y Hash(A) sean idnticos.

RAINBOWTABLES
Este ataque genera cadenas de hash, para ir guardando el primer y el ltimo valor de las mismas en un archivo con formato de tabla. Posteriormente las tablas generadas son ordenadas y por ltimo utilizadas, para la bsqueda de la solucin que rompa el hash gracias a una reconstruccin de las mismas.

UTILIZACION EN LA VIDA REAL


Las funciones hash seguras tienen muchas aplicaciones en aplicaciones relacionadas con seguridad de datos (e.g., firmas digitales y cdigos de autenticacin de mensajes). Tambin pueden ser usadas como funciones hash de propsito general o como sumas de chequeo. Algunos ejemplos bien conocidos de algoritmos de funcin hash criptogrficamente seguras son : SHA-1, SHA-256, MD5 y Tiger, entre otros.

SHA-1
En criptografa, SHA-1 es una funcin hash criptogrfica diseada por la Agencia de Seguridad Nacional de los Estados Unidos y publicado por el NIST Estados Unidos como Federal Information Processing Standard EE.UU.. SHA-1 produce un 160 bits (20 bytes) valor hash. Un valor hash SHA-1 se expresa tpicamente como un nmero hexadecimal de 40 dgitos.

SHA-1
SHA es sinnimo de "algoritmo de hash seguro". Los cuatro algoritmos SHA estn estructurados de forma diferente y se distinguen como SHA-0, SHA-1, SHA-2, y SHA-3. SHA-1 es muy similar a SHA-0, pero corrige un error en la especificacin de hash SHA original que condujo a deficiencias significativas. El algoritmo SHA-0 no fue adoptada por muchas aplicaciones. SHA-2 en el otro lado difiere significativamente de la funcin hash SHA-1. SHA-1 es el ms ampliamente utilizado de las funciones de hash SHA existentes, y se emplea en diversas aplicaciones y protocolos ampliamente utilizados.
UNO DE LOS ATAQUES MAS COMUNES ES EL ATAQUE CHINO.

COMO FUNCIONA
Paso 1: Aadir bits de Padding y Paso 2: Aadir la longitud. Igual que en el algoritmo MD5. Paso 2: Iniciar el buffer SHA. Para guardar tanto los resultados intermedios como el resultado final, se utiliza un buffer de 160 bits. Podemos representar el buffer como cinco palabras de 32 bits, A, B, C, D, E, que se inician con los siguientes valores hexadecimales: A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0

COMO FUNCIONA
Paso 4: Procesamiento del mensaje en bloques de 512 bits (16 palabras de 32 bits). La parte central del algoritmo es un mdulo que tiene 80 etapas de procesamiento. La lgica de este mdulo es la siguiente: Cada etapa tiene como entrada el actual bloque de 512 bits, YA QUE, y los 160bits delbuffer ABCDEy, como resultado, actualiza el contenido del buffer.

COMO FUNCIONA
En cada etapa se hace uso de la suma por una constanteKt. De hecho, solo se utilizan cuatro constantes diferentes. Los valores hexadecimales son los siguientes: 0t19, entonces Kt= 5A827999 20t39, entoncesKt= 6ED9EBA1 40t59, entoncesKt= 8F1BBCDC 60t79, entoncesKt=CAN62C1D6 Es decir, el algoritmo SHA para procesar un bloqueYqde 512 bits, tomacomo entrada el bloqueYqy el valor intermedio en aquel momento de lasecuenciahash SHAqque se toma delbuffer ABCDE. Despus, el resultado de las 80 etapas se suma aSHAq, dandoSHAq+1que se coloca en elbufferABCDE. Esta ltima suma se hace con dos sumandos de 160 bits cada uno,la operacin se hace de forma independiente para cada una de las cincopalabras de 32 bits que tiene cada sumando.

COMO FUNCIONA
Paso 5: Salida. Tras procesar los Lbloques de 512 bits, la salida SHAL 1delLsimo bloque de proceso es la secuencia hash de 160 bits.

EN MOMERIA

Donde se utiliza utilizamos


En sistemas UNIX y GNU/Linux se utiliza este algoritmo para calcular el hash de las claves de los usuarios. Este ataque es de particular importancia para las aplicaciones que usan firmas digitales tales como marcas de tiempo y notaras Este algoritmo forma parte de varias aplicaciones de seguridad de uso comn y protocolos, incluyendo TLS y SSL, PGP, SSH, S / MIME, e IPsec. Estas aplicaciones tambin pueden usar MD5, ambos MD5 y SHA-1-son descendientes de MD4. Hash SHA-1 tambin se utiliza en los sistemas distribuidos de control de versiones como Git, Mercurial, Montono y revisiones para identificar y detectar la corrupcin de datos o manipulacin.

Linux ---

PROTOCOLOS

MD5
El algoritmo MD5 Message-Digest es una funcin hash criptogrfica utilizada que produce un (16 bytes) valor hash de 128 bits. Especificado en el RFC 1321, MD5 ha sido utilizado en una amplia variedad de aplicaciones de seguridad, y tambin se utiliza comnmente para comprobar la integridad de los datos. MD5 fue diseado por Ron Rivest en 1991 para reemplazar una funcin hash anterior, MD4. Un valor hash MD5 se expresa tpicamente como un nmero hexadecimal de 32 dgitos.

ATAQUES A MD5
LOS ATAQUES QUE RECIBE MAS SON LOS DE ATAQUE DE COLISION DE JOUX -WANG QUE DICE ESTE ATAQUE :Por ejemplo, imagine que tiene dos ejecutables uno denominado good.exe (programa legtimo) y otro llamado bad.exe (programa ilegtimo), dado un vector A y otro B tal que MD5(A) = MD5(B), puede generar un good.bin haciendo A+good.exe+bad.exe y un bad.bin haciendo B+good.exe+bad.exe. De esta forma tiene que el MD5(good.exe) = MD5(bad.exe). Posteriormente, mediante un tercer programa extractor saca de good.bin y bad.bin a good.exe o bad.exe respectivamente en funcin de si contienen A o B. De esta manera puede subir good.bin en la red, y ms tarde sustituirlo por bad.bin previamente renombrado sin que nadie pueda detectar el cambio.

COMO FUNCIONA
TRES PASOS IMPORTANTES :

Paso 1: Aadir un padding Al buffer original se le aaden una serie de bits, de tal forma que crezca hasta una cifra cuyo tamao, tras ser dividido por 512, nos d un resto de 448. En caso de que el tamao del buffer inicial cumpla ya esta condicin, se aadirn 512 bits. Los bits aadidos estarn formados por un bit '1' seguido de tantos bits '0' como sean necesarios para que se de la condicin matemtica anterior.

COMO FUNCIONA
Paso 2: Aadir la longitud del buffer Adems del 'padding' aadido en el paso 1, se concatenarn 64 bits adicionales que indican el tamao del buffer original. El valor estar formado por dos palabras de 32 bits representadas en littleendian. Tras aadir estos ltimos 64 bits, ya tenemos un buffer mltiplo de 512 bits (64 bytes), de tal manera que ya puede ser tratado por "EL ALGORITMO", todas esas engorrosas operaciones XOR, OR, AND,rotaciones, etc.

COMO FUNCIONA
Paso 3: Inicializacin del buffer MD A grandes rasgos, el clculo del hash MD5, se realiza modificando un "buffer base". Las modificaciones vendrn dadas por los bytes que vayamos leyendo de nuestro buffer resultante de los dos primeros pasos. El "buffer base" est formado por 4 palabras de 32 bits con la siguiente configuracin: word A: 01 23 45 67 word B: 89 ab cd ef word C: fe dc ba 98 word D: 76 54 32 10 ESTOS VALORES ES EL RESULTADO DEL ALGORITMO : 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 Si recordamos el hash devuelto por 'filehasher' del archivo 'vacio.txt', ste era: 0123456789abcdeffedcba9876543210 vacio.txt

HASH PERFECTO
Se dice que una funcin hash es perfecta cuando es inyectiva, es decir, que cada dato de entrada se mapea a un valor hash diferente. Desafortunadamente las funciones hash perfectas slo son tiles cuando las entradas estn preestablecidas y se conocen de antemano, como por ejemplo, mapear los nombres de los meses a los enteros del 1 al 12. Si la funcin hash perfecta mapea los n posibles datos de entrada a un rango consistente en n enteros consecutivos, se dice que es una funcin hash perfecta y mnima.

QUE SE PUEDE DECIR


Firma digital. Las funciones hash son de gran utilidad a la hora de realizar una firma digital, ya que gracias a ellas los algoritmos de cifrado asimtrico no necesitan cifrar con su clave privada la totalidad del mensaje o archivo. Si no slo la huella del mismo, ahorrando las grandes cantidades de clculos que retardaran el conjunto de la operacin. Gracias al uso de la firma digital podemos otorgar a la comunicacin las propiedades de: no repudio, integridad y autenticidad. Un claro de ejemplo de esta situacin lo encontramos en los certificados x.509, los cuales usan MD5 para la realizacin de su firma digital. En CRIPTOGRAFIA, X.509 es un estndar UIT-T para INFRAESTRUCTURAS DE CLAVES PUBLICAS.

RECUERDEN
QUE EN ESTE MOMENTO SE ESTAN APLICANDO ESTOS ALGORITMOS EN INTERNET SIN DARNOS CUENTA.

GRACIAS