funciones resumen y md5

Upload: cuentadisp

Post on 06-Apr-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Funciones Resumen y Md5

    1/29

    Elaborado por: Aythami Ramrez Medina Antonio Perera Prez Josu Garca Vlchez

  • 8/3/2019 Funciones Resumen y Md5

    2/29

    Historia Introduccin

    Algoritmo Conclusin Bibliografa

  • 8/3/2019 Funciones Resumen y Md5

    3/29

    MD5 es uno de los algoritmos de reduccin criptogrficosdiseados por el profesor Ronald Rivest del MIT (MassachusettsInstitute of Technology, Instituto Tecnolgico de Massachusetts).

    Fue desarrollado en 1991 como reemplazo del algoritmo MD4despus de que Hans Dobbertin descubriese su debilidad.

    A pesar de su amplia difusin actual, la sucesin de problemas deseguridad detectados desde que, en 1996, Hans Dobbertinanunciase una colisin de hash, plantea una serie de dudas acercade su uso futuro.

    http://es.wikipedia.org/wiki/Ronald_Rivesthttp://es.wikipedia.org/wiki/Ronald_Rivesthttp://es.wikipedia.org/wiki/Ronald_Rivesthttp://es.wikipedia.org/wiki/Ronald_Rivest
  • 8/3/2019 Funciones Resumen y Md5

    4/29

    La criptografa asimtrica permite identificar al emisor yal receptor del mensaje. Para identificar el mensajepropiamente dicho se utilizan las llamadas funciones

    resumen (en ingls, hash).

  • 8/3/2019 Funciones Resumen y Md5

    5/29

    El resultado de aplicar una funcin resumen a un texto es unnmero grande, que cumple una series de caractersticas :

    Todos los nmeros resumen generados con un mismo mtodo

    tienen el mismo tamao sea cual sea el texto utilizado comobase.

    Dado un texto base, es fcil y rpido (para un ordenador)calcular su nmero resumen.

    Es imposible reconstruir el texto base a partir del nmero

    resumen.Es imposible que dos textos base diferentes tengan el mismo

    nmero resumen.

  • 8/3/2019 Funciones Resumen y Md5

    6/29

    Las funcin de hash es una funcin para resumir oidentificar probabilsticamente un gran conjunto deinformacin, dando como resultado un conjunto imagen finitogeneralmente menor.

    Una propiedad fundamental del hashing es que si dos

    resultados de una misma funcin son diferentes, entonces lasdos entradas que generaron dichos resultados tambin loson.

    Son usadas en mltiples aplicaciones, como los arraysasociativos, criptografa, procesamiento de datos y firmas

    digitales, entre otros. Una buena funcin de hashes una que experimenta pocas

    colisiones en el conjunto esperado de entrada; es decir quese podrn identificar unvocamente las entradas

  • 8/3/2019 Funciones Resumen y Md5

    7/29

    En criptografa, MD5 (abreviatura de Message-Digest

    Algorithm 5, Algoritmo de Resumen del Mensaje 5) esun algoritmo de reduccin criptogrfico de 128 bitsampliamente usado en la actualidad.

    Ejemplo: El siguiente cdigo de 28 bytes ASCII ser tratado con

    MD5 y veremos su correspondiente hashde salida:

    MD5("Esto s es una prueba de MD5") =02306f485f385f6ed9ab6626052a633d

  • 8/3/2019 Funciones Resumen y Md5

    8/29

    Este algoritmo del md5 se divide en 5 pasototalmente diferenciados:

    1. Adicin de bits

    2. Longitud del mensaje

    3. Inicializar el bfer MD

    4. Procesado del mensaje en bloque de 16 palabras

    5. Salida

  • 8/3/2019 Funciones Resumen y Md5

    9/29

    Mensaje a codificar:Hello World! Se pasa el mensaje a binario:

    01001000 01100101 01101100 0110110001101111 00100000 01010111 0110111101110010 01101100 01100100 00100001

    Se mira cual es la longitud del mensaje en

    bits:12 * 8 = 96 bits

  • 8/3/2019 Funciones Resumen y Md5

    10/29

    El mensaje ser extendido hasta que su longitud en

    bits sea congruente con 448, mdulo 512. Entodos los mensajes se aade al menos un bit ycomo mximo 512. Congruente: dos nmerosenteros y tienen el mismo resto al dividirlos por un

    nmero natural , llamado el mdulo. La extensin se realiza como sigue: un solo bit "1"

    se aade al mensaje, y despus se aaden bits "0"hasta que la longitud en bits del mensajeextendido se haga congruente con 448, mdulo512.

    Aunque el mensaje ya sea congruente inicialmentehay que hacerle siemprela adicin de bits.

    http://es.wikipedia.org/wiki/Congruenciahttp://es.wikipedia.org/wiki/Congruencia
  • 8/3/2019 Funciones Resumen y Md5

    11/29

    01001000 01100101 01101100 01101100 01101111

    00100000 01010111 01101111 01110010 0110110001100100 00100001 10000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000

    00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000

    00000000 Se le ha aadido 352 bits para que sea congruente con

    448 mod 512.

  • 8/3/2019 Funciones Resumen y Md5

    12/29

    Una vez efectuada la extensin en bits, hay

    que aadirle su longitud original en losltimos 64 bits del bloque. En caso que lalongitud del mensaje sea mayor que 2^64(18446744073709551616 caracteres) se

    utilizaran los ltimos 64 bits de la longitud.

    Longitud del mensaje:

    00000000 00000000 00000000 0000000000000000 00000000 00000000 01100000 =96

  • 8/3/2019 Funciones Resumen y Md5

    13/29

    Adicin al proceso: 01001000 01100101 01101100 01101100 01101111

    00100000 01010111 01101111 01110010 0110110001100100 00100001 10000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000

    00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 01100000

  • 8/3/2019 Funciones Resumen y Md5

    14/29

  • 8/3/2019 Funciones Resumen y Md5

    15/29

    Se utilizan los registros A, B, C, D que se inicializan a lossiguientes enteros de 32 bits (valores en hexadecimal):

    A 67452301B EFCDAB89

    C

    98BADCFED 10325476

    Los bits de menor peso primero, es decir:palabra A 01 23 45 67

    palabra B 89 ab cd efpalabra C fe dc ba 98palabra D 76 54 32 10

  • 8/3/2019 Funciones Resumen y Md5

    16/29

    Definimos cuatro funciones primitivas que toman comoentrada tres palabras de 32 bits y su salida es una palabra de32 bits.

    F(B,C,D) = BC v not(B) DG(B,C,D) = BD v C not(D)

    H(B,C,D) = B Bor C Bor DI(B,C,D) = C Bor (B v not(D))

    Tambin se usar una tabla de 64 elementos T[1 ... 64]

    construida con la funcin Seno. Denotaremos por T[i] elelemento i-simo de esta tabla, que ser igual a la parteentera de 2^32 * abs(sin(i)), donde i est en radianes.Porque abs(sin(i)) es un nmero entero entre 0 y 1, en el cualcada elemento de T puede ser representado en 32 bits.

    http://es.wikipedia.org/wiki/Seno_(trigonometr%C3%ADa)http://es.wikipedia.org/wiki/Seno_(trigonometr%C3%ADa)
  • 8/3/2019 Funciones Resumen y Md5

    17/29

  • 8/3/2019 Funciones Resumen y Md5

    18/29

    El alma de este algoritmo es una funcin compuesta deesta forma:

    a = b + ((a + g(b,c,d) + X[k] + T[i])

  • 8/3/2019 Funciones Resumen y Md5

    19/29

    http://i41.tinypic.com/iwuaeu.jpg
  • 8/3/2019 Funciones Resumen y Md5

    20/29

    Con ms detalle, el proceso consiste en 4 rondas,en la que cada una se realiza 16 operaciones,basadas en la funcin anterior. En cada ronda seutiliza la funcin primitiva de la siguiente forma:

    Ronda 1 F(b, c, d); Ronda 2 G(b, c, d), Ronda 3 H(b, c, d), Ronda 4 I(b, c, d). Para cada ronda se utiliza un bloque de 512 bits

    del mensaje ms los registros A, B, C, D. Antes delcomienzo de operar cada bloque de 512 bits hayque guardar los valores originales de los registrosA, B, C, D.

  • 8/3/2019 Funciones Resumen y Md5

    21/29

    Comenzamos con la primera ronda donde elprimer paso es de la siguiente forma:F(B,C,D) = BC v not(B) D =10011000101110101101110011111110

    (A + F(B,C,D) + X[k] + T[i]) = 1001000011110101110000100110111111

    Como el resultado sale de 34 bits, tenemos quetransformarlo a 32 bits, de la siguiente forma:10 01000011110101110000100110111111mod 2^32

  • 8/3/2019 Funciones Resumen y Md5

    22/29

    A este resultado se desplaza circularmente s bits:01000011110101110000100110111111

  • 8/3/2019 Funciones Resumen y Md5

    23/29

  • 8/3/2019 Funciones Resumen y Md5

    24/29

    Para el siguiente paso los registros se desplazaranuna vez a la derecha circularmente, en la que Asera D, B sera A, C sera B y D sera C. Es decirpara cada ronda los registro se modificaran cuatro

    veces de la siguiente forma: ADCB.

    Para cada una de las representaciones del bloquede 512 bits se usa las siguientes permutaciones

    P1(i) = orden originalP2(i) = (1+5i) mod 16P3(i) = (5+3i) mod 16P4(i) = 7i mod 16

  • 8/3/2019 Funciones Resumen y Md5

    25/29

    En cada ronda se realizan 16 operaciones dando untotal de 64 operaciones. Una vez realizada todaslas operaciones, se le suma a cada uno de losregistros su valor original al comienzo del paso 4,

    usando la suma en mod 2^32.A = A + AA = 0x876207EDB = B + BB = 0x36862E53C = C + CC = 0x921E845E

    D = D + DD = 0x8C0DC5BF Estas operaciones se realizaran para cada uno de

    los bloques.

  • 8/3/2019 Funciones Resumen y Md5

    26/29

    Una vez calculada todos los bloques de 512

    bits se obtiene una salida de la siguienteforma:Se empieza con los bytes menossignificativos de A y se finaliza con los

    bytes ms significativos de D.

    El MD5 final de ste ejemplo es:0xED076287532E86365E841E92BFC50D8C

  • 8/3/2019 Funciones Resumen y Md5

    27/29

    http://i40.tinypic.com/552vza.jpg
  • 8/3/2019 Funciones Resumen y Md5

    28/29

    El mtodo MD5 es un sistema criptogrficode ejecucin rpido.

    Esta ampliamente expandido y utilizado en

    mltiples sistemas.

    A pesar de ello, tiene vulnerabilidades debidoal funcionamiento de las funciones hash.

  • 8/3/2019 Funciones Resumen y Md5

    29/29

    Cryptography and network security, WilliamStallings.

    http://es.wikipedia.org/wiki/MD5

    Applet: http://nsfsecurity.pr.erau.edu/crypto/md5.ht

    ml

    http://es.wikipedia.org/wiki/MD5http://nsfsecurity.pr.erau.edu/crypto/md5.htmlhttp://nsfsecurity.pr.erau.edu/crypto/md5.htmlhttp://nsfsecurity.pr.erau.edu/crypto/md5.htmlhttp://nsfsecurity.pr.erau.edu/crypto/md5.htmlhttp://es.wikipedia.org/wiki/MD5